Estrategia de negociación de inversión de media móvil doble

El autor:¿ Qué pasa?, Fecha: 2024-01-15 12:35:29
Las etiquetas:

img

Resumen general

La doble estrategia de inversión de promedio móvil combina la estrategia de inversión de Bollinger Bands y la doble estrategia de inversión de promedio móvil exponencial para diseñar una estrategia de trading de juicio de señal integral.

Principios de estrategia

La estrategia consta de dos partes:

  1. Estrategia de negociación de inversión de bandas de Bollinger

    Utilice dos líneas del indicador de bandas de Bollinger: la línea %K y la línea %D. Ir largo cuando el precio de cierre sea inferior al precio de cierre del día anterior durante dos días consecutivos y la línea %K esté por encima de la línea %D; ir corto cuando el precio de cierre sea superior al precio de cierre del día anterior durante dos días consecutivos y la línea %K esté por debajo de la línea %D.

  2. Estrategia de media móvil exponencial doble

    Calcular las medias móviles exponenciales dobles de 20 días y 20 días * 2.

La regla de juicio de la señal combinada: Una señal de negociación real se genera solo cuando las señales de negociación de ambas estrategias coinciden.

Análisis de ventajas

La mayor ventaja de esta estrategia combinada es su alta confiabilidad y pocas señales falsas. Porque requiere que las señales de dos tipos diferentes de estrategias se activen al mismo tiempo, lo que filtra algunas de las señales falsas que pueden aparecer en una sola estrategia.

Además, mediante la combinación de estrategias de reversión y tendencia, puede capturar tanto las reversiones a corto plazo como las tendencias a mediano plazo de los valores subyacentes.

Análisis de riesgos

El principal riesgo de esta estrategia es que cuando el mercado está en oscilación a largo plazo, las dos estrategias pueden no producir señales consistentes, lo que resulta en condiciones de mercado inválidas.

Además, como indicador a medio y largo plazo, la media móvil dual puede fallar cuando se producen rápidamente reversiones a corto plazo, lo que requiere que los operadores juzguen la tendencia más amplia del mercado con más indicadores.

Direcciones de optimización

La estrategia se puede optimizar de las siguientes maneras:

  1. Añadir más parámetros como el precio de stop loss, el rango de precios de stop loss, etc. para hacer la estrategia más controlable.

  2. Añadir más indicadores para formar criterios de filtro múltiples y eliminar operaciones más ruidosas.

  3. Optimice los parámetros del indicador como el período de Bollinger, el período de promedio móvil, etc., para encontrar la mejor combinación de parámetros.

  4. Pruebe la eficacia de esta estrategia respectivamente en diferentes productos (acciones, divisas, criptomonedas, etc.) y seleccione los más adecuados.

Conclusión

La doble estrategia de inversión de promedios móviles genera señales comerciales combinadas relativamente confiables al combinar estrategias de inversión y tendencia. Es adecuado para los operadores que están interesados en las reversiones a corto plazo y las tendencias a mediano plazo de los precios de los valores. Pero tenga en cuenta que la estrategia puede fallar en los mercados de rango a largo plazo. Al optimizar los parámetros y agregar más indicadores, la practicidad de esta estrategia puede mejorarse aún más.


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

//@version=3
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 12/04/2019
// This is combo strategies for get 
// a cumulative signal. Result signal will return 1 if two strategies 
// is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Secon strategy
// This indicator plots 2/20 exponential moving average. For the Mov 
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
// Please, use it only for learning or paper trading. Do not for real trading.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos

EMA2_20(MA_Length, MA_xPrice) =>
    xXA = ema(MA_xPrice, MA_Length)
    nHH = max(high, high[1])
    nLL = min(low, low[1])
    nXS = iff((nLL > xXA)or(nHH < xXA), nLL, nHH)
    pos = 0.0
    pos := iff(nXS > close[1] , -1, iff(nXS < close[1] , 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal and 2/20 EMA", shorttitle="Combo Backtest", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
MA_Length = input(20, minval=1)
reverse = input(false, title="Trade reverse")
MA_xPrice = close
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posEMA2_20 = EMA2_20(MA_Length, MA_xPrice)
pos = iff(posReversal123 == 1 and posEMA2_20 == 1 , 1,
	   iff(posReversal123 == -1 and posEMA2_20 == -1, -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)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 

Más.