예스스탁
예스스탁 답변
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일 이동평균선을 하향 교차할 때는 매도만
========================================================================================
추가 계약진입은 시스템 검증할때 피라미딩 체크하면 되는것 같은데, 손절은 검증이 안되고 무조건 무손절로 검증이 되어 버리네요.
해결 부탁드립니다..ㅠㅠ