Esta estratégia executa negociação de reversão com base em breakouts de ponto de pivô. Ele calcula a alta e baixa do pivô em um período especificado para determinar os níveis do pivô. Ele fica curto quando o preço ultrapassa a alta do pivô e fica longo quando o preço ultrapassa a baixa do pivô. Esta é uma estratégia típica de reversão média de curto prazo.
A lógica central desta estratégia é calcular os pontos altos e baixos do pivô.
Pivot High = soma do máximo máximo durante as últimas barras N1 / N1
Pivot Low = Somatório da menor baixa dos últimos N2 bares / N2
Onde N1 e N2 são parâmetros que definem o número de barras utilizadas para calcular os pontos de pivô.
Após a obtenção dos níveis pivô alto/baixo, as regras de negociação são:
Por isso, realiza uma estratégia de reversão de curto prazo baseada em rupturas de pontos pivot.
As vantagens desta estratégia simples são:
Há alguns riscos:
Estes riscos podem ser geridos através do ajuste dos parâmetros, da aplicação de regras de saída, etc.
Há muito espaço para otimização:
Em resumo, esta é uma estratégia de reversão de pivô de curto prazo muito simples. Suas vantagens são a simplicidade e a capacidade de capturar reversões. Mas há alguns riscos que precisam ser abordados através da otimização.
/*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)