커뮤니티

질문 드립니다.

프로필 이미지
즐겁게
2021-07-28 15:18:07
1393
글번호 151165
답변완료
안녕하세요. 늘 감사드립니다. 흔한 패턴인 W, M 패턴을 이용한 매매식 부탁 드립니다. 매수는, W형에서, 두 저점들(Swing Low)과 그 사이에 고점(Swing High)이 있을 때, 이 두 저점들 사이의 고점 가격을 종가가 돌파하는 순간 매수. 매도는, M형에서, 두 고점들(Swing High)과 그 사이에 저점(Swing Low)이 있을 때, 이 두 고점들 사이의 저점 가격을 종가가 이탈하는 순간 매도. 목표 가격: 패턴의 높이 만큼. 즉, 매수의 경우라면, W형에서, 왼쪽이든 오른쪽이든 더 낮은 저점 가격과, 중간 고점까지의, 높이를 목표치로 해서 Profit Taking. 매도의 경우라면, M형에서, 왼쪽이든 오른쪽이든 더 높은 고점 가격과, 중간 저점까지의, 높이를 목표치로 해서 Profit Taking. 손절: 위의 목표 가격에서와 같은 패턴의 높이 만큼으로 손절. 즉, 매수의 경우, W의 더 낮은 저점 바로 아래 손절선 설치. 매도의 경우, M의 더 높은 고점 바로 위에 손절선 설치. ((이 W형이나 M형은 저로서는 워낙 다양한 모양(즉, 가령 총 몇 개의 봉들로 구성되는지, 왼쪽 저점과 오른 쪽 저점이 서로 높이가 다를 수도 있고 등등)이 가능하니 수식화하기가 매우 어렵습니다. 혹시나 대표적인 경우라도, 또는 단순한 경우라도, 수식화 가능하다면 코딩 보여 주시면 대단히 감사하겠습니다)) 감사합니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2021-07-28 18:01:46

안녕하세요 예스스탁입니다. 아래 내용 참고하시기 바랍니다. 고점/저점에 대한 정확한 내용이 없어 일반적으로 고저점판단에 사용하는 swinghigh,swinglow함수로 고점과 저점판단하게 작성해 드립니다. 해당 함수에 대한 자세한 내용은 예스랭귀지 도움말 참고하시기 바랍니다. input : Left(3),Right(3); var : cnt(0); var : Lv1(0),Lv2(0),Li1(0),Li2(0),BH(0),Bprofit(0),Bloss(0),Bdiff(0); var : Hv1(0),Hv2(0),Hi1(0),Hi2(0),SL(0),Sprofit(0),Sloss(0),Sdiff(0); #저점발생 if SwingLow(1,L,left,right,left+right+1) != -1 Then { #최근 저점값 Lv1 = L[right]; #최근 저점 인덱스 Li1 = Index[right]; #직전 저점값 Lv2 = Lv1[1]; #직전 저점 인덱스 Li2 = Li1[1]; #최근 2개의 저점값이 있으면 if Lv2 > 0 Then { #저점사이의 최고가 계산 BH = 0; For cnt = Index-Li1 to Index-Li2 { if BH == 0 or (BH > 0 and H[cnt] > BH) Then BH = H[cnt]; } } } #무포지션이나 매도포지션일때 #BH에 0보다 큰값이 저장된 상태에서 종가가 BH보다 크면 if MarketPosition <= 0 and BH > 0 and CrossUp(c,BH) Then { #매수진입 Buy("b"); #BH는 0으로 초기화(한번셋팅된 BH값으로 2번진입하지 않게 0으로 만듬) BH = 0; #저점사이 최고가와 저점중 최저가와의 차이 Bdiff = BH-min(Lv1,Lv2); #목표가격 = 저점사이 최고가+차이값 Bprofit = BH+Bdiff; #손절가격 = 저점중 작은값 BLoss = min(Lv1,Lv2); } #매수포지션 진입 후 if MarketPosition == 1 Then { #목표가격에 도달하면 청산 ExitLong("bp",AtLimit,Bprofit); #손절가격에 도달하면 청산 ExitLong("bl",AtStop,Bloss); } #고점발생 if Swinghigh(1,H,left,right,left+right+1) != -1 Then { #최근 고점값 Hv1 = H[right]; #최근 고점 인덱스 Hi1 = Index[right]; #직전 고점값 Hv2 = Hv1[1]; #직전 고점 인덱스 Hi2 = Hi1[1]; #최근 2개의 고점값이 있으면 if Lv2 > 0 Then { #고점사이의 최저가 계산 SL = 0; For cnt = Index-Hi1 to Index-Hi2 { if SL == 0 or (SL > 0 and H[cnt] < SL) Then SL = L[cnt]; } } } #무포지션이나 매수포지션일때 #SL에 0보다 큰값이 저장된 상태에서 종가가 SL보다 작으면 if MarketPosition >= 0 and SL > 0 and CrossDown(c,SL) Then { #매도진입 Sell("s"); #sL는 0으로 초기화(한번셋팅된 SL값으로 2번진입하지 않게 0으로 만듬) SL = 0; #고점중 최고가와 고점사이 최저가의 차이 Sdiff = max(Hv1,Hv2)-SL; #목표가격 = 고점사이 최저가-차이값 Sprofit = SL-Sdiff; #손절가격 = 고점중 큰값 SLoss = max(Hv1,Hv2); } #매도포지션 진입 후 if MarketPosition == -1 Then { #목표가격에 도달하면 청산 ExitShort("sp",AtLimit,Sprofit); #손절가격에 도달하면 청산 ExitShort("sl",AtStop,Sloss); } 즐거운 하루되세요 > 즐겁게 님이 쓴 글입니다. > 제목 : 질문 드립니다. > 안녕하세요. 늘 감사드립니다. 흔한 패턴인 W, M 패턴을 이용한 매매식 부탁 드립니다. 매수는, W형에서, 두 저점들(Swing Low)과 그 사이에 고점(Swing High)이 있을 때, 이 두 저점들 사이의 고점 가격을 종가가 돌파하는 순간 매수. 매도는, M형에서, 두 고점들(Swing High)과 그 사이에 저점(Swing Low)이 있을 때, 이 두 고점들 사이의 저점 가격을 종가가 이탈하는 순간 매도. 목표 가격: 패턴의 높이 만큼. 즉, 매수의 경우라면, W형에서, 왼쪽이든 오른쪽이든 더 낮은 저점 가격과, 중간 고점까지의, 높이를 목표치로 해서 Profit Taking. 매도의 경우라면, M형에서, 왼쪽이든 오른쪽이든 더 높은 고점 가격과, 중간 저점까지의, 높이를 목표치로 해서 Profit Taking. 손절: 위의 목표 가격에서와 같은 패턴의 높이 만큼으로 손절. 즉, 매수의 경우, W의 더 낮은 저점 바로 아래 손절선 설치. 매도의 경우, M의 더 높은 고점 바로 위에 손절선 설치. ((이 W형이나 M형은 저로서는 워낙 다양한 모양(즉, 가령 총 몇 개의 봉들로 구성되는지, 왼쪽 저점과 오른 쪽 저점이 서로 높이가 다를 수도 있고 등등)이 가능하니 수식화하기가 매우 어렵습니다. 혹시나 대표적인 경우라도, 또는 단순한 경우라도, 수식화 가능하다면 코딩 보여 주시면 대단히 감사하겠습니다)) 감사합니다.