Estratégia de combinação de reversão de momentum multifatorial


Data de criação: 2023-11-21 11:20:31 última modificação: 2023-11-21 11:20:31
cópia: 1 Cliques: 600
1
focar em
1617
Seguidores

Estratégia de combinação de reversão de momentum multifatorial

Visão geral

A estratégia é uma estratégia de combinação de vários fatores, combinando o uso de um fator de reversão e um fator de momentum, com o objetivo de encontrar oportunidades de reversão no mercado. A estratégia usa primeiro um fator de reversão longo e negativo para identificar oportunidades de reversão após a queda de liquidação, e depois usa o indicador de momentum para uma segunda filtragem, filtrando os falsos sinais de reversão sob a grande tendência, para bloquear oportunidades de arbitragem de reversão de curta linha.

Princípio da estratégia

A estratégia consiste em duas partes:

  1. 123 Fator de inversão

Esta parte usa a lógica do inverso intradiário para determinar a relação entre o preço de fechamento do dia anterior e o preço de fechamento dos dois dias anteriores, em conjunto com a identificação de oportunidades de inverso em uma linha K lenta. A lógica específica é:

  • Sinais de compra: um sinal de compra é gerado quando o preço de fechamento aumenta após dois dias consecutivos de queda e a linha K lenta é inferior a 50 por nove dias;

  • Sinais de venda: dois dias consecutivos de alta no preço de fechamento, um dia de queda no preço de fechamento, e nove dias de linha K rápida acima de 50, geram um sinal de venda.

  1. Indicador de Vibração Dinâmica de Elgdick (ETSI)

Esta seção utiliza a metodologia de três EMA para a construção do indicador de dinâmica. A fórmula do indicador é a seguinte:

   xPrice1 = close - close[1]  
   xPrice2 = abs(close - close[1])
   xSMA_R = EMA(EMA(EMA(xPrice1,r), s), u) 
   xSMA_aR = EMA(EMA(EMA(xPrice2, r), s), u)
   xTSI = xSMA_R / xSMA_aR * 100
   xEMA_TSI = EMA(xTSI, N)

Entre eles, xSMA_R é o EMA de suavização da dinâmica de preços, xSMA_aR é o EMA de suavização da amplitude de flutuação de preços, xTSI é o indicador de dinâmica composto pelo par dos dois, xEMA_TSI é o EMA de suavização de xTSI novamente. O indicador julga a relação entre xTSI e xEMA_TSI, como sinal de direção de negociação.

Finalmente, a estratégia opera AND com os dois segmentos de sinais, gerando instruções de negociação reais somente quando os dois fatores emitem sinais simultaneamente.

Vantagens estratégicas

A principal vantagem desta estratégia é a sua concepção multifacetada, que permite filtrar os sinais falsos e descobrir oportunidades de negociação de alta qualidade.

  1. O fator de reversão 123 permite identificar pontos de retorno de curto prazo após a queda de liquidação.

  2. O Índice de Dinâmica de Elgdick é eficaz para determinar a direção da grande tendência, evitando que um sinal de reversão ocorra em uma grande tendência, filtrando assim os falsos sinais.

  3. Os dois segmentos do sinal usam a operação AND, que pode melhorar a qualidade do sinal e aumentar a estabilidade da estratégia.

Risco estratégico

Apesar da estratégia de design multifatorial para controlar os riscos, os principais riscos são os seguintes:

  1. O sinal de inversão pode ocorrer durante uma tendência de choque e não pode ser lucrativo.

  2. A definição de parâmetros entre os dois fatores é subjetiva e pode ser excessivamente adequada a uma raça específica.

  3. A reversão de preços pode aumentar o risco de perdas.

Esses riscos podem ser mitigados por meio de otimização de parâmetros para mais variedades, controle do tempo de posse após a reversão e monitoramento em tempo real de mudanças na relação de indicadores.

Otimização de Estratégia

A estratégia pode ser melhorada em vários aspectos:

  1. Ajustar os parâmetros dos dois fatores para encontrar uma amostra de dados mais correspondente.

  2. Aumentar as estratégias de stop loss e controlar as perdas individuais.

  3. Uma combinação diferente de parâmetros é usada para variedades de tendência e variedades de tremor.

  4. Aumentar o mecanismo de ponderação dos fatores para que os melhores fatores tenham mais peso.

  5. Adição de algoritmos de aprendizagem de máquina para otimização e atualização automática de parâmetros.

Resumir

A estratégia combina com sucesso os fatores de reversão e os indicadores de momentum para o design de otimização de múltiplos fatores. Ela pode identificar efetivamente oportunidades de reversão em curto prazo e usar os indicadores de momentum para fazer uma segunda verificação do sinal, aumentando assim a taxa de vitória da estratégia. Embora a estratégia ainda tenha algum espaço para melhorias, sua idéia central fornece uma boa referência para o design de estratégias quantitativas.

Código-fonte da estratégia
/*backtest
start: 2023-10-21 00:00:00
end: 2023-11-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 30/07/2020
// 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
// r - Length of first EMA smoothing of 1 day momentum        4
// s - Length of second EMA smoothing of 1 day smoothing      8    
// u- Length of third EMA smoothing of 1 day momentum         6  
// Length of EMA signal line                                  3
// Source of Ergotic TSI                                      Close
//
// This is one of the techniques described by William Blau in his book "Momentum,
// Direction and Divergence" (1995). If you like to learn more, we advise you to 
// read this book. His book focuses on three key aspects of trading: momentum, 
// direction and divergence. Blau, who was an electrical engineer before becoming 
// a trader, thoroughly examines the relationship between price and momentum in 
// step-by-step examples. From this grounding, he then looks at the deficiencies 
// in other oscillators and introduces some innovative techniques, including a 
// fresh twist on Stochastics. On directional issues, he analyzes the intricacies 
// of ADX and offers a unique approach to help define trending and non-trending periods.  
//
// 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


ETSI(r,s,u,SmthLen) =>
    pos = 0
    xPrice = close
    xPrice1 = xPrice - xPrice[1]
    xPrice2 = abs(xPrice - xPrice[1])
    xSMA_R = ema(ema(ema(xPrice1,r), s),u)
    xSMA_aR = ema(ema(ema(xPrice2, r), s),u)
    Val1 = 100 * xSMA_R
    Val2 = xSMA_aR
    xTSI = iff (Val2 != 0, Val1 / Val2, 0)
    xEMA_TSI = ema(xTSI, SmthLen)
    pos:= iff(xTSI > xEMA_TSI, 1,
    	   iff(xTSI < xEMA_TSI, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Ergodic TSI", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
r = input(4, minval=1)
s = input(8, minval=1)
u = input(6, minval=1)
SmthLen = input(3, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posETSI = ETSI(r,s,u,SmthLen)
pos = iff(posReversal123 == 1 and posETSI == 1 , 1,
	   iff(posReversal123 == -1 and posETSI == -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 )