커뮤니티
시스템수정
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") ;
다음글
이전글