Estratégia de negociação de inércia de inversão quantitativa de dois fatores

Autora:ChaoZhang, Data: 2024-01-12 14:38:02
Tags:

img

Resumo

A Estratégia de Negociação de Inércia de Reversão de Fator Duplo Quantitativa é uma estratégia de negociação quantitativa que combina sinais de reversão de preço e sinais de inércia de mercado.

Princípios

A estratégia consiste em duas partes principais:

  1. A parte de reversão de preço adota a ideia proposta por Ulf Jensen em seu livro, especificamente: quando o preço de fechamento sobe continuamente por 2 dias e o Stochastic Lento de 9 dias está abaixo de 50, vá longo; quando o preço de fechamento cai continuamente por 2 dias e o Stochastic Rápido de 9 dias está acima de 50, vá curto.

  2. A parte de inércia do mercado usa o índice de volatilidade relativa (RVI). O valor deste indicador flutua entre 0 e 100. Acima de 50 indica a tendência de longo prazo do mercado é ascendente; abaixo de 50 indica a tendência de longo prazo do mercado é descendente.

Em resumo, esta estratégia integra sinais de reversão de preços e sinais de inércia do mercado para determinar finalmente a direção atual do mercado.

Análise das vantagens

A maior vantagem desta estratégia é que combina duas principais ideias de negociação inversão e seguimento de tendências. Os sinais de reversão podem capturar correções de curto prazo e fornecer oportunidades de negociação. Os sinais de inércia garantem a abertura de posições apenas quando as tendências de longo prazo se alinham para filtrar efetivamente o ruído.

Além disso, o mecanismo impulsionado por dois fatores pode melhorar a qualidade do sinal. Otimizar os parâmetros estocásticos e suavizar o RVI também fornece espaço para otimização de estratégia.

Análise de riscos

Os principais riscos que esta estratégia enfrenta incluem:

  1. O risco de sinais de reversão serem identificados de forma imprecisa.

  2. O risco de que os sinais de inércia gerem sinais incorretos.

  3. O risco de perdas de oportunidades de negociação devido ao mau alinhamento do tempo dos sinais de dois fatores.

Além disso, as estratégias de reversão enfrentam riscos de perda aumentados nos mercados em tendência.

Orientações de otimização

A estratégia pode ser otimizada nos seguintes aspectos:

  1. Otimizar os parâmetros do indicador estocástico para melhorar a qualidade e a atualidade da identificação dos sinais de reversão.

  2. Otimizar o parâmetro de suavização do indicador RVI para aumentar a precisão do julgamento da inércia.

  3. Ensaiar diferentes períodos de retenção para determinar o ciclo de retenção ideal.

  4. Incorporar mecanismos de stop loss. testar diferentes pontos de stop loss para encontrar a posição de stop loss ideal.

  5. Considerar a incorporação de outros sinais de fatores, como as aberrações do volume de negociação, para formar estratégias orientadas por vários fatores.

Resumo

A Estratégia de Negócios de Inércia de Reversão de Fator Duplo Quantitativa considera de forma abrangente os fatores de reversão e tendência, usando o indicador Estocástico e o indicador RVI para gerar sinais de negociação. A estratégia tem vantagens como impulsionada por dois fatores, capturando oportunidades de reversão e filtragem de sinal. Pode ser melhorada através de otimização de parâmetros multifacetada.


/*backtest
start: 2023-12-12 00:00:00
end: 2024-01-11 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 27/11/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
// The inertia indicator measures the market, stock or currency pair momentum and 
// trend by measuring the security smoothed RVI (Relative Volatility Index). 
// The RVI is a technical indicator that estimates the general direction of the 
// volatility of an asset.
// The inertia indicator returns a value that is comprised between 0 and 100. 
// Positive inertia occurs when the indicator value is higher than 50. As long as 
// the inertia value is above 50, the long-term trend of the security is up. The inertia 
// is negative when its value is lower than 50, in this case the long-term trend is 
// down and should stay down if the inertia stays below 50.
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
//
// 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

Inertia(Period, Smooth) =>
    pos = 0.0
    nU = 0.0
    nD = 0.0
    xPrice = close
    StdDev = stdev(xPrice, Period)
    d = iff(close > close[1], 0, StdDev)
    u = iff(close > close[1], StdDev, 0)
    nU := (13 * nz(nU[1],0) + u) / 14
    nD := (13 * nz(nD[1],0) + d) / 14
    nRVI = 100 * nU / (nU + nD)
    nRes = ema(nRVI, Smooth)
    pos :=iff(nRes > 50, 1,
    	   iff(nRes < 50, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Inertia Strategy", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Period = input(10, minval=1)
Smooth = input(14, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posInertia = Inertia(Period, Smooth)
pos = iff(posReversal123 == 1 and posInertia == 1 , 1,
	   iff(posReversal123 == -1 and posInertia == -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.