커뮤니티

문의합니다.

프로필 이미지
종호
2019-06-03 14:53:25
252
글번호 129143
답변완료
아래수식에서 var:T1(0),T2(0),sum1(0),sum2(0) ; if T1==0 then 이 있는데 var:T1(0) 에서 초기값 0을 주었는데 if T1==0 then 부분이 에러가 나서 매매가 안됩니다, 원하는 것은 맨처음에 초기화 값으로 T1값을 0으로 놓은 다음 if c[1]<0 and c>0 Then if MarketPosition == 0 and c> value1 Then 이 되면 T1값을 1로만든후에 매매를 계속 진행하고 여러번 중간에 청산을 해도 T1값은 변화가 없고 마지막 조건을 만족하는 청산시에만 다시 초기값 T1=0 으로 하고 싶습니다. 수정을 부탁드립니다. input: long(50),short(50),shortPeriod(30),enprice(30); value1 = ma(C, shortPeriod); var:T1(0),T2(0),sum1(0),sum2(0) ; if T1==0 then if c[1]<0 and c>0 Then if MarketPosition == 0 and c> value1 Then { T1=1 ; buy("b"); sum1=0 ; } if T2==0 then if c[1]>0 and c<0 Then if MarketPosition == 0 and c< value1 Then { T2=1 ; sell("s"); sum2=0 ; } ~~~~~~~~ 중략 if T1==1 and MarketPosition==1 Then if c-entryprice > sum1 + PriceScale *50 then { T1=0 ; exitlong("매수이익청산"); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-06-03 15:29:51

안녕하세요 예스스탁입니다. 1 선언시 값은 초기값일 뿐이고 전체수식내용에서 해당 변수가 다른값으로 할당되는지는 사용자분이 전체수식내에서 살펴보셔야 합니다. 올려주신 내용 안에서는 변수에 특별한 문제가 보이지 않습니다. 2 올려주신 수식의 매수와 매도조건중에 c[1]<0 and c>0 c[1]>0 and c<0 위 내용은 조건이 충족할수 없는 내용입니다. 0이 다른 값이시면 관계없지만 0을 사용하신 부분이면 거래되는 종목 중에 값이 0보다 작은 종목이 없어 신호발생할 수 없습니다. 투자추체별 데이타와 같은 종목으로 신호만 보시는 용도이면 관계없습니다. 위 조건 제외하면 첨부된 그림과 같이 신호 정상적으로 발생합니다. 즐거운 하루되세요 > 종호 님이 쓴 글입니다. > 제목 : 문의합니다. > 아래수식에서 var:T1(0),T2(0),sum1(0),sum2(0) ; if T1==0 then 이 있는데 var:T1(0) 에서 초기값 0을 주었는데 if T1==0 then 부분이 에러가 나서 매매가 안됩니다, 원하는 것은 맨처음에 초기화 값으로 T1값을 0으로 놓은 다음 if c[1]<0 and c>0 Then if MarketPosition == 0 and c> value1 Then 이 되면 T1값을 1로만든후에 매매를 계속 진행하고 여러번 중간에 청산을 해도 T1값은 변화가 없고 마지막 조건을 만족하는 청산시에만 다시 초기값 T1=0 으로 하고 싶습니다. 수정을 부탁드립니다. input: long(50),short(50),shortPeriod(30),enprice(30); value1 = ma(C, shortPeriod); var:T1(0),T2(0),sum1(0),sum2(0) ; if T1==0 then if c[1]<0 and c>0 Then if MarketPosition == 0 and c> value1 Then { T1=1 ; buy("b"); sum1=0 ; } if T2==0 then if c[1]>0 and c<0 Then if MarketPosition == 0 and c< value1 Then { T2=1 ; sell("s"); sum2=0 ; } ~~~~~~~~ 중략 if T1==1 and MarketPosition==1 Then if c-entryprice > sum1 + PriceScale *50 then { T1=0 ; exitlong("매수이익청산"); }