La media móvil de tendencia recurrente combinada con la estrategia de patrón de reversión 123

El autor:¿ Qué pasa?, Fecha: 2024-02-21 16:02:32
Las etiquetas:

img

Resumen general

Esta estrategia combina el promedio recurrente de tendencia móvil y el patrón de inversión 123 en una señal compuesta para mejorar la estabilidad y la rentabilidad.

Principio

123 Modelo de reversión

Esta parte está inspirada en el libro Cómo triplicé mi dinero en el mercado de futuros de Ulf Jensen. Compra cuando el precio de cierre aumenta durante dos días consecutivos y el STO SLOWK de 9 días está por debajo de 50.

Promedio de tendencia móvil recurrente

Esta técnica se llama ajuste polinómico recursivo. Utiliza los precios de los últimos días y el precio de hoy para predecir el precio de mañana. Se corta cuando el precio previsto es mayor que el precio real de ayer, y se hace largo de lo contrario.

Ventajas

La estrategia combinada explota las fortalezas de ambas estrategias para evitar las limitaciones de una sola. El patrón de inversión 123 puede capturar las tendencias principales cuando ocurre una inversión de precios. El promedio de tendencia móvil recursiva puede juzgar la dirección del movimiento de precios con mayor precisión. Juntos forman señales compuestas más fuertes.

Riesgos y soluciones

  • El patrón de reversión 123 puede generar señales falsas debido a las fluctuaciones de precios a corto plazo.
  • El promedio de tendencia móvil recurrente puede responder lentamente a eventos repentinos.
  • Las dos estrategias pueden dar señales inconsistentes a veces. Una solución es abrir posiciones solo cuando surgen señales dobles, o seguir solo una señal basada en las condiciones del mercado.

Direcciones para mejorar

  • Prueba diferentes combinaciones de parámetros de período para encontrar el par óptimo.
  • Introduzca los mecanismos de pérdida automática.
  • Ajustar los parámetros en función de los diferentes productos y entornos de mercado.
  • Considere combinar con otras estrategias o indicadores para formar sistemas más robustos.

Conclusión

Esta estrategia combina dos tipos diferentes de estrategias y genera señales compuestas para mejorar la estabilidad.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 01/06/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
// Taken from an article "The Yen Recused" in the December 1998 issue of TASC, 
// written by Dennis Meyers. He describes the Recursive MA in mathematical terms 
// as "recursive polynomial fit, a technique that uses a small number of past values 
// of the estimated price and today's price to predict tomorrows price."
// Red bars color - short position. Green is long.
//
// 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


RMTA(Length) =>
    pos = 0.0
    Bot = 0.0
    nRes = 0.0
    Alpha = 2 / (Length+1)
    Bot := (1-Alpha) * nz(Bot[1],close) + close
    nRes := (1-Alpha) * nz(nRes[1],close) + (Alpha*(close + Bot - nz(Bot[1], 0)))
    pos:= iff(nRes > close[1], -1,
    	     iff(nRes < close[1], 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Recursive Moving Trend Average", 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, "---- Recursive Moving Trend Average ----")
LengthRMTA = input(21, minval=3)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posRMTA = RMTA(LengthRMTA)
pos = iff(posReversal123 == 1 and posRMTA == 1 , 1,
	   iff(posReversal123 == -1 and posRMTA == -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.