본문 바로가기
경제공부

[Chart Study] 일목균형표(ichimoku cloud)

by zemba 2022. 4. 3.
반응형
SMALL

안녕하세요~ Zemba입니다. 지난번 포스팅에서는 볼린저밴드에 대해서 알아보았고 이번에는 일목균형표에 대한 지표를 알아보려고 합니다. 일목균형표는 구름 대라고도 불리고 있는데 그 이유를 한번 알아봐야 하겠습니다.
우선 일목균형표에 대한 위키 링크를 첨부합니다. (https://namu.wiki/w/%EC% 9D% BC% EB% AA% A9% EA% B7% A0% ED%98%95% ED%91%9C)

나무 위키에 따르면 일 목산인에 의해 개발된 지표라 일목균형표라 이름을 붙이게 되었다고 합니다. 또한 이 지표는 봉차트분석법, 사께다 5 법, 패턴 분석, 엘리엇 파동론, 이동평균선, 피보나치, MA오실레이터, ROC개념 등이 포괄적으로 내재되어 있는 복합 추세 예측방법이라 할 수 있다. (이 정도면 거의 끝판왕 아닌가 ㄷㄷㄷ) 아무튼 일목균형표는 다른 지표와는 다르게 특이한 점이 하나 있습니다. 대부분의 지표는 후행지표지만 일목균형표는 일부 선행으로 예측한 결과를 지표로 보여주게 됩니다. ( 반칙 아님? ) 주가의 추세를 시간에 의해 적용되어 향후 주가를 예측할 수 있는 분석기법이라고 합니다. (어렵다...ㅋ)

우선 차트의 형태를 한번 확인해보겠습니다.

출처 - 알파스퀘어 삼성전자 차트

그림에서 볼 수 있듯이 캔들 주변에 일정한 영역들과 각종 선들이 눈에 보이실 것입니다. ( 다른 선들과 같이 있으면 보기 힘들어서 이동평균선은 제외하고 캡처하였습니다. ) 왼쪽 상단에 보시면 일목균형표라고 차트 라벨에 기준, 전환, 후행, 선행 A, 선행 B 이렇게 5가지의 지표로 구성되는 것을 확인할 수 있습니다. 그렇다면 이 각각의 선은 어떤 의미를 가지는지 알아보겠습니다.

  • 전환선 - (과거 9일간의 최고가 + 과거 9일간의 최저가) / 2
  • 기준선 - (과거 26일간의 최고가 + 과거 26일간의 최저가) / 2
  • 후행스팬 - 금일 종가를 26일 전에 기입
  • 선행스팬 A - (금일 전환선 값 + 금일 기준선 값) / 2, 이 수치를 26일 후에 기입
  • 선행스팬 B - (과거 52일간의 최고가 + 과거 52일간의 최저가) / 2, 이 수치를 26일 후에 기입

각 선들에 대하여 값을 구하는 방법에 대해서 알아보았습니다. 대부분 일목균형표를 구름 대라고 많이들 표현하는데 선행스팬A과 선행스팬B 사이를 칠하면 띠를 형성하게 되는데, 이것을 구름대라고  합니다. 앞서 얘기드린 바와 같이 이 지표는 시간을 기반으로 미래를 예측하는 지표라고 말씀드렸는데 그 이유가 차트에 나와있습니다. 가장 우측 부분의 그림을 자세히 확인해보겠습니다.

출처 - 역시 알파스퀘어 ( 직원아님 )

캔들이 마지막으로 표기된 시점으로부터 위에 구름대가 오히려 캔들 이후에 그려지는 모습을 확인할 수 있습니다. 이동평균선이나 다른 지표들은 캔들이 생성된 후에 지표를 계산하지만 구름대는 이보다 더 앞선 수치로 미래를 예측하는 모습을 볼 수 있습니다. 그래서 선행스팬이라고 부르는 것 같습니다.

그러면 일목균형표의 매매기법은 어떤 것이 있는지 알아보겠습니다.

  • 기준선 매매
    • 상승추세면 매수신호, 하락 추세면 매도 신호
  • 전환선과 기준선 매매
    • 주가가 전환선을 상향 돌파 또는 전환선이 기준가를 상향 돌파할 때 ( 골든크로스 )
    • 주가가 전환선을 하향 돌파 또는 전환선이 기준가를 하향 돌파할 때 ( 데드크로스 )
  • 구름대 매매
    • 구름층이 주가 아래에 있으면 지지선 역할을 하며 구름층 주가 위에 있으면 저항선 역활을 한다.
    • 주가가 구름층을 뚫고 내려가면 지지선이 무너졌기 때문에 하락 추세
    • 주가가 구름층을 뚫고 올라가면 저항선을 깨버렸기 때문에 상승추세

이렇게 여러 가지 방법이 있지만 제가 구독하고 있는 단테 님의 영상에서는 구름대 매매를 활용하는 영상을 자주 확인했습니다. 그렇기 때문에 저도 구름대 매매를 기준으로 차트를 많이 해석해보려고 노력하고 있습니다.


 

그럼 이제 일목균형표를 코드로 구현해보겠습니다. 이미 공식은 위에서 정리되었습니다.

period9_high = ohlcv['high'].rolling(window=9).max()
period9_low = ohlcv['low'].rolling(window=9).min()
ohlcv['change_line'] = (period9_high + period9_low) / 2

period26_high = ohlcv['high'].rolling(window=26).max()
period26_low = ohlcv['low'].rolling(window=26).min()
ohlcv['base_line'] = (period26_high + period26_low) / 2

ohlcv['future_span_a'] = ((ohlcv['change_line'] + ohlcv['base_line']) / 2).shift(26)

period52_high = ohlcv['high'].rolling(window=52).max()
period52_low = ohlcv['low'].rolling(window=52).min()
ohlcv['future_span_b'] = ((period52_high + period52_low) / 2).shift(26)

ohlcv['past_span'] = ohlcv['close'].shift(-26)

 

 

 

9일 기준 최고/최저값을 통해서 전환선을 구하고 26일 기준 최고/최저값을 통해 기준선을 구합니다. 그래서 선행스팬 A를 구합니다(선행이라 Future라고 붙여봤습니다 ㅋㅋㅋ ) 그리고 52일간의 최고 최저를 계산하여 선행스팬 2를 구합니다. shift함수를 통해 26일 뒤로 값을 이 동시 키기 때문에 이 부분에서 선행지표가 그려지게 됩니다. 마지막으로 후행스팬(이것도 Past로 붙여봤습니다 ㅋㅋ)을 계산합니다.

오늘은 한번 정말 차트가 잘 그려지는지도 한번 살펴보려고 합니다.
코드는 링크를 참조해 주시길 바랍니다 (https://zemba.tistory.com/7)

 

matplotlib 를 이용한 DataFrame 그래프 출력

이번 포스팅에서는 자동매매 관련 코드를 작성하다가 알게 된 Python에 강력한 Lib인 matplotlib를 이용하여 그래프를 출력하는 방법에 대해서 알아보려고 합니다. matplotlib는 Dataframe의 데이터 형태

zemba.tistory.com

구현한 코드를 바탕으로 차트를 출력해보겠습니다. 업비트 XRP 60분 봉차트를 기준으로 얼마나 정확하게 그려지는지 확인해 보겠습니다.

업비트 XRP 차트와 계산한 일목균형표 비교

구름대 모양이 일치하는 것을 확인할 수 있습니다. 저는 구름 대만 사용하고 있기 때문에 일부러 후행, 전환, 기준선은 차트에 출력하지 않았습니다. 결국 DataFrame 데이터에 가지고 있기 때문에 출력하는 것은 매우 쉬운 일입니다.

이렇게 오늘은 일목균형표에 대해서 개념과 구성요소, 매매기법, 코드 구현에 대해서 알아보았습니다. 볼린저 밴드와 이평선과 마찬가지로 해당 지표들은 HTS나 MTS에서 보조지표 영역에 있는지 표가 아닌 차트지표라고 분류되어있습니다. 그만큼 많이 사용되고 중요한 차트라서 그런 것이 아닐까 생각됩니다 ㅎㅎ 아무튼 개인적인 생각이며 오늘 포스팅을 마칩니다.
역시나 이렇게 꾸준히 만들면 저에게 언젠가는 큰 도움이 될 것입니다. 매매법은 일반적인 부분들을 적어놓은 것이니 실제 거래에 대해서는 본인이 전략에 맞도록 잘 판단하여 거래하시길 바랍니다.
다음 포스팅에서 만나요~ ㅎ

반응형
LIST

댓글