Estratégia de inversão de impulso de rastreamento de dois fatores

Autora:ChaoZhang, Data: 2024-01-18 11:33:40
Tags:

img

Resumo

Esta estratégia combina o fator de reversão de preços e o fator de impulso das ações para construir um modelo de dois fatores para capturar oportunidades decorrentes de reversões de curto prazo e persistência de longo prazo no mercado.

Princípios de estratégia

A estratégia consiste em duas partes:

  1. 123 Fator de reversão do padrão

    Esta parte detecta sinais de reversão de preços a curto prazo, examinando a mudança nos preços de fechamento nos últimos dois dias. Especificamente, se o preço de fechamento de ontem for menor do que os dois dias anteriores e o preço de fechamento de hoje for maior do que os de ontem, pode ser determinado como um sinal de reversão de preços de alta. O indicador Stoch serve como um meio auxiliar para auxiliar o julgamento.

  2. Fator RSI filtrado de Laguerre

    Esta parte constrói um indicador RSI mais responsivo usando filtros Laguerre. A sensibilidade dos indicadores RSI tradicionais às mudanças de preço é relativamente baixa. Em contraste, os filtros Laguerre podem construir indicadores usando menos dados históricos, melhorando assim a sensibilidade às flutuações de preços. O novo indicador RSI é usado para determinar a tendência de médio a longo prazo.

Em última análise, a estratégia combina os sinais dos dois fatores, garantindo que as reversões a curto prazo ocorram em conformidade com as tendências globais do mercado, a fim de capitalizar as oportunidades de retração.

Vantagens da estratégia

A maior vantagem desta estratégia reside na combinação bem-sucedida de fatores de reversão e tendência. O fator de reversão capta oportunidades de retração de curto prazo após consolidações de preços, enquanto o fator de tendência garante que o viés geral longo / curto não mude.

Além disso, a introdução do RSI Laguerre aumenta a sensibilidade do modelo às alterações de preços, o que é especialmente crucial para as negociações de alta frequência.

Análise de riscos

O principal risco que esta estratégia enfrenta é a possibilidade de sinais conflitantes dos dois fatores. Particularmente durante as correções voláteis do mercado, os preços de curto prazo podem reverter com frequência, enquanto as tendências de médio a longo prazo também começam a mudar. Em tais casos, os dois tipos de sinais podem facilmente não combinar ou sofrer atrasos. Isso leva a sinais de estratégia incorretos e oportunidades de entrada perdidas ou perdas desnecessárias.

Além disso, configurações de parâmetros inadequadas também podem levar a um baixo desempenho da estratégia. Os parâmetros dos indicadores técnicos pertencentes aos fatores de reversão e tendência precisam ser otimizados e testados separadamente.

Orientações de otimização

Os principais focos de futuras otimizações para esta estratégia envolvem a filtragem de sinais e seleção de parâmetros. Mais condições de filtragem podem ser introduzidas para entrar em vigor quando os sinais de dois fatores entrarem em conflito, garantindo que as negociações sejam colocadas apenas em cenários de alta certeza. Isso pode reduzir drasticamente os sinais falsos.

Para a selecção de parâmetros, métodos de aprendizagem de máquina e de experiências científicas poderiam ser tentados para testar sistematicamente várias combinações de parâmetros e chegar a configurações ideais.

Resumo

Esta estratégia fundiu com sucesso os fatores de reversão e tendência através de um modelo de dois fatores para capitalizar os pullbacks de curto prazo e a persistência de médio a longo prazo.


/*backtest
start: 2024-01-10 00:00:00
end: 2024-01-17 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 21/01/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 is RSI indicator which is more sesitive to price changes. 
// It is based upon a modern math tool - Laguerre transform filter.
// With help of Laguerre filter one becomes able to create superior 
// indicators using very short data lengths as well. The use of shorter 
// data lengths means you can make the indicators more responsive to 
// changes in the price.
//
// 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

LB_RSI(gamma,BuyBand,SellBand) =>
    pos = 0.0
    xL0 = 0.0
    xL1 = 0.0
    xL2 = 0.0
    xL3 = 0.0
    xL0 := (1-gamma) * close + gamma * nz(xL0[1], 1)
    xL1 := - gamma * xL0 + nz(xL0[1], 1) + gamma * nz(xL1[1], 1)
    xL2 := - gamma * xL1 + nz(xL1[1], 1) + gamma * nz(xL2[1], 1)
    xL3 := - gamma * xL2 + nz(xL2[1], 1) + gamma * nz(xL3[1], 1)
    CU = (xL0 >= xL1 ? xL0 - xL1 : 0) + (xL1 >= xL2 ? xL1 - xL2 : 0)  + (xL2 >= xL3 ? xL2 - xL3 : 0)
    CD = (xL0 >= xL1 ? 0 : xL1 - xL0) + (xL1 >= xL2 ? 0 : xL2 - xL1)  + (xL2 >= xL3 ? 0 : xL3 - xL2)
    nRes = iff(CU + CD != 0, CU / (CU + CD), 0)
    pos := iff(nRes > BuyBand, 1,
    	     iff(nRes < SellBand, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Laguerre-based RSI", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
gamma = input(0.5, minval=-0.1, maxval = 0.9)
BuyBand = input(0.8, step = 0.01)
SellBand = input(0.2, step = 0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posLB_RSI = LB_RSI(gamma,BuyBand,SellBand)
pos = iff(posReversal123 == 1 and posLB_RSI == 1 , 1,
	   iff(posReversal123 == -1 and posLB_RSI == -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.