Стратегия двойного перемещающегося среднего выхода

Автор:Чао Чжан, Дата: 2023-09-11 12:31:51
Тэги:

Эта стратегия использует как движущиеся средние 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()
    
    
    

Больше