Esta estratégia otimiza a estratégia tradicional de reversão dos pontos pivô, calculando o ATR e definindo filtros ATR para eliminar pontos pivô insignificantes, negociando apenas os verdadeiramente significativos.
A lógica central é identificar pontos de pivô significativos de pico e fundo.
A lógica para o cálculo dos pivôs significativos é semelhante.
Depois de obter os pivôs significativos, vá curto quando o preço quebra um pivô de pico importante e vá longo quando quebra um pivô de baixa importante.
As principais vantagens desta estratégia são:
Os principais riscos são:
Para controlar os riscos acima, otimizar a partir dos seguintes aspectos:
Outras orientações de otimização incluem:
Combinar com outros indicadores para determinar o regime de mercado, evitando reversões de negociação em mercados de tendência.
Adicionar algoritmos de aprendizagem de máquina para otimizar automaticamente parâmetros.
Modelos de treinamento usando dados quantitativos para encontrar o intervalo ATR ideal.
Considere a combinação com outras estratégias, utilizando os pontos fortes de diferentes tipos de estratégia.
Esta estratégia de reversão de pivô significativo filtra flutuações menores sem sentido calculadora de ATR e configuração de filtros. Somente reversões de negociação em pivôs significativos podem efetivamente melhorar a lucratividade da estratégia. Enquanto isso, também aumenta a dificuldade de otimização de parâmetros. Os parâmetros ideais precisam ser encontrados por consideração abrangente da faixa ATR, índices de stop loss / take profit, etc. Se otimizado completamente, pode se tornar uma estratégia de negociação de curto prazo altamente eficiente e estável.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("QuantNomad - Significant Pivot Reversal Strategy", shorttitle = "SPPS", overlay=true) // Inputs leftBars = input(4, title = 'PP Left Bars') rightBars = input(2, title = 'PP Right Bars') atr_length = input(14, title = 'ATR Length') atr_mult = input(0.1, title = 'ATR Mult') // Pivot High Significant Function pivotHighSig(left, right) => pp_ok = true atr = atr(atr_length) for i = 1 to left if (high[right] < high[right+i] + atr * atr_mult) pp_ok := false for i = 0 to right-1 if (high[right] < high[i] + atr * atr_mult) pp_ok := false pp_ok ? high[right] : na // Pivot Low Significant Function pivotLowSig(left, right) => pp_ok = true atr = atr(atr_length) for i = 1 to left if (low[right] > low[right+i] - atr * atr_mult) pp_ok := false for i = 0 to right-1 if (low[right] > low[i] - atr * atr_mult) pp_ok := false pp_ok ? low[right] : na swh = pivotHighSig(leftBars, rightBars) swl = pivotLowSig (leftBars, rightBars) 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) strategy.entry("PivRevLE", strategy.long, comment="PivRevLE", 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) strategy.entry("PivRevSE", strategy.short, comment="PivRevSE", stop=lprice - syminfo.mintick)