Stratégie de trading quantitative basée sur la moyenne mobile simple


Date de création: 2023-12-22 13:28:01 Dernière modification: 2023-12-22 13:28:01
Copier: 0 Nombre de clics: 768
1
Suivre
1623
Abonnés

Stratégie de trading quantitative basée sur la moyenne mobile simple

Aperçu

La stratégie de croisement des moyennes mobiles est une stratégie de négociation quantitative basée sur des moyennes mobiles simples. La stratégie génère des signaux d’achat et de vente en calculant des moyennes mobiles simples de différentes périodes lorsqu’elles se croisent.

Plus précisément, la stratégie calcule une moyenne mobile simple entre les lignes 9 et 45. Elle génère un signal d’achat lorsque le prix franchit les lignes 9 et 45 en haut et un signal de vente lorsque le prix franchit les lignes 9 et 45 en bas.

Principe de stratégie

La logique centrale de cette stratégie est basée sur le principe de la fourchette d’or et de la fourchette morte des moyennes mobiles. Les moyennes mobiles sont capables de filtrer efficacement le bruit du marché et d’indiquer les changements de tendance majeure. Lorsque les moyennes courtes traversent les moyennes longues, les prix entrent dans une tendance à la hausse. Lorsque les moyennes courtes traversent les moyennes longues, les prix entrent dans une tendance à la baisse.

Plus précisément, la stratégie utilise une moyenne mobile simple des lignes 9 et 45. La ligne 9 représente la tendance à court terme et la ligne 45 la tendance à long terme. Lorsque les prix traversent les lignes 9 et 45, cela indique que le cours de l’action est dans un canal ascendant à court et à long terme, ce qui génère un signal d’achat.

D’un point de vue logique du code, la stratégie commence par calculer les moyennes mobiles simples des lignes 9 et 45, puis détermine les forks dorés et morts de la ligne équatoriale à l’aide des fonctions ta.crossover et ta.crossunder. Lors de la génération des signaux d’achat et de vente, la fonction plotshape est utilisée pour tracer un triangle et un triangle inversé sur un diagramme en ligne K.

En outre, la stratégie impose une logique de stop-loss pour les positions longues et courtes. Plus précisément, après l’ouverture de la position, le prix le plus élevé et le prix le plus bas de la ligne K précédente sont extraits comme prix de stop-loss. Cela permet de bloquer les bénéfices et d’éviter des pertes excessives.

Analyse des avantages

  • La mise en place de deux lignes de mesure permet de capturer les changements de tendance à moyen et long terme, d’éviter d’être influencé par le bruit du marché à court terme et d’améliorer la qualité du signal.
  • La combinaison d’une stratégie de stop-loss permet de contrôler efficacement les risques et de bloquer les bénéfices.
  • La logique de la stratégie est simple, facile à comprendre et à mettre en œuvre.
  • Le taux d’utilisation des fonds est élevé et la rentabilité est élevée.

Analyse des risques

  • Les stratégies de double ligne sont sujettes à des signaux de thrust en chaîne morte, ce qui peut entraîner des transactions invalides.
  • Le prix de stop loss peut être trop conservateur pour suivre la tendance.
  • Une mauvaise sélection de paramètres peut entraîner une fréquence de transaction trop élevée ou trop faible.
  • Il n’y a pas de place pour les femmes dans la société, et elles ne peuvent pas s’adapter à la situation.

La réponse:

  1. Optimiser les paramètres de la ligne moyenne pour réduire le taux de transaction inefficace
  2. Optimisation de la logique de stop-loss par le suivi des tendances
  3. Combinaison avec d’autres indicateurs pour filtrer le signal
  4. L’intervention de l’homme pour éviter un retour en arrière

Direction d’optimisation

Il y a encore de la place pour optimiser cette stratégie:

  1. L’utilisation d’une moyenne mobile adaptative ou d’une moyenne mobile indicielle permet de mieux saisir les changements de tendance.

  2. Augmentation des signaux de filtrage tels que les indicateurs de volatilité, afin d’éviter les signaux erronés lors de la secousse.

  3. La méthode d’optimisation des paramètres est utilisée pour trouver la meilleure combinaison de paramètres.

  4. La logique d’arrêt est dotée d’un mécanisme de suivi des tendances permettant aux lignes d’arrêt de suivre les prix de manière flexible.

  5. Augmenter le jugement sur les résistances de soutien à des niveaux plus élevés afin d’éviter de fausses signaux dans les zones de prix critiques.

  6. Le filtrage de la qualité du signal est renforcé par des modèles d’apprentissage automatique.

Résumer

La stratégie de croisement de la même ligne est une stratégie de suivi de tendance simple et pratique. Elle permet de filtrer efficacement le bruit et de capturer les changements de tendance à moyen et long terme des prix.

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

//@version=5
strategy("SMA Crossover Strategy", overlay=true)

// Input parameters
fast_length = input(9, title="Fast SMA Length")
slow_length = input(45, title="Slow SMA Length")

// Calculate moving averages
fast_sma = ta.sma(close, fast_length)
slow_sma = ta.sma(close, slow_length)

// Buy condition
buy_condition = ta.crossover(close, fast_sma) and ta.crossover(close, slow_sma)

// Sell condition
sell_condition = ta.crossunder(close, fast_sma) and ta.crossunder(close, slow_sma)

// Calculate stop loss levels
prev_low = request.security(syminfo.tickerid, "1D", low[1], lookahead=barmerge.lookahead_on)
prev_high = request.security(syminfo.tickerid, "1D", high[1], lookahead=barmerge.lookahead_on)

// Plot signals on the chart
plotshape(buy_condition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(sell_condition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)

// Strategy exit conditions
long_stop_loss = sell_condition ? prev_low : na
short_stop_loss = buy_condition ? prev_high : na

strategy.exit("Long Exit", from_entry="Long", when=sell_condition, stop=long_stop_loss)
strategy.exit("Short Exit", from_entry="Short", when=buy_condition, stop=short_stop_loss)

strategy.entry("Long", strategy.long, when=buy_condition)
strategy.entry("Short", strategy.short, when=sell_condition)