Эта стратегия использует как движущиеся средние SMA, так и EMA для определения длинного и короткого направления на основе ценового прорыва. Она длится, когда закрытие находится выше SMA и EMA, становится короткой, когда закрытие находится ниже SMA и EMA, и сглаживается, когда закрытие находится между SMA и EMA. Периоды SMA и EMA могут быть настроены пользователем.
Преимущество этой двойной стратегии прорыва скользящей средней заключается в том, что сочетание двух систем скользящей средней может улучшить точность. Однако существуют такие проблемы, как ложные сигналы во время рынков с диапазоном и отстающие сигналы. Кроме того, для контроля потерь не используется стоп-лосс.
В целом, эта стратегия работает лучше, когда присутствуют сильные тенденции, но следует торговать осторожно.
В целом, стратегия двойного перемещающегося среднего имеет простую логику торговли, но требует надлежащего контроля риска и настройки параметров для успешного применения в режиме реального времени.
/*backtest start: 2023-08-11 00:00:00 end: 2023-09-10 00:00:00 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title = "Noro's Multima v1.0", shorttitle = "Multima 1.0", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0) needlong = input(true, "long") needshort = input(true, "short") usema1 = input(true, "Use MA1 (SMA, blue)") usema2 = input(true, "Use MA2 (EMA, red)") lenma1 = input(40, defval = 40, minval = 2, maxval = 1000, title = "MA1 length") lenma2 = input(40, defval = 40, minval = 2, maxval = 1000, title = "MA2 length") //anti = input(true, defval = true, title = "Antipila") usecf = input(true, defval = true, title = "Use color-filter") //Strategy ma1 = sma(close, lenma1) ma2 = ema(close, lenma2) signal1 = usema1 == false ? 0 : close > ma1 ? 1 : -1 signal2 = usema2 == false ? 0 : close > ma2 ? 1 : -1 lots = signal1 + signal2 //Lines plot(ma1, color = blue, linewidth = 3, transp = 0) plot(ma2, color = red, linewidth = 3, transp = 0) //Trading if lots > 0 and (close < open or usecf == false) strategy.entry("Long", strategy.long, needlong == false ? 0 : na) if lots < 0 and (close > open or usecf == false) strategy.entry("Short", strategy.short, needshort == false ? 0 : na) if lots == 0 strategy.close_all()