Стратегия двойной скользящей средней торговли - это количественная стратегия торговли, которая строит торговые сигналы с использованием двух скользящих средних линий с разными циклами.
Основной метод, используемый этой стратегией, - анализ двух скользящих средних линий. Стратегия определяет 5-дневный короткий цикл скользящей средней линии ma0 и 21-дневный длинный цикл скользящей средней линии ma1. Сравнивая значения разницы osc0 между ценой и ma0 и osc1 между ma0 и ma1, стратегия определяет текущее состояние тренда.
Когда osc0>0 и osc1>0, это означает, что краткосрочная скользящая средняя линия пересекла линию выше долгосрочной, что указывает на бычий тренд. Когда osc0<0 и osc1<0, это означает, что краткосрочная линия пересекла ниже, что указывает на медвежий тренд. Стратегия занимает длинную позицию, когда определяется бычий тренд, и занимает короткую позицию, когда определяется медвежий тренд.
После занятия позиций стратегия продолжает отслеживать изменение osc0 и osc1 в режиме реального времени, чтобы судить о диапазоне прибыли позиции. Когда osc0<0 и osc1<0 после занятия длинной позиции, это означает перелом тренда, поэтому длинная позиция должна быть закрыта. Когда osc0>0 и osc1>0 после занятия короткой позиции, это также означает перелом, поэтому короткая позиция должна быть закрыта.
Стратегия торговли двойной скользящей средней имеет следующие преимущества:
Простой принцип, легко понятный и внедряемый, подходящий для начинающих торговли количеством;
Следить за тенденциями, хорошо отслеживать тенденции рынков с приличной прибылью;
Параметры цикла скользящих средних могут быть скорректированы для различных рыночных условий;
Можно комбинировать с другими показателями или стратегиями для получения большей прибыли.
Эта стратегия также сопряжена с некоторыми рисками:
Невозможность своевременно выйти из позиций при обратном тренде может привести к огромным потерям;
Трудно получить прибыль на рынках с ограниченным диапазоном из-за частого стоп-лосса;
Трудно оптимизировать такие параметры, как 5-дневные и 21-дневные циклы;
Отставание торговых сигналов, поздний вход на рынок могут повлиять на уровень прибыли.
Стратегия торговли двойной скользящей средней может быть оптимизирована из следующих аспектов:
Комбинировать с VOL для подтверждения начала реального тренда, избегать ложных прорывов;
Добавьте другие фильтры, такие как прорыв цены, расширение объема, чтобы обеспечить надежность сигнала;
Установите динамические остановки для сокращения потерь вовремя;
Оптимизировать такие параметры, как порог разницы скользящей средней, чтобы уменьшить ошибки;
Используйте машинное обучение для автоматической оптимизации циклов скользящих средних.
В заключение, стратегия двойной движущейся средней является довольно классической и практичной стратегией, следующей за трендом. Она имеет простую логику для начинающих, хорошую в отслеживании тенденций, очень расширяемую для совмещения с другими методами. Но у нее также есть некоторые недостатки, необходимы дальнейшие оптимизации для обработки исключительных рыночных условий, снижения риска и улучшения стабильности.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("[STRATEGY][RS]MA Strategy test V0", overlay=true) length0 = input(5) length1 = input(21) isinsession = not na(time('1', '0400-1500')) price = open ma0 = ema(ema(price, length0), length0) ma1 = ema(ema(price, length1), length1) plot(ma0, color=navy) plot(ma1, color=black) osc0 = price-ma0 osc1 = ma0-ma1 isbull = osc0 > 0 and osc1 > 0 buy_condition = isinsession and isbull and not isbull[1] buy_exit_condition = osc0 < 0 and osc1 < 0 strategy.entry("buy", strategy.long, comment="buy", when=buy_condition) strategy.close(id='buy', when=buy_exit_condition) isbear = osc0 < 0 and osc1 < 0 sell_condition = isinsession and isbear and not isbear[1] sell_exit_condition = osc0 > 0 and osc1 > 0 strategy.entry("sell", strategy.short, comment="sell", when=sell_condition) strategy.close(id='sell', when=sell_exit_condition) //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)