
Esta estrategia utiliza un conjunto de factores de reversión de la masa de las acciones y el factor de la dinámica, para construir un modelo de doble factor con el fin de capturar las oportunidades de reversión de los mercados a corto plazo y persistencia a medio y largo plazo. La estrategia utiliza primero la forma 123 para determinar las señales de reversión de precios recientes, y luego se combina con el indicador RSI de Laguerre para determinar la tendencia de la línea media y media, y finalmente se logra una combinación efectiva de señales de doble factor.
La estrategia tiene dos partes:
Esta sección detecta señales de reversión a corto plazo de precios al juzgar los cambios en los precios de cierre de los dos días anteriores. En concreto, si el precio de cierre del día anterior es inferior al de los dos días anteriores y el precio de cierre de hoy es superior al del día anterior, entonces se puede juzgar la señal de reversión de precios. El indicador de Stoch se utiliza para un juicio auxiliar.
Esta sección construye un indicador RSI más sensible. El RSI tradicional es menos sensible a los cambios en los precios, mientras que el filtro de Lagrange permite construir indicadores con menos datos históricos, lo que aumenta la sensibilidad a los cambios en los precios. El nuevo indicador RSI se utiliza para determinar tendencias de línea media-larga.
En última instancia, la estrategia combina las señales de ambos, asegurando que la tendencia general no se invierta mientras se produce una reversión a corto plazo, para así capturar oportunidades de rebote.
La mayor ventaja de esta estrategia reside en la combinación exitosa de un factor de reversión y un factor de tendencia. El factor de reversión puede capturar oportunidades de rebote de los precios después de un ajuste a corto plazo, mientras que el factor de tendencia asegura que no se produzca un cambio en la dirección general de la venta / venta. En comparación con el modelo de inversión o volumen de movimiento único, el modelo de doble factor puede mejorar la precisión de la venta, a condición de reducir las señales falsas.
Además, la inclusión del indicador RSI de Raguel también aumenta la sensibilidad del modelo a los cambios de precio, lo cual es especialmente importante para el trading de alta frecuencia.
El principal riesgo de esta estrategia es que las señales de doble factor pueden diferir. En particular, durante los ajustes de la oscilación del mercado, al mismo tiempo que los precios a corto plazo se invierten con frecuencia, la tendencia de la línea media también puede cambiar.
Además, la elección incorrecta de los parámetros también puede conducir a un mal rendimiento de la estrategia. Los parámetros de los indicadores técnicos correspondientes al factor de reversión y al factor de tendencia necesitan ser ajustados y probados respectivamente, y la combinación incorrecta de parámetros también puede reducir considerablemente la eficacia de la estrategia.
La dirección de la estrategia para la optimización del siguiente paso se centra principalmente en la filtración de la señal y la selección de los parámetros. Se puede considerar la adición de más condiciones de filtración, que actúan en caso de discrepancia de la señal de doble factor, para asegurar que la posición se abra solo en situaciones de alta certeza. Esto puede reducir considerablemente la tasa de señales erróneas.
En la selección de parámetros, se pueden probar métodos de aprendizaje automático y de experimentación científica para realizar pruebas sistemáticas de las combinaciones de parámetros para encontrar el parámetro óptimo. Esto requiere un mayor soporte de capacidad computacional, pero puede mejorar significativamente la estabilidad de la estrategia.
La estrategia combina con éxito factores de reversión y factores de tendencia para capturar oportunidades de rebote a corto plazo y persistencia a medio y largo plazo a través de un modelo de doble factor. El agregado de un filtro RSI de Ragel también mejora la sensibilidad del modelo a los cambios en los precios. El siguiente trabajo se centrará en la filtración de señales y la optimización de parámetros para mejorar aún más la eficacia de la estrategia.
/*backtest
start: 2024-01-10 00:00:00
end: 2024-01-17 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 21/01/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
// This is RSI indicator which is more sesitive to price changes.
// It is based upon a modern math tool - Laguerre transform filter.
// With help of Laguerre filter one becomes able to create superior
// indicators using very short data lengths as well. The use of shorter
// data lengths means you can make the indicators more responsive to
// changes in the price.
//
// 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
LB_RSI(gamma,BuyBand,SellBand) =>
pos = 0.0
xL0 = 0.0
xL1 = 0.0
xL2 = 0.0
xL3 = 0.0
xL0 := (1-gamma) * close + gamma * nz(xL0[1], 1)
xL1 := - gamma * xL0 + nz(xL0[1], 1) + gamma * nz(xL1[1], 1)
xL2 := - gamma * xL1 + nz(xL1[1], 1) + gamma * nz(xL2[1], 1)
xL3 := - gamma * xL2 + nz(xL2[1], 1) + gamma * nz(xL3[1], 1)
CU = (xL0 >= xL1 ? xL0 - xL1 : 0) + (xL1 >= xL2 ? xL1 - xL2 : 0) + (xL2 >= xL3 ? xL2 - xL3 : 0)
CD = (xL0 >= xL1 ? 0 : xL1 - xL0) + (xL1 >= xL2 ? 0 : xL2 - xL1) + (xL2 >= xL3 ? 0 : xL3 - xL2)
nRes = iff(CU + CD != 0, CU / (CU + CD), 0)
pos := iff(nRes > BuyBand, 1,
iff(nRes < SellBand, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & Laguerre-based RSI", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
gamma = input(0.5, minval=-0.1, maxval = 0.9)
BuyBand = input(0.8, step = 0.01)
SellBand = input(0.2, step = 0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posLB_RSI = LB_RSI(gamma,BuyBand,SellBand)
pos = iff(posReversal123 == 1 and posLB_RSI == 1 , 1,
iff(posReversal123 == -1 and posLB_RSI == -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 )