Estratégia quantitativa de crossover de média móvel de momentum


Data de criação: 2024-01-26 11:39:26 última modificação: 2024-01-26 11:39:26
cópia: 0 Cliques: 587
1
focar em
1617
Seguidores

Estratégia quantitativa de crossover de média móvel de momentum

Visão geral

A estratégia combina as médias móveis e o volume de transações, dois indicadores técnicos essenciais, e cria regras de entrada e saída para posições longas e curtas, formando uma estratégia de negociação quantitativa completa.

Princípio da estratégia

Indicadores-chave

  1. Média móvel: média móvel rápida (linha azul) e média móvel lenta (linha vermelha) [2].
  2. Volume de transações: 24 horas de transações (púrpura) e 7 dias de média de transações (vermelho).

Condições da estratégia

Condições de entrada para a posição longa:

  1. A média móvel rápida atravessa a média móvel lenta
  2. Volume de transações de 24 horas inferior a 50% da média de transações de 7 dias

Condições de entrada para a posição curta:
Por baixo da média móvel rápida atravessando a média móvel lenta

Entradas e saídas

A entrada de Long Posh:Fazer mais quando se cumpre os requisitos de entrada para a posição longa

A entrada de uma posição curta:Cancelar a entrada de uma posição curta

Paragem e perda: Exibe o ponto de parada e o ponto de parada após o excesso

Análise de vantagens

  1. Combinação de indicadores de preço e volume de transação para evitar brechas falsas
  2. Regras claras de entrada e saída
  3. Mecanismo de controlo de risco

Análise de Riscos

  1. Estratégias de dupla linha de crédito podem gerar transações frequentes
  2. Qualidade de dados de volume de transações não garantida
  3. Optimização de parâmetros com risco de otimização excessiva

Métodos de melhoria:

  1. Ajustar adequadamente os parâmetros da linha média para reduzir a frequência de negociação
  2. Combinação de sinais de quantificação com mais fontes de dados de verificação
  3. Verificação rigorosa para evitar otimização excessiva

Direção de otimização

  1. Adicionar outros indicadores de filtragem
  2. Ajuste dinâmico do ponto de parada
  3. Análise de multi-quadros de tempo para aumentar a estabilidade

Resumir

A estratégia integra o indicador de média móvel e o indicador de volume de negociação, projetando uma estratégia de negociação quantitativa completa por meio de um mecanismo de dupla confirmação. Tem os benefícios de termos de entrada claros, paradas de parada e facilidade de operação. Ao mesmo tempo, deve evitar problemas de negociação frequentes da estratégia de linha dupla, prestar atenção à qualidade dos dados de volume de negociação e evitar otimização excessiva dos parâmetros.

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

//@version=5
strategy("MA and Volume Strategy", overlay=true)

// Input parameters
fastLength = input(9, title="Fast MA Length")
slowLength = input(21, title="Slow MA Length")
volumePercentageThreshold = input(50, title="Volume Percentage Threshold")

// Calculate moving averages
fastMA = ta.sma(close, fastLength)
slowMA = ta.sma(close, slowLength)

// Calculate 24-hour volume and weekly volume average
dailyVolume = request.security(syminfo.tickerid, "D", volume)
weeklyVolumeAvg = ta.sma(request.security(syminfo.tickerid, "W", volume), 7)

// Strategy conditions
longCondition = ta.crossover(fastMA, slowMA) and dailyVolume < (weeklyVolumeAvg * volumePercentageThreshold / 100)
shortCondition = ta.crossunder(fastMA, slowMA)

// Set take profit and stop loss levels
takeProfitLong = close * 1.50
stopLossLong = close * 0.90

// Strategy orders
strategy.entry("Long", strategy.long, when=longCondition)
strategy.entry("Short", strategy.short, when=shortCondition)

// Plot moving averages
plot(fastMA, color=color.blue, title="Fast MA")
plot(slowMA, color=color.red, title="Slow MA")

// Plot 24-hour volume and weekly volume average
plot(dailyVolume, color=color.purple, title="24-Hour Volume", transp=0)
plot(weeklyVolumeAvg, color=color.orange, title="Weekly Volume Average")

// Plot entry signals
plotshape(series=longCondition, title="Buy Signal", color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=shortCondition, title="Sell Signal", color=color.red, style=shape.triangledown, size=size.small)

// Plot take profit and stop loss levels only when a valid trade is active
plotshape(series=longCondition, title="Take Profit Long", color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=longCondition, title="Stop Loss Long", color=color.red, style=shape.triangledown, size=size.small)