Stratégie de trading quantitative à double facteur d'inertie inversée


Date de création: 2024-01-12 14:38:02 Dernière modification: 2024-01-12 14:38:02
Copier: 0 Nombre de clics: 634
1
Suivre
1617
Abonnés

Stratégie de trading quantitative à double facteur d’inertie inversée

Aperçu

La stratégie de négociation quantique qui combine les signaux de retour de prix et les signaux d’inertie du marché. La stratégie utilise d’abord un indicateur aléatoire pour réaliser un signal de retour de prix, puis un signal d’inertie du marché combiné à un indicateur de volatilité relative, pour finalement réaliser une décision de négociation axée sur les deux facteurs.

Principe de stratégie

La stratégie est basée sur deux éléments principaux:

  1. La rétrogradation des prix s’appuie en partie sur les idées développées par Ulf Jensen dans son ouvrage, à savoir: faire plus lorsque le prix de clôture est en hausse pendant 2 jours consécutifs et que l’indicateur stochastique lent est inférieur à 50 le 9ème jour; faire vide lorsque le prix de clôture est en baisse pendant 2 jours consécutifs et que l’indicateur stochastique rapide est supérieur à 50 le 9ème jour.

  2. L’indicateur de volatilité relative (RVI) est utilisé pour la partie inertie du marché. La valeur de cet indicateur oscille entre 0 et 100, plus de 50 indique une tendance à la hausse à long terme du marché; moins de 50 indique une tendance à la baisse à long terme du marché.

Dans l’ensemble, cette stratégie intègre les signaux de revers des prix et les signaux d’inertie du marché, pour finalement déterminer la direction du marché actuel. Lorsque les deux signaux sont identiques, un signal de transaction est généré.

Analyse des avantages

Le plus grand avantage de cette stratégie réside dans la combinaison de deux stratégies de négociation: les signaux de retournement captent les ajustements à court terme et offrent des opportunités de négociation; les signaux inertiels garantissent que les positions ne sont ouvertes que lorsque la tendance à long terme est cohérente et filtrent efficacement le bruit.

En outre, le double facteur d’entraînement améliore la qualité du signal, tandis que l’optimisation des paramètres de l’indicateur stochastique et l’optimisation de la fluidité du RVI offrent de la place pour l’optimisation des stratégies.

Analyse des risques

Les principaux risques de cette stratégie sont:

  1. Risque de détection inexacte des signaux de retournement. Il faut vérifier si les paramètres sont raisonnables.

  2. Les signaux inertiels sont à risque d’émettre des signaux erronés. Les indicateurs RVI sont eux-mêmes en retard et nécessitent un ajustement des paramètres de lissage.

  3. Les signaux binaires ne correspondent pas au temps et risquent de manquer une opportunité de transaction. La correspondance doit être testée avec différents paramètres.

En outre, les stratégies d’inversion risquent d’accroître les pertes dans les marchés tendanciels. Les règles de stop-loss doivent être strictement respectées.

Direction d’optimisation

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

  1. Optimiser les paramètres de l’indicateur stochastique pour identifier la qualité et la rapidité du signal de retournement.

  2. Optimiser les paramètres de lissage des indicateurs RVI et améliorer la précision des jugements d’inertie.

  3. Tester les différentes périodes de détention pour déterminer la meilleure période de détention.

  4. Adhésion au mécanisme d’arrêt des pertes. Retour sur les différents points d’arrêt pour trouver les meilleures positions d’arrêt.

  5. On peut envisager d’ajouter d’autres signaux de facteurs, tels que l’hyperactivité des volumes de transactions, pour former un moteur multifacteur.

Résumer

La stratégie de trading quantifie les facteurs de revers et de tendance, utilise les indicateurs stochastiques et les indicateurs RVI pour générer des signaux de trading. La stratégie présente des avantages tels que la conduite du double facteur, la capture des opportunités de revers et le filtrage des signaux, et peut être encore améliorée par l’optimisation de plusieurs paramètres.

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