Basé sur la stratégie de croisement des moyennes mobiles rapides et lentes


Date de création: 2024-02-27 16:06:30 Dernière modification: 2024-02-27 16:06:30
Copier: 1 Nombre de clics: 780
1
Suivre
1617
Abonnés

Basé sur la stratégie de croisement des moyennes mobiles rapides et lentes

Aperçu

La stratégie de croisement des moyennes rapides est une simple stratégie de moyenne mobile. Elle utilise deux moyennes mobiles, une plus rapide et une plus lente, pour indiquer que le prix est susceptible d’augmenter lorsque la moyenne mobile rapide traverse la moyenne mobile lente par le bas et une plus faible lorsque la moyenne mobile rapide traverse la moyenne mobile lente par le haut et une plus petite pour indiquer que le prix est susceptible de baisser.

Principe de stratégie

La stratégie utilise deux moyennes mobiles, une rapide et une lente. Plus précisément, la longueur de la moyenne mobile rapide prend en compte 25 cycles et la longueur de la moyenne mobile lente prend en compte 62 cycles. La stratégie permet de choisir différents types de moyennes mobiles, notamment SMA, EMA, WMA, RMA et VWMA.

Lorsque la moyenne mobile rapide traverse la moyenne mobile lente par le bas, indiquant que le prix à court terme commence à dépasser le prix à long terme, il s’agit d’un signal de croisement d’or typique, indiquant que le prix peut entrer dans le canal ascendant, la stratégie est plus; lorsque la moyenne mobile rapide traverse la moyenne mobile lente par le bas, indiquant que le prix à court terme commence à dépasser le prix à long terme, il s’agit d’un signal de croisement de mort, indiquant que le prix peut entrer dans le canal descendant, la stratégie est plus.

De cette façon, on peut déterminer la tendance et la direction des prix en les croisant lentement et lentement avec la ligne moyenne, et faire des prises ou des baisses correspondantes pour réaliser des profits.

Analyse des avantages

Cette stratégie présente les avantages suivants:

  1. Une approche simple, facile à comprendre et à mettre en œuvre
  2. Réglages de paramètres flexibles, périodes et types personnalisables pour la moyenne rapide
  3. Indicateur fiable, rapide et croisé avec précision sur les tendances des prix
  4. L’automatisation, l’absence de jugement humain et la réduction des facteurs psychologiques
  5. Adapté à de nombreuses variétés, il est largement utilisé pour les variétés telles que les indices boursiers, les devises et les crypto-monnaies
  6. Optimiser facilement et ajuster les combinaisons de paramètres pour trouver la meilleure configuration
  7. Scalable et utilisable avec d’autres indicateurs ou combinaisons de stratégies

Dans l’ensemble, la stratégie utilise le croisement de la ligne moyenne rapide et lente comme signal de négociation central, a une forte capacité à déterminer la tendance future des prix et, grâce à ses avantages en termes de suivi des tendances, permet de réaliser de bons bénéfices, ce qui vaut la peine d’être appliqué sur le terrain.

Analyse des risques

Cette stratégie comporte aussi des risques potentiels:

  1. Les signaux de croisement de moyenne lente peuvent être mal interprétés, les prix ne sont que des ajustements à court terme et non des retournements de tendance à long terme
  2. Une mauvaise sélection de la courbe moyenne longue ou courte peut entraîner des transactions fréquentes ou des opportunités manquées
  3. Les signaux de croisement peuvent ne pas être visibles lorsque les prix fluctuent fortement.
  4. Variétés à frais de transaction élevés, les transactions de signaux croisés trop fréquentes entraînent une perte de revenus
  5. Une forte évolutivité entraîne également un risque de sur-optimisation

Ces risques peuvent être maîtrisés et améliorés par:

  1. Filtrez en combinaison avec d’autres indicateurs pour éviter les fausses informations, telles que les prix déviant des indicateurs
  2. Ajustez les paramètres de la ligne moyenne pour trouver la combinaison optimale et réduire la probabilité d’une transaction erronée
  3. La stratégie de suspension dans un contexte dynamique pour éviter les grandes fluctuations
  4. Une assouplissement appropriée des marges de stop pour réduire les pertes inutiles
  5. Récupération multivariée, évaluation des risques et prévention de l’optimisation

Direction d’optimisation

Les principaux axes d’optimisation de cette stratégie sont les suivants:

  1. Sélection périodique des moyennes rapides et des moyennes lentes: le paramètre par défaut actuel n’est peut-être pas optimal, vous pouvez essayer différents paramètres périodiques pour trouver la configuration optimale

  2. Sélection de types de moyennes mobiles: plusieurs moyennes mobiles sont actuellement disponibles pour tester quel type est le mieux adapté à une variété donnée

  3. Combinaison avec d’autres indicateurs ou stratégies: vous pouvez essayer de combiner avec des indicateurs de volatilité, des indicateurs de prix ou des stratégies de suivi des tendances pour améliorer l’efficacité

  4. Optimisation de l’adaptation des paramètres: les paramètres de la période moyenne sont automatiquement ajustés en fonction de la volatilité et de la liquidité du marché, ce qui améliore la stabilité

  5. Aide aux modèles d’IA: analysez de grandes quantités de données à l’aide d’algorithmes d’apprentissage automatique pour trouver automatiquement les règles de négociation optimales

Grâce à ces mesures d’optimisation, il est possible d’améliorer encore la performance et la stabilité des stratégies.

Résumer

La stratégie de croisement des moyennes rapides et lentes est une stratégie de suivi de la tendance très pratique dans l’ensemble. Elle maîtrise les lois de la variation des prix sur différentes échelles de temps et détermine la tendance et la direction possibles des prix à l’avenir en franchissant les moyennes rapides et lentes. L’idée de la stratégie est simple, claire, facile à comprendre et à mettre en œuvre, les paramètres sont personnalisables et flexibles, tout en étant fiables, hautement automatisés, largement applicables et extensibles.

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

//@version=5
//Author @divonn1994

initial_balance = 100
strategy(title='Fast v Slow Moving Averages Strategy', shorttitle = 'Fast v Slow', overlay=true, pyramiding=0, default_qty_value=100, default_qty_type=strategy.percent_of_equity, precision=7, currency=currency.USD, commission_value=0.1, commission_type=strategy.commission.percent, initial_capital=initial_balance)

//Input for number of bars for moving average, Switch to choose moving average type, Display Options and Time Frame of trading----------------------------------------------------------------

fastBars = input.int(25, "Fast moving average length", minval=1)
slowBars = input.int(62, "Slow moving average length", minval=1)
strategy = input.string("EMA", "MA type", options = ["EMA", "VWMA", "SMA", "RMA", "WMA"])

redOn = input.string("On", "Red Background Color On/Off", options = ["On", "Off"], group='Display')
greenOn = input.string("On", "Green Background Color On/Off", options = ["On", "Off"], group='Display')
maOn = input.string("On", "Moving Average Plot On/Off", options = ["On", "Off"], group='Display')

startMonth = input.int(title='Start Month 1-12 (set any start time to 0 for furthest date)', defval=1, minval=0, maxval=12, group='Beginning of Strategy')
startDate = input.int(title='Start Date 1-31 (set any start time to 0 for furthest date)', defval=1, minval=0, maxval=31, group='Beginning of Strategy')
startYear = input.int(title='Start Year 2000-2100 (set any start time to 0 for furthest date)', defval=2011, minval=2000, maxval=2100, group='Beginning of Strategy')

endMonth = input.int(title='End Month 1-12 (set any end time to 0 for today\'s date)', defval=0, minval=0, maxval=12, group='End of Strategy')
endDate = input.int(title='End Date 1-31 (set any end time to 0 for today\'s date)', defval=0, minval=0, maxval=31, group='End of Strategy')
endYear = input.int(title='End Year 2000-2100 (set any end time to 0 for today\'s date)', defval=0, minval=0, maxval=2100, group='End of Strategy')

//Strategy Calculations-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

inDateRange = true

maMomentum = switch strategy
    "EMA" => (ta.ema(close, fastBars) >= ta.ema(close, slowBars)) ? 1 : -1
    "SMA" => (ta.sma(close, fastBars) >= ta.sma(close, slowBars)) ? 1 : -1
    "RMA" => (ta.rma(close, fastBars) >= ta.rma(close, slowBars)) ? 1 : -1
    "WMA" => (ta.wma(close, fastBars) >= ta.wma(close, slowBars)) ? 1 : -1
    "VWMA" => (ta.vwma(close, fastBars) >= ta.vwma(close, slowBars)) ? 1 : -1
    =>
        runtime.error("No matching MA type found.")
        float(na)

fastMA = switch strategy
    "EMA" => ta.ema(close, fastBars)
    "SMA" => ta.sma(close, fastBars)
    "RMA" => ta.rma(close, fastBars)
    "WMA" => ta.wma(close, fastBars)
    "VWMA" => ta.vwma(close, fastBars)
    =>
        runtime.error("No matching MA type found.")
        float(na)
        
slowMA = switch strategy
    "EMA" => ta.ema(close, slowBars)
    "SMA" => ta.sma(close, slowBars)
    "RMA" => ta.rma(close, slowBars)
    "WMA" => ta.wma(close, slowBars)
    "VWMA" => ta.vwma(close, slowBars)
    =>
        runtime.error("No matching MA type found.")
        float(na)

//Enter or Exit Positions--------------------------------------------------------------------------------------------------------------------------------------------------------------------

if ta.crossover(maMomentum, 0)
    if inDateRange
        strategy.entry('long', strategy.long, comment='long')
if ta.crossunder(maMomentum, 0)
    if inDateRange
        strategy.close('long')

//Plot Strategy Behavior---------------------------------------------------------------------------------------------------------------------------------------------------------------------

plot(series = maOn == "On" ? fastMA : na, title = "Fast Moving Average", color = color.new(color.white,0), linewidth=2, offset=1)
plot(series = maOn == "On" ? slowMA : na, title = "Slow Moving Average", color = color.new(color.purple,0), linewidth=3, offset=1)
bgcolor(color = inDateRange and (greenOn == "On") and maMomentum > 0 ? color.new(color.green,75) : inDateRange and (redOn == "On") and maMomentum <= 0 ? color.new(color.red,75) : na, offset=1)