파라볼릭 SAR은 앞으로 나올 수 있는 스탑 및 리버스 포인트를 찾아내는 데 주로 쓰이는 타임과 프라이스 테크니컬 어낼리시스 툴입니다. 사실, 파라볼릭 SAR 에서 SAR 는 “스탑 앤 리버스”를 말합니다. 이 인디케이터는 불리쉬 트렌드일 때는 프라이스 아래쪽, 베어리쉬 트렌드일 때는 프라이스 위쪽에 파라볼라를 만들어 냅니다.
출처: 트레이딩뷰
PSAR 구현
파라볼릭 값과, 현재 트렌드를 LONG, SHORT, FLAT으로 구분 하겠습니다.
pip install pandas ccxt pinetopy numpy ta
import pandas as pd
import ccxt
import pinetopy as pp
import numpy as np
import ta
# 예시) 바이낸스 선물 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 psar(df, step=0.02, max_step=0.2):
sar = ta.trend.PSARIndicator(high=df['high'], low=df['low'], close=df['close'], step=step, max_step=max_step).psar()
df['PSAR'] = sar
df['PSAR_TREND'] = np.where(df['close'] > df['PSAR'], 'LONG', np.where(df['close'] < df['PSAR'], 'SHORT', 'FLAT'))
return df
print(psar(df, step=0.02, max_step=0.2)) # 트레이딩뷰 디폴트 값
Check
트레이딩뷰 차트와 비교


round(1) 처리하면 트레이딩뷰 차트와 동일한 결과를 얻을 수 있습니다. 파라볼릭 plot이 상단에 있으므로 SHORT 트렌드 입니다.