Estratégia quantitativa de índice de reversão integrando sinais de tendência dupla


Data de criação: 2023-12-26 15:47:36 última modificação: 2023-12-26 15:47:36
cópia: 0 Cliques: 536
1
focar em
1623
Seguidores

Estratégia quantitativa de índice de reversão integrando sinais de tendência dupla

Visão geral

A estratégia é chamada de estratégia de inversão de quantificação de duplo sinal de tendência de fusão. Ela combina dois diferentes sinais de estratégia, um sinal de inversão de curto prazo baseado em indicadores aleatórios e outro sinal de tendência de longo prazo baseado em volume de transação, que se combinam para formar um sinal de entrada estável.

Princípio da estratégia

A estratégia consiste em duas partes. A primeira parte usa o indicador Stoch de 9 dias para gerar um sinal de reversão de curto prazo. Concretamente, se o preço de fechamento for mais alto do que o dia anterior, ao mesmo tempo em que a linha rápida de 9 dias é inferior a 50 e a linha lenta é superior a 50, faça mais; se o preço de fechamento for mais baixo do que o dia anterior, ao mesmo tempo em que a linha rápida de 9 dias é superior a 50 e a linha lenta é inferior a 50, faça um vazio.

A segunda parte usa o índice de volume de negócios negativo (NVI) para formar um sinal de tendência de longo prazo. A fórmula de cálculo do NVI é que, se o volume de negócios do dia for menor do que o do dia anterior, a taxa de variação do preço de fechamento do dia será acumulada; se o volume de negócios do dia for maior ou igual ao dia anterior, o valor do dia anterior será mantido inalterado.

Finalmente, a estratégia combina os dois sinais. O sinal de entrada só é formado quando o sinal de reversão de curto prazo e o sinal de tendência de longo prazo são sincronizados. Isso ajuda a filtrar os falsos sinais e aumenta a estabilidade.

Análise de vantagens

A maior vantagem dessa estratégia é a estabilidade do sinal. O sinal de reversão de curto prazo pode capturar o ajuste de curto prazo do mercado, enquanto o sinal de tendência de longo prazo garante a invariabilidade da tendência geral. A combinação dos dois aumenta consideravelmente a estabilidade do sinal e pode filtrar efetivamente os sinais de curto prazo com maior taxa de falsidade.

Além disso, a estratégia tem menos parâmetros e é fácil de otimizar. Os usuários só precisam ajustar os parâmetros do NVI para se adaptar às características de diferentes mercados.

Análise de Riscos

O maior risco dessa estratégia é que pode haver um diferencial de tempo entre os dois sinais. Pode haver um certo atraso entre um sinal de reversão de curto prazo e um sinal de tendência de longo prazo, o que pode levar a um período de tempo em que os dois sinais não são consistentes e não podem formar um sinal de entrada estável.

Além disso, o indicador NVI é mais sensível a variações anormalmente grandes no volume de transações, o que pode levar a um julgamento errôneo de tendências de longo prazo.

Para reduzir esses riscos, pode-se ajustar adequadamente os parâmetros do indicador NVI, ou aumentar o stop loss para controlar os perdas individuais.

Direção de otimização

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

  1. Optimizar os parâmetros do indicador de Stoch para melhorar a capacidade de captura de retorno.

  2. Otimizar a duração do ciclo do indicador NVI e aumentar a capacidade de identificar tendências de longo prazo.

  3. Aumentar as condições de filtragem de tráfego para excluir falsos sinais de tráfego anormal.

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

Resumir

A estratégia baseia-se em uma visão de reversão de curto prazo e tendências de longo prazo para projetar um mecanismo de entrada estável, que pode controlar efetivamente a taxa de falsidade e aumentar a estabilidade do sinal. O próximo passo pode ser otimizado em termos de ajuste de parâmetros, aumento de condições de filtragem e outros aspectos, aumentando ainda mais a estabilidade da estratégia.

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 29/03/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 theory behind the indexes is as follows: On days of increasing 
// volume, you can expect prices to increase, and on days of decreasing 
// volume, you can expect prices to decrease. This goes with the idea of 
// the market being in-gear and out-of-gear. Both PVI and NVI work in similar 
// fashions: Both are a running cumulative of values, which means you either 
// keep adding or subtracting price rate of change each day to the previous day`s 
// sum. In the case of PVI, if today`s volume is less than yesterday`s, don`t add 
// anything; if today`s volume is greater, then add today`s price rate of change. 
// For NVI, add today`s price rate of change only if today`s volume is less than 
// yesterday`s.
//
// 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


NVI(EMA_Len) =>
    pos = 0.0
    nRes = 0.0
    xROC = roc(close, EMA_Len)
    nRes := iff(volume < volume[1], nz(nRes[1], 0) + xROC, nz(nRes[1], 0))
    nResEMA = ema(nRes, EMA_Len)
    pos := iff(nRes > nResEMA, 1,
    	     iff(nRes < nResEMA, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Negative Volume Index", 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, "---- Negative Volume Index ----")
EMA_Len = input(50, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posNVI = NVI(EMA_Len)
pos = iff(posReversal123 == 1 and posNVI == 1 , 1,
	   iff(posReversal123 == -1 and posNVI == -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 )