Stratégie de trading quantitative multifactorielle


Date de création: 2023-09-13 14:46:59 Dernière modification: 2023-09-13 14:46:59
Copier: 0 Nombre de clics: 672
1
Suivre
1617
Abonnés

Stratégie de trading quantitative multi-facteurs qui prend en compte le facteur de linéarité et le facteur d’indicateur d’oscillation pour contrôler le risque et améliorer la stabilité. Cet article détaille les principes, les avantages et les risques potentiels de cette stratégie de trading.

Principe de stratégie

La stratégie est composée de trois modules:

  1. Facteur d’équilibre

Le filtre de tendance est construit à l’aide de cinq moyennes EMA de différentes périodes (8, 13, 21, 34 et 55 jours). Les moyennes sont rangées de courtes à longues et ne présentent des caractéristiques de tendance et ne génèrent un signal de négociation que si elles traversent les moyennes de courte période.

  1. Facteur de mesure des oscillations

Le RSI et le Stochastic sont des indicateurs de volatilité qui permettent de vérifier les ruptures afin d’éviter de nombreuses fausses ruptures dans un marché en crise.

Le paramètre RSI est de 14, lorsque le RSI est dans la fourchette 40-70 et dans la fourchette 30-60

Le paramètre stochastique est [ 14 , 3 , 3 ] , lorsque la ligne K est conforme à la condition de plus dans la plage 20-80 et à la condition de moins dans la plage 5-95.

  1. Logistique d’entrée et de sortie

Un signal d’entrée n’est déclenché que lorsque le facteur de la moyenne et le facteur de l’indicateur de l’oscillation sont simultanément admissibles; un signal de sortie est déclenché lorsque l’un des facteurs n’est plus admissible.

L’ensemble de la stratégie utilise un mécanisme de filtrage multifonctionnel rigoureux, qui assure la stabilité et la fiabilité du signal de négociation tout en conservant un taux de victoire élevé.

Avantages stratégiques

  • La conception multifonctionnelle filtre efficacement le bruit du marché et évite la survente
  • Prendre en compte à la fois les facteurs de tendance et les facteurs d’inversion, ainsi que les avantages du suivi des tendances et des transactions ponctuelles
  • La combinaison d’une courbe régulière et d’un indicateur d’oscillation permet de capturer des points de retournement dans une tendance
  • Il y a beaucoup d’espace pour l’optimisation et des paramètres peuvent être ajustés pour obtenir de meilleurs résultats stratégiques.

Conseils à la prudence

  • Les signaux de stratégie multifacteur sont moins fréquents et risquent de manquer certaines opportunités de trading.
  • Le retard de la ligne moyenne doit être vérifié en combinaison avec un indicateur à cycle plus court.
  • L’indicateur d’oscillation est susceptible de produire de faux signaux et ne doit être utilisé qu’en tant que facteur auxiliaire.
  • Nécessité d’optimiser régulièrement les paramètres pour s’adapter à l’évolution du marché

Résumer

Cette stratégie a réussi à combiner les avantages du suivi de la tendance et du trading inversé, le modèle multifacteur maîtrise efficacement les risques et permet d’obtenir des gains supplémentaires stables. C’est un modèle de stratégie de trading quantitatif très pratique qui mérite une étude et une application approfondies de la communauté de l’intelligence artificielle.

Code source de la stratégie
/*backtest
start: 2022-09-12 00:00:00
end: 2022-11-15 00:00:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "Combined Strategy", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type=strategy.commission.percent, commission_value = .0020, pyramiding = 0, slippage = 3, overlay = true)

//----------//
// MOMENTUM //
//----------//
ema8 = ema(close, 8)
ema13 = ema(close, 13)
ema21 = ema(close, 21)
ema34 = ema(close, 34)
ema55 = ema(close, 55)

plot(ema8, color=red, style=line, title="8", linewidth=1)
plot(ema13, color=orange, style=line, title="13", linewidth=1)
plot(ema21, color=yellow, style=line, title="21", linewidth=1)
plot(ema34, color=aqua, style=line, title="34", linewidth=1)
plot(ema55, color=lime, style=line, title="55", linewidth=1)

longEmaCondition = ema8 > ema13 and ema13 > ema21 and ema21 > ema34 and ema34 > ema55
exitLongEmaCondition = ema13 < ema55

shortEmaCondition = ema8 < ema13 and ema13 < ema21 and ema21 < ema34 and ema34 < ema55
exitShortEmaCondition = ema13 > ema55

// ----------  //
// OSCILLATORS //
// ----------- //
rsi = rsi(close, 14)
longRsiCondition = rsi < 70 and rsi > 40
exitLongRsiCondition = rsi > 70

shortRsiCondition = rsi > 30 and rsi < 60
exitShortRsiCondition = rsi < 30

// Stochastic
length = 14, smoothK = 3, smoothD = 3
kFast = stoch(close, high, low, 14)
dSlow = sma(kFast, smoothD)

longStochasticCondition = kFast < 80
exitLongStochasticCondition = kFast > 95

shortStochasticCondition = kFast > 20
exitShortStochasticCondition = kFast < 5

//----------//
// STRATEGY //
//----------//

longCondition = longEmaCondition and longRsiCondition and longStochasticCondition and strategy.position_size == 0
exitLongCondition = (exitLongEmaCondition or exitLongRsiCondition or exitLongStochasticCondition) and strategy.position_size > 0

if (longCondition)
    strategy.entry("LONG", strategy.long)
if (exitLongCondition)
    strategy.close("LONG")
    
shortCondition = shortEmaCondition and shortRsiCondition and shortStochasticCondition and strategy.position_size == 0
exitShortCondition = (exitShortEmaCondition or exitShortRsiCondition or exitShortStochasticCondition) and strategy.position_size < 0

if (shortCondition)
    strategy.entry("SHORT", strategy.short)
if (exitShortCondition)
    strategy.close("SHORT")