Estratégia parabólica de ruptura mensal

Autora:ChaoZhang, Data: 2023-12-01 14:28:46
Tags:

img

Resumo

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.

Estratégia lógica

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.

Análise das vantagens

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.

Análise de riscos

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.

Orientações de otimização

Esta estratégia pode ser otimizada nos seguintes aspectos:

  1. Podemos testar otimizações do período RSI, período MACD e outros parâmetros para encontrar as melhores combinações de parâmetros.

  2. 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.

  3. 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.

  4. 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.

Conclusão

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])


Mais.