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

Estrategia de ruptura de la media móvil de inversión doble

El autor:¿ Qué pasa?, Fecha: 2023-12-18 10:24:08
Las etiquetas:

img

Resumen general

La estrategia de ruptura de inversión de media móvil doble es una estrategia combinada que incorpora tanto la estrategia de inversión 123 como la estrategia de divergencia de precio y media móvil.

Estrategia lógica

La estrategia de ruptura de la media móvil doble consiste en dos componentes:

  1. 123 Estrategia de reversión

    La estrategia de reversión 123 genera señales de negociación basadas en dos días consecutivos de reversión de precio de cierre (es decir, cierre más alto seguido de cierre más bajo; o cierre más bajo seguido de cierre más alto), combinado con la línea K del oscilador estocástico de 9 días por debajo / por encima de un cierto nivel (default 50).

  2. Estrategia de divergencia de precios y promedios móviles

    La estrategia de divergencia de precio y MA calcula la diferencia porcentual entre el precio y una media móvil de cierto período (default 14).

La estrategia de ruptura de inversión de media móvil doble solo genera señales comerciales reales cuando las señales de ambas estrategias anteriores se alinean en la misma dirección, es decir, ambas son señales de compra o ambas son señales de venta.

Análisis de ventajas

La estrategia de ruptura de la inversión de la media móvil doble combina las fortalezas de la inversión y las estrategias de seguimiento de tendencias para la sinergia.

El 123 Reversal selecciona señales de reversión para capitalizar los cambios. El Price & MA Divergence sigue la tendencia a largo plazo. Juntos capturan las reversiones a corto plazo mientras conducen la tendencia más grande para evitar quedar atrapados.

Además, al exigir señales alineadas de ambas estrategias, se puede reducir significativamente el número de operaciones inválidas, mejorando la relación señal-ruido.

Análisis de riesgos

Si bien aprovecha las fortalezas de ambas estrategias, la estrategia de ruptura de la inversión de promedios móviles dobles también hereda los riesgos asociados con cada una.

Para el componente 123 Reversión, dos reversiones diarias consecutivas no garantizan una inversión de tendencia real.

Para la parte de la divergencia de precio y MA, los parámetros de promedio móvil inapropiados pueden conducir a señales rezagadas.

En resumen, los principales riesgos de esta estrategia provienen de un mal ajuste de parámetros y una generación de señal defectuosa.

Oportunidades de mejora

La estrategia de ruptura de la doble media móvil puede mejorarse en los siguientes aspectos:

  1. Optimización de los parámetros de MA y oscilador para mejores señales
  2. Añadir otros indicadores para el filtrado de señales
  3. Incorporar el stop loss y el take profit
  4. Añadir la determinación de tendencias para evitar operaciones prematuras
  5. Intervención manual y ajuste de parámetros adaptativos

Con una combinación de diferentes métodos de mejora, la estabilidad de la estrategia y la rentabilidad pueden mejorarse aún más.

Conclusión

La estrategia combina las fortalezas de las estrategias de inversión y de seguimiento de tendencias, generando operaciones solo cuando ambos tipos de señales se alinean. Captura oportunidades de inversión a corto plazo mientras monta tendencias más grandes para evitar trampas. El mecanismo de doble señal también mejora la fiabilidad.


/*backtest
start: 2023-12-10 00:00:00
end: 2023-12-17 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 13/04/2021
// This is combo strategies for get a cumulative signal. 
//
// 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.
//
// Second strategy
// Percent difference between price and MA
//
// 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


DBP_MA(Length,SellZone,BuyZone) =>
    pos = 0.0
    xSMA = sma(close, Length)
    nRes = abs(close - xSMA) * 100 / close
    pos:= iff(nRes < BuyZone, 1,
           iff(nRes > SellZone, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Difference between price and MA", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- Difference between price and MA ----")
LengthDBP = input(14, minval=1)
SellZone = input(0.54, minval=0.01, step = 0.01)
BuyZone = input(0.03, minval=0.01, step = 0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posDBP_MA = DBP_MA(LengthDBP,SellZone,BuyZone)
pos = iff(posReversal123 == 1 and posDBP_MA == 1 , 1,
	   iff(posReversal123 == -1 and posDBP_MA == -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 ? #b50404: possig == 1 ? #079605 : #0536b3 )

Más.