
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.
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.
Cette stratégie présente les avantages suivants:
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.
Cette stratégie comporte aussi des risques potentiels:
Ces risques peuvent être maîtrisés et améliorés par:
Les principaux axes d’optimisation de cette stratégie sont les suivants:
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
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
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é
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é
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.
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.
/*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)