Estratégia de negociação de momentum de tendência quantitativa Jia Yibing


Data de criação: 2024-03-08 15:40:05 última modificação: 2024-03-08 15:40:05
cópia: 0 Cliques: 636
1
focar em
1617
Seguidores

Estratégia de negociação de momentum de tendência quantitativa Jia Yibing

Visão geral

A estratégia de negociação de volume de tendência de quantificação de Forex é uma estratégia de negociação de volume de negociação de volume de negociação de Forex com múltiplos cabeçalhos em branco que combina o acompanhamento da tendência, o indicador de volume de negociação e o canal de Binary. A estratégia usa o cruzamento de médias móveis rápidas e lentas para determinar a direção da tendência, enquanto combina o canal de Binary e o indicador de volume de negociação para confirmar o sinal de entrada. A estratégia também possui medidas de controle de risco, como stop loss, stop loss tracking e gerenciamento de posição.

Princípio da estratégia

O princípio central da estratégia é o uso de tendências de preços e efeitos de dinâmica para capturar oportunidades de mercado. Concretamente, a estratégia usa médias móveis de dois períodos diferentes (linha rápida e lenta) para determinar a direção da tendência de preços. Quando a linha rápida passa de baixo para cima, representando uma tendência ascendente, a estratégia produzirá um sinal de múltiplos; ao contrário, quando a linha rápida passa de cima para baixo, representando uma tendência descendente, a estratégia produzirá um sinal de vazio.

Para confirmar ainda mais a tendência e o momento de entrada, a estratégia também combina o canal de Brin e o indicador de momentum. A faixa de Brin é composta por três linhas: a média central é a média móvel, e as faixas superiores e inferiores aumentam e diminuem uma certa diferença padrão na base da órbita central. Quando o preço quebra a faixa de Brin, representando uma forte energia ascendente, a estratégia fará mais; Quando o preço quebra a faixa de Brin, representando uma forte energia descendente, a estratégia será vazia.

Além disso, a estratégia também introduziu um indicador de dinâmica, que mede a velocidade de queda dos preços comparando o preço atual com o preço anterior a um determinado período. O indicador de dinâmica pode ser usado para determinar a força ou a fraqueza da tendência, fornecendo assim uma confirmação adicional para a entrada.

Em termos de gerenciamento de posições, a estratégia permite definir o tamanho da posição de acordo com o capital da conta e as preferências de risco. Ao mesmo tempo, a estratégia também possui um mecanismo de stop loss e stop loss de rastreamento para controlar o risco de uma única transação.

Em geral, a estratégia de negociação de volume de tendência de Quantificação de Tendência de MetaTrader 2 busca capturar oportunidades de tendências de mercado, controlar rigorosamente os riscos e obter um retorno sólido do investimento através de várias dimensões, como o acompanhamento de tendências, a confirmação de tendências e a gestão de riscos.

Análise de vantagens

  1. Seguimento de tendências: a estratégia de usar o cruzamento de linhas médias rápidas e lentas para capturar oportunidades de tendências de preços, tanto para fazer tendências mais altas quanto para fazer tendências mais baixas, adaptando-se a diferentes situações de mercado.

  2. Confirmação de dinâmica: introdução de indicadores de dinâmica como confirmação secundária de tendências, ajudando a excluir falsos sinais e melhorar a qualidade de entrada.

  3. As bandas de burins auxiliam na tomada de decisões: as bandas de burins são capazes de refletir os intervalos de flutuação dos preços, e a ruptura das bandas de burins pode ser vista como um sinal de aceleração da tendência ou de flutuação anormal dos preços, fornecendo uma referência para a entrada.

  4. Gerenciamento de posições: a estratégia usa uma abordagem de gerenciamento de posições baseada na proporção e limite de fundos da conta, permitindo o controle flexível da ocupação de fundos em cada transação, o que permite aproveitar ao máximo os fundos e não expor excessivamente ao risco.

  5. Stop Loss: Estabelece um stop loss e um tracking stop loss para proteger os lucros quando o preço se move na direção esperada, mas também para parar os prejuízos quando o preço se reverte, controlando efetivamente o máximo de perdas em uma única transação.

  6. Optimização de múltiplos parâmetros: a estratégia contém vários parâmetros ajustáveis, como o ciclo de linha média, o parâmetro de faixa de Bryn, a taxa de stop loss, etc. A otimização de parâmetros pode melhorar a adaptabilidade e a robustez da estratégia.

Análise de Riscos

  1. Negociação Frequente: Esta estratégia gera sinais de entrada com base em cruzamentos de linha média e rupturas de faixa de Brin. Quando a volatilidade do mercado é grande, os sinais de negociação podem ser produzidos com frequência, resultando em um número excessivo de negociações, aumentando os custos de comissão e os custos de deslizamento.

  2. Parâmetros sensíveis: a estratégia contém vários parâmetros, como o ciclo da linha média, o ciclo da dinâmica, o parâmetro da faixa de Bryn, etc. A escolha de diferentes parâmetros pode ter um grande impacto no efeito da estratégia. Se os parâmetros forem escolhidos inadequadamente, isso pode levar ao mau desempenho da estratégia.

  3. Atraso na identificação de tendências: a média móvel é um indicador de atraso, especialmente quando o período médio é mais longo, a velocidade de identificação da reversão da tendência é mais lenta e pode perder o melhor momento de entrada.

  4. Risco de parada: embora a estratégia tenha medidas de parada, em situações extremas (como saltos rápidos), o preço pode ultrapassar diretamente o preço de parada, resultando em perdas reais superiores às esperadas.

  5. Risco de concentração de posições: se a estratégia produzir sinais de sincronização em um determinado período de tempo, isso pode levar a uma concentração excessiva de posições em uma determinada direção, com maior risco de posse.

  6. Risco de liquidez: a retomada e a eficácia da estratégia podem ser afetadas pela liquidez do mercado, especialmente em operações de grandes capitais, que podem enfrentar pontos de deslizamento e problemas de volume de transação insuficiente.

Direção de otimização

  1. Introdução de mais indicadores técnicos: Com base na linha média, no momento e na faixa de Bryn, pode-se tentar introduzir mais indicadores técnicos, como RSI, MACD, etc., para aumentar a confiabilidade do sinal por meio da confirmação conjunta de vários indicadores.

  2. Otimização dos mecanismos de entrada e saída: pode-se considerar a introdução de mais condições nos julgamentos de entrada e saída, como a necessidade de satisfazer certos requisitos de volume de transação antes de a brecha de preço, o uso de lotes de liquidação ou paradas móveis durante a saída, para aumentar a flexibilidade e a lucratividade da estratégia.

  3. Parâmetros de ajuste dinâmico: para o ciclo de equilíbrio, o ciclo de dinâmica, o parâmetro de faixa de Bryn, etc., pode ser projetado um mecanismo de adaptação de um conjunto de parâmetros, de acordo com diferentes estados de mercado e níveis de volatilidade, o valor do parâmetro de ajuste dinâmico aumenta a adaptabilidade da estratégia.

  4. Melhorar a gestão de posições: Com base na gestão de posições atual, pode-se introduzir métodos de gestão de fundos mais avançados, como a fórmula de Kelly, taxas fixas e juros dinâmicos, para melhor equilibrar os ganhos com os riscos.

  5. Combinação com a análise fundamental: estratégias de análise puramente técnica podem enfrentar o risco de invalidez ou falha do mercado. A eficácia da estratégia pode ser melhorada se for possível combinar alguns fatores fundamentais, como dados macroeconômicos, tendências do setor, etc., para filtrar e confirmar os sinais técnicos.

  6. Aumentar a consistência entre a retrospectiva e o real: A estratégia pode apresentar diferenças entre a retrospectiva e o real. A qualidade da execução da retrospectiva e do real, incluindo o preço de transação, o ponto de deslizamento e o atraso, devem ser considerados fatores essenciais para garantir a consistência entre a performance do real e os resultados da retrospectiva.

Resumir

A estratégia de negociação de volume de tendências de quantificação de Forex é uma estratégia de negociação de volume que combina vários métodos de análise técnica. Utiliza tendências de captura de cruzamento linear, tendências de confirmação de ruptura da faixa de Bryn, velocidade de reflexão do indicador de volume, controle de risco de stop loss, gerenciamento de posições para otimizar o uso de fundos, formando um conjunto completo de decisões de negociação e sistema de gerenciamento.

A vantagem da estratégia está na combinação de acompanhamento de tendências com a dinâmica, o julgamento auxiliado por Brin, o gerenciamento de posições e o stop loss para aproveitar as oportunidades de mercado por meio de análises e decisões multidimensionais. Mas, ao mesmo tempo, a estratégia também enfrenta riscos potenciais, como negociações frequentes, parâmetros sensíveis, atraso na identificação de tendências e perda de cobertura de situações extremas. Isso requer melhoria e aperfeiçoamento contínuo da estratégia por meio da introdução de mais indicadores técnicos, otimização de sinais de julgamento, lógica dinâmica, ajuste de parâmetros e melhoria da gestão de fundos.

Além disso, a estratégia de negociação quantitativa pode ter diferenças entre os resultados de retrospectiva e o desempenho no mercado real, o que requer foco em questões de nível de execução, como preço de transação, ponto de deslizamento e atraso, para melhorar a viabilidade e estabilidade da estratégia. Além disso, a estratégia de negociação quantitativa não deve se limitar à análise técnica, em combinação adequada com fatores fundamentais, ajudará a melhorar a abrangência e a eficácia da decisão.

Em geral, a estratégia de negociação de dinâmica de tendência de quantificação da MetaTrader 4 oferece uma visão mais completa e viável para a prática de negociação quantitativa, mas o efeito final da estratégia também depende da ponderação de várias oportunidades e riscos e da otimização dos detalhes. Na aplicação prática, a estratégia precisa ser adequadamente ajustada e melhorada de acordo com suas preferências de risco, tamanho de capital e mercado de negociação, entre outros.

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

//@version=5
strategy('甲易炳', overlay=true)

// Parameters
trendPeriod = input(50, 'Trend Period')
momentumPeriod = input(14, 'Momentum Period')
bbPeriod = input(20, 'Bollinger Bands Period')
bbDeviation = input(2, 'Bollinger Bands Deviation')
fastMALen = input(23, 'Fast SMA Length')
slowMALen = input(50, 'Slow SMA Length')
longTakeProfitPerc = input.float(0.5, 'Long Take Profit %', minval=0.05, step=0.05) * 0.01
shortTakeProfitPerc = input.float(0.5, 'Short Take Profit %', minval=0.05, step=0.05) * 0.01
stopLossPerc = input.float(0.5, 'Stop Loss %', minval=0.05, step=0.05) * 0.01
enableTrailing = input.bool(true, 'Enable Trailing')
trailingTakeProfitPerc = input.float(0.01, 'Trailing Take Profit %', minval=0.01, maxval=100, step=0.01) * 0.01
trailingStopLossPerc = input.float(0.5, 'Trailing Stop Loss %', minval=0.05, step=0.05) * 0.01
qty_percent = input.int(20, 'Position Size %', step=1)
qty_cap = input.int(10000, 'Max Position Size', step=1000)
beast_mode = input.bool(false, 'Beast Mode')
set_cap = input.bool(true, 'Cap Position Size')
strategy.initial_capital = 50000
// Calculate position size
qty1 = (strategy.initial_capital + strategy.netprofit) * qty_percent / 10 / close
qty = (set_cap and qty1 > qty_cap) ? qty_cap : qty1

// Calculate moving averages
fastMA = ta.sma(close, fastMALen)
slowMA = ta.sma(close, slowMALen)

// Bollinger Bands
[upperBB, middleBB, lowerBB] = ta.bb(close, bbPeriod, bbDeviation)

// Entry conditions
buySignal = ta.crossover(close, fastMA) and close > upperBB
sellSignal = ta.crossunder(close, fastMA) and close < lowerBB

// Rampage mode entry conditions
if beast_mode
    buySignal := buySignal and fastMA > fastMA[2]
    sellSignal := sellSignal and fastMA < fastMA[2]

// Active positions
longIsActive = buySignal or strategy.position_size > 0
shortIsActive = sellSignal or strategy.position_size < 0

// Declare take profit and stop loss variables
var float longTakeProfitPrice = na
var float shortTakeProfitPrice = na

// Take profit and stop loss calculation
if longIsActive
    if buySignal and not (strategy.position_size > 0)
        longTakeProfitPrice := close * (1 + longTakeProfitPerc)
    else
        longTakeProfitPrice := nz(longTakeProfitPrice[1], close * (1 + longTakeProfitPerc))
if shortIsActive
    if sellSignal and not (strategy.position_size < 0)
        shortTakeProfitPrice := close * (1 - shortTakeProfitPerc)
    else
        shortTakeProfitPrice := nz(shortTakeProfitPrice[1], close * (1 - shortTakeProfitPerc))

longTrailingTakeProfitStepTicks = longTakeProfitPrice * trailingTakeProfitPerc / syminfo.mintick
shortTrailingTakeProfitStepTicks = shortTakeProfitPrice * trailingTakeProfitPerc / syminfo.mintick
longTrailingStopLossPrice = close * (1 - trailingStopLossPerc)
shortTrailingStopLossPrice = close * (1 + trailingStopLossPerc)

// Entries and exits
if strategy.position_size == 0
    strategy.entry('Long Entry', qty=qty, direction=strategy.long, when=buySignal, alert_message='Long Entry')
    strategy.entry('Short Entry', qty=qty, direction=strategy.short, when=sellSignal, alert_message='Short Entry')
    strategy.exit('Long Take Profit', 'Long Entry', loss=close * stopLossPerc / syminfo.mintick, limit=enableTrailing ? na : longTakeProfitPrice, trail_price=enableTrailing ? longTakeProfitPrice : na, trail_offset=enableTrailing ? longTrailingTakeProfitStepTicks : na, when=longIsActive, alert_message='Long Take Profit')
    strategy.exit('Short Take Profit', 'Short Entry', loss=close * stopLossPerc / syminfo.mintick, limit=enableTrailing ? na : shortTakeProfitPrice, trail_price=enableTrailing ? shortTakeProfitPrice : na, trail_offset=enableTrailing ? shortTrailingTakeProfitStepTicks : na, when=shortIsActive, alert_message='Short Take Profit')
else
    if longIsActive
        strategy.exit('Long Stop Loss', 'Long Entry', stop=longTrailingStopLossPrice, when=longIsActive)
    if shortIsActive
        strategy.exit('Short Stop Loss', 'Short Entry', stop=shortTrailingStopLossPrice, when=shortIsActive)

// Plotting
plot(fastMA, 'Fast SMA', color=color.blue, linewidth=1, style=plot.style_line)
plot(slowMA, 'Slow SMA', color=color.orange, linewidth=1, style=plot.style_line)
plot(upperBB, 'Upper BB', color=color.green, linewidth=1, style=plot.style_line)
plot(lowerBB, 'Lower BB', color=color.red, linewidth=1, style=plot.style_line)