Estratégia quantitativa de duplo indicador

Autora:ChaoZhang, Data: 21-12-2023 10:59:16
Tags:

img

Resumo

A estratégia gerou sinais de negociação combinando o indicador 123 Reversal e o indicador RAVI. O 123 Reversal pertence ao tipo de estratégia de reversão, usando o movimento do preço nos últimos dois dias para determinar as tendências de preços futuras. O indicador RAVI determina se o preço entrou na zona de sobrecompra ou sobrevenda. A estratégia decide ir longo ou curto com base nos sinais combinados de ambos os indicadores.

Estratégia lógica

123 Reversão

Este indicador é baseado no valor K do indicador estocástico. Especificamente, ele vai longo quando o preço de fechamento hoje é menor do que os dois dias anteriores e a linha estocástica lenta de 9 dias é menor que 50. Ele vai curto quando o preço de fechamento hoje é maior do que os dois dias anteriores e a linha estocástica rápida de 9 dias é maior que 50.

Indicador RAVI

Este indicador gera sinais calculando a diferença entre médias móveis rápidas e lentas. Especificamente, a diferença entre MA de 7 dias e MA de 65 dias. Ele fica longo quando a diferença é maior do que um limiar e fica curto quando é menor do que um limiar.

Sinais de estratégia

Um sinal é gerado quando 123 Reversal e RAVI concordam na direção. O sinal longo é acionado quando ambos os indicadores mostram 1 e o sinal curto é acionado quando ambos mostram -1. Esta confirmação dupla evita sinais errados de um único indicador.

Análise dos prós

  • A combinação de dois indicadores melhora a precisão do sinal e evita sinais falsos
  • 123 A Reversal utiliza dados de preços e a RAVI utiliza dados da média móvel para determinar tendências a partir de múltiplas perspectivas
  • Os parâmetros do RAVI são ajustáveis e podem ser otimizados para diferentes produtos e ambientes de mercado
  • A combinação de reversão e tendência permite detectar reversões e tendências

Riscos e otimização

  • A combinação de dois indicadores pode, por vezes, levar a sinais conflitantes.
  • 123 A reversão é uma estratégia de alta frequência, que deve ser combinada com outras estratégias de baixa frequência para reduzir a frequência de negociação.
  • O RAVI é bom para detectar tendências de médio a longo prazo.

Conclusão

A estratégia considera fatores de reversão e tendência. A confirmação dupla ajuda a evitar falsos sinais. Os próximos passos podem ser a introdução de algoritmos de aprendizado de máquina para otimização de parâmetros adaptativos. Ou combinar essa estratégia com outros tipos de estratégia para alcançar a diversificação do portfólio, mantendo os lucros e reduzindo os drawdowns máximos.


/*backtest
start: 2023-11-20 00:00:00
end: 2023-12-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 31/05/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
// The indicator represents the relative convergence/divergence of the moving 
// averages of the financial asset, increased a hundred times. It is based on 
// a different principle than the ADX. Chande suggests a 13-week SMA as the 
// basis for the indicator. It represents the quarterly (3 months = 65 working days) 
// sentiments of the market participants concerning prices. The short moving average 
// comprises 10% of the one and is rounded to seven.
//
// 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


RAVI(LengthMAFast, LengthMASlow, TradeLine) =>
    pos = 0.0
    xMAF = sma(close, LengthMAFast)
    xMAS = sma(close, LengthMASlow)
    xRAVI = ((xMAF - xMAS) / xMAS) * 100
    pos:= iff(xRAVI > TradeLine, 1,
    	   iff(xRAVI < TradeLine, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Range Action Verification Index (RAVI)", 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, "---- Range Action Verification Index (RAVI) ----")
LengthMAFast = input(title="Length MA Fast", defval=7)
LengthMASlow = input(title="Length MA Slow", defval=65)
TradeLine = input(0.14, step=0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posRAVI = RAVI(LengthMAFast, LengthMASlow, TradeLine)
pos = iff(posReversal123 == 1 and posRAVI == 1 , 1,
	   iff(posReversal123 == -1 and posRAVI == -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.