Estratégia de Crossover de Média Móvel Dupla Momentum


Data de criação: 2023-10-20 16:44:30 última modificação: 2023-10-20 16:44:30
cópia: 1 Cliques: 618
1
focar em
1617
Seguidores

Estratégia de Crossover de Média Móvel Dupla Momentum

Visão geral

Esta estratégia usa a linha de equilíbrio cruzada para determinar a direção da dinâmica dos preços, auxiliada por um forte e um fraco para determinar a tendência geral, permitindo o acompanhamento da tendência.

Princípio da estratégia

A estratégia usa o cruzamento de duas linhas de equilíbrio EMA e SMA para determinar a direção da dinâmica dos preços. A reação da EMA é mais rápida e a reação da SMA é mais estável. Quando a EMA atravessa a SMA, o preço é considerado um forte aumento de impulso, fazendo mais; Quando a EMA atravessa a SMA, o preço é considerado um forte declínio de impulso, fazendo vazio.

Além disso, a estratégia também usa o cruzamento do SMA de ciclo rápido e do SMA de ciclo lento para determinar a direção da tendência geral. Quando o SMA de ciclo rápido atravessa o SMA de ciclo lento, o mercado está em uma tendência ascendente de longo prazo. Quando o SMA de ciclo rápido atravessa o SMA de ciclo lento, o mercado está em uma tendência descendente de longo prazo.

A estratégia é julgada como uma oportunidade de fazer mais quando atravessa o SMA na EMA. Se este momento for um garfo de ouro, isso significa que fazer mais não só tem apoio momentâneo de curto prazo, mas também está de acordo com a tendência de longo prazo, o que é um ótimo momento de fazer mais; Se este momento for um garfo morto, isso significa que fazer mais tem apenas apoio momentâneo de curto prazo, e não está de acordo com a tendência de longo prazo, o que é um momento de fazer mais arriscado.

Análise de vantagens

  • Utilizando o cruzamento da linha média para determinar o movimento e a direção dos preços
  • Considerando simultaneamente a dinâmica de curto prazo e as tendências de longo prazo
  • Combinação de sinais de confirmação de duplo indicador, maior confiabilidade
  • Adapta-se a diferentes períodos, ajustando os parâmetros da linha média
  • Configuração para exibir sinais de negociação específicos, interface personalizável

Análise de Riscos

  • A interseção entre as linhas médias está atrasada e pode ser um ponto de venda ou compra melhor perdido.
  • O SMA de ciclo fixo não pode refletir mudanças de preço em tempo real
  • A média de curto e longo período pode produzir um sinal de cruzamento errado
  • Riscos potenciais de investimento a longo prazo

Pode-se reduzir o risco através da combinação de outros indicadores para confirmar o sinal, otimizar o parâmetro de ciclo de linha média, ou definir um stop loss.

Direção de otimização

  • Adicionar filtros para outros indicadores, como volume de transações, faixa de Brin e outros.
  • Aumentar a estratégia de stop loss
  • Parâmetros de optimização do ciclo da mediana
  • Optimizar a gestão de fundos
  • Considere ajustar a proporção de posições em tempo real

Resumir

Esta estratégia é, em geral, uma estratégia de acompanhamento de tendências mais estável e confiável. Ela leva em consideração a movimentação de preços de curto prazo e a direção da tendência de longo prazo, formando sinais de negociação através do cruzamento da linha de equilíbrio. Em comparação com a estratégia de linha de equilíbrio única, ela combina confirmação de dois indicadores.

Código-fonte da estratégia
/*backtest
start: 2023-09-19 00:00:00
end: 2023-10-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Cryptoluc1d

//@version=4
strategy("Equal-Length EMA/SMA Crossover Strategy", initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=25, commission_type=strategy.commission.percent, commission_value=0.2, overlay=true)

// Create inputs

mom_length = input(title="Momentum Length (EMA=SMA)", defval=50)
bias_length_fast  = input(title="Golden Cross Length (Fast)", defval=50)
bias_length_slow  = input(title="Golden Cross Length (Slow)", defval=100)

// Define MAs

ema = ema(close, mom_length) // EMA/SMA crossover of the same period for detecting trend acceleration/deceleration
sma = sma(close, mom_length)
bias_fast = sma(close, bias_length_fast) // golden/death cross for overall trend bias
bias_slow = sma(close, bias_length_slow)

// Define signal conditions

buy_trend = crossover(ema, sma) and bias_fast >= bias_slow // buy when EMA cross above SMA. if this happens during a bullish golden cross, buying is in confluence with the overall trend (bias).
buy_risky = crossover(ema, sma) and bias_fast < bias_slow // buy when EMA cross above SMA. if this happens during a bearish death cross, buying is early, more risky, and not in confluence with the overall trend (bias).
buy_late = crossover(sma, bias_slow) and ema > sma // the SMA crossing the Slow_SMA gives further confirmation of bullish trend, but signal comes later.
sell = crossunder(ema, sma) // sell when EMA cross under SMA.

// Enable option to hide signals, then plot signals

show_signal = input(title="Show Signals", defval=true)

plotshape(show_signal ? buy_trend : na, title='Trend Buy', style=shape.triangleup, location=location.belowbar, color=color.green, text='TREND BUY')
plotshape(show_signal ? buy_risky : na, title='Risky Buy', style=shape.triangleup, location=location.belowbar, color=color.olive, text='RISKY BUY')
plotshape(show_signal ? buy_late : na, title='Late Buy', style=shape.triangleup, location=location.belowbar, color=color.lime, text='LATE BUY')
plotshape(show_signal ? sell : na, title='Sell', style=shape.triangledown, location=location.abovebar, color=color.red, text='SELL')

// Define entry and exit conditions

longCondition = ema > sma and bias_fast >= bias_slow // LONG when EMA above SMA, and overall trend bias is bullish
if (longCondition)
    strategy.entry("BUY TREND", strategy.long)
exitLong = crossunder(ema, sma) // close LONG when EMA cross under SMA
strategy.close("BUY TREND", when=exitLong)

// // short conditions. turned off because up only.
// shortCondition = ema < sma and bias_fast <= bias_slow // SHORT when EMA under SMA, and overall trend bias is bearish
// if (shortCondition)
//     strategy.entry("SELL TREND", strategy.short)
// exitShort = crossover(ema, sma) // close SHORT when EMA cross over SMA
// strategy.close("SELL TREND", when=exitShort)

// Enable option to show MAs, then plot MAs

show_ma = input(title="Show MAs", defval=false)

plot(show_ma ? ema : na, title="Momentum EMA", color=color.green, linewidth=1)
plot(show_ma ? sma : na, title="Momentum SMA", color=color.yellow, linewidth=1)
plot(show_ma ? bias_fast : na, title="Golden Cross SMA (Fast)", color=color.orange, linewidth=2)
plot(show_ma ? bias_slow : na, title="Golden Cross SMA (Slow)", color=color.red, linewidth=2)