Estratégia de cruzamento de média móvel multiperíodo com rastreamento dinâmico de tendências

SMA EMA MA
Data de criação: 2024-12-13 10:40:30 última modificação: 2024-12-13 10:40:30
cópia: 0 Cliques: 475
1
focar em
1617
Seguidores

Estratégia de cruzamento de média móvel multiperíodo com rastreamento dinâmico de tendências

Visão geral

A estratégia é um sistema de negociação de acompanhamento de tendências baseado em médias de múltiplos períodos. A estratégia usa a média móvel simples de 89 períodos e 21 períodos (SMA) para determinar a direção da tendência geral do mercado, enquanto combina os altos e baixos do índice móvel de 5 períodos (EMA) para procurar sinais de negociação específicos.

Princípio da estratégia

A lógica central da estratégia inclui os seguintes elementos-chave:

  1. Julgamento de tendência: Use a posição relativa do SMA de 89 e 21 ciclos e a posição do preço para determinar a tendência. Quando o preço e a EMA de 5 ciclos estão acima do SMA de 21 ciclos e o SMA de 21 ciclos está acima do SMA de 89 ciclos, é julgado como uma tendência ascendente; ao contrário, é uma tendência descendente.
  2. Sinais de entrada: em uma tendência ascendente, faça mais entrada quando o preço retrocede para o mínimo do EMA de 5 ciclos; em uma tendência descendente, faça falta quando o preço se reverte para o máximo do EMA de 5 ciclos.
  3. Gerenciamento de posições: abrir duas posições contratuais iguais a cada sinal.
  4. Controle de risco: o primeiro posicionamento é gerenciado com um objetivo fixo de stop loss e lucro, o segundo posicionamento é gerenciado com um método de stop loss de rastreamento.

Vantagens estratégicas

  1. Confirmação de múltiplos períodos de tempo: a combinação de médias móveis de diferentes períodos permite um julgamento mais abrangente das tendências do mercado, reduzindo os sinais falsos.
  2. Método de parada flexível: Combinação de parada fixa e parada de rastreamento, para lucrar com oscilações de curto prazo e não perder a tendência.
  3. Risco controlado: estabelece uma posição de stop loss definida e fixa o limite de risco para cada sinal de negociação.
  4. Operação sistematizada: regras de negociação claras, isentas de julgamentos subjetivos, fáceis de implementar de forma programada.

Risco estratégico

  1. Risco de choque de mercado: em um balanço horizontal, a frequência de equilíbrio entre as linhas pode levar a um excesso de falsos sinais.
  2. Risco de deslizamento: quando a volatilidade do mercado é grande, o preço de transação real pode ter um grande desvio do preço do sinal teórico.
  3. Riscos de gestão de fundos: o método de negociação com um número fixo de contratos pode não ser adequado para todos os tamanhos de fundos.
  4. Sensibilidade de parâmetros: a escolha de um ciclo de média móvel tem um grande impacto na performance da estratégia e requer otimização para diferentes mercados.

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

  1. Gerenciamento dinâmico de posições: recomenda-se ajustar dinamicamente o número de contratos de negociação de acordo com o valor líquido da conta e a volatilidade do mercado.
  2. Filtragem do cenário de mercado: aumento dos indicadores de intensidade da tendência (como o ADX) e redução da frequência de negociação em mercados turbulentos.
  3. Optimização de stop loss: pode-se considerar o uso do ATR para ajustar dinamicamente a distância de stop loss, melhorando a adaptabilidade da estratégia a diferentes ambientes de mercado.
  4. Confirmação de sinais: aumentar os indicadores auxiliares, como volume de transação, dinâmica e aumentar a confiabilidade dos sinais de negociação.

Resumir

A estratégia é um sistema de rastreamento de tendências bem estruturado, que capta as tendências do mercado por meio de combinações de equilíbrio de múltiplos períodos e controla o risco com o uso de gerenciamento de posição flexível e de stop loss. Embora haja um certo espaço para otimização, a estrutura básica da estratégia possui uma boa praticidade e escalabilidade.

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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tobiashartemink2

//@version=5
strategy("High 5 Trading Technique", overlay=true)

// --- Input parameters ---
sma89Length = input.int(title="SMA 89 Length", defval=89)
sma21Length = input.int(title="SMA 21 Length", defval=21)
ema5HighLength = input.int(title="EMA 5 High Length", defval=5)
ema5LowLength = input.int(title="EMA 5 Low Length", defval=5)
contracts = input.int(title="Aantal Contracten", defval=1)
stopLossPoints = input.int(title="Stop Loss Points per Contract", defval=25)
takeProfitPoints = input.int(title="Take Profit Points per Contract", defval=25)

// --- Calculate moving averages ---
sma89 = ta.sma(close, sma89Length)
sma21 = ta.sma(close, sma21Length)
ema5High = ta.ema(high, ema5HighLength)
ema5Low = ta.ema(low, ema5LowLength)

// --- Identify trend and order of moving averages ---
longSetup = close > sma89 and close > sma21 and ema5High > sma21 and sma21 > sma89
shortSetup = close < sma89 and close < sma21 and ema5Low < sma21 and sma21 < sma89

// --- Entry signals ---
longTrigger = longSetup and close <= ema5Low
shortTrigger = shortSetup and close >= ema5High

// --- Entry orders ---
if (longTrigger)
    strategy.entry("Long 1", strategy.long, qty=contracts)
    strategy.entry("Long 2", strategy.long, qty=contracts)

if (shortTrigger)
    strategy.entry("Short 1", strategy.short, qty=contracts)
    strategy.entry("Short 2", strategy.short, qty=contracts)

// --- Stop-loss and take-profit for long positions ---
if (strategy.position_size > 0)
    strategy.exit("Exit Long 1", "Long 1", stop=strategy.position_avg_price - stopLossPoints, limit=strategy.position_avg_price + takeProfitPoints)
    strategy.exit("Exit Long 2", "Long 2", stop=strategy.position_avg_price - stopLossPoints, trail_offset=takeProfitPoints, trail_points=takeProfitPoints)

// --- Stop-loss and take-profit for short positions ---
if (strategy.position_size < 0)
    strategy.exit("Exit Short 1", "Short 1", stop=strategy.position_avg_price + stopLossPoints, limit=strategy.position_avg_price - takeProfitPoints)
    strategy.exit("Exit Short 2", "Short 2", stop=strategy.position_avg_price + stopLossPoints, trail_offset=takeProfitPoints, trail_points=takeProfitPoints)

// --- Plot moving averages ---
plot(sma89, color=color.blue, linewidth=2)
plot(sma21, color=color.red, linewidth=2)
plot(ema5High, color=color.green, linewidth=2)
plot(ema5Low, color=color.orange, linewidth=2)