Estratégia de acompanhamento de tendências com base no desvio padrão do volume


Data de criação: 2023-11-21 11:11:51 última modificação: 2023-11-21 11:11:51
cópia: 0 Cliques: 706
1
focar em
1617
Seguidores

Estratégia de acompanhamento de tendências com base no desvio padrão do volume

Visão geral

A estratégia usa a média móvel e o desvio padrão do volume de transações para construir um modelo de volume de transações, combinando a média móvel com o preço para determinar a direção da tendência e emitir um sinal de transação em caso de volume de transação normal. A estratégia também define um limite alto e baixo de volume de transações, para evitar o envio de sinais errados em caso de volume de transação anormal.

Princípio da estratégia

A lógica central é a construção de modelos de volume de transações e de tendências de preços.

  1. Construir um modelo de volume de transação
    • Calcule o volume de transação com uma média móvel de 40 ciclos de comprimento vvg como referência de volume de transação
    • Calcule o volume de transações com um diferencial padrão de 40 ciclos de comprimento vsd como uma faixa de flutuação normal do volume de transações
    • Calcule o volume de transações com uma média móvel de 5 ciclos de duração como o mais recente nível de volume de transações
    • Configurar o limite de transação para vvg menos 1x vsd
    • Configure o uplimit de volume de transação para vvg mais 2 vezes vsd
  2. Julgar tendências de preços
    • Calcule a média móvel de 20 ciclos de comprimento do preço mavg como um indicador de tendência de preços
  3. Emitir sinais de negociação
    • Quando o mavg passa o dia anterior, faz mais quando ovavgn está acima do lowlimit
    • Quando mavg atravessa o seu dia anterior, faça um curto-circuito se ovavgn estiver acima do limite baixo
    • A tendência do mavg se inverter e fechar.

A estratégia combina modelos de volume de transações com tendências de preços, evitando o rastreamento de tendências de preços em casos de volume de transações anormais, e pode filtrar alguns sinais falsos.

Análise de vantagens estratégicas

  1. Combinando as mudanças no volume de transações com a tendência dos preços, pode-se filtrar alguns sinais falsos e tornar os sinais mais confiáveis
  2. Modelagem de volumes de transação usando a diferença padrão de volume de transação para evitar o impacto de mudanças extremas no volume de transação
  3. Os parâmetros das médias móveis são ajustáveis para se adaptarem às variações de preços em diferentes períodos

Análise de risco estratégico

  1. O volume de transações e os preços podem se desviar no curto prazo, resultando em tendências de preços perdidas.
  2. A configuração incorreta dos parâmetros de volume de transação pode causar falhas no modelo
  3. A estratégia em si não possui um parâmetro de perda, o que pode levar a maiores perdas

A solução para o risco:

  1. Ajustar adequadamente os parâmetros da média móvel para otimizar o modelo
  2. Adição de lógica de stop loss para controlar perdas individuais

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

  1. Adição de mais indicadores para determinar a tendência dos preços, tornando os sinais mais precisos e confiáveis
  2. Adição de módulos de aprendizagem de máquina com parâmetros baseados em modelos de volume de transação e preços de treinamento de dados
  3. Aumentar a lógica de stop-loss para evitar perdas excessivas
  4. Otimização da lógica de entrada para garantir maior probabilidade de captura de tendências
  5. Combinação de indicadores semelhantes ao ATR para ajustar automaticamente a distância de parada

Resumir

A estratégia tem uma visão geral clara, usa o volume de negociação para evitar o rastreamento de falsas tendências, e os sinais de entrada são mais confiáveis. Mas a estratégia em si é simples e tem um grande espaço para expansão, e pode ser otimizada adicionando mais indicadores, aprendizado de máquina, módulos de parada e outros, o que pode melhorar ainda mais a estabilidade e a capacidade de capturar tendências. A estratégia é uma estratégia típica de rastreamento de tendências, que pode se tornar uma estratégia de quantificação muito prática após a otimização.

Código-fonte da estratégia
/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
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/
// © dongyun

//@version=4
strategy("交易量底部标准差系统", overlay=true)

options = input(1,'')
length = input(40,'')
nlow = input(5,'')
factor = input(1.0,'')

vavg = 0.0
vavgn = 0.0
vsd = 0.0
lowlimit = 0.0
uplimit = 0.0
mavg = 0.0
aror = 0.0
adjvol = 0.0
savevol = 0.0


//Find average volume, replacing bad values
adjvol := volume

if (volume != 0)
	savevol := volume
else
	savevol := savevol[1]
	adjvol := savevol


// Replace high volume days because they distort standard deviation
if (adjvol > 2 * factor * nz(vsd[1]))
	adjvol := savevol
else
	adjvol := adjvol[1]

vavg := sma(adjvol,length)
vsd := stdev(adjvol,length)
vavgn := sma(adjvol,nlow)

// Extreme volume limits
lowlimit := vavg - factor * vsd
uplimit := vavg + 2 * factor * vsd

// System rules based on moving average trend
mavg := sma(close,length/2)

// Only enter on new trend signals
if (options == 2)
	if (mavg > mavg[1] and mavg[1] <= mavg[2])
		strategy.entry("Long", strategy.long)
	if (mavg<mavg[1] and mavg[1]>=mavg[2])
		strategy.entry("Short", strategy.short)
else
	if (mavg > mavg[1] and vavgn > lowlimit)
		strategy.entry("Long", strategy.long)
	if (mavg < mavg[1] and vavgn > lowlimit)
		strategy.entry("Short", strategy.short)

// Exit on low volume
if (options != 1)
	if (mavg<mavg[1] or (strategy.position_size > 0 and vavgn<= lowlimit))
		strategy.close("Long")
	if (mavg>mavg[1] or (strategy.position_size > 0 and vavgn<= lowlimit))
		strategy.close("Short")
else
	if (mavg < mavg[1])
		strategy.close("Long")
	if (mavg > mavg[1])
		strategy.close("Short")