Estratégia de negociação quantitativa com confirmação de múltiplos indicadores

Autora:ChaoZhang, Data: 15 de setembro de 2023 11:55:04
Tags:

Este artigo explica em detalhes uma estratégia quantitativa de negociação que utiliza confirmação de múltiplos indicadores para gerar sinais.

I. Lógica da estratégia

A estratégia combina duas técnicas:

(1) 123 Padrão de inversão

  1. Identificar os potenciais fundos e topos com base em relações próximas da vela.

  2. Utilize a estocástica para validar sinais de reversão e evitar sinais falsos.

(2) Acumulação/Distribuição suavizada

  1. Calcular acumulação/distribuição e média móvel.

  2. Determinar as tendências com base nas divergências entre o indicador e a MA.

  3. Só são recolhidos sinais agradáveis de ambas as técnicas.

Ao exigir confirmações múltiplas, certos sinais falsos podem ser filtrados e a precisão melhorada.

II. Vantagens da Estratégia

A maior vantagem é a confirmação de múltiplos indicadores, que supera as limitações de um único indicador e aumenta a robustez.

Outra vantagem é a combinação de dois tipos de técnicas diferentes para uma maior abrangência.

Por fim, as combinações também fornecem mais opções de afinação.

III. Riscos potenciais

No entanto, existem alguns riscos:

Em primeiro lugar, as combinações de múltiplos indicadores aumentam a dificuldade de otimização e os riscos de sobreajuste.

Em segundo lugar, as discrepâncias entre indicadores exigem regras claras de julgamento.

Por último, alguns indicadores ainda apresentam problemas de atraso.

IV. Resumo

Em resumo, este artigo explicou uma estratégia de negociação quantitativa utilizando confirmações de múltiplos indicadores. melhora os sinais através da síntese, mas requer gerenciar a dificuldade de otimização e os lags de indicadores.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 21/07/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
// Accumulation is a term used to describe a market controlled by buyers;
// whereas distribution is defined by a market controlled by sellers.
// Williams recommends trading this indicator based on divergences:
//  Distribution of the security is indicated when the security is making 
//  a new high and the A/D indicator is failing to make a new high. Sell.
//  Accumulation of the security is indicated when the security is making 
//  a new low and the A/D indicator is failing to make a new low. Buy. 
//
// 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


SWAD(Length) =>
    pos = 0.0
    xWAD = 0.0
    xPrice = close
    xWAD:= iff(close > nz(close[1], 0), nz(xWAD[1],0) + close - low[1], 
             iff(close < nz(close[1],0), nz(xWAD[1],0) + close - high[1],0))
    xWADMA = sma(xWAD, Length)
    pos:= iff(xWAD > xWADMA, 1,
             iff(xWAD < xWADMA, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Smoothed Williams AD", 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, "---- Smoothed Williams AD ----")
LengthWillAD = input(14, step = 1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posSWAD = SWAD(LengthWillAD)
pos = iff(posReversal123 == 1 and posSWAD == 1 , 1,
	   iff(posReversal123 == -1 and posSWAD == -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.