Esta estrategia combina principalmente señales de dos tipos diferentes de estrategias para superponer señales de estrategia y mejorar la calidad de la señal.
Esta estrategia se origina en la página 183 del libro
Esta estrategia utiliza la diferencia entre el promedio móvil de 3 días y el promedio móvil de 10 días para construir un indicador. Específicamente, es el promedio móvil exponencial de 3 días menos el promedio móvil exponencial de 10 días. La diferencia es la línea rápida. Tomando un promedio móvil simple de 16 días de esta línea rápida se obtiene la línea lenta. Cuando la línea rápida rompe la línea lenta de abajo a arriba, vaya largo; cuando la línea rápida rompe la línea lenta de arriba a abajo, vaya corto.
Esta señal compuesta de apilamiento de múltiples estrategias tiene las siguientes ventajas:
Filtrar señales falsas y mejorar la calidad de la señal
Dado que se requieren dos estrategias para emitir señales en la misma dirección al mismo tiempo, se puede evitar el impacto de señales falsas en una sola estrategia, mejorando así la fiabilidad de la señal.
Integrar varias ideas comerciales
La combinación de estrategias de reversión y estrategias de tendencia integra dos ideas en cierta medida Reducir los puntos ciegos de la estrategia y obtener una perspectiva de mercado más completa.
Alta flexibilidad
Según las necesidades reales, la combinación de estrategias participantes puede ajustarse para crear estrategias de combinación más diversificadas mediante la combinación de diferentes tipos de estrategias.
Suposiciones contradictorias
La suposición básica de esta estrategia es que múltiples estrategias pueden verificar señales entre sí.
Señales inconsistentes
Cuando las dos señales de estrategia son inconsistentes, es imposible determinar cuál estrategia es más confiable, y existe un cierto riesgo de decisión.
Desajuste de parámetros
La configuración incorrecta de parámetros puede hacer que algunas estrategias no funcionen correctamente, lo que resulta en que no se logren los efectos esperados de las combinaciones de estrategias.
Contramedidas:
Establecer puntos de stop loss para controlar las pérdidas de señales individuales
Optimizar los parámetros para garantizar el funcionamiento normal de la estrategia
La estrategia también puede optimizarse en las siguientes direcciones:
Aumentar la combinación de más estrategias
Condiciones previas de filtración
De acuerdo con las condiciones del mercado, pueden fijarse algunas condiciones previas, como el filtrado del mercado, para evitar la apertura de posiciones en condiciones de mercado inadecuadas.
Ajuste dinámico de las ponderaciones de la estrategia
Los pesos de las diferentes estrategias en la combinación pueden ajustarse dinámicamente de acuerdo con su rendimiento histórico, de modo que las estrategias con un mejor rendimiento puedan desempeñar un papel más importante.
Optimiza los detalles del parámetro
Se puede utilizar un enfoque más sistemático para probar y optimizar cuidadosamente los parámetros internos de cada estrategia con el fin de obtener los parámetros óptimos.
/*backtest start: 2024-01-11 00:00:00 end: 2024-01-18 00:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 04/12/2019 // 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 // TradeStation does not allow the user to make a Multi Data Chart with // a Tick Bar Chart and any other type a chart. This indicator allows the // user to plot a daily 3-10 Oscillator on a Tick Bar Chart or any intraday interval. // Walter Bressert's 3-10 Oscillator is a detrending oscillator derived // from subtracting a 10 day moving average from a 3 day moving average. // The second plot is an 16 day simple moving average of the 3-10 Oscillator. // The 16 period moving average is the slow line and the 3/10 oscillator is // the fast line. // For more information on the 3-10 Oscillator see Walter Bressert's book // "The Power of Oscillator/Cycle Combinations" // // 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 D_Three(Length1, Length2, Length3) => pos = 0.0 xPrice = security(syminfo.tickerid,"D", hl2) xfastMA = ema(xPrice, Length1) xslowMA = ema(xPrice, Length2) xMACD = xfastMA - xslowMA xSignal = sma(xMACD, Length3) pos := iff(xSignal > xMACD, -1, iff(xSignal < xMACD, 1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & D_Three Ten Osc", shorttitle="Combo", overlay = true) Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- Length1 = input(3, minval=1) Length2 = input(10, minval=1) Length3 = input(16, minval=1) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posD_Three = D_Three(Length1, Length2, Length3) pos = iff(posReversal123 == 1 and posD_Three == 1 , 1, iff(posReversal123 == -1 and posD_Three == -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 )