Stratégie quantitative d'indice de retournement intégrant des signaux de tendance double


Date de création: 2023-12-26 15:47:36 Dernière modification: 2023-12-26 15:47:36
Copier: 0 Nombre de clics: 536
1
Suivre
1623
Abonnés

Stratégie quantitative d’indice de retournement intégrant des signaux de tendance double

Aperçu

Cette stratégie est appelée stratégie d’inversion de la quantification du signal de tendance double fusion. Elle fusionne deux signaux de stratégie différents, un signal de revers à court terme basé sur des indicateurs aléatoires et un autre signal de tendance à long terme basé sur la quantité de transaction, qui se combinent pour former un signal d’entrée stable.

Principe de stratégie

Cette stratégie se compose de deux parties. La première partie utilise l’indicateur Stoch à 9 jours pour générer un signal de revers à court terme. Plus précisément, si le prix de clôture est élevé par rapport à la veille, alors que la ligne rapide du 9 est inférieure à 50 et la ligne lente est supérieure à 50, faites plus; si le prix de clôture est faible par rapport à la veille, alors que la ligne rapide du 9 est supérieure à 50 et la ligne lente est inférieure à 50, faites moins.

La deuxième partie utilise l’indice de volume négatif de transactions (NVI) pour former un signal de tendance à long terme. La formule de calcul du NVI est la suivante: si le volume de transactions est inférieur à celui du jour précédent, le taux de variation du prix de clôture du jour est agrégé; si le volume de transactions est supérieur ou égal au jour précédent, la valeur du jour précédent est maintenue.

Enfin, la stratégie combine les deux signaux. Un signal d’entrée ne se forme que lorsque le signal de retour à court terme et le signal de tendance à long terme sont synchronisés. Cela aide à filtrer les faux signaux et à renforcer la stabilité.

Analyse des avantages

Le plus grand avantage de cette stratégie réside dans la stabilité du signal. Les signaux de revers à court terme permettent de capturer les ajustements à court terme du marché, tandis que les signaux de tendance à long terme assurent le maintien de la tendance générale. La combinaison de ces deux éléments améliore considérablement la stabilité du signal et permet de filtrer efficacement les signaux à court terme avec un taux de fausses déclarations plus élevé.

En outre, la stratégie est moins complexe et facile à optimiser. Il suffit d’ajuster les paramètres de la NVI pour s’adapter aux caractéristiques des différents marchés.

Analyse des risques

Le plus grand risque de cette stratégie réside dans le fait qu’il peut y avoir un écart de temps entre les deux signaux. Il peut y avoir un certain retard entre les signaux de retournement à court terme et les signaux de tendance à long terme, ce qui peut entraîner une incohérence entre les deux signaux pendant un certain temps, ce qui empêche la formation d’un signal d’entrée stable.

En outre, l’indicateur NVI est plus sensible aux variations anormalement importantes du volume des transactions, ce qui peut conduire à des jugements erronés sur les tendances à long terme.

Pour réduire ces risques, il est possible d’ajuster les paramètres de l’indicateur NVI ou d’augmenter le stop-loss pour contrôler les pertes individuelles.

Direction d’optimisation

Cette stratégie peut être optimisée principalement dans les domaines suivants:

  1. Optimiser les paramètres de l’indicateur de Stoch pour améliorer la capacité de capture en retour.

  2. Optimisation de la longueur des cycles de l’indicateur NVI et amélioration de la capacité à identifier les tendances à long terme

  3. Augmentation des conditions de filtrage de la circulation pour éliminer les fausses signaux de circulation anormale.

  4. Il est important d’augmenter les stratégies de stop-loss et de contrôler les pertes individuelles.

Résumer

La stratégie est basée sur la réflexion sur les retournements à court terme et les tendances à long terme. La conception d’un mécanisme d’entrée stable permet de contrôler efficacement le taux de fausses déclarations et d’améliorer la stabilité du signal. La prochaine étape peut être optimisée en ajustant les paramètres, en ajoutant des conditions de filtrage, etc., pour améliorer encore la stabilité de la stratégie.

Code source de la stratégie
/*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 )