Это стратегия прорыва движущегося среднего канала, основанная на движущихся средних и диапазоне каналов.
Основная логика этой стратегии заключается в следующем:
Установите скользящую среднюю линию определенного периода как среднюю линию.
Установите верхнюю и нижнюю линии канала, умножив среднюю линию на определенные проценты. Верхняя линия - средняя линия * (100% + предопределенный процент). Нижняя линия - средняя линия * (100% - предопределенный процент).
Когда цена выходит выше верхней линии, перейдите на короткую, когда цена выходит ниже нижней линии, перейдите на длинную.
Установка цен на заказы на соответствующих верхних/нижних линиях.
Закрыть позиции, когда цена вернется к средней линии.
Так что он торгуется на основе прорывов движущегося среднего канала.
Преимущества этой стратегии:
Простая и понятная концепция, легкая в понимании и реализации.
Настраиваемые параметры, соответствующие различным рыночным условиям.
Средняя линия и диапазон каналов могут отфильтровывать рыночный шум и улавливать тенденции.
Ограничьте заказы, контролируйте риски.
Сократите убытки, когда цена вернется к средней линии.
Существуют также некоторые риски:
Неправильное настройка параметров может привести к перегрузке/недостаточной торговле.
Высокая вероятность ложных прорывов и стоп-лосса.
Неудача средних и канальных линий при огромных колебаниях рынка.
Преждевременный выход, когда вынужден закрыться на средней линии.
Решения:
Оптимизируйте такие параметры, как период MA и процент канала.
Добавьте другие показатели, такие как объем, чтобы избежать ложных прорывов.
Усилить ручное вмешательство.
Используйте более длительный период MA и более широкий диапазон каналов.
Стратегия может быть улучшена в следующих аспектах:
Добавьте методы остановки потери, такие как остановка отслеживания, чтобы ограничить потери.
Добавьте фильтрующие индикаторы, такие как MACD, чтобы уменьшить ложные сигналы.
Включите автоматическую оптимизацию параметров.
Добавьте дополнительные критерии открытых позиций после прорыва.
Оптимизируйте параметры MA и канала.
В заключение, это практичная стратегия прорыва MA-каналов. Она имеет простую логику для простого использования, в то время как диапазон каналов может фильтровать шум. Она хорошо работает на трендовых рынках. Но существуют риски и параметры вместе с дополнительными фильтрами нуждаются в оптимизации для фактической торговли. Стратегия имеет определенную практическую и развивающую ценность.
/*backtest start: 2023-01-01 00:00:00 end: 2023-08-15 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=3 strategy(title = "Robot WhiteBox ShiftMA", shorttitle = "Robot WhiteBox ShiftMA", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %") per = input(3, title = "Length") src = input(ohlc4, title = "Source") shortlevel = input(10.0, title = "Short line (red)") longlevel = input(-5.0, title = "Long line (lime)") 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) shortline = sma * ((100 + shortlevel) / 100) longline = sma * ((100 + longlevel) / 100) plot(shortline, linewidth = 2, color = red, title = "Short line") plot(sma, linewidth = 2, color = blue, title = "SMA line") plot(longline, linewidth = 2, color = lime, title = "Long 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 and needlong strategy.entry("L", strategy.long, lot, limit = longline) if (not na(close[per])) and size == 0 and needshort strategy.entry("S", strategy.short, lot, limit = shortline) if (not na(close[per])) and size > 0 strategy.entry("Close", strategy.short, 0, limit = sma) if (not na(close[per])) and size < 0 strategy.entry("Close", strategy.long, 0, limit = sma) if time > timestamp(toyear, tomonth, today, 23, 59) strategy.close_all()