Основная идея этой стратегии состоит в том, чтобы генерировать торговые сигналы с использованием индикатора Supertrend в нескольких временных рамках и комбинировать его с внутридневным фильтром для расчёта открытых позиций в течение дня, с тем чтобы реализовать торговлю в нескольких временных рамках и улучшить качество сигнала.
Стратегия сначала вызывает функцию супертенденции, передавая параметры mult и len, чтобы генерировать линию супертенденции superTrend и направление dir. Затем она графикует график линии супертенденции. Входной параметр внутридневный контролирует, следует ли выводить на квадрат открытые позиции внутридневным. Если внутридневный является истинным, внутридневные открытые позиции будут выводиться на квадрат после 14:45.
Правила генерации сигнала следуют: когда цена закрытия находится выше линии супертенденции, генерируется сигнал покупки; когда цена закрытия находится ниже линии супертенденции, генерируется сигнал продажи. Когда сигнал покупки получается, будет выполнен ордер покупки для открытия длинной позиции; когда сигнал продажи получается, будет выполнен ордер продажи для открытия короткой позиции. Если включен фильтр внутридневного дня, то есть установлен на true, все открытые длинные и короткие позиции будут закрываться после 14:45 каждый день.
Самое большое преимущество этой стратегии заключается в том, что она использует простой, но практичный индикатор Supertrend для реализации генерации торговых сигналов с несколькими временными рамками.
Кроме того, стратегия очень лаконична, она реализует основную логику с очень небольшим количеством кода, который легко понять, изменить и расширить.
Основной риск этой стратегии заключается в том, что индикатор Supertrend имеет некоторое отставание, что может привести к дополнительным потерям.
Для смягчения этих рисков рекомендуется оптимизировать параметры Supertrend mult и len, чтобы найти оптимальную комбинацию параметров. Другие индикаторы также могут быть протестированы для дополнения Supertrend и использования большего количества факторов для повышения стабильности стратегии. Кроме того, фиксированное внутридневное время квадратного отсчета может быть удалено и может быть использован динамический механизм для определения времени квадратного отсчета на основе условий волатильности.
Основные направления оптимизации этой стратегии включают:
Проверьте несколько наборов параметров Supertrend, чтобы найти оптимальную комбинацию параметров.
Добавьте другие технические индикаторы, такие как шаблоны свечей, скользящая средняя и т. Д., Чтобы отфильтровать сигналы с большим количеством факторов.
Оптимизировать и динамически корректировать конкретное внутридневное расчетное время, чтобы уменьшить преждевременное расчетное время.
Добавьте такие механизмы стоп-лосса, как фиксированный процент стоп-лосса или ATR стоп-лосса.
Испытать подходящие стратегии использования капитала и размещения позиций.
Проверка на более длительный период времени для проверки надежности параметров.
В общем, эта стратегия многочасового обратного теста Supertrend очень практична. Она реализует многочасовую торговлю с помощью простого индикатора Supertrend и контролирует потери с помощью внутридневного фильтра. Существует большое пространство для оптимизации, и пользователи могут регулировать параметры или комбинировать с другими техническими индикаторами в соответствии со своими потребностями. Производительность обратного теста также относительно стабильна и надежна. В целом эта стратегия подходит для средне-долгосрочной торговли трендами, а также хороша для начинающих учиться и практиковать модификации.
/*backtest start: 2023-11-27 00:00:00 end: 2023-12-04 00:00:00 period: 45m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //@Gurjant_Singh IISMA-Indian Institute of stock Market Analysis strategy("SupterTrend ", overlay=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=300, calc_on_order_fills=false, calc_on_every_tick=false) mult = input(type=input.float, defval=3) len = input(type=input.integer, defval=5) [superTrend, dir] = supertrend(mult, len) plot(superTrend) intrady = input(false, "Do you want to exit intrday position", type = input.bool) IntraDay_SquareOff = minute >= 45 and hour >= 14 buy = close > superTrend sell = close < superTrend if buy strategy.entry("Buy", true) if sell strategy.entry("sell", false) if intrady and IntraDay_SquareOff strategy.close("buy") strategy.close("sell")