커뮤니티

수식오류수정 부탁드립니다

프로필 이미지
피카2
2023-09-11 17:27:48
983
글번호 172345
답변완료
당일 두번째 진입(b2)부터는 직전 청산후 5봉 경과후 진입식 입니다.그런데 어떤날은 첫번째 진입인 데도 두번째이후 진입명인 b2가 표시가 됩니다. 어떤 표현이 잘못된건지 수정 부탁드립니다. input : left(5),right(5),ln(3),dn(12),ts(30),loss(20),scl(3),LAT(5); var : ii(0),entry(0),T1(0); if Bdate != Bdate[1] Then{ T1 = TotalTrades; } if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = TotalTrades-T1+1;//당일 진입 3회까지만 if bdate != Bdate[1] Then { var1 = 0; ii = 0; } ii = ii +1; if ii >= 11 and Swinglow(1,L,5,5,11) != -1 Then { var2 =L[5]; } if date != date[1] then{ var3 = 0;// 당일 첫번째 진입 } if MarketPosition==0 and NextBarSdate == sDate AND Var3<1 and var2>0 and entry< 3 Then//var3<1 당일 첫번째진입은 { Buy("b1",AtLimit,var2+PriceScale*scl);//첫번째 진입은 b1 var3=1; } if MarketPosition==0 and BarsSinceExit(1)>5 and NextBarSdate == sDate and var2>0 and entry< 3 Then// 당일 두 번재 진입부터는 직전 청산후 5봉 경과후 진입 { Buy("b2",AtLimit,var2+PriceScale*scl);//2번째봉부터는 청산후 5본 경과 } SetStopLoss(LOSS,PercentStop); SetStopTrailing(dn,ts,PercentStop,1); SetStopEndofday(151500);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2023-09-11 18:12:07

안녕하세요 예스스탁입니다. b2도 진입횟수 조건이 entry< 3로만 되어 있습니다. entry >= 1 and entry< 3로 지정해 주시면 됩니다. input : left(5),right(5),ln(3),dn(12),ts(30),loss(20),scl(3),LAT(5); var : ii(0),entry(0),T1(0); if Bdate != Bdate[1] Then{ T1 = TotalTrades; } if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = TotalTrades-T1+1;//당일 진입 3회까지만 if bdate != Bdate[1] Then { var1 = 0; ii = 0; } ii = ii +1; if ii >= 11 and Swinglow(1,L,5,5,11) != -1 Then { var2 =L[5]; } if date != date[1] then{ var3 = 0;// 당일 첫번째 진입 } if MarketPosition==0 and NextBarSdate == sDate AND Var3<1 and var2>0 and entry< 3 Then//var3<1 당일 첫번째진입은 { Buy("b1",AtLimit,var2+PriceScale*scl);//첫번째 진입은 b1 var3=1; } if MarketPosition==0 and BarsSinceExit(1)>5 and NextBarSdate == sDate and var2>0 and entry >= 1 and entry< 3 Then// 당일 두 번재 진입부터는 직전 청산후 5봉 경과후 진입 { Buy("b2",AtLimit,var2+PriceScale*scl);//2번째봉부터는 청산후 5본 경과 } SetStopLoss(LOSS,PercentStop); SetStopTrailing(dn,ts,PercentStop,1); SetStopEndofday(151500); 즐거운 하루되세요 > 피카2 님이 쓴 글입니다. > 제목 : 수식오류수정 부탁드립니다 > 당일 두번째 진입(b2)부터는 직전 청산후 5봉 경과후 진입식 입니다.그런데 어떤날은 첫번째 진입인 데도 두번째이후 진입명인 b2가 표시가 됩니다. 어떤 표현이 잘못된건지 수정 부탁드립니다. input : left(5),right(5),ln(3),dn(12),ts(30),loss(20),scl(3),LAT(5); var : ii(0),entry(0),T1(0); if Bdate != Bdate[1] Then{ T1 = TotalTrades; } if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = TotalTrades-T1+1;//당일 진입 3회까지만 if bdate != Bdate[1] Then { var1 = 0; ii = 0; } ii = ii +1; if ii >= 11 and Swinglow(1,L,5,5,11) != -1 Then { var2 =L[5]; } if date != date[1] then{ var3 = 0;// 당일 첫번째 진입 } if MarketPosition==0 and NextBarSdate == sDate AND Var3<1 and var2>0 and entry< 3 Then//var3<1 당일 첫번째진입은 { Buy("b1",AtLimit,var2+PriceScale*scl);//첫번째 진입은 b1 var3=1; } if MarketPosition==0 and BarsSinceExit(1)>5 and NextBarSdate == sDate and var2>0 and entry< 3 Then// 당일 두 번재 진입부터는 직전 청산후 5봉 경과후 진입 { Buy("b2",AtLimit,var2+PriceScale*scl);//2번째봉부터는 청산후 5본 경과 } SetStopLoss(LOSS,PercentStop); SetStopTrailing(dn,ts,PercentStop,1); SetStopEndofday(151500);