Эта стратегия основана на регулярных пересечениях скользящих средних, но были внесены некоторые изменения для создания более точных торговых сигналов.
Когда быстрый скользящий средний пересекает над медленным скользящим средним снизу вверх, он считается сигналом покупки. Когда быстрый скользящий средний пересекает медленный скользящий средний снизу сверху вниз, он считается сигналом продажи. То есть, золотой крест для длинного, смерть крест для короткого. Как только будет принята длинная/короткая позиция, стоп-лосс будет настроен, чтобы избежать огромных потерь.
Ключ заключается в выборе быстрых и медленных скользящих средних. Эта стратегия использует экспоненциальные скользящие средние периода 50&100 в качестве быстрой и медленной линии соответственно. Эффект стратегии может быть оптимизирован путем корректировки параметров MA.
Эта стратегия определяет направление тренда путем сочетания двойных скользящих средних, которые могут эффективно фильтровать шум рынка. По сравнению с едиными стратегиями MA, она может улучшить вероятность прибыльности. Кроме того, установка стоп-лосса также ограничивает потерю отдельных сделок.
Используя правила перекрестки для определения точек перелома, эта стратегия может своевременно улавливать трендовые возможности.
Существует три основных риска для этой стратегии: ненадлежащий риск параметров MA, неправильный риск периода хранения и необоснованный риск позиции стоп-лосса.
Неправильный выбор параметров MA приводит к ложным сигналам.Слишком короткие или слишком длинные длины MA будут неправильно оценивать рынок, поэтому требуется правильная корректировка в соответствии с характеристиками инструмента.
Слишком длинный или слишком короткий период удержания не может максимизировать прибыль или должным образом контролировать риск.
Необоснованное установление позиции стоп-лосса приведет к слишком широкому или слишком узкому стоп-лоссу, поэтому должен быть определен соответствующий стоп-лосс на основе волатильности инструмента.
Эта стратегия может быть оптимизирована из следующих аспектов:
Проверьте больше комбинаций параметров MA для поиска оптимальных параметров
Определить динамическую позицию стоп-лосса на основе колебаний цен или ATR за последние N дней
Комбинируйте больше индикаторов, таких как MACD, KD и т. д., чтобы определить сроки входа
Добавление правил фильтрации трендов для предотвращения рыночного диапазона
Рассмотреть возможность применения стратегии к большему количеству инструментов или улучшить ее до межинструментальной стратегии
Эта оптимизированная стратегия перекрестного движения скользящей средней интегрирует преимущество двойного MA в определении направлений тренда и устанавливает стоп-лосс для контроля рисков. Она относится к легко реализуемым трендовым следующим стратегиям. Эта стратегия может быть еще более улучшена в стабильности и эффективности посредством оптимизации параметров, оптимизации стоп-лосса, фильтрации сигнала и т. Д. По сравнению со сложными стратегиями, ее легче понять и реализовать, и, следовательно, очень подходит для того, чтобы быть первой квантовой торговой стратегией для новичков.
/*backtest start: 2024-01-27 00:00:00 end: 2024-02-03 00:00:00 period: 15m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © ashishchauhan strategy(title="MA CO Strategy Test", overlay=true, pyramiding=0, initial_capital=100000) fastEMALen = input(title="Fast EMA Length", type=input.integer, defval=50) slowEMALen = input(title="Slow EMA Length", type=input.integer, defval=100) fastEMA = ema(close, fastEMALen) slowEMA = ema(close, slowEMALen) enterLong = crossover(fastEMA, slowEMA) enterShort = crossunder(fastEMA, slowEMA) longStop = 0.0 longStop := enterShort ? close : longStop[1] shortStop = 0.0 shortStop := enterLong ? close : shortStop[1] plot(series=fastEMA, color=color.orange, title="Fast EMA") plot(series=slowEMA, color=color.teal, linewidth=3, title="Slow EMA") if enterLong strategy.entry(id="GoLong", long=true) if enterShort strategy.entry(id="GoShort", long=false) if strategy.position_size > 0 strategy.exit(id="ExLong", from_entry="GoLong", stop=longStop) if strategy.position_size < 0 strategy.exit(id="ExShort", from_entry="GoShort", stop=shortStop) strategy.close_all()