A estratégia de arbitragem de reversão dupla é um algoritmo de arbitragem que integra indicadores de reversão dupla.
A estratégia consiste em duas sub-estratégias:
123 Sistema de reversão: É do livro
Oscilador de oscilação de Gann: é adaptado do livro de Robert Krausz
A lógica de negociação desta estratégia de arbitragem é: quando as direções de sinal das duas sub-estratégias são consistentes, os sinais de negociação reais são gerados.
A maior vantagem desta estratégia é que, ao integrar os sinais das duas sub-estratégias, ele pode efetivamente filtrar sinais falsos e melhorar a precisão dos sinais de negociação. As duas sub-estratégias têm seus próprios pontos fortes. O sistema de reversão 123 pode capturar tendências de reversão súbita, enquanto o oscilador de balanço de Gann pode determinar a maturidade das reversões de tendência. Combinando os dois, pode tornar os sinais de negociação mais confiáveis, aumentando assim a estabilidade da estratégia.
O principal risco desta estratégia é que a probabilidade de direções inconsistentes de sinais de negociação das duas sub-estratégias é relativamente grande, o que pode levar a sinais de negociação insuficientes. Além disso, as próprias sub-estratégias também apresentam certos riscos de falsos sinais. A combinação desses dois fatores pode levar a um número insuficiente de negociações para a estratégia, sendo assim incapaz de capturar plenamente as oportunidades de mercado.
Para mitigar os riscos, os parâmetros das sub-estratégias podem ser ajustados para aumentar moderadamente a frequência de negociação, ou outros indicadores podem ser combinados para ajudar a filtrar sinais falsos.
A estratégia pode ser otimizada nos seguintes aspectos:
A estratégia de arbitragem de reversão dupla forma sinais de negociação relativamente fortes, integrando dois tipos diferentes de estratégias de reversão. Pode efetivamente filtrar o ruído e melhorar a qualidade do sinal, adequado para capturar oportunidades de reversão no mercado. No entanto, a probabilidade de sinais inconsistentes das sub-estratégias é relativamente grande, o que pode levar a uma frequência de negociação insuficiente. Além disso, as configurações de parâmetros das próprias estratégias de combinação são bastante complexas, exigindo testes e otimização suficientes para alcançar os melhores 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 )