Esta estrategia combina el indicador de impulso CMO y el indicador de reversión Estocástico para construir un modelo multifactorial para descubrir oportunidades comerciales en diferentes entornos de mercado.
La estrategia consta de dos subestrategias:
123 Estrategia de reversión
Utilice el Estocástico de 9 días para identificar los niveles de sobrecompra y sobreventa
Ir largo si el precio de cierre sube durante 2 días consecutivos y el estocástico está por debajo de 50
Ir corto si el precio de cierre cae durante 2 días consecutivos y el Estocástico es superior a 50
Estrategia de valor absoluto de las OCM
Calcular el valor absoluto de la OCM
OCM por encima de 70 indica sobrecompra, va corto
OCM por debajo de 20 indica sobreventa, ir largo
Por último, se genera una señal comercial cuando dos subestrategias coinciden.
La estrategia hace pleno uso de los puntos fuertes del indicador de impulso CMO y el indicador de reversión Estocástico.
La estrategia tiene las siguientes ventajas:
El modelo multifáctor se adapta a los diferentes entornos de mercado
CMO tiene una fuerte capacidad de detección de tendencias, Stochastic localiza con precisión los puntos de reversión
Sólo se negocian cuando dos señales acuerdan evitar señales falsas y mejorar la rentabilidad
Gran espacio de ajuste de parámetros permite la optimización para diferentes productos y marcos de tiempo
La combinación de indicadores a largo y corto plazo revela más oportunidades
Reglas simples y claras, fáciles de entender y automatizar, adecuadas para el comercio de algo
La estrategia también presenta los siguientes riesgos:
Existe la probabilidad de señales falsas de las subestrategias, los parámetros necesitan optimización
Una reversión repentina de la tendencia puede llevar a grandes pérdidas
Frecuencia de operaciones alta, los costes de transacción deben tenerse en cuenta
El retraso de los indicadores conduce a retrasos
El ajuste de parámetros es un reto para diferentes productos
Soluciones:
Optimizar los parámetros de la subestrategia para reducir las señales falsas
Utilizar el stop loss para limitar las pérdidas por operación
Ajustar las reglas de entrada a una menor frecuencia de negociación
Emplear datos de tick para minimizar el retraso
Aplicar el aprendizaje automático para el ajuste automático de parámetros
La estrategia puede mejorarse en los siguientes aspectos:
Introducir más factores como la volatilidad y el volumen para un modelo sistemático de múltiples factores
Construir un mecanismo dinámico de optimización de parámetros que se adapte a los regímenes de mercado
Optimizar la lógica de entrada utilizando probabilidad y suavización exponencial, etc.
Asegurar la posición a largo plazo con operaciones a corto plazo para alcanzar objetivos duales
Extraer más características con aprendizaje profundo para construir reglas de negociación no lineales
Explorar modelos libres de parámetros para evitar sesgos humanos
Incorporar datos y noticias de alta frecuencia para reducir el retraso
La estrategia utiliza el indicador de impulso CMO y el indicador de reversión Estocástico para construir un modelo multifactor para oportunidades de negociación en mercados de tendencia y laterales. En comparación con los modelos de un solo factor, el enfoque multifactor se adapta mejor a entornos de mercado complejos. Mientras tanto, el gran espacio de ajuste de parámetros y las reglas simples lo hacen fácil de optimizar y automatizar, adecuado para el desarrollo del comercio de algo. Sin embargo, la gestión de riesgos es crucial, y se requiere una alta demanda de selección de parámetros y optimización de modelos. En general, la estrategia de combo de reversión de impulso proporciona una idea de negociación sistemática digna de referencia y exploración.
/*backtest start: 2023-09-22 00:00:00 end: 2023-10-22 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 17/09/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 // This indicator plots the absolute value of CMO. CMO was developed by Tushar // Chande. A scientist, an inventor, and a respected trading system developer, // Mr. Chande developed the CMO to capture what he calls "pure momentum". For // more definitive information on the CMO and other indicators we recommend the // book The New Technical Trader by Tushar Chande and Stanley Kroll. // The CMO is closely related to, yet unique from, other momentum oriented indicators // such as Relative Strength Index, Stochastic, Rate-of-Change, etc. It is most closely // related to Welles Wilder`s RSI, yet it differs in several ways: // - It uses data for both up days and down days in the numerator, thereby directly // measuring momentum; // - The calculations are applied on unsmoothed data. Therefore, short-term extreme // movements in price are not hidden. Once calculated, smoothing can be applied to // the CMO, if desired; // - The scale is bounded between +100 and -100, thereby allowing you to clearly see // changes in net momentum using the 0 level. The bounded scale also allows you to // conveniently compare values across different securities. // // 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 CMOabs(Length, TopBand, LowBand) => pos = 0 xMom = abs(close - close[1]) xSMA_mom = sma(xMom, Length) xMomLength = close - close[Length] nRes = abs(100 * (xMomLength / (xSMA_mom * Length))) pos := iff(nRes > TopBand, -1, iff(nRes < LowBand, 1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & CMOabs", shorttitle="Combo", overlay = true) Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- LengthCMO = input(9, minval=1) TopBand = input(70, minval=1) LowBand = input(20, maxval=0) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posCMOabs = CMOabs(LengthCMO, TopBand, LowBand) pos = iff(posReversal123 == 1 and posCMOabs == 1 , 1, iff(posReversal123 == -1 and posCMOabs == -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 )