Stratégie combinée d'inversion de dynamique multifactorielle


Date de création: 2023-11-21 11:20:31 Dernière modification: 2023-11-21 11:20:31
Copier: 1 Nombre de clics: 600
1
Suivre
1617
Abonnés

Stratégie combinée d’inversion de dynamique multifactorielle

Aperçu

Cette stratégie est une stratégie de combinaison de plusieurs facteurs, combinée à l’utilisation d’un facteur de retournement et d’un facteur de dynamique, dans le but de trouver des opportunités de retournement sur le marché. La stratégie utilise d’abord un facteur de retournement négatif pour identifier les opportunités de retournement après la chute de la pile, puis utilise l’indicateur de dynamique pour effectuer un deuxième filtrage et filtrer les faux signaux de retournement sous la grande tendance, afin de bloquer les opportunités de arbitrage de retournement sur la courte ligne.

Principe de stratégie

La stratégie est composée de deux volets:

  1. 123 facteur de réversion

Cette section utilise la théorie de l’inversion intraday pour juger de la relation entre la clôture du jour précédent et la clôture des deux jours précédents, en combinaison avec l’identification de l’opportunité d’une inversion de la ligne K lente. La logique spécifique est la suivante:

  • Signaux d’achat: deux jours consécutifs de baisse du cours de clôture, puis une hausse du cours de clôture le jour même, et neuf jours de ralentissement de la ligne K en dessous de 50, génèrent un signal d’achat;

  • Signaux de vente: deux jours consécutifs d’augmentation du prix de clôture et une baisse du prix de clôture le jour même, et neuf jours de ligne K rapide supérieure à 50, génèrent un signal de vente.

  1. Indicateur de dynamique des oscillations d’Elgdick (ETSI)

Cette section utilise la méthode des trois EMA pour construire l’indicateur de dynamique. La formule de l’indicateur est la suivante:

   xPrice1 = close - close[1]  
   xPrice2 = abs(close - close[1])
   xSMA_R = EMA(EMA(EMA(xPrice1,r), s), u) 
   xSMA_aR = EMA(EMA(EMA(xPrice2, r), s), u)
   xTSI = xSMA_R / xSMA_aR * 100
   xEMA_TSI = EMA(xTSI, N)

Parmi eux, xSMA_R est la valeur d’élasticité de l’EMA de la dynamique des prix, xSMA_aR est la valeur d’élasticité de l’EMA de l’amplitude des fluctuations des prix, xTSI est l’indicateur de dynamique composé du rapport entre les deux, et xEMA_TSI est l’élasticité de l’EMA de l’xTSI. L’indicateur juge la relation entre xTSI et xEMA_TSI, en tant que signal de direction de négociation.

Enfin, la stratégie utilise les deux parties du signal pour effectuer des opérations AND, et les instructions de négociation réelles ne sont générées que lorsque les deux parties du facteur émettent des signaux de synchronisation.

Avantages stratégiques

Le plus grand avantage de cette stratégie réside dans sa conception multifactorielle, qui permet de filtrer les faux signaux et de découvrir des opportunités de transactions de haute qualité.

  1. 123 Le facteur de retournement permet d’identifier les points de rebond à court terme après la baisse de la correction.

  2. L’indicateur de dynamique d’Ergdic permet de déterminer efficacement la direction d’une grande tendance et d’éviter que des signaux de retournement ne se produisent dans une grande tendance, filtrant ainsi les faux signaux.

  3. Les deux parties du signal utilisent le calcul AND, ce qui améliore la qualité du signal et la stabilité de la stratégie.

Risque stratégique

Bien que les stratégies aient été conçues en fonction de plusieurs facteurs pour maîtriser les risques, les principaux risques sont les suivants:

  1. Les signaux d’inversion peuvent se produire dans une tendance oscillante et ne peuvent pas être rentables.

  2. Les paramètres entre les deux facteurs sont subjectifs et peuvent être suradaptés à une race particulière.

  3. Une reprise après un revirement pourrait accroître le risque de pertes.

Ces risques peuvent être atténués par l’optimisation des paramètres pour s’adapter à plus de variétés, le contrôle du temps de détention post-inversion, la surveillance en temps réel des variations de la relation d’indicateur, etc.

Optimisation de la stratégie

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

  1. Ajustez les paramètres des deux facteurs pour trouver un échantillon de données plus approprié.

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

  3. Différentes combinaisons de paramètres sont utilisées pour les variétés tendances et les variétés tremblantes.

  4. Augmentation du mécanisme de pondération des facteurs pour donner plus de poids aux facteurs les plus performants.

  5. Ajout d’algorithmes d’apprentissage automatique pour l’optimisation et la mise à jour automatique des paramètres.

Résumer

La stratégie a réussi à combiner le facteur de réversion et les indicateurs de dynamique pour réaliser une conception d’optimisation multifonctionnelle. Elle permet d’identifier efficacement les opportunités de réversion à court terme et d’utiliser les indicateurs de dynamique pour effectuer une deuxième vérification du signal, ce qui améliore le taux de réussite de la stratégie. Bien qu’il existe encore une certaine marge d’amélioration de la stratégie, ses idées centrales fournissent une bonne référence pour la conception de stratégies quantitatives.

Code source de la stratégie
/*backtest
start: 2023-10-21 00:00:00
end: 2023-11-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 30/07/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
// r - Length of first EMA smoothing of 1 day momentum        4
// s - Length of second EMA smoothing of 1 day smoothing      8    
// u- Length of third EMA smoothing of 1 day momentum         6  
// Length of EMA signal line                                  3
// Source of Ergotic TSI                                      Close
//
// This is one of the techniques described by William Blau in his book "Momentum,
// Direction and Divergence" (1995). If you like to learn more, we advise you to 
// read this book. His book focuses on three key aspects of trading: momentum, 
// direction and divergence. Blau, who was an electrical engineer before becoming 
// a trader, thoroughly examines the relationship between price and momentum in 
// step-by-step examples. From this grounding, he then looks at the deficiencies 
// in other oscillators and introduces some innovative techniques, including a 
// fresh twist on Stochastics. On directional issues, he analyzes the intricacies 
// of ADX and offers a unique approach to help define trending and non-trending periods.  
//
// 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


ETSI(r,s,u,SmthLen) =>
    pos = 0
    xPrice = close
    xPrice1 = xPrice - xPrice[1]
    xPrice2 = abs(xPrice - xPrice[1])
    xSMA_R = ema(ema(ema(xPrice1,r), s),u)
    xSMA_aR = ema(ema(ema(xPrice2, r), s),u)
    Val1 = 100 * xSMA_R
    Val2 = xSMA_aR
    xTSI = iff (Val2 != 0, Val1 / Val2, 0)
    xEMA_TSI = ema(xTSI, SmthLen)
    pos:= iff(xTSI > xEMA_TSI, 1,
    	   iff(xTSI < xEMA_TSI, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Ergodic TSI", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
r = input(4, minval=1)
s = input(8, minval=1)
u = input(6, minval=1)
SmthLen = input(3, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posETSI = ETSI(r,s,u,SmthLen)
pos = iff(posReversal123 == 1 and posETSI == 1 , 1,
	   iff(posReversal123 == -1 and posETSI == -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 )