A estratégia de equilíbrio de reversão dupla é uma estratégia combinada que utiliza estratégias de reversão e filtragem de decomposição de modo empírico (EMD).
O sistema de reversão 123 tem origem no livro
O EMD é um método de análise de dados adaptativo. Ele pode efetivamente decompor os dados em diferentes componentes de frequência e extrair a tendência de longo prazo. Aqui, definimos o comprimento para 20, delta para 0,5 e fração para 0,1 para gerar sinais de negociação com base nos componentes de frequência de preço.
A estratégia de balanço de reversão dupla combina os sinais de negociação do sistema de reversão 123 e da EMD. Ele confirma entradas apenas quando os sinais de ambos os sistemas concordam.
A estratégia de equilíbrio de reversão dupla aproveita as vantagens de ambas as estratégias de reversão e técnicas de processamento de sinal digital.
Ele também introduz o padrão 123 para evitar batidas indesejáveis e os parâmetros EMD configurados corretamente ajudam a filtrar algum ruído.
O maior risco dessa estratégia vem do fracasso da reversão. Embora o padrão 123 reduza essa probabilidade, a incerteza da negociação de reversão permanece alta. Além disso, o método EMD pode falhar durante mercados extremamente voláteis.
Para controlar esses riscos, os parâmetros do sistema de reversão podem ser ajustados para produzir sinais mais confiáveis. Diferentes métodos de filtragem também podem ser testados em vez de EMD para obter um melhor desempenho de filtragem. Além disso, é necessário manter pequenos tamanhos de posição para limitar as perdas.
A estratégia pode ser otimizada nos seguintes aspectos:
Teste diferentes conjuntos de parâmetros para o sistema de inversão para encontrar o ideal
Tente diferentes métodos de filtragem digital, por exemplo, transformação wavelet, transformação de Hilbert etc.
Adicionar stop loss para controlar a perda de uma única transação
Incorporar outros indicadores para garantir uma maior precisão direcional
Otimizar modelos de gestão de dinheiro como o dimensionamento de posições
A estratégia de balanço de reversão dupla combina os pontos fortes das estratégias de reversão e técnicas de processamento de sinal digital. Com ajuste adequado de parâmetros e controle de risco, gera um desempenho comercial estável.
/*backtest start: 2023-11-14 00:00:00 end: 2023-12-14 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 30/06/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 related article is copyrighted material from Stocks & Commodities Mar 2010 // // 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 Empirical(Length,Delta,Fraction) => pos = 0 xBandpassFilter = 0.0 xPeak = 0.0 xValley =0.0 xPrice = hl2 beta = cos(3.1415 * (360 / Length) / 180) gamma = 1 / cos(3.1415 * (720 * Delta / Length) / 180) alpha = gamma - sqrt(gamma * gamma - 1) xBandpassFilter := 0.5 * (1 - alpha) * (xPrice - xPrice[2]) + beta * (1 + alpha) * nz(xBandpassFilter[1]) - alpha * nz(xBandpassFilter[2]) xMean = sma(xBandpassFilter, 2 * Length) xPeak := iff (xBandpassFilter[1] > xBandpassFilter and xBandpassFilter[1] > xBandpassFilter[2], xBandpassFilter[1], nz(xPeak[1])) xValley := iff (xBandpassFilter[1] < xBandpassFilter and xBandpassFilter[1] < xBandpassFilter[2], xBandpassFilter[1], nz(xValley[1])) xAvrPeak = sma(xPeak, 50) xAvrValley = sma(xValley, 50) nAvrPeak = Fraction * xAvrPeak nAvrValley = Fraction * xAvrValley pos := iff(xMean > nAvrPeak and xMean > nAvrValley, 1, iff(xMean < nAvrPeak and xMean < nAvrValley, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & Empirical Mode Decomposition", shorttitle="Combo", overlay = true) Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- LengthEMD = input(20, minval=1) Delta = input(0.5) Fraction = input(0.1) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posEmpirical = Empirical(LengthEMD,Delta,Fraction) pos = iff(posReversal123 == 1 and posEmpirical == 1 , 1, iff(posReversal123 == -1 and posEmpirical == -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 )