Estratégia quantitativa de gerenciamento de risco de cruzamento de tendências de ondas múltiplas

EMA SMA
Data de criação: 2024-12-13 10:51:31 última modificação: 2024-12-13 10:51:31
cópia: 0 Cliques: 341
1
focar em
1617
Seguidores

Estratégia quantitativa de gerenciamento de risco de cruzamento de tendências de ondas múltiplas

Visão geral

A estratégia é um sistema de negociação quantitativa baseado no indicador WaveTrend, combinado com um mecanismo de gerenciamento de risco dinâmico. A estratégia calcula a intensidade da tendência das flutuações de preços, filtra os sinais nas áreas de sobrevenda e sobrevenda, enquanto aplica meios de controle de risco, como stop loss, stop loss e tracking stop loss, para realizar um gerenciamento de negociação abrangente.

Princípio da estratégia

O núcleo da estratégia é o cálculo do indicador WaveTrend através do preço HLC3. Primeiro, calcula-se a média móvel do índice (EMA) do ciclo n1 como a linha de referência, em seguida, calcula-se o desvio do preço em relação à linha de referência, e usa-se o 0,015 como o coeficiente para a unificação. O resultado final é obtido com duas linhas de onda wt1 e wt2, que representam a linha rápida e a linha lenta, respectivamente.

Vantagens estratégicas

  1. O sistema de sinalização tem uma boa capacidade de rastreamento de tendências, aumentando a confiabilidade do sinal através de níveis de dupla sobrecompra e sobrevenda
  2. Sistema de gestão de risco completo, incluindo stop loss fixo, stop loss fixo e stop loss de rastreamento dinâmico
  3. Parâmetros ajustáveis para otimização de acordo com diferentes condições de mercado
  4. Combinação de um mecanismo de auto-adaptação da taxa de flutuação para aumentar a adaptabilidade da estratégia
  5. Sistema de sinalização de design em camadas, reduzindo efetivamente o impacto de sinais falsos

Risco estratégico

  1. Situações em que pode ocorrer uma parada frequente em mercados altamente voláteis
  2. Parâmetros mal definidos podem levar a custos de transação excessivos
  3. Os mercados horizontais podem gerar muitos sinais falsos
  4. É necessário estabelecer um equilíbrio razoável entre stop loss e stop loss para evitar um desequilíbrio entre risco e ganho.
  5. O tracking stop pode levar a um retorno maior em um retorno rápido.

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

  1. Introdução de indicadores de volume de transação para confirmação de sinais e melhoria da confiabilidade das transações
  2. Optimizar os parâmetros de stop loss para melhor adaptá-los a diferentes cenários de mercado
  3. Aumentar os filtros de intensidade de tendência e reduzir a frequência de negociação no mercado horizontal
  4. Considere a inclusão de um mecanismo de stop loss dinâmico que ajuste automaticamente a posição de stop loss de acordo com a volatilidade do mercado
  5. Introdução de filtros de tempo para evitar a abertura de posições em períodos de negociação desfavoráveis

Resumir

A estratégia, combinada com os indicadores WaveTrend e um sistema de gerenciamento de risco perfeito, permite uma estratégia de negociação quantitativa mais abrangente. A principal vantagem da estratégia é sua adaptabilidade e controle de risco, mas ainda requer que o comerciante otimize os parâmetros e melhore a estratégia de acordo com as condições reais do mercado.

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

//@version=5
strategy(title="WaveTrend [LazyBear] with Risk Management", shorttitle="WT_LB_RM", overlay=true)

// Input Parameters
n1 = input.int(10, "Channel Length")
n2 = input.int(21, "Average Length")
obLevel1 = input.int(60, "Over Bought Level 1")
obLevel2 = input.int(53, "Over Bought Level 2")
osLevel1 = input.int(-60, "Over Sold Level 1")
osLevel2 = input.int(-53, "Over Sold Level 2")

// Risk Management Inputs
stopLossPercent = input.float(50.0, "Stop Loss (%)", minval=0.1, maxval=100)
takeProfitPercent = input.float(5.0, "Take Profit (%)", minval=0.1, maxval=100)
trailingStopPercent = input.float(3.0, "Trailing Stop (%)", minval=0.1, maxval=100)
trailingStepPercent = input.float(2.0, "Trailing Stop Step (%)", minval=0.1, maxval=100)

// WaveTrend Calculation
ap = hlc3 
esa = ta.ema(ap, n1)
d = ta.ema(math.abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * d)
tci = ta.ema(ci, n2)
 
wt1 = tci
wt2 = ta.sma(wt1, 4)

// Plotting Original Indicators
plot(0, color=color.gray)
plot(obLevel1, color=color.red)
plot(osLevel1, color=color.green)
plot(obLevel2, color=color.red, style=plot.style_line)
plot(osLevel2, color=color.green, style=plot.style_line)

plot(wt1, color=color.green)
plot(wt2, color=color.red, style=plot.style_line)
plot(wt1-wt2, color=color.blue, style=plot.style_area, transp=80)

// Buy and Sell Signals with Risk Management
longCondition = ta.crossover(wt1, osLevel1) or ta.crossover(wt1, osLevel2)
shortCondition = ta.crossunder(wt1, obLevel1) or ta.crossunder(wt1, obLevel2)

// Strategy Entry with Risk Management
if (longCondition)
    entryPrice = close
    stopLossPrice = entryPrice * (1 - stopLossPercent/100)
    takeProfitPrice = entryPrice * (1 + takeProfitPercent/100)
    
    strategy.entry("Long", strategy.long)
    strategy.exit("Long Exit", "Long", 
                  stop=stopLossPrice, 
                  limit=takeProfitPrice, 
                  trail_price=close * (1 + trailingStopPercent/100), 
                  trail_offset=close * (trailingStepPercent/100))

if (shortCondition)
    entryPrice = close
    stopLossPrice = entryPrice * (1 + stopLossPercent/100)
    takeProfitPrice = entryPrice * (1 - takeProfitPercent/100)
    
    strategy.entry("Short", strategy.short)
    strategy.exit("Short Exit", "Short", 
                  stop=stopLossPrice, 
                  limit=takeProfitPrice, 
                  trail_price=close * (1 - trailingStopPercent/100), 
                  trail_offset=close * (trailingStepPercent/100))