커뮤니티

부탁 합니다.

프로필 이미지
너무조아
2015-11-19 17:10:12
155
글번호 92584
답변완료
NO. 45089 와 연속입니다. 다음 수식의 오류사항의 수정을 부탁 드립니다. 변수값 N 에 의한 신호 발생 시점이 일치하지 않는 것 같습니다. input : N(0); var : T(0),S1(0),S2(0),TT(0),pre(0),entry(0); if bdate != bdate[1] Then var1 = C[1]; if Bdate != Bdate[1] Then{ S1 = TimeToMinutes(stime); T = 1; pre = TotalTrades; } if date != date[1] Then{ S2 = 1440-S1; T = 2; } if T == 1 then TT = TimeToMinutes(time)-S1; if T == 2 Then TT = TimeToMinutes(time)+S2; if MarketPosition == 0 Then entry = TotalTrades-pre; Else entry = (TotalTrades-pre)+1; If CrossUp(c,var1) Then { if entry == 0 Or MarketPosition ==0 or (entry >= 1 and MarketPosition == -1 and TimeToMinutes(stime) >= TT[BarsSinceEntry]+N) Then Buy("b",AtMarket); } If CrossDown(c,var1) Then { if entry == 0 Or MarketPosition ==0 or (entry >= 1 and MarketPosition == 1 and TimeToMinutes(stime) >= TT[BarsSinceEntry]+N) Then Sell("s",AtMarket); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2015-11-19 18:23:24

안녕하세요 예스스탁입니다. 시간이 아닌 봉수로 변경해 드립니다. 당일 첫진입은 봉수제한없이 진입하고 두번째 진입부터 직전진입이후 N개봉 이후에 cross가 발생하면 진입합니다. 강제청산등 설정하실때 대비해서 청산후에도 N개봉 이후에 진입하게 내용 추가되어 있습니다. input : N(5); var : T(0),S1(0),S2(0),TT(0),pre(0),entry(0); if bdate != bdate[1] Then var1 = C[1]; if Bdate != Bdate[1] Then{ pre = TotalTrades; } if MarketPosition == 0 Then entry = TotalTrades-pre; Else entry = (TotalTrades-pre)+1; If CrossUp(c,var1) Then { if entry == 0 Or (entry >= 1 and MarketPosition == -1 and BarsSinceEntry >= N) Or (entry >= 1 and MarketPosition == 0 and BarsSinceExit(1) >= N) Then Buy("b",AtMarket); } If CrossDown(c,var1) Then { if entry == 0 Or (entry >= 1 and MarketPosition == 1 and BarsSinceEntry >= N) Or (entry >= 1 and MarketPosition == 0 and BarsSinceExit(1) >= N) Then Sell("s",AtMarket); } 즐거운 하루되세요 > 너무조아 님이 쓴 글입니다. > 제목 : 부탁 합니다. > NO. 45089 와 연속입니다. 다음 수식의 오류사항의 수정을 부탁 드립니다. 변수값 N 에 의한 신호 발생 시점이 일치하지 않는 것 같습니다. input : N(0); var : T(0),S1(0),S2(0),TT(0),pre(0),entry(0); if bdate != bdate[1] Then var1 = C[1]; if Bdate != Bdate[1] Then{ S1 = TimeToMinutes(stime); T = 1; pre = TotalTrades; } if date != date[1] Then{ S2 = 1440-S1; T = 2; } if T == 1 then TT = TimeToMinutes(time)-S1; if T == 2 Then TT = TimeToMinutes(time)+S2; if MarketPosition == 0 Then entry = TotalTrades-pre; Else entry = (TotalTrades-pre)+1; If CrossUp(c,var1) Then { if entry == 0 Or MarketPosition ==0 or (entry >= 1 and MarketPosition == -1 and TimeToMinutes(stime) >= TT[BarsSinceEntry]+N) Then Buy("b",AtMarket); } If CrossDown(c,var1) Then { if entry == 0 Or MarketPosition ==0 or (entry >= 1 and MarketPosition == 1 and TimeToMinutes(stime) >= TT[BarsSinceEntry]+N) Then Sell("s",AtMarket); }