CKSP(Chande Kroll Stop)
ATR을 활용하여 롱포지션과 숏포지션에 대한 최적의 손절매 수준 파악하기 위한 지표입니다.
- ATR 계산
- 초기 stop 수준 계산
- 초기 고가 스톱: 최근 p 기간동안 최고가 -(c × ATR)
- 초기 저가 스톱: 최근 p 기간동안 최저가 +(c × ATR)
- 최종 stop 수준 계산
- 숏 스톱:최근 q 기간 동안 초기 고가 stop 수준 중 가장 높은 값
- 롱 스톱:최근 q 기간 동안 초기 저가 stop 수준 중 가장 낮은 값
pandas_ta.cksp(high, low, close, p=None, x=None, q=None, tvmode=None, offset=None, **kwargs)
로 계산하며 p, x, q의 기본값은 각각 10, 1, 9입니다.
import numpy as np import pandas as pd import yfinance as yf import pandas_ta as ta import matplotlib.pyplot as plt import mplfinance as mpf st=pd.Timestamp(2024,1, 1) et=pd.Timestamp(2025, 5, 3) trgnme="000660" trg=fdr.DataReader(trgnme, st, et)[["Open", "High", "Low", "Close", "Volume"]] cksp=trg.ta.cksp() cksp.tail(3)
CKSPl_10_3_20 | CKSPs_10_3_20 | |
---|---|---|
Date | ||
2025-04-30 | 196785.742040 | 184249.957734 |
2025-05-02 | 190197.167836 | 184249.957734 |
2025-05-07 | 187816.705947 | 184249.957734 |
cksp=trg.ta.cksp() adf=[mpf.make_addplot(cksp.iloc[:,0], panel=0, color="brown", label="Long"), mpf.make_addplot(cksp.iloc[:,1], panel=0, color="navy", label="short")] f, axs=mpf.plot(trg, type="candle", style="yahoo", volume=False, addplot=adf, returnfig=True, figsize=(12,5)) ga=gridspec.GridSpec(2,1, height_ratios=[1,1]) axs[0].legend(loc="upper left") plt.show()
- 변동성이 크면 ATR은 증가하므로 short stop과 long stop의 이격이 증가하면 추세가 강함을 나타냄
- 변동성이 작으면 ATR은 감소하므로 short stop과 long stop의 이격이 감소하므로추세의 약해짐 또는 횡보를 나타냄
댓글
댓글 쓰기