A estratégia de negociação de reversão de dupla confirmação combina o padrão de reversão 123 com o indicador RSI estocástico para criar um sistema robusto de reversão média.
A estratégia consiste em dois componentes:
Ele usa o padrão 123 para identificar potenciais reversões.
Caso o valor da posição em risco seja igual ou superior a 50% do valor da posição em risco, o valor da posição em risco deve ser calculado em função da posição em risco.
Curto se fechar > fechamento anterior e fechamento atual < fechamento anterior e estocástico rápido de 9 dias > 50
Isto fornece um sinal precoce para reversões de preços.
Aplica o indicador estocástico no RSI para confirmação adicional:
Calcular o RSI com comprimento 14
Calcular estocástico do RSI, com comprimentos 14, para obter K
Leve SMA de 3 dias de K para obter D
Se K cruzar acima de 80, indica longo. Se K cruzar abaixo de 20, indica curto.
Uma troca só é desencadeada quando ambas as partes concordam.
A principal vantagem desta estratégia é a confirmação dupla, que melhora a precisão e reduz os problemas.
A reversão da tendência permite a detecção precoce da reversão da tendência
O RSI estocástico confirma o sinal de reversão
A combinação melhora a taxa de vitória e reduz os falsos sinais
Os parâmetros podem ser otimizados para diferentes mercados
Implementação simples e limpa para negociação ao vivo
Alguns riscos a considerar para esta estratégia:
Risco de reversão fracassada. Reversões falsas podem causar perdas.
O risco de otimização de parâmetros. Parâmetros ruins levam a um mau desempenho.
Risco excessivo, otimização excessiva de dados históricos.
Risco de alta frequência de negociação. Mais sinais podem aumentar os custos.
Risco de erro de codificação, erros na lógica de implementação.
Possíveis soluções:
Utilize um dimensionamento prudente das posições para limitar as perdas.
Empregar métodos de otimização de avanço.
Concentre-se na estabilidade dos parâmetros, não nos altos retornos.
Ajustar as condições para reduzir a frequência do comércio.
Teste completamente a lógica do código.
A estratégia pode ser melhorada nos seguintes domínios:
Ajuste de parâmetros para mercados específicos.
Adicionando filtros para evitar reversões precipitadas.
Incorporar mecanismos de stop loss.
Reduzir a frequência do comércio com filtros adicionais.
Implementação de dimensionamento de posição dinâmica.
Ajuste de custos de transacção.
A estratégia de reversão de confirmação dupla é um sistema estável e prático para a reversão da média de curto prazo. Equilibra a sensibilidade para capturar reversões e a precisão da confirmação dupla. Com otimização e modificações adequadas, pode complementar efetivamente um portfólio de estratégia quantitativa.
/*backtest start: 2023-10-14 00:00:00 end: 2023-11-13 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 03/08/2021 // 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 strategy used to calculate the Stochastic RSI // // 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 SRSI(lengthRSI,lengthStoch,smoothK,smoothD, TopBand,LowBand) => pos = 0.0 Source = close rsi1 = rsi(Source, lengthRSI) k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK) d = sma(k, smoothD) d_cross_80 = cross(d,TopBand) pos := iff(k > TopBand, 1, iff(k < LowBand, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & Stochastic RSI", shorttitle="Combo", overlay = true) line1 = input(true, "---- 123 Reversal ----") Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- line2 = input(true, "---- Stochastic RSI ----") TopBand = input(80, step=0.01) LowBand = input(20, step=0.01) lengthRSI = input(14, minval=1) lengthStoch = input(14, minval=1) smoothK = input(3, minval=1) smoothD = input(3, minval=1) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posSRSI = SRSI(lengthRSI,lengthStoch,smoothK,smoothD, TopBand,LowBand) pos = iff(posReversal123 == 1 and posSRSI == 1 , 1, iff(posReversal123 == -1 and posSRSI == -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 )