Estratégia de negociação quantitativa multifatorial


Data de criação: 2023-09-13 14:46:59 última modificação: 2023-09-13 14:46:59
cópia: 0 Cliques: 672
1
focar em
1617
Seguidores

Uma estratégia de negociação quantitativa multifatorial que leva em consideração o fator de equilíbrio e o fator de oscilação para controlar o risco e aumentar a estabilidade. Este artigo descreve detalhadamente os princípios, os benefícios e os possíveis riscos dessa estratégia de negociação.

Princípio da estratégia

A estratégia consiste em três módulos principais:

  1. Fator de equilíbrio

O filtro de tendência é construído usando cinco médias EMA de diferentes períodos (8, 13, 21, 34 e 55 dias). As médias são alinhadas de curto a longo e só têm características de tendência e produzem sinais de negociação quando atravessam a média de curto período sobre a média de longo período.

  1. Fator de oscilação

Ao mesmo tempo, a combinação dos dois principais indicadores de oscilação RSI e Stochastic para verificar a ruptura, para evitar uma grande quantidade de falsas rupturas em mercados de turbulência.

O RSI tem um parâmetro de 14, quando o RSI está no intervalo de 40 a 70 e está no intervalo de 30 a 60

Os parâmetros estocásticos são: ((14,3,3)), quando a linha K é condição positiva no intervalo 20-80, e condição negativa no intervalo 5-95.

  1. Logística de entrada e saída

O sinal de entrada só é disparado quando o fator de mediana e o fator de indicador de oscilação estão simultaneamente qualificados; o sinal de saída é gerado quando qualquer fator não está mais qualificado.

Toda a estratégia usa um rigoroso mecanismo de filtragem de múltiplos fatores, garantindo a estabilidade e a confiabilidade dos sinais de negociação, enquanto mantém uma alta taxa de vitória.

Vantagens estratégicas

  • O projeto multifator filtra o ruído do mercado e evita o excesso de negociação
  • Considerando simultaneamente os fatores de tendência e os fatores de reversão, com os benefícios de acompanhar tendências e de negociar em pontos
  • A combinação de equilíbrio e oscilação permite capturar pontos de reversão na tendência
  • Espaço para otimização, para obter melhores efeitos de estratégia por meio de ajustes de parâmetros

Alerta de risco

  • A frequência de sinais de estratégia multifatorial é baixa, podendo perder algumas oportunidades de negociação
  • A linha média está atrasada e deve ser verificada em combinação com indicadores de menor período
  • Os indicadores de oscilação são propensos a produzir falsos sinais e devem ser usados apenas como um fator auxiliar.
  • Necessidade de regular otimização de parâmetros para se adaptar a mudanças no ambiente de mercado

Resumir

Esta estratégia combina com sucesso os benefícios do acompanhamento de tendências e inversão de negociação, o modelo multifator controla o risco de forma eficaz e pode obter um lucro excedente estável. Este é um modelo de estratégia de negociação quantitativa muito prático, que merece uma pesquisa e aplicação aprofundadas pela comunidade de inteligência artificial.

Código-fonte da estratégia
/*backtest
start: 2022-09-12 00:00:00
end: 2022-11-15 00:00:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "Combined Strategy", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type=strategy.commission.percent, commission_value = .0020, pyramiding = 0, slippage = 3, overlay = true)

//----------//
// MOMENTUM //
//----------//
ema8 = ema(close, 8)
ema13 = ema(close, 13)
ema21 = ema(close, 21)
ema34 = ema(close, 34)
ema55 = ema(close, 55)

plot(ema8, color=red, style=line, title="8", linewidth=1)
plot(ema13, color=orange, style=line, title="13", linewidth=1)
plot(ema21, color=yellow, style=line, title="21", linewidth=1)
plot(ema34, color=aqua, style=line, title="34", linewidth=1)
plot(ema55, color=lime, style=line, title="55", linewidth=1)

longEmaCondition = ema8 > ema13 and ema13 > ema21 and ema21 > ema34 and ema34 > ema55
exitLongEmaCondition = ema13 < ema55

shortEmaCondition = ema8 < ema13 and ema13 < ema21 and ema21 < ema34 and ema34 < ema55
exitShortEmaCondition = ema13 > ema55

// ----------  //
// OSCILLATORS //
// ----------- //
rsi = rsi(close, 14)
longRsiCondition = rsi < 70 and rsi > 40
exitLongRsiCondition = rsi > 70

shortRsiCondition = rsi > 30 and rsi < 60
exitShortRsiCondition = rsi < 30

// Stochastic
length = 14, smoothK = 3, smoothD = 3
kFast = stoch(close, high, low, 14)
dSlow = sma(kFast, smoothD)

longStochasticCondition = kFast < 80
exitLongStochasticCondition = kFast > 95

shortStochasticCondition = kFast > 20
exitShortStochasticCondition = kFast < 5

//----------//
// STRATEGY //
//----------//

longCondition = longEmaCondition and longRsiCondition and longStochasticCondition and strategy.position_size == 0
exitLongCondition = (exitLongEmaCondition or exitLongRsiCondition or exitLongStochasticCondition) and strategy.position_size > 0

if (longCondition)
    strategy.entry("LONG", strategy.long)
if (exitLongCondition)
    strategy.close("LONG")
    
shortCondition = shortEmaCondition and shortRsiCondition and shortStochasticCondition and strategy.position_size == 0
exitShortCondition = (exitShortEmaCondition or exitShortRsiCondition or exitShortStochasticCondition) and strategy.position_size < 0

if (shortCondition)
    strategy.entry("SHORT", strategy.short)
if (exitShortCondition)
    strategy.close("SHORT")