Estrategia combinada de media móvil de tendencia móvil recursiva combinada con reversión de patrón 123


Fecha de creación: 2024-02-21 16:02:32 Última modificación: 2024-02-21 16:02:32
Copiar: 3 Número de Visitas: 686
1
Seguir
1617
Seguidores

Estrategia combinada de media móvil de tendencia móvil recursiva combinada con reversión de patrón 123

Descripción general

Esta estrategia combina las estrategias de movimiento recurrente de la línea media y la inversión de la forma 123 para formar una señal integral que mejora la estabilidad y la rentabilidad de la estrategia.

El principio

123 Reversión de las formas

Esta sección se basa en el libro de Ulf Jensen Cómo obtener el triple de ganancias en el mercado de futuros. Su señal de compra es: el precio de cierre de los últimos dos días ha aumentado y el valor de STO SLOWK del ciclo de 9 días ha aumentado por debajo de 50. La señal de venta es: el precio de cierre de los últimos dos días ha disminuido y el valor de STO FASTK del ciclo de 9 días ha disminuido por encima de 50.

Línea media de tendencia de movimiento recurrente

La idea es utilizar los precios de los últimos días y los precios del día para predecir el precio del día siguiente. Cuando el precio previsto es más alto que el precio real de ayer, mira hacia abajo, y al contrario, mira hacia arriba.

Las ventajas

Esta combinación de estrategias puede aprovechar las ventajas de ambas estrategias y evitar las limitaciones de una sola. La inversión de la forma 123 puede capturar un movimiento más grande cuando el precio se invierte. La línea de tendencia recurrente de movimiento recurrente puede determinar con mayor precisión la dirección del movimiento del precio.

Riesgos y soluciones

  • La inversión de forma 123 existe la posibilidad de emitir señales erróneas debido a las fluctuaciones de precios a corto plazo. Se pueden ajustar adecuadamente los parámetros para filtrar el ruido.
  • La línea media de tendencias móviles recursivas puede ser más lenta en la respuesta a eventos repentinos. Se puede considerar la combinación de otros indicadores para determinar tendencias locales.
  • Las dos señales de estrategia pueden no coincidir. En este caso, se puede considerar abrir una posición solo cuando se emitan dos señales, o elegir seguir solo una señal según la situación del mercado.

Dirección de optimización

  • Puede probar combinaciones de diferentes parámetros de ciclo para encontrar la mejor pareja de parámetros
  • Se puede introducir un mecanismo de parada automática
  • Los parámetros se pueden ajustar según las diferentes variedades y condiciones del mercado
  • Se puede considerar la combinación con otras estrategias o indicadores para formar un sistema integrado más fuerte

Resumir

Esta estrategia combina dos tipos diferentes de estrategias para mejorar la estabilidad mediante la generación de señales combinadas. Al mismo tiempo, se puede combinar las ventajas de ambas para capturar el punto de inflexión del precio y determinar la trayectoria futura del precio. Si se continúa optimizando, se espera un mejor rendimiento.

Código Fuente de la Estrategia
/*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 )