A estratégia de ruptura parabólica mensal identifica fortes sinais de compra quando o RSI atinge uma alta de 36 meses e um dos dois sinais MACD também atinge uma alta de 36 meses.
Esta estratégia é baseada principalmente nos indicadores RSI e MACD. O RSI é usado para julgar se uma ação está sobrecomprada ou sobrevendida. O MACD é usado para descobrir o impulso e a força das mudanças de preço.
Especificamente, a estratégia primeiro calcula manualmente o RSI de 14 dias. Em seguida, calcula o MACD1 como a diferença entre as EMAs de 4 e 9 dias e o MACD2 como a diferença entre as EMAs de 12 e 26 dias.
A partir desta base, registra os valores mais altos do RSI, MACD1 e MACD2 nos últimos 36 meses.
Este sinal combina os novos juízos elevados do RSI e do MACD em diferentes períodos de tempo. Pode identificar efetivamente grandes oportunidades de compra nas raras tendências principais, capturando tais oportunidades.
A maior vantagem desta estratégia é que combina os períodos de retrospectiva de múltiplos indicadores para novos julgamentos altos em diferentes períodos de tempo. Isso permite que ele descubra efetivamente excelentes oportunidades de compra em mega tendências de longo prazo. Isso pode aumentar muito a probabilidade de lucro.
Além disso, a estratégia fornece diretamente localizações de sinal de compra, que podem orientar claramente as decisões de negociação e é muito adequada para negociação quantitativa.
O maior risco desta estratégia é que ela depende demais dos valores mais altos dos indicadores ao longo de períodos de tempo, o que pode causar maus negócios. Por exemplo, se o mercado parece cair e depois se recuperar, os sinais também podem ser desencadeados.
Além disso, a estratégia define diretamente uma saída de stop loss após 30 dias, o que pode ser muito conservador para sustentar lucros em mega tendências.
Para reduzir os riscos, podemos considerar a combinação de outros fatores para otimizar as condições de entrada e stop loss, tais como breakouts de volume de negociação, medições de volatilidade, etc.
Esta estratégia pode ser otimizada nos seguintes aspectos:
Podemos testar otimizações do período RSI, período MACD e outros parâmetros para encontrar as melhores combinações de parâmetros.
Incorporar outros indicadores ou fatores fundamentais, por exemplo, combinar breakouts no volume de negociação para confirmar a tendência ou prestar atenção a eventos importantes de notícias fundamentais.
Otimizar mecanismos de entrada e saída. Podemos definir planos mais sofisticados de lucro e stop loss, em vez de simplesmente sair após 30 dias. Também podemos incorporar julgamentos de linha de tendência, rupturas de canal, etc.
Podemos fazer backtests de períodos históricos mais longos para avaliar a estabilidade dos parâmetros. Também podemos realizar backtests de vários mercados para avaliar a adaptabilidade.
A estratégia de ruptura parabólica mensal identifica com sucesso excelentes oportunidades de compra em mega tendências de longo prazo, combinando RSI e MACD de vários períodos. Incorpora juízos de tendência e sobrecompra / sobrevenda e tem um valor prático extremamente forte. Com melhorias adicionais, esta estratégia pode se tornar um sistema de negociação quantitativo eficiente.
/*backtest start: 2022-11-24 00:00:00 end: 2023-11-30 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Stringent Strategy for Backtesting", overlay=true) // Initialize RSI variables rsiPeriod = 14 // Manually calculate RSI delta = close - close[1] gain = iff(delta > 0, delta, 0) loss = iff(delta < 0, -delta, 0) avgGain = sma(gain, rsiPeriod) avgLoss = sma(loss, rsiPeriod) rs = avgGain / avgLoss rsiValue = 100 - (100 / (1 + rs)) // Manually calculate MACD1 and MACD2 emaShort1 = ema(close, 4) emaLong1 = ema(close, 9) macd1 = emaShort1 - emaLong1 emaShort2 = ema(close, 12) emaLong2 = ema(close, 26) macd2 = emaShort2 - emaLong2 // Find the highest values in the last 3 years (36 months) highestRsi = highest(rsiValue, 36) highestMacd1 = highest(macd1, 36) highestMacd2 = highest(macd2, 36) // Define buy signal conditions buyCondition = (rsiValue >= highestRsi) and (macd1 >= highestMacd1 or macd2 >= highestMacd2) // Plot the buy signal on the chart plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="Buy") // Backtesting: Entry and Exit if (buyCondition) strategy.entry("Buy", strategy.long) // Exit condition (Example: Exit after 30 bars) strategy.exit("Sell", "Buy", bar_index[30])