En la carga de los recursos... Cargando...

Estrategia bilateral de negociación de promedios móviles cuantitativos de tres puntos

El autor:¿ Qué pasa?, Fecha: 2024-01-31 16:11:41
Las etiquetas:

img

Resumen general

Esta estrategia se basa en el indicador de promedio móvil bilateral de tres puntos. Al calcular el valor medio del precio más alto, el precio más bajo y el precio de cierre de los N períodos más recientes, realiza la función de juzgar las tendencias de precios y generar señales comerciales. Esta estrategia es adecuada para el comercio a mediano y corto plazo, y puede filtrar eficazmente el ruido del mercado y capturar las tendencias de precios.

Principio de la estrategia

El indicador central de esta estrategia es la media móvil bilateral de tres puntos (XHL2, XHLC3). XHL2 calcula el valor medio del precio más alto y el precio más bajo de los N períodos más recientes. XHLC3 calcula el valor medio del precio más alto, el precio más bajo y el precio de cierre de los N períodos más recientes. Estos dos indicadores pueden suavizar eficazmente los datos de precios y filtrar el impacto de las fluctuaciones a corto plazo.

La estrategia juzga la tendencia del precio calculando la diferencia nMF entre XHL2, XHLC3 y el precio de cierre. Cuando nMF es mayor que un factor, se juzga que el precio está en una tendencia al alza; cuando nMF es menor que un factor negativo, se juzga que el precio está en una tendencia a la baja. Combinado con el volumen de negociación, se calcula el indicador nRES. nRES mayor que 0 indica una señal de compra, y menor que 0 indica una señal de venta. La dirección de la tendencia y las señales de negociación se determinan en función de la relación de signo positivo/negativo y magnitud de nRES.

Análisis de ventajas

Las ventajas de esta estrategia son:

  1. El uso del indicador de media móvil bilateral de tres puntos puede filtrar eficazmente el ruido del mercado y juzgar las tendencias de los precios a medio y largo plazo;

  2. La combinación de cambios en el volumen de operaciones puede determinar con mayor precisión la dirección del flujo de capital y emitir señales de negociación;

  3. La estrategia tiene pocos parámetros, métodos sencillos y fáciles de entender, y es fácil de aplicar;

  4. Configuración flexible de la dirección de la tenencia, adecuada para diferentes tipos de inversores.

Análisis de riesgos

Los principales riesgos de esta estrategia son:

  1. La configuración incorrecta de los parámetros puede causar señales comerciales erróneas;

  2. En un mercado con tendencias fuertes a largo plazo, la estrategia puede generar demasiadas señales comerciales falsas;

  3. En un mercado volátil, los ajustes de stop loss excesivamente pequeños pueden aumentar el riesgo de pérdida.

Soluciones:

  1. Optimizar los parámetros y determinar los mejores parámetros basados en pruebas de retroceso;

  2. juzgar la fiabilidad de las señales en combinación con las tendencias y el soporte/resistencia;

  3. Relajar adecuadamente el intervalo de stop loss para controlar la pérdida única.

Direcciones de optimización

Las direcciones de optimización de esta estrategia:

  1. optimizar los parámetros de la media móvil y los parámetros del volumen de negociación para mejorar la sensibilidad del indicador;

  2. Añadir indicadores de evaluación de tendencias para mejorar la exactitud de las señales de negociación;

  3. Añadir estrategias de stop loss para reducir el riesgo de pérdida;

  4. Combinar métodos de aprendizaje automático para lograr la optimización automática de parámetros.

Resumen de las actividades

Esta estrategia está diseñada sobre la base del indicador de promedio móvil bilateral de tres puntos para determinar la dirección de tendencia a mediano y largo plazo de los precios. Utiliza cambios en el volumen de operaciones para confirmar las entradas y salidas de capital, y finalmente genera señales de compra y venta. La estrategia tiene un gran margen de optimización y puede mejorarse en múltiples dimensiones para adaptarse a entornos de mercado más complejos.


/*backtest
start: 2023-01-24 00:00:00
end: 2024-01-30 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 25/06/2018
// The FVE is a pure volume indicator. Unlike most of the other indicators 
// (except OBV), price change doesn?t come into the equation for the FVE (price 
// is not multiplied by volume), but is only used to determine whether money is 
// flowing in or out of the stock. This is contrary to the current trend in the 
// design of modern money flow indicators. The author decided against a price-volume 
// indicator for the following reasons:
// - A pure volume indicator has more power to contradict.
// - The number of buyers or sellers (which is assessed by volume) will be the same, 
//     regardless of the price fluctuation.
// - Price-volume indicators tend to spike excessively at breakouts or breakdowns.
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Finite Volume Elements (FVE) Backtest", shorttitle="FVE")
Period = input(22, minval=1)
Factor = input(0.3, maxval=1)
reverse = input(false, title="Trade reverse")
xhl2 = hl2
xhlc3 = hlc3
xClose = close
xVolume = volume
xSMAV = sma(xVolume, Period)
nMF = xClose - xhl2 + xhlc3 - xhlc3[1]
nVlm = iff(nMF > Factor * xClose / 100,  xVolume, 
         iff(nMF < -Factor * xClose / 100, -xVolume, 0))
nRes = nz(nRes[1],0) + ((nVlm / xSMAV) / Period) * 100
pos = iff(nRes > nRes[1] and nRes > nRes[2], 1,
         iff(nRes < nRes[1] and nRes < nRes[2], -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
plot(nRes, color=red, title="FVE")

Más.