Estratégia de Dual Momentum


Data de criação: 2023-09-28 15:03:57 última modificação: 2023-09-28 15:03:57
cópia: 2 Cliques: 715
1
focar em
1617
Seguidores

Visão geral

A estratégia de dupla dinâmica usa dois indicadores de dinâmica rápida e lenta para gerar sinais de negociação e sinais de saída. É uma estratégia de resposta rápida, aplicável a variedades de tendência na linha diária e na linha de 4 horas.

O modo de operação pode ser definido como multi-vazio ou apenas multi-cabeça.

Pode-se também definir um stop-loss fixo ou um stop-loss ignorado, para que a estratégia funcione apenas com base nos sinais de entrada e saída.

Princípio da estratégia

A estratégia usa um indicador de dinâmica de ciclo rápido (default 5 dias) e de ciclo lento (default 10 dias).

Quando o movimento lento e o movimento rápido são maiores que 0, gera-se um sinal de multiplicação.

Quando o movimento lento ou rápido é menor que 0, gera um sinal de equilíbrio.

Similarmente, quando o movimento lento e o movimento rápido são menores que 0, um sinal de equilíbrio é gerado. Quando o movimento lento ou o movimento rápido é maior que 0, um sinal de equilíbrio é gerado.

Portanto, a estratégia usa o cruzamento de dois conjuntos diferentes de dinâmicas periódicas para capturar as mudanças na tendência, permitindo o rastreamento de tendências.

Análise de vantagens

  • O uso de indicadores de dupla dinâmica permite capturar com maior precisão as mudanças nas tendências do mercado e reduzir os sinais falsos.

  • A dinâmica de ciclo rápido é sensível às mudanças do mercado e pode responder rapidamente à tendência; o ciclo lento filtra o ruído do mercado e garante a direção correta das negociações.

  • Opções flexíveis de negociação multi ou bidirecional, adaptadas a diferentes preferências de negociação.

  • Pode optar por usar o Stop Loss e controlar o risco.

  • A estratégia é sensível à reação e é especialmente adequada para negociação de tendências em linha de sol ou ciclos mais altos, podendo gerar ganhos extras.

Análise de Riscos

  • A estratégia de dupla dinâmica depende de um indicador maior ou menor que 0 para determinar a tendência.

  • A estratégia é mais dependente de tendências, tem um desempenho fraco no mercado de liquidação e é propensa a produzir excesso de transações, o que leva a um aumento nas taxas de transação.

  • Se não usar o stop loss, existe um risco maior de perda individual.

  • A variedade e o ciclo impróprios também podem levar a um mau desempenho da estratégia.

Para controlar o risco, é recomendável ajustar adequadamente os parâmetros do ciclo de volume de movimento e definir uma proporção de perda fixa razoável. Ao mesmo tempo, escolha variedades com uma tendência clara e execute a estratégia em um dia ou em um ciclo mais alto.

Direção de otimização

A estratégia pode ser melhorada em vários aspectos:

  1. Adicionar filtros para outros indicadores, como MACD ou RSI, para evitar erros de negociação em pontos de tendência.

  2. Aumentar o mecanismo de suspensão de prejuízos adaptável, ajustando dinamicamente a quantidade de suspensão de prejuízos de acordo com a volatilidade do mercado.

  3. Otimizar os parâmetros de potência para encontrar combinações de parâmetros mais adequadas para diferentes variedades. Pode ser realizado por meio de métodos como otimização por etapas, análise de caminhada.

  4. Aumentar o mecanismo de gerenciamento de posições e ajustar o tamanho das novas posições de acordo com a receita antecipada.

  5. Distinguir entre mercados de títulos e mercados de títulos, adotar estratégias de entrada assimétricas. Os mercados de títulos podem ser mais agressivos e os mercados de títulos podem ser mais cautelosos.

Resumir

A estratégia de dupla dinâmica pode obter melhores ganhos extras através da direção da tendência de julgamento cruzado de indicadores de dinâmica rápida e lenta, usando indicadores simples para capturar mudanças na tendência do mercado, adequado para acompanhar a tendência visível dentro do dia ou entre os dias. Ao mesmo tempo, a estratégia também existe um certo risco de atraso, que precisa ser controlado em combinação com o stop loss e outros indicadores, bem como ser otimizado para variedades e parâmetros, resultando em um desempenho mais estável.

Código-fonte da estratégia
/*backtest
start: 2023-08-28 00:00:00
end: 2023-09-27 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/
// © QuantCT

//@version=4
strategy("Momentum Strategy Idea",
         shorttitle="Momentum", 
         overlay=false,
         pyramiding=0,     
         default_qty_type=strategy.percent_of_equity, 
         default_qty_value=100, 
         initial_capital=1000,           
         commission_type=strategy.commission.percent, 
         commission_value=0.075)

// ____ Inputs

fast_period = input(title="Fast Period", defval=5) 
slow_period = input(title="Slow Period", defval=10)
long_only = input(title="Long Only", defval=false)
slp = input(title="Stop-loss (%)", minval=1.0, maxval=25.0, defval=5.0)
use_sl = input(title="Use Stop-Loss", defval=false)

// ____ Logic

mom_fast = mom(close, fast_period)
mom_slow = mom(close, slow_period)
    
enter_long = (mom_slow > 0 and mom_fast > 0)
exit_long = (mom_slow < 0 or mom_fast < 0)
enter_short = (mom_slow < 0 and mom_fast < 0)
exit_short = (mom_slow > 0 or mom_fast > 0)

strategy.entry("Long", strategy.long, when=enter_long)
strategy.close("Long", when=exit_long) 
if (not long_only)
    strategy.entry("Short", strategy.short, when=enter_short)
    strategy.close("Short", when=exit_short) 
   
// ____ SL

sl_long = strategy.position_avg_price * (1- (slp/100))
sl_short = strategy.position_avg_price * (1 + (slp/100))
if (use_sl)
    strategy.exit(id="SL", from_entry="Long", stop=sl_long)
    strategy.exit(id="SL", from_entry="Short", stop=sl_short)
    
// ____ Plots

colors = 
 enter_long ? #27D600 :
 enter_short ? #E30202 :
 color.orange

mom_fast_plot = plot(mom_fast, color=colors)
mom_slow_plot = plot(mom_slow, color=colors)
fill(mom_fast_plot, mom_slow_plot, color=colors, transp=50)