Stratégie quantitative de croisement de moyennes mobiles Momentum


Date de création: 2024-01-26 11:39:26 Dernière modification: 2024-01-26 11:39:26
Copier: 0 Nombre de clics: 587
1
Suivre
1617
Abonnés

Stratégie quantitative de croisement de moyennes mobiles Momentum

Aperçu

La stratégie combine les moyennes mobiles et le volume des transactions, deux indicateurs techniques clés, et conçoit des règles d’entrée et de sortie pour les positions longues et courtes, pour former une stratégie de trading quantitative complète.

Principe de stratégie

Indicateurs clés

  1. Les moyennes mobiles sont les moyennes mobiles rapides (ligne bleue) et les moyennes mobiles lentes (ligne rouge).
  2. Volume des transactions: 24 heures (en violet) et moyenne des transactions sur 7 jours (en orange)

Conditions de la stratégie

Les conditions d’entrée pour les positions longues:

  1. Une moyenne mobile rapide sur une moyenne mobile lente
  2. Moins de 50% du volume des transactions sur une période de 24 heures par rapport à la moyenne sur une période de 7 jours

Les conditions d’entrée pour les positions courtes:
La moyenne mobile rapide est inférieure à la moyenne mobile lente.

Entrée et sortie

Il a été élu président de l’Assemblée Nationale.Faire plus pour remplir les conditions d’entrée à la position longue

Les positions courtes:Prise de position libre lorsque les conditions d’entrée sont remplies

Arrêt et perte: Affichage des arrêts et des arrêts de perte après avoir effectué des opérations supplémentaires

Analyse des avantages

  1. Combinaison d’indicateurs de prix et d’indicateurs de volumes de transactions pour éviter les fausses ruptures
  2. Des règles claires d’entrée et de sortie
  3. Un mécanisme d’arrêt de la perte de contrôle des risques

Analyse des risques

  1. Les stratégies bi-linéaires peuvent générer des transactions fréquentes.
  2. Aucune garantie de qualité pour les données de volume
  3. Optimisation des paramètres avec risque de sur-optimisation

Comment améliorer:

  1. Ajustement approprié des paramètres de la ligne moyenne pour réduire la fréquence des transactions
  2. Signal quantifié avec plus de sources de données vérifiées
  3. Rigoureuse vérification des retours d’expérience pour éviter une optimisation excessive

Direction d’optimisation

  1. Ajout d’autres indicateurs de filtrage
  2. Réglage dynamique du stop loss
  3. Une analyse de plusieurs périodes pour améliorer la stabilité

Résumer

La stratégie intègre les indicateurs de moyenne mobile et de volume de transactions, concevant une stratégie de trading quantitative complète grâce à un mécanisme de double confirmation. Elle présente les avantages d’une entrée claire, d’un stop-loss et d’une facilité d’utilisation.

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

//@version=5
strategy("MA and Volume Strategy", overlay=true)

// Input parameters
fastLength = input(9, title="Fast MA Length")
slowLength = input(21, title="Slow MA Length")
volumePercentageThreshold = input(50, title="Volume Percentage Threshold")

// Calculate moving averages
fastMA = ta.sma(close, fastLength)
slowMA = ta.sma(close, slowLength)

// Calculate 24-hour volume and weekly volume average
dailyVolume = request.security(syminfo.tickerid, "D", volume)
weeklyVolumeAvg = ta.sma(request.security(syminfo.tickerid, "W", volume), 7)

// Strategy conditions
longCondition = ta.crossover(fastMA, slowMA) and dailyVolume < (weeklyVolumeAvg * volumePercentageThreshold / 100)
shortCondition = ta.crossunder(fastMA, slowMA)

// Set take profit and stop loss levels
takeProfitLong = close * 1.50
stopLossLong = close * 0.90

// Strategy orders
strategy.entry("Long", strategy.long, when=longCondition)
strategy.entry("Short", strategy.short, when=shortCondition)

// Plot moving averages
plot(fastMA, color=color.blue, title="Fast MA")
plot(slowMA, color=color.red, title="Slow MA")

// Plot 24-hour volume and weekly volume average
plot(dailyVolume, color=color.purple, title="24-Hour Volume", transp=0)
plot(weeklyVolumeAvg, color=color.orange, title="Weekly Volume Average")

// Plot entry signals
plotshape(series=longCondition, title="Buy Signal", color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=shortCondition, title="Sell Signal", color=color.red, style=shape.triangledown, size=size.small)

// Plot take profit and stop loss levels only when a valid trade is active
plotshape(series=longCondition, title="Take Profit Long", color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=longCondition, title="Stop Loss Long", color=color.red, style=shape.triangledown, size=size.small)