본문 바로가기
Python Code

캘트너 채널(Keltner Channel) 보조지표, 파이썬 코드 제공

by 인천고래 quant

안녕하세요 주식 투자관련 지식을 공유하는 인천고래입니다.

 

오늘 알아볼 지표는 "캘트너 채널"로 단순한 밴드형 지표이지만, 추세 및 변동성 분석과 진입 청산 시점 포착에 매우 효과적인 지표입니다. 이를 통해 시장의 움직임을 더 직관적으로 이해하고, 보다 전략적인 매매를 할 수 있다고 생각합니다.

 

1. 캘트너 채널 매매 시점

지표를 사용하기 좋은 시점 (매매 시점)

  • 시장 변동성이 증가할 때: ATR이 상승해 채널 폭이 넓어질 때.
  • 추세가 강한 시장: 장기 추세가 형성될 경우 중심선 돌파 시점이 중요합니다.

피해야 할 시점

  • 횡보 장세: 가격이 중심선 주변에서 작은 범위 내 움직임을 보일 때는 매매 신호가 잦아지며 노이즈가 발생할 수 있습니다.

 

2. 캘트너 채널 차트 예제

캘트너 채널에 매수매도 시그널을 반영하면 아래와 같은 형식의 차트를 볼 수 있습니다.

캘트너 채널이 적용된 차트

 

 

간략하게 캘트너 채널 보조지표에 대해 알아 보았고 아래에서 캘트너 채널 지표를 어떻게 만드는지에 대해 알아보도록 하겠습니다.

 

참고로 TR 관련된 내용은 아래의 링크를 통해 좀 더 상세히 확인하실 수 있습니다.

 

True Range & ATR 보조지표의 개념, 파이썬 코드 제공(TR 지표)

안녕하세요. 주식 투자 관련 코드를 제공하는 인천고래입니다. 오늘은 변동성 및 추세 지표의 근간이 되는 TR 보조지표 또는 True Range 보조지표라고 불리우는 지표에 대해 알아보도록 하겠습니

quant.i-whale.com

 

 

3. 캘트너 채널 지표 만들기 (파이썬 코드 제공)

import FinanceDataReader as fdr
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

def true_range(df):
    high_low = df['High'] - df['Low']
    high_close = abs(df['High'] - df['Close'].shift(1))
    low_close = abs(df['Low'] - df['Close'].shift(1))
    return pd.concat([high_low, high_close, low_close], axis=1).max(axis=1)

def calculate_atr(df, length):
    tr = true_range(df)
    return tr.rolling(window=length).mean()

def keltner_channel(df, period=20, multiplier=2):
    df['EMA'] = df['Close'].ewm(span=period).mean()
    df['ATR'] = calculate_atr(df, period)
    df['Upper_Band'] = df['EMA'] + (multiplier * df['ATR'])
    df['Lower_Band'] = df['EMA'] - (multiplier * df['ATR'])
    return df

 

 

4. 차트 시각화 및 신호 표시 (파이썬 코드 제공)

def plot_keltner_channel(df):
    plt.figure(figsize=(12, 6))
    plt.plot(df.index, df['Close'], label='Close Price', color='black')
    plt.plot(df.index, df['EMA'], label='EMA (Center Line)', color='blue', linestyle='--')
    plt.plot(df.index, df['Upper_Band'], label='Upper Band', color='red')
    plt.plot(df.index, df['Lower_Band'], label='Lower Band', color='green')
    plt.fill_between(df.index, df['Lower_Band'], df['Upper_Band'], color='gray', alpha=0.2)
    plt.legend(loc='best')
    plt.title('Keltner Channel')
    plt.show()

 

 

5. 데이터 가져오기 및 실행 (파이썬 코드 제공)

df = fdr.DataReader('005930', start='2022-01-01', end='2025-01-02')  # 삼성전자 데이터
df = keltner_channel(df)
plot_keltner_channel(df)

 

 


 

자신만의 매매법을 자동매매 프로그램으로 만들거나 

기법이 확률이 떨어진다면 백테스팅을 사용해서 확률을 높여야 합니다. 

아래의 링크를 통해서 요청하시면 요청하신 이상(가격대비 성능의 최대치)의 결과물을 받아 보실 수 있습니다.

 

한 방에 주식 데이터 만들기 - 크몽

인천고래 전문가의 IT·프로그래밍 서비스를 만나보세요. <p>퀀트 매매, 수익률 높은 매매, 확률 높은 매매, 잃지 않는 매매 등<...

kmong.com

 


 

다른 보조지표에 대해서는 아래의 링크 글을 통해 자세히 알아 볼 수 있습니다.

 

보조지표 리스트 (추세, 모멘텀, 채널, 변동성, 거래량, 기타 지표)

안녕하세요. 주식을 통해 삶을 영위할 수 있는 방법을 찾으며  인생 후반을 준비하고 있는 인천고래입니다.이전부터 보조지표에 대해서 글을 작성해 왔지만 중요한 것 위주로 작성을 하다보니

i-whale.com


 

단기적인 스윙 및 세력 매집 분석에 용이한 기준봉에 대해서는 아래의 링크 글을 통해 자세히 알아 볼 수 있습니다.

 

'주식 기준봉' 카테고리의 글 목록

주식 투자에 필요한 교육 내용을 제공하고 시장 정보 및 통계 등 수록하고 기록함을 원칙으로 하되 데이터마이닝을 통해 객관적인 자료를 구축하여 보다 경제적 자유를 얻기 위하여 사이트를

i-whale.com

 

-

댓글