Эта стратегия - это стратегия торговли трендом, основанная на скользящих средних. Она использует 3 скользящих средних с различными параметрами для генерации торговых сигналов. Она длится, когда цена пересекает пересечение над скользящей средней, и становится короткой, когда цена пересекает ниже. Стратегия имеет 3 скользящих средних линии для поэтапного входа в длинный или короткий, что позволяет ей следовать за трендом.
Стратегия рассчитывает скользящую среднюю линию ma с длиной len с помощью функции sma. Затем она рассчитывает 3 дополнительных скользящих средних линий longline1, longline2, longline3, которые смещаются на -4%, -5%, -6% соответственно на основе ma.
Для генерации длинного сигнала, если текущая позиция плоская, она длинна с 1 лотом, когда цена пересекает длинную линию1. Если уже 1 лот длинный, она добавляет еще 1 лот, когда цена пересекает длинную линию2. Если уже 2 лота длинные, она добавляет еще 1 лот, когда цена пересекает длинную линию3. Максимальная длинная позиция составляет 3 лота.
Для генерации короткого сигнала, если он уже длинный, он выходит из всех длинных позиций, когда цена пересекается ниже ma.
Поэтапный вход позволяет стратегии следовать тенденции.
Решения рисков:
Стратегия может быть оптимизирована в следующих аспектах:
Добавьте другие индикаторы, такие как MACD, чтобы определить силу тренда.
Оптимизируйте параметры скользящей средней для поиска лучшей комбинации
Корректировать размер и соотношение стадированных партий для предотвращения преследования высоких цен
Добавить механизм движения стоп-потери на основе ATR
Динамически корректировать размер позиции на основе волатильности рынка, уменьшать размер, когда волатильность высока
Параметры испытаний на различных продуктах для поиска оптимального символа
Разработать модуль выхода для рассмотрения получения прибыли при определенных моделях
В целом, стратегия торгует на основе направления тренда, определяемого скользящими средними, и прибыли от тенденций через поэтапные записи. Но у нее есть некоторые проблемы с отставанием и риски преследования высоких цен. Мы можем оптимизировать ее, добавляя вспомогательные индикаторы, оптимизируя параметры, корректируя размер позиций, добавляя стоп-лосс и т. Д., Чтобы адаптироваться к различным рыночным условиям и достигать устойчивой прибыли.
/*backtest start: 2022-10-02 00:00:00 end: 2023-10-08 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2019 //@version=4 strategy(title = "Noro's ShiftMA-multi Strategy v1.0", shorttitle = "ShiftMA-multi", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 3) //Settings capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot") len = input(3, minval = 1, title = "MA Lenghs") src = input(ohlc4, title = "MA Source") longlevel1 = input(-4.0, title = "Long line 1") longlevel2 = input(-5.0, title = "Long line 2") longlevel3 = input(-6.0, title = "Long line 3") needoffset = input(true, title = "Offset") //Variables size = strategy.position_size mult = 1 / syminfo.mintick //MA ma = sma(src, len) longline1 = round(ma * ((100 + longlevel1) / 100) * mult) / mult longline2 = round(ma * ((100 + longlevel2) / 100) * mult) / mult longline3 = round(ma * ((100 + longlevel3) / 100) * mult) / mult //Lines offset = needoffset ? 1 : 0 plot(ma, color = color.blue) plot(longline1, offset = offset, color = color.lime) plot(longline2, offset = offset, color = color.lime) plot(longline3, offset = offset, color = color.lime) //Trading lot = 0.0 lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1] lots = 0.0 if ma > 0 lots := round(size / lot) strategy.entry("L1", strategy.long, lot, limit = longline1, when = (lots == 0)) lots := round(size / lot) strategy.entry("L2", strategy.long, lot, limit = longline2, when = (lots <= 1)) lots := round(size / lot) strategy.entry("L3", strategy.long, lot, limit = longline3, when = (lots <= 2)) if size > 0 strategy.entry("TP", strategy.short, 0, limit = ma)