Двойная стратегия перекрестки скользящей средней является очень классической и широко используемой стратегией технического анализа. Эта стратегия использует перекресток более быстрой скользящей средней и более медленной скользящей средней в качестве торговых сигналов для покупки и продажи. Когда более быстрая скользящая средняя пересекает более медленную скользящую среднюю снизу, генерируется сигнал покупки. Когда более быстрая скользящая средняя пересекает ниже более медленной скользящей средней сверху, генерируется сигнал продажи.
Ключевые части кодекса стратегии включают:
Определите длину и тип быстрых и медленных скользящих средних: у быстрой МА период 5 лет, у медленной МА период 21 год, при этом используются простые скользящие средние.
Вычислить быстрые и медленные МА: используя функцию sma для вычисления 5-периодных и 21-периодных простых скользящих средних.
Нарисуйте график: нарисуйте линии тренда быстрых и медленных МА.
Определите правила входа и выхода: покупайте, когда быстрый MA переходит через медленный MA, продавайте, когда быстрый MA переходит под медленный MA.
Исполнение сделок: используйте длинные и короткие функции стратегии для автоматического выполнения сделок при выполнении условий.
Ключом к этой стратегии является использование скользящих средних различных периодов для формирования быстрых и медленных МА, а также использование их перекресток в качестве торговых сигналов. Быстрый МА быстрее улавливает изменения цен, в то время как медленный МА лучше отражает долгосрочную тенденцию. Кроссовер быстрой МА выше медленной МА указывает на взлет вверх, который является сигналом покупки. А кроссовер ниже - сигнал продажи. Логика этой стратегии проста и проста в реализации.
Стратегия перекрестного использования двойной скользящей средней имеет следующие преимущества:
Простые принципы, понятны, подходят для начинающих.
Следуй за ценовым трендом, небольшой откат.
Умеренная частота торговли, избегание чрезмерной торговли.
Настраиваемые параметры, гибкие для адаптации к изменениям рынка.
Легко оптимизировать и найти подходящие персональные параметры.
Может установить стоп-лосс для контроля риска.
Может использоваться на различных рынках, высокая применимость.
Можно комбинировать с другими показателями для повышения эффективности.
Эта стратегия также сопряжена с некоторыми рисками:
Задержка реакции, когда тенденция сильна, может пропустить лучшее время входа. может сократить периоды MA для улучшения чувствительности.
Больше ложных сигналов на рынках с ограниченным диапазоном, может добавить фильтры, чтобы избежать неправильных сделок.
Слишком много сделок может повлиять на прибыльность.
Трудно определить тренд, риск торговли против тренда, можно добавить индикаторы тренда.
Оптимизация параметров требует достаточных исторических данных, риска переподключения к новым продуктам.
Один показатель чувствителен к внешним факторам, производительность может быть нестабильной.
Существует несколько способов дальнейшей оптимизации стратегии двойного управления:
Испытать различные длины быстрого и медленного MA, чтобы найти оптимальные параметры для конкретных торговых продуктов.
Добавьте такие фильтры, как объемы торговли, ATR стоп-лосс, чтобы уменьшить низкие возможности.
Комбинируйте индикаторы импульса для подтверждения торговых сигналов и предотвращения ложных прорывов.
Оптимизируйте стратегии стоп-лосса, чтобы избежать преждевременного или позднего выхода.
Включить индикаторы тренда и волны, чтобы обеспечить торговлю в соответствии с тенденцией и в противоположность тренду.
Использование адаптивных МР для корректировки параметров на основе рыночных условий, а не фиксированных периодов.
Использование комбинаций параметров для различных сессий рынка и характеристик.
Оптимизация в режиме реального времени с помощью алгоритмов машинного обучения для непрерывного улучшения параметров.
Благодаря своей простой логике и простоте реализации, стратегия двойного скользящего среднего кроссовера стала одной из самых важных и широко используемых стратегий технического анализа. Она следует за ценовым трендом с контролируемым отступлением и приемлемым риском. Но есть также огромный потенциал для оптимизации, путем настройки параметров, включения других индикаторов и автоматизированных алгоритмов, ее применимость и производительность могут быть еще улучшены. В целом, стратегия двойного кроссовера MA заслуживает большого внимания и долгосрочного применения инвесторами.
/*backtest start: 2023-09-26 00:00:00 end: 2023-10-26 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 // strategy("Stochastic Strategy of BiznesFilosof", shorttitle="SS of BiznesFilosof", overlay=false, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=20, commission_type=strategy.commission.percent, commission_value=0.15, pyramiding=0) //Period startY = input(title="Start Year", defval = 2011) startM = input(title="Start Month", defval = 1, minval = 1, maxval = 12) startD = input(title="Start Day", defval = 1, minval = 1, maxval = 31) finishY = input(title="Finish Year", defval = 2050) finishM = input(title="Finish Month", defval = 12, minval = 1, maxval = 12) finishD = input(title="Finish Day", defval = 31, minval = 1, maxval = 31) //finish = input(2019, 02, 28, 00, 00) timestart = timestamp(startY, startM, startD, 00, 00) timefinish = timestamp(finishY, finishM, finishD, 23, 59) window = true // Lenghth strategy length1 = input(21, minval=1), smoothK1 = input(3, minval=1), smoothD1 = input(3, minval=1) //length2 = input(5, minval=1), smoothK2 = input(1, minval=1), smoothD2 = input(1, minval=1) inh0 = input(title="Bottom Line", defval = 14, minval=0), inh1 = input(title="Upper Line", defval = 86, minval=0) k1 = sma(stoch(close, high, low, length1), smoothK1) d1 = sma(k1, smoothD1) plot(k1, color=blue) plot(d1, color=red) //k2 = sma(stoch(close, high, low, length2), smoothK2) //d2 = sma(k2, smoothD2) //plot(k2, color=orange) h1 = hline(inh1) h0 = hline(inh0) fill(h0, h1, color = aqua, transp=90) //open strategy.entry("LongEntryID", strategy.long, comment="LONG", when = crossover(k1, d1) and crossover(k1, inh0) and window) strategy.entry("ShortEntryID", strategy.short, comment="SHORT", when = crossunder(k1, d1) and crossunder(k1, inh1) and window) if crossunder(k1, d1) and crossunder(k1, inh1) and strategy.position_size > 0 strategy.close_all() if crossover(k1, d1) and crossover(k1, inh0) and strategy.position_size < 0 strategy.close_all()