La stratégie des moyennes mobiles exponentielles est une stratégie de trading quantitative basée sur les tendances. Elle utilise des moyennes mobiles exponentielles (MEI) avec différentes périodes pour identifier les signaux d'entrée et de sortie potentiels sur le marché des crypto-monnaies.
La stratégie utilise quatre EMA avec des périodes de 8, 12, 24 et 72 respectivement. Ils servent de guides visuels sur le graphique pour la direction de la tendance. Lorsque le prix de clôture traverse des EMA plus lentes, il signale des opportunités d'achat. Lorsque des EMA plus rapides traverseront des plus lentes, il signale des opportunités de vente.
Il y a deux signaux d'entrée:
Il y a trois signaux de sortie:
Le plus grand avantage de cette stratégie est la capacité de capitaliser à la fois sur les opportunités de retrait et de tendance. L'utilisation de combinaisons EMA plus rapides et plus lentes empêche de se laisser induire en erreur par les fluctuations à court terme. Les EMA filtrent également efficacement le bruit des prix pour capturer les tendances à long terme.
Certains risques doivent être évités:
Les mesures suivantes peuvent aider à contrôler les risques susmentionnés:
Il est possible d'optimiser davantage:
Dans l'ensemble, cette stratégie de suivi EMA capitalise à la fois sur les opportunités de tendance et de repli grâce à des croisements EMA pour les entrées.
/*backtest start: 2023-10-31 00:00:00 end: 2023-11-30 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © moondevonyt //@version=5 strategy("Cornoflower Trend Following Crypto", overlay=true) // Input Settings lenEma8 = input(8, title="Length of 8 EMA") lenEma12 = input(12, title="Length of 12 EMA") lenEma24 = input(24, title="Length of 24 EMA") lenEma72 = input(72, title="Length of 72 EMA") // Calculate the EMAs ema8 = ta.ema(close, lenEma8) ema12 = ta.ema(close, lenEma12) ema24 = ta.ema(close, lenEma24) ema72 = ta.ema(close, lenEma72) // Entry Conditions pullbackEntry = ta.crossover(close, ema12) and ta.crossover(close, ema24) and ta.crossover(close, ema72) initialEntry = ta.crossover(close, ema72) and ta.crossover(ema8, ema12) and ta.crossover(ema8, ema24) // Exit Conditions profitTarget = 100 // Example target in pips, adjust according to your preference trailingStop = 50 // Example trailing stop value in pips, adjust according to your preference exitCondition = ta.crossunder(ema12, ema24) // Execute Strategy if pullbackEntry strategy.entry("Pullback Entry", strategy.long) if initialEntry strategy.entry("Initial Entry", strategy.long) if strategy.position_size > 0 strategy.exit("Profit Target", "Pullback Entry", limit=close + (profitTarget * syminfo.mintick)) strategy.exit("Trailing Stop", "Pullback Entry", stop=close - (trailingStop * syminfo.mintick), trail_points=trailingStop) strategy.exit("Exit Condition", "Initial Entry", stop=close, when=exitCondition) // Plot EMAs plot(ema8, color=color.yellow, title="8 EMA", linewidth=1, style=plot.style_line) plot(ema12, color=color.purple, title="12 EMA", linewidth=1, style=plot.style_line) plot(ema24, color=color.blue, title="24 EMA", linewidth=1, style=plot.style_line) plot(ema72, color=color.rgb(235, 255, 59), title="72 EMA", linewidth=1, style=plot.style_line)