Эта стратегия использует две скользящие средние для определения тенденций цен и прорывов. Идите коротко, когда цена проходит через верхний рельс, и идите долго, когда цена проходит через нижний рельс. Установите выходные стоп-лосс для контроля рисков.
Эта стратегия имеет следующие преимущества:
Эта стратегия также сопряжена с некоторыми рисками:
Эта стратегия может быть оптимизирована в следующих аспектах:
Общая идея этой стратегии ясна и легко понятна. Используя двойную рельсовую систему для выявления тенденций и использование ценовых прорывов для определения времени входа, он может фильтровать шум и достигать стабильной прибыли. Также есть место для улучшения и оптимизации. В целом, это воспроизводимая количественная торговая стратегия с практической ценностью.
/*backtest start: 2023-11-13 00:00:00 end: 2023-11-20 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=3 strategy(title = "Noro's Shift MA Strategy v1.0", shorttitle = "Shift MA str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0) //Settings capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %") per = input(3, defval = 1, minval = 1, maxval = 1000, title = "Length") src = input(ohlc4, title = "Source") buylevel = input(-5.0, defval = -5.0, minval = -100, maxval = 0, title = "Buy line (lime)") selllevel = input(0.0, defval = 0.0, minval = -100, maxval = 100, title = "Sell line (red)") fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //SMAs sma = sma(src, per) buy = sma * ((100 + buylevel) / 100) sell = sma * ((100 + selllevel) / 100) plot(buy, linewidth = 2, color = lime, title = "Buy line") plot(sell, linewidth = 2, color = red, title = "Sell line") //Trading size = strategy.position_size lot = 0.0 lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1] if (not na(close[per])) and size == 0 strategy.entry("L", strategy.long, lot, limit = buy) if (not na(close[per])) strategy.entry("Close", strategy.short, 0, limit = sell) if time > timestamp(toyear, tomonth, today, 23, 59) strategy.close_all()