Эта стратегия генерирует торговые сигналы путем вычисления скользящих средних различных периодов и использования их перекрестного действия в качестве сигналов покупки и продажи для отслеживания тренда.
Логика торговых сигналов заключается в том, что более короткий период MA может быстрее реагировать на изменения цен и отражать последнюю тенденцию, в то время как более длительный период MA может лучше представлять общую тенденцию и фильтровать шум.
Эта стратегия улавливает изменения тренда с помощью простых кроссоверов MA. Она относится к типичным трендовым следующим стратегиям. Преимущества просты, просты в использовании и адаптируемы с помощью настройки параметров. Консультации - медленная реакция и ложные сигналы. В целом она имеет четкую логику и является хорошей отправной точкой для торговли 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")