커뮤니티

수식문의합니다

프로필 이미지
toal
2019-09-26 00:58:49
152
글번호 132244
답변완료
1. 분봉시가 기준으로 매매하고 싶은데 봉완성되기전에 atstop 주문으로 매매할수 있을까요? 시가기준으로 1틱 상승하면 매수, 1틱 아래면 매도 스위칭으로 계속 매매하게하고 한번 스위칭 될때마다 손실횟수로 1회로 저장해서 손실횟수가 10번이상이거나 수익이 10틱이상이면 매매를 멈추게 할수 있을까요? 2. 1번수식에서 시가기준으로 누적손실횟수 5회까지는 진입하지 않다가 6회때 진입하고 수익이 10틱이상나면 멈추고 누적손실횟수가 10회때까지 수익안나면 진입금지하는 수식을 추가하려면 어떻게 작성하나요? 3. 신호 적용챠트는 틱봉으로하고 참조종목을 분봉으로해서 모든신호를 참조봉시가로 적용할수있을까요? 4. 분봉시작시간을 바꿀수는 없나요? 예를들어 5분봉시작을 17분에 시작해서 5분봉을 22분,27분,32분 이런식으로요
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-09-26 14:54:03

안녕하세요 예스스탁입니다. 하나의 Buy나 Sell은 한봉에서 한번만 동작합니다. 하나의 봉에서 시가 기준으로 위아래로 여러번 움직이는 것을 모두 진입청산하게 작성할수 없습니다. 또한 수식에서 거래횟수나 손익은 봉완성시에 최종 체크가 되고 해당 값을 이용해서 if문도 봉완성시에 조건을 체크할수만 있습니다. 진입자체가 봉미완성시에 가격조건만족하면 즉시 발생하는 내용으로 봉미완성시에 스위칭되거나 10틱이상 수익이 도달한것으로 해당 미완성봉에서 다음진입을 막을수가 없습니다. 아래와 같이 수식들을 작성해 드리지만 거래횟수나 수익이후 진입이 추가로 발생할수 있고 위와 같은 체계상 미완성시에 진입하는 신호를 막을 방법이 없습니다. 1 var : count(0),T1(0); if bdate != bdate[1] Then { count = 0; } Else count = count + (TotalTrades-TotalTrades[1]); #첫봉 if NextBarSdate != sDate then { buy("b",AtStop,NextBarOpen+PriceScale*1); sell("s",AtStop,NextBarOpen-PriceScale*1); } else { if count < 10 then { buy("b1",AtStop,NextBarOpen+PriceScale*1); sell("s1",AtStop,NextBarOpen-PriceScale*1); } } 2 문의하신 내용은 가상으로 거래를 체크해야 하는 로직이 필요한데 해당 부부은 식작성이 복잡하고 시간이 많이 걸리는 내용이라 저희가 시간관계상 작성해 드리기 어렵습니다. 3 진입수식의 기준가격으로 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)); } 4 가능하지 않습니다. 즐거운 하루되세요 > toal 님이 쓴 글입니다. > 제목 : 수식문의합니다 > 1. 분봉시가 기준으로 매매하고 싶은데 봉완성되기전에 atstop 주문으로 매매할수 있을까요? 시가기준으로 1틱 상승하면 매수, 1틱 아래면 매도 스위칭으로 계속 매매하게하고 한번 스위칭 될때마다 손실횟수로 1회로 저장해서 손실횟수가 10번이상이거나 수익이 10틱이상이면 매매를 멈추게 할수 있을까요? 2. 1번수식에서 시가기준으로 누적손실횟수 5회까지는 진입하지 않다가 6회때 진입하고 수익이 10틱이상나면 멈추고 누적손실횟수가 10회때까지 수익안나면 진입금지하는 수식을 추가하려면 어떻게 작성하나요? 3. 신호 적용챠트는 틱봉으로하고 참조종목을 분봉으로해서 모든신호를 참조봉시가로 적용할수있을까요? 4. 분봉시작시간을 바꿀수는 없나요? 예를들어 5분봉시작을 17분에 시작해서 5분봉을 22분,27분,32분 이런식으로요