Estratégia de HistoAlert de RSI de Reversão Dupla

Autora:ChaoZhang, Data: 2024-01-04 17:17:24
Tags:

img

Resumo

A estratégia de HistoAlert RSI de Reversão Dupla gera sinais de negociação mais precisos combinando a estratégia de 123 Reversão e a estratégia de HistoAlert RSI. A estratégia de 123 Reversão julga pontos de reversão de preços e a estratégia de RSI HistoAlert julga pontos de sobrecompra e sobrevenda. Os sinais integrados de ambas as estratégias podem produzir sinais de negociação mais confiáveis.

Estratégia lógica

123 Estratégia de reversão

A estratégia 123 Reversão baseia-se na hipótese de que: os sinais de reversão de preços aparecem frequentemente 2 dias antes da reversão real de preços.

As regras específicas são:

  • Sinal de compra: fechamento anterior < fechamento de 2 dias atrás E fechamento atual > fechamento anterior E linha K lenta de 9 dias abaixo de 50
  • sinal de venda: fechamento anterior > fechamento de 2 dias atrás E fechamento atual < fechamento anterior E linha K rápida de 9 dias acima de 50

Ele usa a relação de preço 2 dias antes da reversão para julgar pontos de reversão potenciais.

RSI Estratégia de HistoAlert

A estratégia RSI HistoAlert modifica o indicador RSI:

  • Escala os valores do RSI para -100 a 100
  • Gerar sinais de negociação quando o RSI exceder as linhas de alerta de compra/venda pré-estabelecidas

Utiliza o valor absoluto do RSI para indicar estados de sobrecompra/supervenda e desencadeia sinais.

Vantagens

Esta estratégia combina duas ideias estratégicas diferentes para complementar os pontos fortes e gerar sinais mais fiáveis:

  1. 123 A estratégia de reversão é boa para capturar pontos de reversão de preços. A estratégia RSI HistoAlert é boa para capturar pontos de sobrecompra / sobrevenda. A combinação leva a julgamentos mais abrangentes das chances de negociação.
  2. As duas estratégias utilizam indicadores de entrada diferentes, o que diminui a probabilidade de falsos sinais e melhora a fiabilidade.
  3. Ambas as estratégias têm espaço de otimização.

Riscos

Os principais riscos são:

  1. A reversão dos preços não é garantida. Os preços podem continuar a tendência mesmo se forem cumpridas as regras do sinal de reversão.
  2. O indicador RSI pode ter uma alta taxa de sinais falsos.
  3. Ambas as estratégias podem dar sinais errados simultaneamente, o que duplica os riscos de direção errada.

As soluções são:

  1. Ajuste fino dos parâmetros de reversão para garantir sinais apenas em pontos de reversão de alta probabilidade.
  2. Ajustar as posições da linha de alerta do RSI HistoAlert para diminuir as taxas de sinal falso.
  3. Adicionar outras confirmações de indicadores para evitar riscos excessivos de direcção errada.

Orientações de otimização

A estratégia pode ser otimizada em aspectos:

  1. Teste diferentes combinações de parâmetros de ambas as estratégias para encontrar valores ótimos.
  2. Introduzir mais fatores como MA, indicadores de volatilidade para verificação multifatorial para filtrar mais sinais falsos.
  3. Teste diferentes esquemas de períodos de retenção. A estratégia atual utiliza retenção de momento. A tendência após a retenção pode ser avaliada.
  4. Conjuntos de parâmetros separados para o longo e curto prazo.

Conclusão

A estratégia de HistoAlert de RSI de Reversão Dupla combina estratégias de reversão de preço e de julgamento de sobrecompra / sobrevenda para sinais de negociação mais confiáveis em comparação com o uso de uma única estratégia.


/*backtest
start: 2022-12-28 00:00:00
end: 2024-01-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 28/06/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 simple indicator modified 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


RSI_Hist(RSIPeriod,BuyAlertLevel,SellAlertLevel,RSIHistoModify) =>
    pos = 0.0
    xPrice = close
    RSIMain = (rsi(xPrice, RSIPeriod) - 50) * RSIHistoModify
    pos:= iff(RSIMain > BuyAlertLevel, 1,
    	     iff(RSIMain < SellAlertLevel, -1, nz(pos[1], 0)))
    pos

strategy(title="Combo Backtest 123 Reversal & RSI HistoAlert", 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, "---- RSI HistoAlert ----")
RSIPeriod = input(13, minval=1)
BuyAlertLevel = input(-10)
SellAlertLevel = input(10)
RSIHistoModify = input(1.5)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posRSI_Hist = RSI_Hist(RSIPeriod,BuyAlertLevel,SellAlertLevel,RSIHistoModify)
pos = iff(posReversal123 == 1 and posRSI_Hist == 1 , 1,
	   iff(posReversal123 == -1 and posRSI_Hist == -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 )

Mais.