이 전략은 피보트 포인트 브레이크아웃을 기반으로 역전 거래를 수행합니다. 피보트 수준을 결정하기 위해 특정 기간 동안 피보트 최고와 피보트 최저를 계산합니다. 가격이 피보트 최고 이상으로 떨어지면 짧고 가격이 피보트 최저 이하로 떨어지면 길게됩니다. 이것은 전형적인 단기 평균 역전 전략입니다.
이 전략의 핵심 논리는 회전 고점과 하점을 계산하는 것입니다. 공식은 다음과 같습니다:
피보트 하이스 = 지난 N1 바에 대한 가장 높은 하이스의 합 / N1
피보트 로우 = 지난 N2 바 / N2의 최저 로우의 합
여기서 N1과 N2는 피브 포인트 계산에 사용되는 바의 수를 정의하는 매개 변수입니다.
피워트 높은/저한 레벨을 얻은 후, 거래 규칙은 다음과 같습니다.
그래서 회전점 파업에 기반한 단기적 역전 전략을 실현합니다.
이 간단한 전략의 장점은 다음과 같습니다.
몇 가지 위험 요소가 있습니다.
이러한 위험은 매개 변수 조정, 출구 규칙 적용 등으로 관리될 수 있습니다.
최적화할 수 있는 많은 공간이 있습니다.
요약하자면, 이것은 매우 간단한 단기 피보트 반전 전략이다. 그것의 장점은 단순성과 반전을 포착하는 능력이다. 그러나 최적화를 통해 해결해야 할 몇 가지 위험이 있다. 전반적으로 이것은 초보자에게 좋은 연습 전략으로 봉사하고 고급 전략의 기초를 구축한다.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Pivot Reversal Strategy - FIGS & DATES 2.0", overlay=true, pyramiding=0, initial_capital=10000, currency="USD", default_qty_type=strategy.percent_of_equity, default_qty_value=100.0, commission_value=0.075) leftBars = input(4) rightBars = input(2) // backtesting date range from_day = input(defval=1, title="From Day", minval=1, maxval=31) from_month = input(defval=1, title="From Month", minval=1, maxval=12) from_year = input(defval=2018, title="From Year", minval=1900) to_day = input(defval=1, title="To Day", minval=1, maxval=31) to_month = input(defval=1, title="To Month", minval=1, maxval=12) to_year = input(defval=9999, title="To Year", minval=1900) time_cond = true swh = pivothigh(leftBars, rightBars) swl = pivotlow(leftBars, rightBars) middle = (swh+swl)/2 swh_cond = not na(swh) hprice = 0.0 hprice := swh_cond ? swh : hprice[1] le = false le := swh_cond ? true : le[1] and high > hprice ? false : le[1] if le and time_cond strategy.entry("LONG", strategy.long, comment="LONG", stop=hprice + syminfo.mintick) swl_cond = not na(swl) lprice = 0.0 lprice := swl_cond ? swl : lprice[1] se = false se := swl_cond ? true : se[1] and low < lprice ? false : se[1] if se and time_cond strategy.entry("SHORT", strategy.short, comment="SHORT", stop=lprice - syminfo.mintick) //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)