Stratégie de trading à moyenne mobile double rapide et lente


Date de création: 2023-10-27 16:41:24 Dernière modification: 2023-10-27 16:41:24
Copier: 0 Nombre de clics: 691
1
Suivre
1617
Abonnés

Stratégie de trading à moyenne mobile double rapide et lente

Aperçu

La stratégie de négociation bi-équilibre est basée sur le calcul d’une moyenne mobile rapide et d’une moyenne mobile lente, et produit un signal de négociation basé sur la croisée des deux moyennes mobiles. Une stratégie à plusieurs têtes est utilisée lorsque la moyenne mobile lente est traversée au-dessus de la moyenne mobile rapide; une stratégie à vide est utilisée lorsque la moyenne mobile lente est traversée en dessous de la moyenne mobile rapide.

Principe de stratégie

La stratégie commence par définir la longueur des moyennes mobiles rapides (maFastLength) et la longueur des moyennes mobiles lentes (maSlowLength). Les moyennes mobiles rapides (fastMA) et les moyennes mobiles lentes (slowMA) sont ensuite calculées. Les moyennes mobiles rapides sont plus sensibles aux changements de prix et peuvent être utilisées pour déterminer la tendance actuelle; les moyennes mobiles lentes sont plus lentes pour déterminer la direction de la tendance.

Lorsqu’il traverse une moyenne mobile rapide sur une moyenne mobile lente, il adopte une stratégie de multiplication qui génère un signal de goLong (). Lorsqu’il traverse une moyenne mobile rapide sous une moyenne mobile rapide, il fait des multiplication de la position de placement, générant un signal de killLong ().

Il est possible de choisir entre le longonly, le shorting ou le swapping bidirectionnel.

Lorsque vous faites des stratégies multiples, ouvrez plus de positions lorsque le signal goLong () est émis; faites moins de positions lorsque le signal killLong () est émis.

Lorsque vous prenez une position vide, laissez votre position vide lorsque le signal killLong () est émis; laissez votre position vide lorsque le signal goLong () est émis.

Pour les transactions bidirectionnelles, ouvrez une position en plus à l’émission du signal goLong (), et videz une position en plus à l’émission du signal killLong ().

En outre, la stratégie a des fonctionnalités telles que le stop loss, le suivi du stop loss et les notifications de transaction, qui permettent de choisir avec souplesse si elles sont utilisées ou non.

Avantages stratégiques

  1. Les stratégies sont simples, faciles à comprendre et à mettre en œuvre.

  2. Vous avez le choix entre le plus, le moins et le double.

  3. Vous pouvez choisir avec souplesse d’utiliser ou non des fonctions de gestion des risques telles que l’arrêt des pertes et le suivi des pertes.

  4. Il est possible de personnaliser les messages de transaction et d’informer en temps réel sur les transactions.

  5. Les stratégies à courte ou moyenne vitesse sont sensibles aux changements de tendances du marché et permettent de saisir les tendances les plus fortes.

  6. Les paramètres de la stratégie peuvent être ajustés en fonction des différents marchés et sont très adaptatifs.

Risque stratégique

  1. Il est possible qu’il y ait plus de faux signaux et de surtransactions lorsque le marché n’a pas de tendance évidente.

  2. Le système linéaire n’est pas sensible aux événements soudains et risque de manquer des occasions d’urgence.

  3. Les paramètres de la ligne moyenne doivent être sélectionnés de manière raisonnable. Un mauvais choix de paramètres peut affecter l’efficacité de la stratégie.

  4. Il est nécessaire de respecter strictement les signaux stratégiques pour éviter les transactions arbitraires.

  5. L’impact des coûts de transaction sur la rentabilité stratégique doit être pris en compte.

Orientation de l’optimisation de la stratégie

  1. Il est possible d’introduire d’autres indicateurs tels que le RSI pour vérifier les signaux de trading et éviter d’émettre de faux signaux.

  2. Il est possible de configurer la fonction d’optimisation des paramètres pour rechercher automatiquement la combinaison optimale de paramètres.

  3. Il est possible de définir des stop-loss dynamiques pour bloquer les gains et d’ajuster les points de stop-loss au besoin.

  4. Des modèles d’apprentissage automatique peuvent être ajoutés pour aider à déterminer la direction des tendances.

  5. Vous pouvez optimiser les notifications pour les rendre plus adaptées à vos habitudes de trading.

Résumer

Les stratégies de négociation en ligne sont généralement plus simples, plus sensibles aux changements de tendances du marché et captent les opportunités de négociation offertes par des tendances plus fortes. Cependant, il est nécessaire de prévenir les erreurs de négociation dans les marchés sans tendance et d’ajuster les paramètres de manière appropriée pour s’adapter aux différents environnements du marché.

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

//@version=4

strategy("SMA Strategy", shorttitle="SMA Strategy", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// === Inputs ===
// short ma
maFastSource = input(defval=close, title="Fast MA Source")
maFastLength = input(defval=3, title="Fast MA Period", minval=1)

// long ma
maSlowSource = input(defval=close, title="Slow MA Source")
maSlowLength = input(defval=9, title="Slow MA Period", minval=1)

// Trade direction
shorting = input(defval=false, title="Short only?")
longonly = input(defval=true, title="Long only?")
swapping = input(defval=false, title="Swap orders?")
// risk management
useStop = input(defval=false, title="Use Initial Stop Loss?")
slPoints = input(defval=25, title="Initial Stop Loss Points", minval=1)
useTS = input(defval=false, title="Use Trailing Stop?")
tslPoints = input(defval=120, title="Trail Points", minval=1)
useTSO = input(defval=false, title="Use Offset For Trailing Stop?")
tslOffset = input(defval=20, title="Trail Offset Points", minval=1)

// Messages for buy and sell
message_long_entry  = input("Long entry message", title="Long entry message")
message_long_exit   = input("Long exit message", title="Long exit message")
message_short_entry = input("Short entry message", title="Short entry message")
message_short_exit  = input("Short exit message", title="Short exit message")

// Calculate start/end date and time condition
startDate  = input(timestamp("2021-01-01T00:00:00"), type = input.time)
finishDate = input(timestamp("2021-12-31T00:00:00"), type = input.time)
 
time_cond  = true
// === Vars and Series ===
fastMA = sma(maFastSource, maFastLength)
slowMA = sma(maSlowSource, maSlowLength)

plot(fastMA, color=color.blue)
plot(slowMA, color=color.purple)

goLong() =>
    crossover(fastMA, slowMA)
killLong() =>
    crossunder(fastMA, slowMA)
    
// Long only
if longonly
    strategy.entry("Buy", strategy.long, when=goLong() and time_cond, alert_message = message_long_entry)
    strategy.close("Buy", when=killLong() and time_cond, alert_message = message_long_exit)

// Short only
if shorting
    strategy.entry("Sell", strategy.short, when=killLong() and time_cond, alert_message = message_short_entry)
    strategy.close("Sell", when=goLong() and time_cond, alert_message = message_short_exit)
    
// Order Swapping
if swapping
    strategy.entry("Buy", strategy.long, when=goLong() and time_cond, alert_message = message_long_entry)
    strategy.entry("Sell", strategy.short, when=killLong() and time_cond, alert_message = message_short_entry)

if useStop
    strategy.exit("XLS", from_entry="Buy", stop=strategy.position_avg_price / 1.08, alert_message = message_long_exit)
    strategy.exit("XSS", from_entry="Sell", stop=strategy.position_avg_price * 1.08, alert_message = message_short_exit)