커뮤니티

시스템수정

프로필 이미지
조민철
2013-09-01 23:51:25
121
글번호 67048
답변완료
항상감사드립니다 아래시스템은 매수진입은 var10=1 and var20=1 매수진입은 var10=2 and var20=2 일때 구현되는 시스템식입니다 이식을 매수진입이 var10=1 or var20=1 로 바꾸고 싶습니다 (var10=1,var20=1 중 먼저나오는 신호로 매수 var10=2,var20=2 중 먼저나오는 신호로 매도 ) var10=1 발생하고 var20=1 일때 먼저 발생한신호로 매수진입 var10=2 발생하고 var20=2 일때 먼저 발생한신호로 매도진입 그런데 문제가 발생하는구간은 var10=1 이발생하고 var20=2 구간에서는 매수매도가 계속 반복적으로 나옵니다.. 수정부탁드립니다 if (stime >= 090200 and stime < 143000) /*and (DayPL < 당일손익*PriceScale)*/ Then{ Condition1 = ExitDate(1) == sdate and IsExitName("StopLoss",1) == true and MarketPosition(1) == 1; Condition2 = ExitDate(1) == sdate and IsExitName("StopLoss",1) == true and MarketPosition(1) == -1; if ( var10 == 1 and var20==1 ) and ((MarketPosition == 0 and Condition1 == false) or MarketPosition == -1) Then buy("B1"); if ( var10 == -1 and var20==-1 ) and ((MarketPosition == 0 and Condition2 == false) or MarketPosition == 1) Then sell("S1") ;
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-09-02 18:49:52

안녕하세요? 예스스탁입니다. 전체 식이 없어서 정확한 답변은 어렵지만, 계속 매수매도가 반복되는 경우는 조건을 같이 만족하기 때문입니다. 따라서 각각의 조건이 한번만 만족되도록 식을 수정해서 작성하셔야 할 것 같습니다. 예를 들면 var10 조건이 if ma(C,10) > ma(C,20) then var10 = 1; else var10 = 0; 으로 작성되어 있다면 아래와 같이 수정해서 한 시점에만 조건이 만족하도록 수정해 주는 것입니다. if CrossUp( ma(C,10) , ma(C,20)) then var10 = 1; else var10 = 0; 즐거운 날 되세요. > 조민철 님이 쓴 글입니다. > 제목 : 시스템수정 > 항상감사드립니다 아래시스템은 매수진입은 var10=1 and var20=1 매수진입은 var10=2 and var20=2 일때 구현되는 시스템식입니다 이식을 매수진입이 var10=1 or var20=1 로 바꾸고 싶습니다 (var10=1,var20=1 중 먼저나오는 신호로 매수 var10=2,var20=2 중 먼저나오는 신호로 매도 ) var10=1 발생하고 var20=1 일때 먼저 발생한신호로 매수진입 var10=2 발생하고 var20=2 일때 먼저 발생한신호로 매도진입 그런데 문제가 발생하는구간은 var10=1 이발생하고 var20=2 구간에서는 매수매도가 계속 반복적으로 나옵니다.. 수정부탁드립니다 if (stime >= 090200 and stime < 143000) /*and (DayPL < 당일손익*PriceScale)*/ Then{ Condition1 = ExitDate(1) == sdate and IsExitName("StopLoss",1) == true and MarketPosition(1) == 1; Condition2 = ExitDate(1) == sdate and IsExitName("StopLoss",1) == true and MarketPosition(1) == -1; if ( var10 == 1 and var20==1 ) and ((MarketPosition == 0 and Condition1 == false) or MarketPosition == -1) Then buy("B1"); if ( var10 == -1 and var20==-1 ) and ((MarketPosition == 0 and Condition2 == false) or MarketPosition == 1) Then sell("S1") ;