Это стратегия, которая использует ключевые уровни на разных временных отрезках для генерации двойных сигналов о трейдинге.
Стратегия анализирует движение цены одновременно на двух разных временных отрезках (tf и tf2), причем tf является более длинным временным отрезком, отражающим средне- и долгосрочную тенденцию, а tf2 является более коротким временным отрезком, отражающим краткосрочные движения.
Торговый сигнал формируется, когда up1 и up2 соответствуют друг другу, что указывает на то, что долгосрочные и краткосрочные показатели растут, идут вперед; когда dn1 и dn2 соответствуют друг другу, что указывает на то, что долгосрочные и краткосрочные показатели падают, идут вперед.
Стратегия также включает в себя некоторые фильтры, такие как обратный скальпинг и цветные свечи, чтобы избежать неправильных сигналов от не трендовых прорывов.
В целом, стратегия в полной мере использует анализ нескольких временных рамок, гарантируя, что средне- и долгосрочная тенденция соответствует ожиданиям, избегая помех от краткосрочного шума рынка, генерируя высококачественные торговые сигналы.
Отслеживать средне- и долгосрочные тенденции путем преодоления ключевых уровней
Мониторинг прорывов ключевых уровней в течение двух временных рамок позволяет зафиксировать четкие сигналы вступления на стадиях начала тренда.
Двойное подтверждение значительно уменьшает ложные сигналы
Требование одновременного прорыва на двух разных временных отрезках значительно снижает ложные сигналы от случайных колебаний, улучшая качество сигнала.
Фильтры, такие как инверсивные скальпы и цветные свечи
Добавление обратного скальпинга и цветовых фильтров свечей может устранить некоторые некачественные сигналы прорыва и предотвратить огромные потери.
Простые настройки параметров
Стратегия требует только двух временных параметров для функционирования, предлагает гибкую настройку для разных продуктов.
Легко понять и оптимизировать
Ясная структура облегчает понимание логики, а параметры могут быть скорректированы на основе рыночных условий для оптимизации.
Задержка входа из-за двойного прорыва
По сравнению с однократным прорывом, двойной прорыв может вызвать некоторую задержку входа, упуская ранние сильные трендовые прибыли.
Выбор ключевого уровня
Очень важно выбрать подходящие ключевые уровни для различных продуктов и циклов рынка, иначе это может привести к ложным сигналам.
Неудача прорыва
Даже при двойном прорыве все еще существует вероятность провала прорыва и быстрого отступления, вызывающего потери.
Убытки от изменения тенденции
Поздние входы в тренд могут столкнуться с внезапным переломом, не смогут вовремя выйти через стоп-лосс и понести большие потери.
Трудность оптимизации параметров
Несмотря на простоту, поиск оптимального набора параметров все еще требует обширных испытаний с высокой сложностью оптимизации.
Добавить стратегии стоп-лосса
Можно установить остановку или время остановки, чтобы остановить потерю, прежде чем потеря станет слишком большой.
Оптимизировать фильтры
Можно проверить различные параметры обратной амплитуды кожи головы или другие методы фильтрации.
Уровни динамических ключей
Необходимо, чтобы ключевые уровни менялись динамически с изменениями рынка, а не статичными.
Оптимизация параметров для нескольких продуктов
Используйте машинное обучение для оптимизации лучших наборов параметров для различных продуктов.
Добавить подтверждение объема
Включите подтверждение объема, чтобы избежать ложных сигналов прорыва без объема.
В целом, это простая и практичная стратегия, следующая за трендом. Анализируя два временных фрейма, он вступает в соответствие направления в среднесрочной и долгосрочной перспективе, чтобы эффективно фильтровать шум. Сигналы ясны и легко интерпретируемы, с интуитивными настройками параметров. Но у него также есть такие проблемы, как неправильный вход, трудности с выбором ключевых уровней. Вкратце, эта стратегия лучше работает как инструмент проверки тренда, чтобы объединить с другими факторами, но все еще имеет много возможностей для оптимизации как самостоятельная торговая система.
/*backtest start: 2023-10-15 00:00:00 end: 2023-11-14 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=2 strategy(title = "Noro's Levels Strategy v1.0", shorttitle = "Levels str 1.0", 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 = "Capital, %") tf = input('W', title = "timeframe 1") tf2 = input('D', title = "timeframe 2") src = input(ohlc4, "Source") ap = input(true, defval = true, title = "antipila") cf = input(true, defval = true, title = "color filter") 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") //Signals level = request.security(syminfo.tickerid, tf, src[1]) level2 = request.security(syminfo.tickerid, tf2, src[1]) plot(level, linewidth = 3, color = silver) plot(level2, linewidth = 3, color = gray) up1 = close > level and ap == false ? true : low > level ? true : false dn1 = close < level and ap == false ? true : high < level ? true : false up2 = close > level2 and ap == false ? true : low > level2 ? true : false dn2 = close < level2 and ap == false ? true : high < level2 ? true : false //Trading lot = strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1] if up1 and up2 and (close < open or cf == false) strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if dn1 and dn2 and (close > open or cf == false) strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if time > timestamp(toyear, tomonth, today, 23, 59) strategy.close_all()