안녕하세요~ 전략 진입시, 기존 조건을 초기화하는 방법을 알고 싶습니다.
예를 들어 <장 개시후, 양봉의 수가 5개 이상이면 최고점 돌파시 진입>하는 식이 있을 때,
Buy 진입후에 양봉의 갯수가 다시 0 으로 바뀌는 식을 사용하고 싶습니다.
//전략예시
var: sumLongCandle(0);
if dayindex == 0 then sumLongCandle = 0;
if close > open then sumLongCandle = sumLongCandle + 1;
if sumLongCandle >= 5 then begin
Buy("B1") at HighD(0) + 0.05 stop;
sumLongCandle = 0;
end;
이런 식으로 짰더니, 양봉 숫자가 5가 된 시점에서 바로 고점을 돌파하지 않는다면,
다시 0으로 초기화 되기 때문에 진입 시그널이 나오지 않더군요.
그렇다고,
if marketposition == 1 then sumLongCandle = 0;
이런 식으로 초기화하면, 다른 Buy신호인 B2, B3 등이랑 겹치더군요.
그래서 B1 전략을 진입한 후에만, sumLongCandle 변수를 0 으로 초기화하는 수식을 알고 싶습니다.
항상 감사합니다.
답변 1
예스스탁
예스스탁 답변
2020-01-31 09:54:10
안녕하세요
예스스탁입니다.
if marketposition == 1 and IsEntryName("B1") == true then sumLongCandle = 0;
특정이름의 진입이 발생했을때만 초기화하게 작성해 주시면 됩니다.
즐거운 하루되세요
> 카프리카 님이 쓴 글입니다.
> 제목 : 전략 진입시, 기존 조건 초기화하는 방법을 알고 싶습니다.
> 안녕하세요~ 전략 진입시, 기존 조건을 초기화하는 방법을 알고 싶습니다.
예를 들어 <장 개시후, 양봉의 수가 5개 이상이면 최고점 돌파시 진입>하는 식이 있을 때,
Buy 진입후에 양봉의 갯수가 다시 0 으로 바뀌는 식을 사용하고 싶습니다.
//전략예시
var: sumLongCandle(0);
if dayindex == 0 then sumLongCandle = 0;
if close > open then sumLongCandle = sumLongCandle + 1;
if sumLongCandle >= 5 then begin
Buy("B1") at HighD(0) + 0.05 stop;
sumLongCandle = 0;
end;
이런 식으로 짰더니, 양봉 숫자가 5가 된 시점에서 바로 고점을 돌파하지 않는다면,
다시 0으로 초기화 되기 때문에 진입 시그널이 나오지 않더군요.
그렇다고,
if marketposition == 1 then sumLongCandle = 0;
이런 식으로 초기화하면, 다른 Buy신호인 B2, B3 등이랑 겹치더군요.
그래서 B1 전략을 진입한 후에만, sumLongCandle 변수를 0 으로 초기화하는 수식을 알고 싶습니다.
항상 감사합니다.