Stratégie d'index de renversement quantitatif intégrant des signaux de tendance doubles

Auteur:ChaoZhang est là., Date: le 26-12-2023 à 15h47
Les étiquettes:

img

Résumé

La stratégie s'appelle Quantitative Reversal Index Strategy Integrating Dual Trend Signals. Elle intègre les signaux de deux stratégies différentes - un signal d'inversion à court terme basé sur l'indicateur stochastique et un signal de tendance à long terme basé sur le volume, les combinant en un signal d'entrée stable.

Principaux

La stratégie se compose de deux parties. La première partie utilise le Stoch de 9 jours pour générer des signaux d'inversion à court terme. Plus précisément, il va long lorsque la fermeture est plus élevée que la fermeture précédente et la ligne rapide de 9 jours du Stoch est inférieure à 50 tandis que la ligne lente est supérieure à 50; il va court lorsque la fermeture est plus faible que la fermeture précédente et la ligne rapide de 9 jours du Stoch est supérieure à 50 tandis que la ligne lente est inférieure à 50. De cette façon, la croix d'or et la croix de la mort du Stoch forment des signaux d'inversion à court terme.

La deuxième partie utilise l'indice de volume négatif (NVI) pour former des signaux de tendance à long terme. La formule de calcul du NVI est que si le volume du jour est inférieur à celui du jour précédent, le taux de variation du prix de clôture du jour est accumulé; si le volume du jour est supérieur ou égal au jour précédent, la valeur du jour précédent reste inchangée. Les signaux de tendance à long terme sont formés à travers la moyenne mobile de l'indicateur NVI.

Enfin, la stratégie combine les deux types de signaux. Ce n'est que lorsque le signal d'inversion à court terme et le signal de tendance à long terme sont dans la même direction qu'un signal d'entrée sera formé. Cela aide à filtrer les faux signaux et à améliorer la stabilité.

Analyse des avantages

Le plus grand avantage de cette stratégie est la stabilité des signaux. Le signal d'inversion à court terme capture les ajustements de marché à court terme, tandis que le signal de tendance à long terme garantit que la grande tendance reste inchangée. La combinaison des deux améliore considérablement la stabilité des signaux et peut filtrer efficacement les faux signaux qui ont un taux plus élevé par rapport aux signaux à court terme.

En outre, la stratégie comporte peu de paramètres et est facile à optimiser: les utilisateurs n'ont qu'à ajuster les paramètres du NVI pour s'adapter aux caractéristiques des différents marchés.

Analyse des risques

Le plus grand risque de cette stratégie est qu'il puisse y avoir un décalage entre les deux types de signaux. Il peut y avoir un décalage entre le signal d'inversion à court terme et le signal de tendance à long terme, ce qui entraînera des signaux incohérents pendant une période de temps, incapables de former un signal d'entrée stable.

En outre, l'indicateur NVI est également sensible aux augmentations anormales du volume des transactions, ce qui peut conduire à des jugements erronés sur les tendances à long terme.

Pour atténuer ces risques, les paramètres de l'indicateur NVI peuvent être ajustés en conséquence ou un stop loss peut être ajouté pour contrôler la perte par transaction.

Optimisation

Les principaux aspects pour optimiser cette stratégie sont les suivants:

  1. Optimiser les paramètres de l'indicateur Stoch pour améliorer la capacité de capture de l'inversion.

  2. Optimiser la durée du cycle de l'indicateur NVI afin d'améliorer la capacité d'identification des tendances à long terme.

  3. Ajouter des filtres de volume de négociation pour éliminer les faux signaux provenant de volumes de négociation anormaux.

  4. Ajouter des stratégies de stop loss au contrôle par perte de transaction.

Conclusion

La stratégie est conçue avec un mécanisme d'entrée stable basé sur l'idée d'un renversement à court terme et d'une tendance à long terme pour contrôler efficacement le taux de faux positifs et améliorer la stabilité du signal.


/*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 )

Plus de