커뮤니티

수식문의드립니다

프로필 이미지
jshwang2
2022-02-07 02:34:07
710
글번호 156033
답변완료
안녕하세요 수식 몇가지 질문 드립니다! 1. HB 상향돌파시 매수 60일선이 HB 밑이면, HB - 5에서 손절 (exitL1) 60일선이 HB 위이면, 종가가 60일선 하향돌파할때 청산 (exitL2) 이렇게 만들려고 아래와 같이 짰습니다 input : HB(14620), LB(14530) ; var : e60(0); e60 = Ema(C,60); Buy("L",AtStop,HB,2) ; Sell("S",AtStop,LB,2) ; if marketposition > 0 Then { if e60 < HB Then ExitLong("exitL1",AtStop,HB-5); if e60 >= HB and CrossDown(close, e60) Then ExitLong("exitL2") ; } if marketposition < 0 Then { if e60 > LB Then ExitShort("exitS1",AtStop,HB+5); if e60 <= LB and CrossUp(close, e60) Then ExitShort("exitS2"); } 하지만 테스트해보니 손절조건에 해당하는 exitL1, exitS1에서 청산이 안되는데 원인이 무엇인지 확인 부탁드립니다! 2. 다른 틱봉 사용 가능여부 현재는 120틱봉을 기준으로 전략을 짜고있는데 특정 조건에선 600틱봉을 사용하려고 합니다 기존의 진입조건인 HB 상향돌파시 매수, LB 상향돌파시 매도에 직전 600틱 봉 3개가 양봉(음봉)을 추가하고 싶습니다 직전 600틱봉 3개가 양봉이고, 현재봉의 현재가가 HB 상향돌파시 매수 직전 600틱봉 3개가 음봉이고, 현재봉의 현재가가 LB 하향돌파시 매도 이렇게 만들려면 어떻게 해야할까요? 청산조건이나 앞으로 구현해 추가할것들은 120틱봉이 기준이라 기본은 120틱봉으로 하고 600틱봉을 가져와야 조건으로 추가해야 하는 상황입니다 방법이 있다면 가르쳐주시면 감사하겠습니다 감사합니다
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-02-07 14:50:00

안녕하세요 예스스탁입니다. 1 작성하신 수식에서 별도로 수정해 드릴부분이 없습니다. 60일선이 HB 밑이면, HB - 5에서 손절 (exitL1) 60일선이 HB 위이면, 종가가 60일선 하향돌파할때 청산 (exitL2) 매수청산은 올리신 내용으로 청산식이 작성되어 있습니다. 매도청산 쪽에는 if e60 > LB Then ExitShort("exitS1",AtStop,HB+5); 위 내용에 e60 > LB 조건일때 HB+5로 가격이 지정되어 있습니다. LB+5이면 해당내용으로만 변경하시면 됩니다. 2 120틱봉에서 600틱봉의 시가와 종가를 계산해 이용하시면 됩니다. 600틱봉은 120틱봉 5개이므로 당일 첫봉부터 5개씩 모아서 값 계산하시면 됩니다. input : nbars(5),N(3); input : HB(14620), LB(14530) ; var : e60(0); var : D1(0),idx(0),TF(0),Po(0),Ne(0),cnt(0); Array : OO[20](0),CC[20](0); e60 = Ema(C,60); if Bdate != Bdate[1] Then { D1 = sdate; idx = 0; } Else idx = idx+1; if D1 > 0 then { TF = idx%nbars; if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then { OO[0] = O; for cnt = 1 to 19 { OO[cnt] = OO[cnt-1][1]; CC[cnt] = CC[cnt-1][1]; } } CC[0] = C; if OO[n] > 0 Then { Po = 0; Ne = 0; For cnt = 1 to n { if CC[cnt] > OO[cnt] Then Po = po +1; if CC[cnt] < OO[cnt] Then Ne = Ne +1; } if Po == n then Buy("L",AtStop,HB,2) ; if Ne == n then Sell("S",AtStop,LB,2) ; } } if marketposition > 0 Then { if e60 < HB Then ExitLong("exitL1",AtStop,HB-5); if e60 >= HB and CrossDown(close, e60) Then ExitLong("exitL2") ; } if marketposition < 0 Then { if e60 > LB Then ExitShort("exitS1",AtStop,HB+5); if e60 <= LB and CrossUp(close, e60) Then ExitShort("exitS2"); } 즐거운 하루되세요 > jshwang2 님이 쓴 글입니다. > 제목 : 수식문의드립니다 > 안녕하세요 수식 몇가지 질문 드립니다! 1. HB 상향돌파시 매수 60일선이 HB 밑이면, HB - 5에서 손절 (exitL1) 60일선이 HB 위이면, 종가가 60일선 하향돌파할때 청산 (exitL2) 이렇게 만들려고 아래와 같이 짰습니다 input : HB(14620), LB(14530) ; var : e60(0); e60 = Ema(C,60); Buy("L",AtStop,HB,2) ; Sell("S",AtStop,LB,2) ; if marketposition > 0 Then { if e60 < HB Then ExitLong("exitL1",AtStop,HB-5); if e60 >= HB and CrossDown(close, e60) Then ExitLong("exitL2") ; } if marketposition < 0 Then { if e60 > LB Then ExitShort("exitS1",AtStop,HB+5); if e60 <= LB and CrossUp(close, e60) Then ExitShort("exitS2"); } 하지만 테스트해보니 손절조건에 해당하는 exitL1, exitS1에서 청산이 안되는데 원인이 무엇인지 확인 부탁드립니다! 2. 다른 틱봉 사용 가능여부 현재는 120틱봉을 기준으로 전략을 짜고있는데 특정 조건에선 600틱봉을 사용하려고 합니다 기존의 진입조건인 HB 상향돌파시 매수, LB 상향돌파시 매도에 직전 600틱 봉 3개가 양봉(음봉)을 추가하고 싶습니다 직전 600틱봉 3개가 양봉이고, 현재봉의 현재가가 HB 상향돌파시 매수 직전 600틱봉 3개가 음봉이고, 현재봉의 현재가가 LB 하향돌파시 매도 이렇게 만들려면 어떻게 해야할까요? 청산조건이나 앞으로 구현해 추가할것들은 120틱봉이 기준이라 기본은 120틱봉으로 하고 600틱봉을 가져와야 조건으로 추가해야 하는 상황입니다 방법이 있다면 가르쳐주시면 감사하겠습니다 감사합니다