Стратегия торговли двойной скользящей средней

Автор:Чао Чжан, Дата: 2024-01-26 14:45:55
Тэги:

img

Обзор

Стратегия двойной скользящей средней торговли - это количественная стратегия торговли, которая строит торговые сигналы с использованием двух скользящих средних линий с разными циклами.

Принцип стратегии

Основной метод, используемый этой стратегией, - анализ двух скользящих средних линий. Стратегия определяет 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 после занятия короткой позиции, это также означает перелом, поэтому короткая позиция должна быть закрыта.

Анализ преимуществ

Стратегия торговли двойной скользящей средней имеет следующие преимущества:

  1. Простой принцип, легко понятный и внедряемый, подходящий для начинающих торговли количеством;

  2. Следить за тенденциями, хорошо отслеживать тенденции рынков с приличной прибылью;

  3. Параметры цикла скользящих средних могут быть скорректированы для различных рыночных условий;

  4. Можно комбинировать с другими показателями или стратегиями для получения большей прибыли.

Анализ рисков

Эта стратегия также сопряжена с некоторыми рисками:

  1. Невозможность своевременно выйти из позиций при обратном тренде может привести к огромным потерям;

  2. Трудно получить прибыль на рынках с ограниченным диапазоном из-за частого стоп-лосса;

  3. Трудно оптимизировать такие параметры, как 5-дневные и 21-дневные циклы;

  4. Отставание торговых сигналов, поздний вход на рынок могут повлиять на уровень прибыли.

Руководство по оптимизации

Стратегия торговли двойной скользящей средней может быть оптимизирована из следующих аспектов:

  1. Комбинировать с VOL для подтверждения начала реального тренда, избегать ложных прорывов;

  2. Добавьте другие фильтры, такие как прорыв цены, расширение объема, чтобы обеспечить надежность сигнала;

  3. Установите динамические остановки для сокращения потерь вовремя;

  4. Оптимизировать такие параметры, как порог разницы скользящей средней, чтобы уменьшить ошибки;

  5. Используйте машинное обучение для автоматической оптимизации циклов скользящих средних.

Заключение

В заключение, стратегия двойной движущейся средней является довольно классической и практичной стратегией, следующей за трендом. Она имеет простую логику для начинающих, хорошую в отслеживании тенденций, очень расширяемую для совмещения с другими методами. Но у нее также есть некоторые недостатки, необходимы дальнейшие оптимизации для обработки исключительных рыночных условий, снижения риска и улучшения стабильности.


/*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)

Больше