Estrategia de negociación basada en la desviación estándar del volumen de negociación

El autor:¿ Qué pasa?, Fecha: 2023-11-21 11:11:51
Las etiquetas:

img

Resumen general

Esta estrategia construye un modelo de volumen de negociación utilizando el promedio móvil y la desviación estándar del volumen de negociación, y determina la dirección de la tendencia con el promedio móvil del precio para generar señales de negociación cuando el volumen es normal.

Estrategia lógica

La lógica central es construir un modelo de volumen de operaciones y juzgar la tendencia de los precios.

  1. Construir un modelo de volumen de operaciones
    • Calcular la media móvil de 40 períodos del volumen vavg como línea de base
    • Calcular la desviación estándar de 40 períodos del volumen vsd como el rango de fluctuación normal
    • Calcular la media móvil de 5 períodos del volumen vavgn como el último nivel de volumen
    • Establecer el límite inferior del volumen como vavg menos 1 veces vsd
    • Establecer el límite superior del volumen como vavg más 2 veces vsd
  2. Tendencia de los precios de los jueces
    • Calcular la media móvil de 20 períodos del precio de cierre mavg como indicador de la tendencia de los precios
  3. Generar señales comerciales
    • Cuando el mavg cruza por encima de su día anterior y el vavgn está por encima del límite mínimo, vaya largo
    • Cuando el mavg cruza por debajo de su día anterior y el vavgn está por encima del límite mínimo, vaya corto
    • Posición cerrada cuando la tendencia de mavg se invierta

La estrategia combina el modelo de volumen de negociación y la tendencia de precios para evitar perseguir las tendencias de precios cuando el volumen es anormal, lo que puede filtrar algunas señales falsas.

Análisis de ventajas

  1. Combinar los cambios de volumen para juzgar la tendencia de los precios puede filtrar algunas señales falsas y hacer que las señales comerciales sean más confiables
  2. La construcción de un modelo de volumen de negociación utilizando la desviación estándar evita un impacto extremo en el volumen
  3. Los parámetros ajustables de la media móvil pueden adaptarse a los cambios de precios en diferentes ciclos

Análisis de riesgos

  1. El volumen y el precio pueden divergir a corto plazo, lo que conduce a la falta de tendencias de precios
  2. La configuración incorrecta de los parámetros del volumen puede causar fallas en el modelo
  3. La no inclusión de un stop loss en la estrategia puede provocar grandes pérdidas.

Soluciones:

  1. Ajustar los parámetros de media móvil adecuadamente para optimizar el modelo
  2. Añadir la lógica de pérdida de parada para controlar la pérdida única

Direcciones de optimización

  1. Añadir más indicadores para juzgar la tendencia del precio para hacer que las señales sean más confiables
  2. Aumentar el módulo de aprendizaje automático para entrenar parámetros de modelos de volumen y precios basados en datos
  3. Añadir una lógica de stop loss para evitar pérdidas individuales excesivas
  4. Optimizar la lógica de entrada para garantizar una mayor probabilidad de detectar tendencias
  5. Combinar indicadores como ATR para ajustar automáticamente la distancia de pérdida de parada

Resumen de las actividades

La lógica general de esta estrategia es clara, utilizando el volumen para evitar perseguir tendencias falsas y las señales de entrada son relativamente confiables. Pero la estrategia en sí es simple con un amplio margen de expansión. Al agregar más indicadores, aprendizaje automático, stop loss y otros módulos, puede mejorar aún más la estabilidad y la capacidad de atrapar tendencias. Esta es una estrategia típica de persecución de tendencias. Después de la optimización, puede convertirse en una estrategia cuantitativa muy práctica.


/*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")

Más.