커뮤니티

이상합니다----------

프로필 이미지
leekss1
2011-09-27 18:59:38
512
글번호 43097
답변완료

첨부 이미지

input:전봉차(0.1),차이값(0.2),청산값(0.3),하루이익(1),하루손실(0.8); INPUT : PCLENGTH(30); INPUTS: TEMALENGTH(10); VAR : TCHAN(0), BCHAN(0),TEMA1(0); var : PLR(0),XCommission(0),XSlippage(0),OpenPL(0),dayPL(0),count(0); #당일누적손익계산 시작 XCommission = ((C*ExitCommission)/100)*CurrentContracts; #%설정 XSlippage = (ExitSlippage)*CurrentContracts; #Pt설정 PLR = 0; count = 0; for var1 = 1 to 10{ if sdate == EntryDate(var1) Then{ count = count+1; PLR = PLR+PositionProfit(var1); } } if MarketPosition() == 0 Then{ OpenPL = 0; dayPL = PLR; } Else{ OpenPL = (PositionProfit-(XCommission+XSlippage)); dayPL = PLR+OpenPL; } TCHAN = HIGHEST(HIGH, PCLENGTH)[1]; BCHAN = LOWEST(LOW, PCLENGTH)[1]; TEMA1 = (3 * Ema(c,TEMALENGTH)) - (3 * Ema(Ema(c,TEMALENGTH),TEMALENGTH)) + (Ema(Ema(Ema(c,TEMALENGTH),TEMALENGTH),TEMALENGTH)); if daypl < 하루이익 and dayPL > 하루손실 then{ if TCHAN >= TCHAN[1]+전봉차 and abs(tema1-TCHAN) <= 차이값 Then buy(); if BCHAN <= BCHAN[1]-전봉차 and abs(tema1-TCHAN) <= 차이값 Then Sell(); } if MarketPosition == 1 and abs(tema1-TCHAN) >= 청산값 Then ExitLong(); if MarketPosition == -1 and abs(tema1-TCHAN) >= 청산값 Then ExitShort(); if MarketPosition == 1 Then{ ExitLong("bx1",AtStop,EntryPrice+(-(하루손실)-(PLR))); ExitLong("bx2",AtLimit,EntryPrice+((하루이익)-(PLR))); } if MarketPosition == -1 Then{ ExitShort("sx1",AtStop,EntryPrice+((하루손실)+(PLR))); ExitShort("sx2",AtLimit,EntryPrice+(-(하루이익)+(PLR))); } 첨부그림을보면 Price Channel BOP값이 전봉보다 0.1 이상하락하고 , Price Channel BOP과 TEMA(10)값의 차이가 0.2이하이면 매도해야하는데 신호가 안나오네요 그러니까 로직의취지는 두지표가 거의붙어서 하락할때 매도하는것입니다 부탁드립니다
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2011-09-28 10:46:40

안녕하세요 예스스탁입니다. 식을 수정했서 올려드립니다. input:전봉차(0.1),차이값(0.2),청산값(0.3),하루이익(1),하루손실(0.8); INPUT : PCLENGTH(30); INPUTS: TEMALENGTH(10); VAR : TCHAN(0), BCHAN(0),TEMA1(0); var : PLR(0),XCommission(0),XSlippage(0),OpenPL(0),dayPL(0),count(0); #당일누적손익계산 시작 XCommission = ((C*ExitCommission)/100)*CurrentContracts; #%설정 XSlippage = (ExitSlippage)*CurrentContracts; #Pt설정 PLR = 0; count = 0; for var1 = 1 to 10{ if sdate == EntryDate(var1) Then{ count = count+1; PLR = PLR+PositionProfit(var1); } } if MarketPosition() == 0 Then{ OpenPL = 0; dayPL = PLR; } Else{ OpenPL = (PositionProfit-(XCommission+XSlippage)); dayPL = PLR+OpenPL; } TCHAN = HIGHEST(HIGH, PCLENGTH)[1]; BCHAN = LOWEST(LOW, PCLENGTH)[1]; TEMA1 = (3 * Ema(c,TEMALENGTH)) - (3 * Ema(Ema(c,TEMALENGTH),TEMALENGTH)) + (Ema(Ema(Ema(c,TEMALENGTH),TEMALENGTH),TEMALENGTH)); if daypl < 하루이익 and dayPL > -하루손실 then{ if TCHAN >= TCHAN[1]+전봉차 and abs(tema1-TCHAN) <= 차이값 Then buy(); if BCHAN <= BCHAN[1]-전봉차 and abs(tema1-BCHAN) <= 차이값 Then Sell(); } if MarketPosition == 1 and abs(tema1-TCHAN) >= 청산값 Then ExitLong("bx"); if MarketPosition == -1 and abs(tema1-BCHAN) >= 청산값 Then ExitShort("sx"); if MarketPosition == 1 Then{ ExitLong("bx1",AtStop,EntryPrice+(-(하루손실)-(PLR))); ExitLong("bx2",AtLimit,EntryPrice+((하루이익)-(PLR))); } if MarketPosition == -1 Then{ ExitShort("sx1",AtStop,EntryPrice+((하루손실)+(PLR))); ExitShort("sx2",AtLimit,EntryPrice+(-(하루이익)+(PLR))); } 즐거운 하루되세요 > leekss1 님이 쓴 글입니다. > 제목 : 이상합니다---------- > input:전봉차(0.1),차이값(0.2),청산값(0.3),하루이익(1),하루손실(0.8); INPUT : PCLENGTH(30); INPUTS: TEMALENGTH(10); VAR : TCHAN(0), BCHAN(0),TEMA1(0); var : PLR(0),XCommission(0),XSlippage(0),OpenPL(0),dayPL(0),count(0); #당일누적손익계산 시작 XCommission = ((C*ExitCommission)/100)*CurrentContracts; #%설정 XSlippage = (ExitSlippage)*CurrentContracts; #Pt설정 PLR = 0; count = 0; for var1 = 1 to 10{ if sdate == EntryDate(var1) Then{ count = count+1; PLR = PLR+PositionProfit(var1); } } if MarketPosition() == 0 Then{ OpenPL = 0; dayPL = PLR; } Else{ OpenPL = (PositionProfit-(XCommission+XSlippage)); dayPL = PLR+OpenPL; } TCHAN = HIGHEST(HIGH, PCLENGTH)[1]; BCHAN = LOWEST(LOW, PCLENGTH)[1]; TEMA1 = (3 * Ema(c,TEMALENGTH)) - (3 * Ema(Ema(c,TEMALENGTH),TEMALENGTH)) + (Ema(Ema(Ema(c,TEMALENGTH),TEMALENGTH),TEMALENGTH)); if daypl < 하루이익 and dayPL > 하루손실 then{ if TCHAN >= TCHAN[1]+전봉차 and abs(tema1-TCHAN) <= 차이값 Then buy(); if BCHAN <= BCHAN[1]-전봉차 and abs(tema1-TCHAN) <= 차이값 Then Sell(); } if MarketPosition == 1 and abs(tema1-TCHAN) >= 청산값 Then ExitLong(); if MarketPosition == -1 and abs(tema1-TCHAN) >= 청산값 Then ExitShort(); if MarketPosition == 1 Then{ ExitLong("bx1",AtStop,EntryPrice+(-(하루손실)-(PLR))); ExitLong("bx2",AtLimit,EntryPrice+((하루이익)-(PLR))); } if MarketPosition == -1 Then{ ExitShort("sx1",AtStop,EntryPrice+((하루손실)+(PLR))); ExitShort("sx2",AtLimit,EntryPrice+(-(하루이익)+(PLR))); } 첨부그림을보면 Price Channel BOP값이 전봉보다 0.1 이상하락하고 , Price Channel BOP과 TEMA(10)값의 차이가 0.2이하이면 매도해야하는데 신호가 안나오네요 그러니까 로직의취지는 두지표가 거의붙어서 하락할때 매도하는것입니다 부탁드립니다