Estratégia de negociação quantitativa de rastreamento de tendência de média móvel tripla e fusão de momentum

EMA TEMA MACD SMA
Data de criação: 2024-11-27 16:08:16 última modificação: 2024-11-27 16:08:16
cópia: 2 Cliques: 439
1
focar em
1617
Seguidores

Estratégia de negociação quantitativa de rastreamento de tendência de média móvel tripla e fusão de momentum

Visão geral

Trata-se de uma estratégia de negociação quantitativa baseada em uma combinação de acompanhamento de tendências e análise de dinâmica. A estratégia usa o TEMA, o cruzamento de múltiplas médias móveis e o MACD para identificar a tendência do mercado e o momento de entrada. A estratégia utiliza um rigoroso mecanismo de controle de risco, incluindo paradas de perda e ganho fixos e paradas de perda de rastreamento para obter o melhor equilíbrio de riscos e ganhos.

Princípio da estratégia

A estratégia define sinais de negociação através de três sistemas de indicadores técnicos principais:

  1. O sistema TEMA é usado para determinar a direção da tendência geral. A intensidade da tendência é determinada pela computação de três níveis de EMA e sua variação dinâmica.
  2. O sistema de cruzamento de equilíbrio rápido e lento usa EMAs de 9 e 15 ciclos para capturar os pontos de inflexão da tendência intermédia.
  3. O cruzamento do preço com a EMA de 5 ciclos serve como sinal de confirmação final para a precisão do momento de entrada.

O sinal de negociação deve ser ativado se:

  • O indicador MACD forma um cruzamento dourado com sua linha de sinal e TEMA tendência ascendente
  • EMA de curto prazo para EMA de longo prazo
  • Preços subiram em 5 ciclos de EMA

Vantagens estratégicas

  1. O mecanismo de confirmação múltipla reduz significativamente o impacto de sinais falsos e aumenta a precisão das transações.
  2. A combinação dos benefícios do acompanhamento de tendências e da análise de dinâmica permite-nos identificar as grandes tendências e, ao mesmo tempo, não perder oportunidades de curto prazo.
  3. O mecanismo de stop loss é perfeito, incluindo stop loss de ponto fixo e stop loss de rastreamento dinâmico, para controlar o risco de forma eficaz.
  4. Os parâmetros da estratégia são flexíveis e adaptáveis a diferentes cenários de mercado.
  5. A lógica de entrada é clara, fácil de entender e executar.

Risco estratégico

  1. O mecanismo de confirmação múltipla pode levar a um atraso na admissão e a uma perda de oportunidades em um processo rápido.
  2. O ponto de parada fixo precisa ser ajustado de acordo com as diferentes taxas de flutuação do mercado, ou pode ser parado prematuramente.
  3. A frequência de falsos sinais pode ocorrer em mercados com oscilação horizontal.
  4. O rastreamento de stop-loss pode ser uma saída prematura de uma tendência de qualidade em um momento de forte volatilidade do mercado.

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

  1. Introdução de indicadores de volatilidade para ajustar dinamicamente os objetivos de stop loss e profit, de modo a que estejam mais em sintonia com o estado do mercado.
  2. Adicione indicadores de volume como confirmação auxiliar para melhorar a confiabilidade do sinal.
  3. Adere ao mecanismo de identificação do cenário de mercado, usando diferentes combinações de parâmetros em diferentes estados de mercado.
  4. Desenvolver mecanismos de acréscimo de risco, construção moderada de depósitos para aumentar a receita durante a recuperação.
  5. Otimizar os algoritmos de rastreamento de stop loss para melhor adaptá-los às flutuações do mercado.

Resumir

A estratégia é construída através da integração de vários sistemas de indicadores tecnológicos para construir um sistema de negociação estável. Sua principal vantagem reside no mecanismo de confirmação múltipla e no sistema de controle de risco perfeito. Embora haja um certo risco de atraso, a estratégia ainda tem um grande espaço de melhoria através da otimização de parâmetros e extensão de funções.

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

//@version=5
strategy("ITG Scalper Strategy", shorttitle="lokesh_ITG_Scalper_Strategy", overlay=true)

// General inputs
len = input(14, title="TEMA period")
FfastLength = input.int(13, title="Filter fast length")
FslowLength = input.int(18, title="Filter slow length")
FsignalLength = input.int(14, title="Filter signal length")
sl_points = 7 // 5 points stop loss
tp_points = 100 // 100 points target profit
trail_points = 15 // Trailing stop loss every 10 points

// Validate input
if FfastLength < 1
    FfastLength := 1
if FslowLength < 1
    FslowLength := 1
if FsignalLength < 1
    FsignalLength := 1

// Get real close price
realC = close

// Triple EMA definition
ema1 = ta.ema(realC, len)
ema2 = ta.ema(ema1, len)
ema3 = ta.ema(ema2, len)

// Triple EMA trend calculation
avg = 3 * (ema1 - ema2) + ema3

// Filter formula
Fsource = close
FfastMA = ta.ema(Fsource, FfastLength)
FslowMA = ta.ema(Fsource, FslowLength)
Fmacd = FfastMA - FslowMA
Fsignal = ta.sma(Fmacd, FsignalLength)

// Plot EMAs for visual reference
shortema = ta.ema(close, 9)
longema = ta.ema(close, 15)
yma = ta.ema(close, 5)
plot(shortema, color=color.green)
plot(longema, color=color.red)
plot(yma, color=#e9f72c)

// Entry conditions
firstCrossover = ta.crossover(Fmacd, Fsignal) and avg > avg[1]
secondCrossover = ta.crossover(shortema, longema)  // Assuming you meant to cross shortema with longema
thirdCrossover = ta.crossover(close, yma)

var bool entryConditionMet = false

if (firstCrossover)
    entryConditionMet := true

longSignal = entryConditionMet and secondCrossover and thirdCrossover

// Strategy execution
if (longSignal)
    strategy.entry("Long", strategy.long)
    entryConditionMet := false  // Reset the entry condition after taking a trade

// Calculate stop loss and take profit prices
var float long_sl = na
var float long_tp = na

if strategy.position_size > 0  // Long position
    long_sl := close - sl_points
    long_tp := close + tp_points
    
    // Adjust stop loss with trailing logic
    if (close - long_sl > trail_points)
        long_sl := close - trail_points
        
    strategy.exit("Exit Long", "Long", stop=long_sl, limit=long_tp)

// Plotting Buy signals
plotshape(series=longSignal, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")

// Alerts
alertcondition(longSignal, title="Buy Signal", message="Buy Signal")