
Cette stratégie permet de suivre les tendances en calculant des moyennes mobiles de différentes périodes et en les croisant pour servir de signaux d’achat et de vente. La logique de base est d’utiliser des moyennes mobiles de plus courte période pour suivre les tendances de plus longue période.
La logique derrière les signaux de négociation ci-dessus est que les moyennes mobiles à court terme sont plus rapides pour répondre aux changements de prix et refléter les dernières tendances; les moyennes mobiles à long terme sont plus capables de refléter la tendance générale, filtrant le bruit. Lorsque les moyennes mobiles à court terme traversent les moyennes mobiles à long terme, cela indique qu’il y a un revirement de tendance et donc un signal de négociation.
Cette stratégie est une stratégie de suivi de tendance typique. Elle est simple à comprendre, facile à utiliser et peut s’adapter à de nombreux environnements de marché en ajustant les paramètres. Son inconvénient est qu’elle n’est pas sensible aux événements inattendus et qu’elle est susceptible de générer de faux signaux.
/*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")