피벗포인트(pivot point)
잠재적인 지지선/ 저항선을 예측하기 위해 사용하는 지표로서 이전 거래일의 고가, 저가, 종가를 평균하여 계산하고 이를 기준으로 여러개의 지지선과 저항선을 산출합니다.
- 피벗포인트(PP)
- $\text{PP}=\frac{\text{High+Low+Close}}{3}$
- High, Low, Close: 이전 거래일의 가격
차수 | 지지선 | 저항선 |
---|---|---|
1차 | S1 = (2 × PP) - High | R1=(2 × PP) - Low |
2차 | S2 = PP - (High - Low) | R2 = PP + (High - Low) |
3차 | S3 = Low - 2 × (High - PP) | R3 = High - 2 × (PP - Low) |
Pandas_ta에서 직접계산하는 함수는 제공하지 않습니다. 대신에 다음과 같이 UDF를 작성하여 사용합니다.
def calculate_pivot(data): result=pd.DataFrame() result["PP"]=(data.High+data.Low+data.Close)/3 result["R1"]=(2*result["PP"])-data.Low result["S1"]=(2*result["PP"])-data.High result["R2"]=result["PP"]+(data.High-data.Low) result["S2"]=result["PP"]-(data.High-data.Low) result["R3"]=data.High+2*(result["PP"] - data.Low) result["S3"]=data.Low-2*(data.High-result["PP"]) return result
import numpy as np import pandas as pd import matplotlib.pyplot as plt import pandas_ta as ta import FinanceDataReader as fdr import matplotlib.pyplot as plt import mplfinance as mpf st=pd.Timestamp(2024,5, 1) et=pd.Timestamp(2025, 5,11) trgnme="000660" trg=fdr.DataReader(trgnme, st, et)[["Open", "High", "Low", "Close", "Volume"] pp=calculate_pivot(trg) pp.tail(3)
PP | R1 | S1 | R2 | S2 | R3 | S3 | |
---|---|---|---|---|---|---|---|
Date | |||||||
2025-05-07 | 189400.0 | 192900.0 | 187300.0 | 195000.0 | 183800.0 | 198500.0 | 181700.0 |
2025-05-08 | 191900.0 | 194400.0 | 187800.0 | 198500.0 | 185300.0 | 201000.0 | 181200.0 |
2025-05-09 | 189900.0 | 193000.0 | 187000.0 | 195900.0 | 183900.0 | 199000.0 | 181000.0 |
adf=[mpf.make_addplot(pp.iloc[:,0], panel=0, color="g", label="pp"), mpf.make_addplot(pp.iloc[:,1], panel=0, color="b", label="R1"), mpf.make_addplot(pp.iloc[:,2], panel=0, color="r", label="S1"), mpf.make_addplot(pp.iloc[:,3], panel=0, color="b", linestyle="--", label="R2"), mpf.make_addplot(pp.iloc[:,4], panel=0, color="r", linestyle="--", label="S2"), mpf.make_addplot(pp.iloc[:,5], panel=0, color="b", linestyle="dotted", label="R3"), mpf.make_addplot(pp.iloc[:,6], panel=0, color="r", linestyle="dotted", label="S3")] f, axs=mpf.plot(trg, type="candle", style="yahoo", volume=False, addplot=adf, returnfig=True,xlim=(pd.to_datetime("2025-04-01"), pd.to_datetime("2025-05-10")), ylim=(160000, 220000),figsize=(12,3)) axs[0].legend(loc="upper left") plt.show()
- 현재가격 > PP : 상승추세를 고려할 수 있음
- 현재가격 < PP : 하락추세를 고려할 수 있음
- 가격이 지지선에서 반등 매수 포지션, 저항선 근처에서 꺽일때 매도 포지션을 고려
- 가격이 지지선 또는 저항선을 뚫고 나갈때 추세방향으로 포지션을 취함
- 지지선과 저항선를 기준으로 이익실현 또는 손절매 목표가를 설정할 수 있음
다음과 같은 다양한 계산 방식이 존재합니다.
- 우디 피벗 포인트 (Woodie's Pivot Points): 종가에 더 큰 비중을 둡니다.
- 카마릴라 피벗 포인트 (Camarilla Pivot Points): 더 많은 지지/저항 레벨을 제공하며, 현재 추세 내에서 매매하는 데 유용합니다.
- 드마크 피벗 포인트 (DeMark's Pivot Points): 시가, 고가, 저가, 종가 간의 관계에 따라 피벗 포인트를 다르게 계산합니다.
- 피보나치 피벗 포인트 (Fibonacci Pivot Points): 피보나치 비율을 적용하여 지지/저항 레벨을 계산합니다.
댓글
댓글 쓰기