저번 포스팅에 이어 ADX 를 활용하여 전략을 만들어 볼 것 입니다. ADX 를 구성하는 DI 들도 활용을 할 것이구요! ADX 란 간단하게 현재 추세의 강도를 알려주는 것이고, DI 들은 각 상승/하락 추세들의 강도를 알려주는 것이기에, 추세 강도 지표로 정도로 생각해주시면 될 것 같습니다.
시간이 되신다면 22번 포스팅을 자세히 봐두시는걸 추천드립니다! 보조지표를 구성하는 각 수식들, 변수들을 철저하게 분석해놨으며, 이후 전략을 만드는데 큰 도움이 될 것이기 때문이죠~
그럼 바로 시작!
항상 보조지표를 연구할 때는 직관과 기능을 엮어서 생각해봅니다. 현재 가격을 어떻게 해석해주는지, 내가 보조지표를 이용하여 표현하고 싶은, 얻고 싶은 정보가 무엇 인가 를 알아야 하죠.
위 사진을 보시면 DMI 의 색깔을 살짝 바꿔놨습니다. 매수세를 뜻하는 초록/ 매도세를 뜻하는 빨강/ 추세를 뜻하는 보라색 으로 보실 수 있죠.
일단 관심없는 부분은 과매수/과매도/과추세 구간입니다. 추세가 시작할때 타는 것을 원하죠. 그럼 직관적으로, 매수세가 매도세를 추월할때 를 뜻하게되고, 보조지표를 사용하면 +DI 가 -DI 보다 커질때를 뜻합니다. 그런 상황만 표현해보죠!
일단 plot 은 다 지워주고!
어제 코드에 이어서 코드를 써줍니다.
upstart = up > down and up[1] < down[1]
bgcolor(color = upstart ? green: na, transp = 85)
upstart 는 현재 +DI 가 -DI 보다 크고, 전 +DI는 - DI 보다 작았다!
시각적으로 보면 이런 교차 구간! 을 듯하게되죠. cross 함수를 사용해도 되지만, "처음부터" 포스팅이니깐~
이런식의 DI 들이 교차하는 구간에 초록색 칠을 해줬네요! 이제 저희가 원하는 신호들만 찾아봅시다.
제가 원하는 신호들은 이런 신호들! 이런 신호들이 가지고 있는 공통점을 찾아봅시다. 흐음... 일단 이정도 정보로는 보이는게 없군요.
그렇다면! 직관을 한 개 더 부여하여, 논리적으로 상승 추세 이려면, 현재 추세의 강도 보다는 상승 추세가 강해야 하니깐! (어제 ADX 공식과 +DI 공식을 보셔도! )
upstrong = up > sig
bgcolor(color = upstrong ? aqua: na, transp = 85)
+DI 가 ADX 보다 위에 있다는 의미의 upstrong 변수를 추가해주시고, 이걸 백그라운드에 시그널로 프린팅 해줍니다.
오호? 생각보다 잼잇는 패턴이 보입니다. 독자분들도 보이시나요?
이런 급등, 급락 하는 부분에는 추세의 강도가 상승 추세의 강도보다 강하네요. 즉, 매도세가 그만큼 없다는 것입니다. 오늘은 이 파트에 집중해볼까요?
배열을 보시면
ADX > +DI > -DI
순서가 나오는군요. 이 배열만 따로 프린팅 해봅시다.
upup = sig > up and up > down
bgcolor(color = upup ? orange: na, transp = 85)
upup 이라는 변수가 ADX 가 +Di 보다 크고, +DI 가 -Di 보다 클 경우를 뜻하고, 그걸 시그널로 프린팅!
생각보다 재미있는 결과가 나왔습니다.
전 급등 구간을 찾고 싶은거지, 추세 강도가 떨어지는 구간을 찾는게 아니니깐! 위와 같이 ADX 의 각도가 떨어지는 구간을 제거해줍시다.
upup = sig > up and up > down and sig > sig[1]
오케이! 급등 구간이 잘 표시되는군요.
하지만 역시 변동성에 대한 항이 없으니, 변동성이 적은 구간에서는 문제가 발생하는 군요. ATR 포스팅에서 코드를 가져와줍시다!
https://busy.org/@roostermine/20-atr
atrshort= atr(5)
atrlong= atr(50)
highvolatility = atrshort > atrlong
upup = sig > up and up > down and sig > sig[1] and highvolatility
그리고 upup 변수에 highvolatility 를 추가해줍니다.
여기까지 한 진입 시그널들을 직관적으로 5분봉/15분봉/30분봉/한시간봉/네시간봉 등 돌려보니, ADX 라는 보조지표가 현재 값에 더 붙도록 설계되어 있어 단기 캔들(한시간 이하)이 더 잘 맞는 경향이 있었습니다. 또한 ATR 필터링으로 과한 조정이 생성될 시 진입 시그널을 필터링 해버려 (아래처럼)
상당히 괜찮아 보였습니다.
제가 만든것이 무엇인지를 아는 것이 가장 중요합니다. 제가 오늘 만들어본 지표는 변동성이 굉장히 큰 시장을 캐치하여, 빠르게 진입하여 빠르게 청산하고 나오는, 과매수에 진입하여 과매수에 빠져나오는 부분을 표시해주는 지표 입니다.
즉, 이런식으로 진입하고, 몇 캔들 이후에 바로 빠져나오는 추세 끝짜락의 변동성을 이용한 기법 입니다.
오늘의 강의는 여기 까지! 이지만 밑에서 부터는 아직 배우지 않은 내용을 포함하고 있는 제 연구 리포트? 입니다. 위 매매 방법을 이용하여 전략을 어떻게 구성하는지 간단하게 알아보겠습니다.
직관적으로 과매수 권에서 진입하기에 빠르게 먹고 나와야 합니다. 손절도 위에 걸려야 하고 , 익절도 위에 걸려야 하며, 변동성은 ATR 로 측정하여 보여주는 Keltner 채널의 함수를 사용합니다.
highband = ema(close,20) + atr(atrinput)1
highband2 = ema(close,20) + atr(atrinput)2
highband3 = ema(close,20) + atr(atrinput)*3
plot(highband)
plot(highband2)
plot(highband3)
일단 가격이 평균 변동폭 대비 얼마나 높은 곳에서 과매수 권이 형성되는지 확인해보겠습니다. 지수 이동평균에 ATR (평균 변동성) 을 더한 값으로, 보기 편하게 계수 1,2,3 을 붙여 평균 변동성 시그널 발생할 때 어디서 잡아야 할지 알아보겠습니다.
매수는 양봉이 좋고, ATR 값이 1~2 사이에서 매수를 받으면, 그리 나쁘지 않은 것 같습니다. 양봉에 종가가 highband
signal = close > highband and close < highband2 and upup and close > open
bgcolor(color = signal ? purple: na, transp = 85)
샘플 사이즈가 너무 작긴하지만 나쁘진 않은 것 같습니다.
일봉은 대략 이렇고
네시간봉은 이렇네요. 네시간봉의 경우는 문제가 될만한 시그널이 좀 보입니다. 하지만 전체적으로 수익이 날 것 같긴합니다.
진입은 되었으니, 익절 또는 손절을 선행학습 해본다면!
lowband = ema(close,20) - atr(atrinput)*1
plot(lowband)
tp = high > highband3
stoploss = close < lowband
sell = stoploss or tp
로 단순하게 넣었습니다. 만약 3번째 밴드를 뚫으면 익절, 하단 밴드를 뚫으면 손절! 여기서 주의하셔야 할점은, 손절에 해당하는 lowband 값은 각 봉수마다 틀려집니다. 저는 적당히 5분봉/30분봉/일봉에 맞춰서 만들었습니다. 네시간봉은 또 틀리더군요!
출력값을 이쁘게 정리해봤습니다.
초록색 벤드 사이에서 매수!
검정색, 빨간색 선에서 매도!
if (signal)
strategy.entry("long", strategy.long)
strategy.close_all(when = sell)
그리고 위 코드를 넣어 전략 테스팅을 해줍니다. 나중에 자세히 다뤄보죠!
그래서 전략을 만들어서 확인해보니, 승률이 무러 68.42%. 물론 데이터가 38 개밖에 없었다는 점이 걸리지만. 이제 손절을 건들였을때 어떻게 되는지 등, 전략을 최적화 하면 됩니다.
lowband = ema(close,20) - atr(atrinput)*1.5
손절 값에 해당하는 값을 늘릴 경우 입니다. 1-> 1.5
수익률이 살짝 줄어들죠!
손절을 줄이면? 1 -> 0.5 진입 횟수가 늘어나며, 수익률이 살짝 줄어듭니다.
만약 하단 벤드 손절을 없엔다면? 여기서 손절이 없는 것이 아닌 상단 벤드를 칠때까지 청산을 하지 않는 것 입니다. 수익이 살짝 늘어나군요!
수익은 리스크와 비례해서 늘어나기에... 조만간 익절 공식을 소개해드리며, 설명드리도록 하겠습니다!!!
오늘은 간단하게 ADX 를 이용하여 과매수 구간의 매수 전략을 한 번 만들어 보았습니다. 사실 상승 추세의 되돌림에서 받는 방법도 있으나, 좀 특이한 방법으로도 돈을 벌 수 있다/전략을 만들 수 있다 라는 부분을 짚어드리고 싶었습니다. 자신의 취향들이 각각 있으며, 굳이 남들이 다하는 되돌림, 눌리면 사라 를 안하셔도 됩니다!
다음 시간에 계속 ADX 시리즈를 이어가보도록 하겠습니다~