Esta estrategia realiza operaciones de reversión basadas en breakouts de punto de pivote. Calcula el pico y el pico bajo durante un período especificado para determinar los niveles de pico. Se corta cuando el precio se rompe por encima del pico alto, y se hace largo cuando el precio se rompe por debajo del pico bajo. Esta es una estrategia de reversión media típica a corto plazo.
La lógica central de esta estrategia es calcular los puntos altos y bajos del eje.
Pivot High = suma del máximo máximo durante las últimas barras N1 / N1
Pivot Low = suma de los mínimos más bajos durante las últimas barras de N2 / N2
Donde N1 y N2 son parámetros que definen el número de barras utilizadas para calcular los puntos de pivote.
Una vez obtenidos los niveles pivot alto/bajo, las reglas de negociación son:
Así que realiza una estrategia de reversión a corto plazo basada en las rupturas de puntos pivot.
Las ventajas de esta sencilla estrategia son:
Hay algunos riesgos:
Estos riesgos se pueden gestionar ajustando los parámetros, aplicando reglas de salida, etc.
Hay mucho espacio para la optimización:
En resumen, esta es una estrategia de inversión de pivote a corto plazo muy simple. Sus ventajas son la simplicidad y la capacidad de capturar inversiones. Pero hay algunos riesgos que deben abordarse a través de la optimización. En general, esto sirve como una buena estrategia de práctica para los principiantes y sienta las bases para estrategias avanzadas.
/*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)