
Стратегия, основанная на 30-минутных графиках, использует относительно сильный индекс (RSI) в качестве ключевого технического показателя и строго ограничивает выполнение сделок в течение обычных торговых часов США (08:30-15:00 по центральному времени, с понедельника по пятницу). Когда RSI пересекает верхнюю отметку продажи, система автоматически входит в позиции с несколькими позициями; когда RSI пересекает нижнюю отметку покупки, система автоматически входит в позиции с несколькими позициями.
Ключевые принципы стратегии основаны на динамических волатильных характеристиках относительно сильного индекса (RSI) и строгом механизме фильтрации периодов торгов:
Появление RSIСтратегия: использует стандартный RSI, по умолчанию 14 циклов, может настраивать перекуп (70), перепродажу (30) и т. д.ta.crossover(vrsi, overSold)используется для обнаружения RSI вверх, когда он пересекает проданный порог, что вызывает многообещающее вхождение;ta.crossunder(vrsi, overBought)Используется для обнаружения RSI вниз, когда он пересекает предел покупки, чтобы вызвать пустой вход.
Система фильтрации времени: Стратегия реализует точный механизм управления временем торговли, осуществляя сделки только в течение обычного торгового времени США (8:30-15:00 по центральному времени, с понедельника по пятницу). Это достигается посредством следующего сочетания условий:
weekdayFilter = dayofweek >= dayofweek.monday and dayofweek <= dayofweek.fridayПринудительная ликвидация: Чтобы избежать ночного риска, стратегия в 15:00 каждого торгового дня принуждает к плавным позициям все позиции. Код для запуска плавных ордеров, проверяя, достигло ли текущее время или превысило время закрытия:strategy.close_all(comment="Close All by 15:00 CT")。
Визуальная помощь: Стратегия предоставляет опциональную цветовую функцию фона, отображающую зеленый фон, когда у вас много позиций, и красный фон, когда у вас пустые позиции, что улучшает интуитивное восприятие состояния сделки.
Анализ кода стратегии позволяет выделить следующие значительные преимущества:
Фокусируйтесь на однодневных сделкахС помощью ограничений на время торговли и обязательного закрытия, стратегия полностью избегает риска на ночь и снижает риски пробелов и риски волатильности, с которыми могут столкнуться держатели позиций на ночь.
Приспосабливаться к рыночному ритмуRSI, как показатель обратного курса, эффективно улавливает возможности обратного курса при перепродаже на рынке, особенно подходит для удержания краткосрочных колебаний цен в течение суток.
Настройка параметровСтратегия предлагает множество настраиваемых параметров, включая длину циклов RSI, перекуп и перепродажу, что позволяет трейдерам оптимизировать корректировки в зависимости от различных рыночных условий и личных предпочтений в отношении риска.
Ясный визуальный отзывФункция фонового цвета обеспечивает интуитивное отображение состояния позиции, что позволяет трейдерам получить представление о текущем состоянии их позиций.
Код прост и эффективенСтратегия: реализация логической четкости, упрощенная структура кода, небольшая вычислительная нагрузка, подходящая для выполнения в реальном времени, не вызывающая задержек системы или проблем с производительностью.
Показатели стабильныПо данным ретроспективных данных, предоставленных NQ на 30-минутный временной рамок контракта в июне 2025 года, стратегия демонстрирует высокий коэффициент прибыли ((4,61) и приемлемый коэффициент выигрыша ((57,1%), максимальный контроль отвода в разумных пределах ((0,22%)).
Несмотря на многочисленные преимущества, существуют следующие потенциальные риски:
Ограниченная частота сигналовRSI-поперечные сигналы могут быть относительно редкими в течение дня, особенно при четкой рыночной тенденции, что может привести к недостаточному количеству торговых возможностей и повлиять на общую прибыль. Решение: можно рассмотреть вопрос о добавлении дополнительных показателей или корректировке параметров RSI для умеренного увеличения частоты сигналов.
Риск ложного проникновенияRSI может создавать ложные сигналы прорыва, особенно в условиях резкого рыночного колебания, но отсутствия четкого направления. Решение: можно добавить подтверждающий индикатор или установить дополнительные фильтрующие условия, такие как подтверждение объема сделки или фильтрация направления тенденции.
Временная зона чувствительнаСтратегия зависит от правильной настройки часового пояса, неправильная конфигурация часового пояса может привести к неисправности фильтрации торговых периодов. Решение: тщательно проверьте и проверьте настройки часового пояса перед реальным диском, чтобы убедиться, что они точно совпадают с торговыми часами на целевом рынке.
Отсутствие механизмов сдерживания: текущая стратегия не реализует динамическую функцию остановки убытков, и в экстремальных рыночных условиях может быть большой убыток. . Решение: реализация механизма остановки убытков на основе волатильности или фиксированного количества баллов, ограничивающего максимальные убытки от одной сделки.
Зависит от фиксированного времени закрытияПринудительное закрытие в 15:00 может привести к упущению потенциальных возможностей для обратного обращения перед закрытием или преждевременному выходу из благоприятного тренда. Решение: можно рассмотреть возможность реализации более гибкой стратегии закрытия, например, принятие решения о том, быть ли равномерным на основании состояния задней тенденции.
Основываясь на глубоком анализе кода стратегии, можно сделать несколько возможных улучшений:
Динамический RSI: изменение фиксированного предела перекупа и перепродажи на динамически скорректированный предел, основанный на исторической волатильности или ATR, чтобы адаптироваться к волатильным характеристикам в различных рыночных условиях. Таким образом, можно использовать более широкий предел в высоко волатильных рынках и более узкий предел в низко волатильных рынках, улучшая качество сигнала.
Добавить фильтр трендаВнедрение трендовых индикаторов (например, движущихся средних, MACD или ADX) в качестве направленного фильтра, открытие позиций только в направлении основного тренда, избежание частых сделок на рыночных торгах, уменьшение ложных сигналов.
Реализация частичной плавой логикиВ отличие от существующих механизмов полного позиционирования, можно реализовать стратегию построения пакетов позиций, например, при достижении определенного целевого уровня прибыли можно позиционировать часть позиций, сохраняя часть позиций для захвата более крупных тенденций.
Присоединение к позиции по регулированию волатильности: Динамическая корректировка размеров позиций на основе рыночной волатильности (например, ATR), увеличение позиций на рынке с низкой волатильностью, уменьшение позиций на рынке с высокой волатильностью, оптимизация коэффициента возврата риска.
Интегрированное подтверждение объема: На основе генерирования сигнала RSI, добавление условий подтверждения объема сделки, при котором сделки выполняются только при поддержке объема сделки, повышает надежность сигнала.
Внедрение интеллектуальных механизмов устранения убытковВнедрение интеллектуальных стоп-моделей, основанных на поддерживающих устойчивостях или недавних диапазонах колебаний, в качестве альтернативы простому временному плавлению для более эффективного управления рисками.
Стратегия динамического перекрестного индекса относительно сильного периода торговли - это хорошо разработанная система дневного торговли, которая обеспечивает высокоэффективную логику торговли в отношении фьючерсных фондовых индексов путем сочетания технических показателей RSI и строгой фильтрации периода торговли. Основные преимущества стратегии заключаются в том, чтобы избежать риска на ночь, улавливать возможности перекупа и перепродажи в течение дня, а также предоставлять четкую визуальную обратную связь. Несмотря на наличие потенциальных рисков, таких как ограниченная частота сигналов и отсутствие динамических остановок, благодаря применению таких мер, как динамическое RSI, увеличение фильтрации тенденций и оптимизация объема подтверждения интегрального переключателя, можно значительно повысить устойчивость и прибыльность стратегии.
/*backtest
start: 2024-05-27 00:00:00
end: 2024-12-22 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDT"}]
*/
//@version=6
strategy("Futures Trading Hours RSI Strategy", overlay=true)
// ——— INPUTS ——————————————————————————————
length = input(14, "RSI Length")
overSold = input(30, "RSI Oversold Level")
overBought = input(70, "RSI Overbought Level")
price = close
vrsi = ta.rsi(price, length)
// ——— TIME FILTER (CENTRAL TIME) ——————————————————
startHour = 8
startMinute = 30
endHour = 15
endMinute = 0
// Offset in hours from UTC to CST (not accounting for DST)
var timezoneOffset = 0
adjustedTime = time + (timezoneOffset * 60 * 60 * 1000)
adjustedHour = hour(adjustedTime)
adjustedMinute = minute(adjustedTime)
// Only trade Monday (1) through Friday (5) in the chart’s default time zone.
weekdayFilter = dayofweek >= dayofweek.monday and dayofweek <= dayofweek.friday
// Determine if the current bar is within the session (08:30–15:00 CT)
inSession = (adjustedHour > startHour or (adjustedHour == startHour and adjustedMinute >= startMinute)) and (adjustedHour < endHour or (adjustedHour == endHour and adjustedMinute < endMinute))
// ——— SIGNALS ————————————————————————————————
co = ta.crossover(vrsi, overSold)
cu = ta.crossunder(vrsi, overBought)
// ——— ENTRY LOGIC ————————————————————————————
if not na(vrsi) and inSession and weekdayFilter
if co
strategy.entry("RsiLE", strategy.long, comment="RsiLE")
if cu
strategy.entry("RsiSE", strategy.short, comment="RsiSE")
// ——— EXIT ALL ORDERS AT/AFTER 15:00 CT ——————————————————
// Closes any open positions once the clock hits 15:00 CT or later on weekdays
if weekdayFilter and (adjustedHour > endHour or (adjustedHour == endHour and adjustedMinute >= endMinute))
strategy.close_all(comment="Close All by 15:00 CT")
// ——— (Optional) Plot ————————————————————————————
//plot(strategy.equity, title="Equity", color=color.red, linewidth=2, style=plot.style_areabr)
// ——— BACKGROUND SHADING WHEN POSITION IS OPEN ——————————————————
longOpen = strategy.position_size > 0
shortOpen = strategy.position_size < 0
bgcolor(longOpen ? color.new(color.green, 90) : na, title="Long Position Shading")
bgcolor(shortOpen ? color.new(color.red, 90) : na, title="Short Position Shading")