커뮤니티

수식 문의 드립니다

프로필 이미지
toal
2019-09-26 15:58:33
152
글번호 132267
답변완료
밑에 수식으로 답변주셨는데요 답변주신 수식은 매일 리셋되는거로 주셨는데 그러지않고 참조봉이 하나 완성되기전에 가지고 있는 포지션이 있으면 정리되고 설정값은 처음으로 리셋되고다시시작하는거로 할수있을까요? 예를들어 기준차트는 10틱으로하고 참조봉을 5분봉으로 한다고하면 9시 5분시작하고 수식적용되다가 9분때 포지션있으면 정리하고 설정값 리셋 9시10분봉에 다시시작 정리-리셋, 9시15분봉 시작-정리-리셋 이런식으로요 답변부탁드립니다 진입수식의 기준가격으로 data2(NextBarOpen)로 지정하시면 됩니다. input : 당일수익틱수(10); var : count(0,data1),T1(0,data1),N1(0,data1),daypl(0,data1),Xcond(false,data1),당일수익(0,data1); 당일수익 = PriceScale*당일수익틱수; if bdate != bdate[1] Then { count = 0; N1 = NetProfit; Xcond = false; } Else count = count + (TotalTrades-TotalTrades[1]); daypl = NetProfit-N1; if TotalTrades > TotalTrades[1] then { if daypl >= 당일수익 Then Xcond = true; if (IsExitName("dbp",1) == true or IsExitName("dbl",1) == true or IsExitName("dsp",1) == true or IsExitName("dsl",1) == true) then Xcond = true; } #첫봉 if NextBarSdate != sDate then { buy("b",AtStop,data2(NextBarOpen)+PriceScale*1); sell("s",AtStop,data2(NextBarOpen)-PriceScale*1); } else { if count < 10 and Xcond == false then { buy("b1",AtStop,data2(NextBarOpen)+PriceScale*1); sell("s1",AtStop,data2(NextBarOpen)-PriceScale*1); } } if MarketPosition == 1 then { ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts)); } if MarketPosition == -1 then { ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts)); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-09-26 17:05:07

안녕하세요 예스스탁입니다. 5분봉 완성시 변수들 초기화하게 수정해 드립니다. 5분봉 기준으로 매4분 경과시 포지션있으면 청산하게 추가해 드립니다. input : 당일수익틱수(10); var : count(0,data1),T1(0,data1),N1(0,data1),daypl(0,data1),Xcond(false,data1),당일수익(0,data1); var : T2(0,data1),O2(0,data1); 당일수익 = PriceScale*당일수익틱수; T2 = data2(NextBarStime); O2 = data2(NextBarOpen); if T2 != T2[1] Then { count = 0; N1 = NetProfit; Xcond = false; T1 = TimeToMinutes(stime); } Else count = count + (TotalTrades-TotalTrades[1]); daypl = NetProfit-N1; if TotalTrades > TotalTrades[1] then { if daypl >= 당일수익 Then Xcond = true; if (IsExitName("dbp",1) == true or IsExitName("dsp",1) == true ) then Xcond = true; } if T2 != T2[1] then { buy("b",AtStop,O2+PriceScale*1); sell("s",AtStop,O2-PriceScale*1); } else { if count < 10 and Xcond == false and TimeToMinutes(stime) <= T1+4 then { buy("b1",AtStop,O2+PriceScale*1); sell("s1",AtStop,O2-PriceScale*1); } if TimeToMinutes(stime) >= T1+4 Then { exitlong("bx"); ExitShort("sx"); } } if MarketPosition == 1 then { ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts)); } if MarketPosition == -1 then { ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts)); } 즐거운 하루되세요 > toal 님이 쓴 글입니다. > 제목 : 수식 문의 드립니다 > 밑에 수식으로 답변주셨는데요 답변주신 수식은 매일 리셋되는거로 주셨는데 그러지않고 참조봉이 하나 완성되기전에 가지고 있는 포지션이 있으면 정리되고 설정값은 처음으로 리셋되고다시시작하는거로 할수있을까요? 예를들어 기준차트는 10틱으로하고 참조봉을 5분봉으로 한다고하면 9시 5분시작하고 수식적용되다가 9분때 포지션있으면 정리하고 설정값 리셋 9시10분봉에 다시시작 정리-리셋, 9시15분봉 시작-정리-리셋 이런식으로요 답변부탁드립니다 진입수식의 기준가격으로 data2(NextBarOpen)로 지정하시면 됩니다. input : 당일수익틱수(10); var : count(0,data1),T1(0,data1),N1(0,data1),daypl(0,data1),Xcond(false,data1),당일수익(0,data1); 당일수익 = PriceScale*당일수익틱수; if bdate != bdate[1] Then { count = 0; N1 = NetProfit; Xcond = false; } Else count = count + (TotalTrades-TotalTrades[1]); daypl = NetProfit-N1; if TotalTrades > TotalTrades[1] then { if daypl >= 당일수익 Then Xcond = true; if (IsExitName("dbp",1) == true or IsExitName("dbl",1) == true or IsExitName("dsp",1) == true or IsExitName("dsl",1) == true) then Xcond = true; } #첫봉 if NextBarSdate != sDate then { buy("b",AtStop,data2(NextBarOpen)+PriceScale*1); sell("s",AtStop,data2(NextBarOpen)-PriceScale*1); } else { if count < 10 and Xcond == false then { buy("b1",AtStop,data2(NextBarOpen)+PriceScale*1); sell("s1",AtStop,data2(NextBarOpen)-PriceScale*1); } } if MarketPosition == 1 then { ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts)); } if MarketPosition == -1 then { ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts)); }