Cette stratégie génère des signaux de trading en calculant des moyennes mobiles de différentes périodes et en utilisant leur croisement comme signaux d'achat et de vente pour suivre la tendance.
La logique derrière les signaux de trading est que la MA de courte durée peut répondre plus rapidement aux changements de prix et refléter la dernière tendance, tandis que la MA de longue durée peut mieux représenter la tendance globale et filtrer le bruit.
Cette stratégie capte les changements de tendance par des croisements simples de MA. Elle appartient aux stratégies typiques de suivi de tendance. Les avantages sont simples, faciles à utiliser et adaptables par ajustement des paramètres. Les inconvénients sont une réaction lente et de faux signaux. Dans l'ensemble, elle a une logique claire et constitue un bon point de départ pour le trading d'algo.
/*backtest start: 2023-02-23 00:00:00 end: 2024-02-29 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("MA Crossover Strategy", overlay=true) // Функция для получения скользящего среднего на заданном таймфрейме getMA(source, length, timeframe) => request.security(syminfo.tickerid, timeframe, ta.sma(source, length)) // Вычисляем 200-периодное и 100-периодное скользящее среднее для текущего таймфрейма ma200 = getMA(close, 200, "240") ma100 = getMA(close, 100, "240") // Открываем позицию Long, если 100-периодное скользящее среднее пересекает 200-периодное сверху вниз if (ta.crossover(ma100, ma200)) strategy.entry("Long", strategy.long) // Закрываем позицию Long, если 100-периодное скользящее среднее пересекает 200-периодное сверху вниз if (ta.crossunder(ma100, ma200)) strategy.close("Long") // Открываем позицию Short, если 100-периодное скользящее среднее пересекает 200-периодное сверху вниз if (ta.crossunder(ma100, ma200)) strategy.entry("Short", strategy.short) // Закрываем позицию Short, если 100-периодное скользящее среднее пересекает 200-периодное снизу вверх if (ta.crossover(ma100, ma200)) strategy.close("Short") // Рисуем линии скользящих средних на графике plot(ma200, color=color.blue, linewidth=2, title="200 MA") plot(ma100, color=color.red, linewidth=2, title="100 MA")