La estrategia de arbitraje de reversión dual es un algoritmo de arbitraje que integra indicadores de reversión dual. Combina el sistema de reversión 123 y las subestrategias del oscilador oscilante de swing de Gann y genera señales comerciales cuando ambas subestrategias emiten señales al mismo tiempo para llevar a cabo operaciones de arbitraje.
La estrategia consta de dos subestrategias:
123 Sistema de inversión: Es del libro
Oscilador de oscilación de Gann: Adaptado del libro de Robert Krausz
La lógica de negociación de esta estrategia de arbitraje es: cuando las direcciones de las señales de las dos subestrategias son consistentes, se generan señales comerciales reales.
La mayor ventaja de esta estrategia es que al integrar las señales de las dos subestrategias, puede filtrar eficazmente las señales falsas y mejorar la precisión de las señales de negociación. Las dos subestrategias tienen sus propias fortalezas. El sistema de inversión 123 puede capturar tendencias repentinas de inversión, mientras que el oscilador de oscilación de Gann puede determinar la madurez de las inversiones de tendencia. La combinación de las dos puede hacer que las señales de negociación sean más confiables, mejorando así la estabilidad de la estrategia.
El principal riesgo de esta estrategia es que la probabilidad de direcciones de señales comerciales inconsistentes de las dos subestrategias es relativamente grande, lo que puede conducir a señales comerciales insuficientes. Además, las subestrategias mismas también tienen ciertos riesgos de señales falsas. La combinación de estos dos factores puede conducir a un número insuficiente de operaciones para la estrategia, por lo que no puede capturar completamente las oportunidades de mercado.
Para mitigar los riesgos, los parámetros de las subestrategias se pueden ajustar para aumentar moderadamente la frecuencia de negociación, o se pueden combinar otros indicadores para ayudar a filtrar señales falsas.
La estrategia se puede optimizar en los siguientes aspectos:
La estrategia de arbitraje de reversión dual forma señales comerciales relativamente fuertes al integrar dos tipos diferentes de estrategias de reversión. Puede filtrar efectivamente el ruido y mejorar la calidad de la señal, adecuada para capturar oportunidades de reversión en el mercado. Sin embargo, la probabilidad de señales inconsistentes de las subestrategias es relativamente grande, lo que puede conducir a una frecuencia comercial insuficiente. Además, los parámetros de configuración de las propias estrategias de combinación son bastante complejos, lo que requiere pruebas y optimización suficientes para lograr los mejores resultados.
/*backtest start: 2024-01-06 00:00:00 end: 2024-02-05 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 04/11/2020 // 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 // The Gann Swing Oscillator has been adapted from Robert Krausz's book, // "A W.D. Gann Treasure Discovered". The Gann Swing Oscillator helps // define market swings. // // 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 GannSO(Length) => pos = 0.0 xGSO = 0.0 xHH = highest(Length) xLL = lowest(Length) xGSO:= iff(xHH[2] > xHH[1] and xHH[0] > xHH[1], 1, iff(xLL[2] < xLL[1] and xLL[0] < xLL[1], -1, nz(xGSO[1],0))) pos := iff(xGSO > 0, 1, iff(xGSO < 0, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & Gann Swing Oscillator", shorttitle="Combo", overlay = true) Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- LengthGSO = input(5, minval=1) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posGannSO = GannSO(LengthGSO) pos = iff(posReversal123 == 1 and posGannSO == 1 , 1, iff(posReversal123 == -1 and posGannSO == -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 )