Estratégia de previsão de crossover de volatilidade dinâmica MACD

MACD EMA SMA ROC
Data de criação: 2024-11-27 14:54:02 última modificação: 2024-11-27 14:54:02
cópia: 0 Cliques: 441
1
focar em
1617
Seguidores

Estratégia de previsão de crossover de volatilidade dinâmica MACD

Visão geral

Esta estratégia baseia-se em características de mudança dinâmica do MACD. O núcleo da estratégia é prever os possíveis forks e deadlines, observando as tendências de mudança do gráfico em forma de coluna do MACD.

Princípio da estratégia

A estratégia usa um sistema de indicadores MACD de versão melhorada, contendo o cálculo do diferencial entre a média móvel rápida (EMA12) e a média móvel lenta (EMA26) e uma linha de sinal baseada em 2 ciclos. A lógica de negociação central baseia-se nos seguintes pontos-chave:

  1. A mudança dinâmica da tendência é avaliada pela taxa de mudança (hist_change) do gráfico em coluna
  2. Quando o gráfico de coluna é negativo e apresenta uma tendência ascendente em três períodos consecutivos, o prejuízo pode ser um sinal de garfo de ouro, para entrar mais cedo
  3. Quando o gráfico de colunas é positivo e apresenta uma tendência de queda em três períodos consecutivos, o prontuário pode apresentar um sinal de forquilha morta e sair em posição parada
  4. A estratégia introduziu um mecanismo de filtragem de tempo, permitindo que as transações sejam feitas apenas em intervalos de tempo especificados

Vantagens estratégicas

  1. Forte predisposição de sinais: previsão antecipada de possíveis sinais de cruzamento por meio da observação de mudanças dinâmicas no gráfico de colunas, aumentando efetivamente o tempo de entrada
  2. Controle de risco razoável: taxa de comissão de 0,1% e custo de transação de 3 pontos de deslizamento, compatível com o ambiente de negociação real
  3. Flexibilidade de gestão de fundos: percentagem do valor total da conta para gestão de posições e controlo de riscos
  4. Excelente visualização: gráficos em colunas com diferentes cores marcando os altos e baixos e sinais de negociação marcados por setas para facilitar a análise

Risco estratégico

  1. Risco de Falso Breakout: Falso sinal de breakout pode ser frequente em mercados de baixa volatilidade
  2. Risco de atraso: apesar do uso de mecanismos de pré-julgamento, o MACD em si é um pouco atrasado
  3. Dependência do cenário de mercado: estratégias que funcionam melhor em mercados de tendência visível, mas podem não funcionar em mercados de turbulência
  4. Sensibilidade de parâmetros: configurações de ciclo de linha rápida e lenta têm maior influência no desempenho da estratégia

Direção de otimização da estratégia

  1. Introdução de filtros de mercado: indicadores de tendência podem ser adicionados, com parâmetros de negociação diferentes em diferentes cenários de mercado
  2. Optimizar a gestão de posições: proporção de posições pode ser ajustada de acordo com a intensidade do sinal
  3. Melhorar o mecanismo de stop loss: adicionar stop loss de rastreamento ou stop loss fixo para controlar a retirada
  4. Mecanismos de confirmação de sinais aumentados: verificação cruzada em combinação com outros indicadores técnicos para aumentar a confiabilidade do sinal
  5. Seleção de parâmetros de otimização: pode ser adotado um método de parâmetros adaptativos, ajustando os parâmetros do indicador de acordo com a dinâmica da situação do mercado

Resumir

A estratégia, através da utilização inovadora das características de mudança dinâmica do gráfico MACD, permite a melhoria e otimização do sistema de negociação MACD tradicional. O mecanismo de pré-determinação da estratégia pode fornecer sinais de entrada mais cedo, enquanto os rigorosos termos de negociação e as medidas de controle de risco garantem a estabilidade da estratégia.

Código-fonte da estratégia
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="Demo GPT - Moving Average Convergence Divergence", shorttitle="MACD", commission_type=strategy.commission.percent, commission_value=0.1, slippage=3, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// Getting inputs
fast_length = input(title="Fast Length", defval=12)
slow_length = input(title="Slow Length", defval=26)
src = input(title="Source", defval=close)
signal_length = input.int(title="Signal Smoothing", minval=1, maxval=50, defval=2)  // Set smoothing line to 2
sma_source = input.string(title="Oscillator MA Type", defval="EMA", options=["SMA", "EMA"])
sma_signal = input.string(title="Signal Line MA Type", defval="EMA", options=["SMA", "EMA"])

// Date inputs
start_date = input(title="Start Date", defval=timestamp("2018-01-01T00:00:00"))
end_date = input(title="End Date", defval=timestamp("2069-12-31T23:59:59"))

// Calculating
fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
hist = macd - signal

// Strategy logic
isInDateRange = true

// Calculate the rate of change of the histogram
hist_change = hist - hist[1]

// Anticipate a bullish crossover: histogram is negative, increasing, and approaching zero
anticipate_long = isInDateRange and hist < 0 and hist_change > 0 and hist > hist[1] and hist > hist[2]

// Anticipate an exit (bearish crossover): histogram is positive, decreasing, and approaching zero
anticipate_exit = isInDateRange and hist > 0 and hist_change < 0 and hist < hist[1] and hist < hist[2]

if anticipate_long
    strategy.entry("Long", strategy.long)

if anticipate_exit
    strategy.close("Long")

// Plotting
hline(0, "Zero Line", color=color.new(#787B86, 50))
plot(hist, title="Histogram", style=plot.style_columns, color=(hist >= 0 ? (hist > hist[1] ? #26A69A : #B2DFDB) : (hist < hist[1] ? #FF5252 : #FFCDD2)))
plot(macd, title="MACD", color=#2962FF)
plot(signal, title="Signal", color=#FF6D00)

// Plotting arrows when anticipating the crossover
plotshape(anticipate_long, title="Long +1", location=location.belowbar, color=color.green, style=shape.arrowup, size=size.tiny, text="Long +1")
plotshape(anticipate_exit, title="Short -1", location=location.abovebar, color=color.red, style=shape.arrowdown, size=size.tiny, text="Short -1")