Кроссовер двойной скользящей средней - это простая и эффективная стратегия скальпинга, которая использует сигналы перекрестного взаимодействия между ценой и скользящими средними в качестве сигналов входа и выхода для улавливания краткосрочных движений тренда.
Стратегия использует две скользящие средние разных периодов - короткосрочную линию MA и долгосрочную линию MA. Она генерирует сигналы покупки, когда более короткий период MA пересекает выше более длинного периода MA снизу. Сигналы продажи генерируются, когда более короткий MA пересекает ниже более длинного MA сверху.
Стратегия сначала определяет переменную
Для фильтрации некоторых недействительных сигналов добавляются дополнительные фильтры, такие как
Наконец, существующие позиции закрываются, когда цена пересекает линии MA в обратном направлении.
Риски могут быть смягчены с помощью динамических периодов MA, основанных на волатильности, остановках или процентных остановках и т.д.
Стратегия может быть улучшена несколькими способами:
Оптимизировать параметры MA на основе волатильности.
Добавьте дополнительные фильтры, такие как увеличение громкости, чтобы улучшить качество сигнала.
Используйте плавающие или процентные остановки, чтобы уменьшить преждевременные остановки.
Комбинируйте с другими индикаторами, такими как MACD, RSI для многоусловной проверки.
Добавьте автоматизированное управление рисками, например, динамическое размещение позиций, чтобы контролировать потери по сделкам.
Используйте машинное обучение для более точной модели генерации сигнала.
Стратегия двойного кроссовера MA является эффективной системой для краткосрочной торговли. Прекрасные параметры настройки, управление рисками и сочетание с другими инструментами могут еще больше повысить ее прибыльность. В целом ее легко понять и реализовать для скальпирования небольших внутридневных движений.
/*backtest start: 2023-09-29 00:00:00 end: 2023-10-29 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("MovingAvg Cross", overlay=true) length = input(50) confirmBars = input(2) price = close ma = sma(price, length) bcond = price > ma bcount = 0 bcount := bcond ? nz(bcount[1]) + 1 : 0 clc=close[0]>close[1] clc0=close[0]>open[0] clc1=close[1]>open[1] if clc and clc0 and clc1 and (bcount == confirmBars) strategy.entry("buy", strategy.long) scond = price < ma scount = 0 scount := scond ? nz(scount[1]) + 1 : 0 csc=close[0]<close[1] csc0=close[0]<open[0] csc1=close[1]<open[1] if csc and csc0 and csc1 and (scount == confirmBars) strategy.entry("sell", strategy.short) strategy.close("buy", when=scond) strategy.close("sell",when=bcond) plot(ma, color=color.red) //plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)