켈트너 채널(KC)은 상단밴드, 중간 선, 하단밴드로 이루어진 변동성 기반의 기술적 분석 도구입니다. 가운데 선은 지정된 기간에 대한 이동 평균 가격이며, 보통 SMA 또는 EMA를 사용합니다. 하단 밴드와 상단 밴드는 ATR을 이용하여 계산합니다.
Keltner Channel 구현
pip install pandas ccxt pinetopy ta
import pandas as pd
import ccxt
import pinetopy as pp
import ta.volatility
# 예시) 바이낸스 선물 BTCUSDT, 1시간 봉
bnb = ccxt.binance({'options': { 'defaultType': 'future' }})
ohlcv = bnb.fetch_ohlcv(symbol="BTC/USDT", timeframe="1h", limit=500)
df = pd.DataFrame(ohlcv, columns=['time', 'open', 'high', 'low', 'close', 'volume'])
df['time'] = pp.kst(df['time'])
def main(df, len=20, mult=2):
data = ta.volatility.KeltnerChannel(
high=df['high'],
low=df['low'],
close=df['close'],
window=len,
multiplier=mult,
original_version=False
)
df['h'] = data.keltner_channel_hband().round(1)
df['b'] = data.keltner_channel_mband().round(1)
df['u'] = data.keltner_channel_lband().round(1)
return df
print(main(df, len=20, mult=2)) # 트레이딩뷰 디폴트 값
Check
트레이딩뷰 차트와 비교

