커뮤니티

전략 진입시, 기존 조건 초기화하는 방법을 알고 싶습니다.

프로필 이미지
카프리카
2020-01-30 12:08:04
222
글번호 135486
답변완료
안녕하세요~ 전략 진입시, 기존 조건을 초기화하는 방법을 알고 싶습니다. 예를 들어 <장 개시후, 양봉의 수가 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 으로 초기화하는 수식을 알고 싶습니다. 항상 감사합니다.