커뮤니티

시스템검증에서 손절이 제대로 안됩니다

프로필 이미지
마틸다
2016-04-05 22:08:52
129
글번호 96881
답변완료
1. var1 = highest(H,20)[1]; var2 = lowest(L,20)[1]; var3 = atr(20); var4 = ma(C,25); var5 = ma(C,350); if var4 > var5 then{ if MarketPosition <= 0 and crossup(C,var1) Then buy("b",OnClose,def,1); if MarketPosition == 1 then{ if MaxEntries == 1 Then{ buy("bb",AtStop,EntryPrice+var3*(1/2),1); ExitLong("bx1",AtStop,EntryPrice-var3*2); } if MaxEntries == 2 Then{ ExitLong("bx2",AtStop,EntryPrice-var3*2+var3*(1/2)); } ExitLong("Bx3",AtStop,lowest(L,10)); } } if var4 < var5 then{ if MarketPosition >= 0 and CrossDown(C,var2) Then sell("s",OnClose,def,1); if MarketPosition == -1 then{ if MaxEntries == 1 Then{ sell("ss",AtStop,EntryPrice-var3*(1/2),1); ExitShort("sx1",AtStop,EntryPrice+var3*2); } if MaxEntries == 2 Then{ ExitShort("sx2",AtStop,EntryPrice+var3*2-var3*(1/2)); } ExitShort("sx3",AtStop,Highest(H,10)); } } 2. var1 = highest(H,20)[1]; var2 = lowest(L,20)[1]; var3 = atr(20); var4 = ma(C,25); var5 = ma(C,350); if var4 > var5 then{ if MarketPosition <= 0 and crossup(C,var1) Then buy("b",OnClose,def,1); if MarketPosition == 1 then{ if MaxEntries == 1 Then{ buy("bb",AtStop,EntryPrice+var3*(1/2),1); ExitLong("bx1",AtStop,EntryPrice-var3*2); } if MaxEntries == 2 Then{ ExitLong("bx2",AtStop,EntryPrice-var3*2+var3*(1/2)); } ExitLong("Bx3",AtStop,Highest(C,BarsSinceEntry)-var3*3); } } if var4 < var5 then{ if MarketPosition >= 0 and CrossDown(C,var2) Then sell("s",OnClose,def,1); if MarketPosition == -1 then{ if MaxEntries == 1 Then{ sell("ss",AtStop,EntryPrice-var3*(1/2),1); ExitShort("sx1",AtStop,EntryPrice+var3*2); } if MaxEntries == 2 Then{ ExitShort("sx2",AtStop,EntryPrice+var3*2-var3*(1/2)); } ExitShort("sx3",AtStop,Lowest(c,BarsSinceEntry)+var3*3); } } 1. 돈키언 추세 시스템 종가가 최근 20일 신고(저)가일때 매수(매도) 1계약 진입 이후 가격 수준이 1/2*(20)ATR 올라갈때(내려갈 때) 한번 1계약 추가. 1차 진입이후 가격 수준이 2*(20)ATR 내려갔을 때(올라갔을 때) 손절 2차 진입시 손절가를 이전 손절가+-1/2*(20)ATR 상향(하향)조정 가격 수준이 10일 신저(고)가일 때 청산 25일 이동평균선이 350일 이동평균선을 상향 교차할 때는 매수만, 25일 이동평균선이 350일 이동평균선을 하향 교차할 때는 매도만 2. 돈키언 추세 시스템+ 샹들리에 청산 시스템 종가가 최근 20일 신고(저)가일때 매수(매도) 1계약 진입 이후 가격 수준이 1/2*(20)ATR 올라갈때(내려갈 때) 한번 1계약 추가. 1차 진입이후 가격 수준이 2*(20)ATR 내려갔을 때(올라갈을 때) 손절 2차 진입시 손절가를 이전 손절가+-1/2*(20)ATR 상향(하향)조정 진입시점 이후 최고가(종가)대비 가격 수준이 3*(20)ATR 만큼 떨어졌을 때(올라갔을 때) 청산 25일 이동평균선이 350일 이동평균선을 상향 교차할 때는 매수만, 25일 이동평균선이 350일 이동평균선을 하향 교차할 때는 매도만 ======================================================================================== 추가 계약진입은 시스템 검증할때 피라미딩 체크하면 되는것 같은데, 손절은 검증이 안되고 무조건 무손절로 검증이 되어 버리네요. 해결 부탁드립니다..ㅠㅠ
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2016-04-06 13:23:45

안녕하세요 예스스탁입니다. 청산조건에도 35-350이평 조건이 같이 추가가 되어 있었습니다. 포지션 첫진입에만 해당 이평조건이 적용되게 수정했습니다. bx1,bx2,sx1,sx2가 손절신호명입니다. 1 var1 = highest(H,20)[1]; var2 = lowest(L,20)[1]; var3 = atr(20); var4 = ma(C,25); var5 = ma(C,350); if var4 > var5 then{ if MarketPosition <= 0 and crossup(C,var1) Then buy("b",OnClose,def,1); } if MarketPosition == 1 then{ if MaxEntries == 1 Then{ buy("bb",AtStop,EntryPrice+var3*(1/2),1); ExitLong("bx1",AtStop,EntryPrice-var3*2); } if MaxEntries == 2 Then{ ExitLong("bx2",AtStop,EntryPrice-var3*2+var3*(1/2)); } ExitLong("Bx3",AtStop,lowest(L,10)); } if var4 < var5 then{ if MarketPosition >= 0 and CrossDown(C,var2) Then sell("s",OnClose,def,1); } if MarketPosition == -1 then{ if MaxEntries == 1 Then{ sell("ss",AtStop,EntryPrice-var3*(1/2),1); ExitShort("sx1",AtStop,EntryPrice+var3*2); } if MaxEntries == 2 Then{ ExitShort("sx2",AtStop,EntryPrice+var3*2-var3*(1/2)); } ExitShort("sx3",AtStop,Highest(H,10)); } 2 var1 = highest(H,20)[1]; var2 = lowest(L,20)[1]; var3 = atr(20); var4 = ma(C,25); var5 = ma(C,350); if var4 > var5 then{ if MarketPosition <= 0 and crossup(C,var1) Then buy("b",OnClose,def,1); } if MarketPosition == 1 then{ if MaxEntries == 1 Then{ buy("bb",AtStop,EntryPrice+var3*(1/2),1); ExitLong("bx1",AtStop,EntryPrice-var3*2); } if MaxEntries == 2 Then{ ExitLong("bx2",AtStop,EntryPrice-var3*2+var3*(1/2)); } ExitLong("Bx3",AtStop,Highest(C,BarsSinceEntry)-var3*3); } if var4 < var5 then{ if MarketPosition >= 0 and CrossDown(C,var2) Then sell("s",OnClose,def,1); } if MarketPosition == -1 then{ if MaxEntries == 1 Then{ sell("ss",AtStop,EntryPrice-var3*(1/2),1); ExitShort("sx1",AtStop,EntryPrice+var3*2); } if MaxEntries == 2 Then{ ExitShort("sx2",AtStop,EntryPrice+var3*2-var3*(1/2)); } ExitShort("sx3",AtStop,Lowest(c,BarsSinceEntry)+var3*3); } 즐거운 하루되세요 > 마틸다 님이 쓴 글입니다. > 제목 : 시스템검증에서 손절이 제대로 안됩니다 > 1. var1 = highest(H,20)[1]; var2 = lowest(L,20)[1]; var3 = atr(20); var4 = ma(C,25); var5 = ma(C,350); if var4 > var5 then{ if MarketPosition <= 0 and crossup(C,var1) Then buy("b",OnClose,def,1); if MarketPosition == 1 then{ if MaxEntries == 1 Then{ buy("bb",AtStop,EntryPrice+var3*(1/2),1); ExitLong("bx1",AtStop,EntryPrice-var3*2); } if MaxEntries == 2 Then{ ExitLong("bx2",AtStop,EntryPrice-var3*2+var3*(1/2)); } ExitLong("Bx3",AtStop,lowest(L,10)); } } if var4 < var5 then{ if MarketPosition >= 0 and CrossDown(C,var2) Then sell("s",OnClose,def,1); if MarketPosition == -1 then{ if MaxEntries == 1 Then{ sell("ss",AtStop,EntryPrice-var3*(1/2),1); ExitShort("sx1",AtStop,EntryPrice+var3*2); } if MaxEntries == 2 Then{ ExitShort("sx2",AtStop,EntryPrice+var3*2-var3*(1/2)); } ExitShort("sx3",AtStop,Highest(H,10)); } } 2. var1 = highest(H,20)[1]; var2 = lowest(L,20)[1]; var3 = atr(20); var4 = ma(C,25); var5 = ma(C,350); if var4 > var5 then{ if MarketPosition <= 0 and crossup(C,var1) Then buy("b",OnClose,def,1); if MarketPosition == 1 then{ if MaxEntries == 1 Then{ buy("bb",AtStop,EntryPrice+var3*(1/2),1); ExitLong("bx1",AtStop,EntryPrice-var3*2); } if MaxEntries == 2 Then{ ExitLong("bx2",AtStop,EntryPrice-var3*2+var3*(1/2)); } ExitLong("Bx3",AtStop,Highest(C,BarsSinceEntry)-var3*3); } } if var4 < var5 then{ if MarketPosition >= 0 and CrossDown(C,var2) Then sell("s",OnClose,def,1); if MarketPosition == -1 then{ if MaxEntries == 1 Then{ sell("ss",AtStop,EntryPrice-var3*(1/2),1); ExitShort("sx1",AtStop,EntryPrice+var3*2); } if MaxEntries == 2 Then{ ExitShort("sx2",AtStop,EntryPrice+var3*2-var3*(1/2)); } ExitShort("sx3",AtStop,Lowest(c,BarsSinceEntry)+var3*3); } } 1. 돈키언 추세 시스템 종가가 최근 20일 신고(저)가일때 매수(매도) 1계약 진입 이후 가격 수준이 1/2*(20)ATR 올라갈때(내려갈 때) 한번 1계약 추가. 1차 진입이후 가격 수준이 2*(20)ATR 내려갔을 때(올라갔을 때) 손절 2차 진입시 손절가를 이전 손절가+-1/2*(20)ATR 상향(하향)조정 가격 수준이 10일 신저(고)가일 때 청산 25일 이동평균선이 350일 이동평균선을 상향 교차할 때는 매수만, 25일 이동평균선이 350일 이동평균선을 하향 교차할 때는 매도만 2. 돈키언 추세 시스템+ 샹들리에 청산 시스템 종가가 최근 20일 신고(저)가일때 매수(매도) 1계약 진입 이후 가격 수준이 1/2*(20)ATR 올라갈때(내려갈 때) 한번 1계약 추가. 1차 진입이후 가격 수준이 2*(20)ATR 내려갔을 때(올라갈을 때) 손절 2차 진입시 손절가를 이전 손절가+-1/2*(20)ATR 상향(하향)조정 진입시점 이후 최고가(종가)대비 가격 수준이 3*(20)ATR 만큼 떨어졌을 때(올라갔을 때) 청산 25일 이동평균선이 350일 이동평균선을 상향 교차할 때는 매수만, 25일 이동평균선이 350일 이동평균선을 하향 교차할 때는 매도만 ======================================================================================== 추가 계약진입은 시스템 검증할때 피라미딩 체크하면 되는것 같은데, 손절은 검증이 안되고 무조건 무손절로 검증이 되어 버리네요. 해결 부탁드립니다..ㅠㅠ