
Стратегия представляет собой количественную торговую систему, разработанную специально для внутридневного трейдинга, основанную на ценовом поведении в первые часы рынка. Стратегия создает целостную торговую систему, идентифицируя высокие и низкие уровни в первые часы открытия рынка в качестве ключевых прорывных уровней, в сочетании с EMA (индексная подвижная средняя), VWAP (взвешенная средняя цена) и динамическим ATR (средняя реальная диапазон), чтобы создать полную торговую систему.
Основная логика стратегии может быть разделена на несколько ключевых частей:
Определен первый часовой максимумСтратегия: отслеживать и фиксировать максимальные и минимальные цены в течение первого часа после открытия рынка (начиная с 9:15 в течение 60 минут), которые будут использоваться в качестве потенциальных точек прорыва.
Расчет технических показателей:
Условия приема:
Выход из игры:
Управление деньгами:
Эта концепция, объединяющая трейдерские прорывы, признание трендов и динамическое управление рисками, создает целостный и систематизированный метод торговли. Стратегия эффективно снижает риск ложных прорывов, требуя, чтобы ценовые прорывы происходили одновременно с подтверждением технических показателей.
Подробное изучение кода стратегии позволяет выделить следующие явные преимущества:
Точное время входаС помощью первых часовых высоких и низких уровней, которые являются ключевыми, стратегия может захватить важные возможности для прорыва в течение дня. Первые часы рынка часто устанавливают торговые зоны в течение дня, и прорыв этих уровней обычно означает сильный импульс.
Механизм многократного подтвержденияСтратегия не только зависит от ценового прорыва, но также требует перекрестного подтверждения EMA с VWAP и направленного согласования наклонности EMA. Такая многократная фильтрация значительно уменьшает количество ложных сигналов.
Динамическое управление рискамиИспользуя ATR в качестве основы для остановки, стратегия может автоматически корректировать остановку в зависимости от волатильности рынка, предоставляя цене больше пространства для дыхания при больших колебаниях и ужесточая остановку для защиты прибыли при меньших колебаниях.
Ясные правила торговли“Стратегия определяет четкие условия входа и выхода, снижает субъективные суждения и помогает поддерживать торговую дисциплину”.
Визуальные вспомогательные функцииКод включает в себя визуализацию сигналов и ключевых уровней, чтобы помочь трейдерам визуально понять логику стратегии и в реальном времени отслеживать торговые возможности.
Приспосабливаться к рыночному ритмуПримечание: Позволяя вход только после окончания первого часа, стратегия избегает беспорядочных колебаний, которые часто происходят во время открытия, и фокусируется на движении, которое, скорее всего, будет продолжаться.
Несмотря на разумную конструкцию, существуют некоторые потенциальные риски и ограничения:
Чрезмерная зависимость от одного периода времениСверхзависимость стратегии от высоких и низких точек, сформированных в первые часы, может привести к снижению качества последующих торговых сигналов, если этот период не является репрезентативным (например, чрезвычайно низкая волатильность или влияние на временные новости).
Ограничения фиксированного тормозного соотношенияФиксированная стоп-цель в 1% может не быть адаптирована к различным рыночным условиям и различным волатильным активам. В дни сильной тенденции это может привести к преждевременному потере потенциальной прибыли.
EMA и VWAP риски задержкиВ качестве отстающего индикатора, перекрестные сигналы EMA и VWAP могут появляться после того, как цена уже значительно пробилась, что приводит к нежелательной цене входа.
Не учитывая общую рыночную ситуациюСтратегия не включает в себя более широкую оценку рыночных условий (например, общие рыночные тенденции, волатильность или анализ корреляции), которая может плохо работать в определенных рыночных условиях.
Задачи в реализации стратегии в течение дняВ качестве стратегии в течение дня требуется более высокая эффективность исполнения и более низкая скользящая точка, что может быть проблемой в реальных сделках.
Чтобы снизить эти риски, рекомендуется:
Основываясь на анализе логики стратегии и потенциальных рисков, следует рассмотреть несколько направлений оптимизации:
Адаптационные параметры:
Увеличение рыночных фильтров:
Оптимизация логики первого часа:
Улучшение механизма выступлений:
Усиление управления рисками:
Эти направления оптимизации направлены на то, чтобы сохранить ключевую логику стратегии, повысить ее адаптивность и устойчивость, чтобы она могла оставаться эффективной в более широких рыночных условиях.
Стратегия оптимизации стоп-порогов ATR в первые часы и скольжения EMA - это хорошо структурированная система количественной торговли в течение дня, которая предоставляет трейдерам систематизированный способ торговли путем сочетания первых часовых прорывов, подтверждения технических показателей и динамического управления рисками. Наибольшие преимущества этой стратегии заключаются в ее многочисленных механизмах подтверждения и четких торговых правилах, которые помогают уменьшить ложные сигналы и поддерживать торговую дисциплину.
Однако существуют и некоторые ограничения стратегии, такие как чрезмерная зависимость от одного временного периода и адаптивность фиксированных остановочных целей. Трейдеры могут дополнительно повысить устойчивость и адаптивность стратегии, применяя рекомендуемые меры оптимизации, такие как адаптивные корректировки параметров, увеличение фильтрации рыночной среды и улучшение механизмов выхода.
В целом, это хорошо продуманная и четко продуманная торговая стратегия, особенно подходящая для количественных трейдеров, заинтересованных в торговле в течение дня. С соответствующей настройкой и оптимизацией параметров она имеет потенциал стать эффективным инструментом в торговом портфеле.
/*backtest
start: 2024-02-29 00:00:00
end: 2025-02-26 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("FnO Intraday Strategy with ATR SL, EMA Slope & Signals", overlay=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// INPUTS
atrPeriod = input.int(14, "ATR Period")
atrMultiplier = input.float(1.0, "ATR Stop Loss Multiplier", step=0.1)
targetPercent = input.float(1.0, "Profit Target (%)", step=0.1) * 0.01
// Define session start and first candle period (for Indian market, session starts at 09:15)
sessionStartHour = input.int(9, "Session Start Hour", minval=0, maxval=23)
sessionStartMinute = input.int(15, "Session Start Minute", minval=0, maxval=59)
firstCandleMins = 60 // First candle duration in minutes
// Compute today's session start and first candle end timestamps
currYear = year(time)
currMonth = month(time)
currDay = dayofmonth(time)
sessionStartTS = timestamp(currYear, currMonth, currDay, sessionStartHour, sessionStartMinute)
sessionEndTS = sessionStartTS + firstCandleMins * 60 * 1000 // PineScript time is in ms
// INITIALIZE first-hour high/low (reset at the start of each day)
var float firstHourHigh = na
var float firstHourLow = na
if (ta.change(time("D")))
firstHourHigh := na, firstHourLow := na
// Update first-hour high/low while within the first candle period
if (time >= sessionStartTS and time <= sessionEndTS)
firstHourHigh := na(firstHourHigh) ? high : math.max(firstHourHigh, high)
firstHourLow := na(firstHourLow) ? low : math.min(firstHourLow, low)
// Plot the first-hour high and low once the first candle period is over
plot(time > sessionEndTS ? firstHourHigh : na, title="First Hour High", color=color.green, style=plot.style_linebr)
plot(time > sessionEndTS ? firstHourLow : na, title="First Hour Low", color=color.red, style=plot.style_linebr)
// Calculate indicators: 9 EMA, VWAP, and EMA slope
ema9 = ta.ema(close, 9)
vwapVal = ta.vwap(hlc3) // Using typical price for VWAP calculation
emaSlope = ema9 - ema9[1]
// Define "first hour complete" flag so entries only occur after the first candle period
firstHourComplete = time > sessionEndTS
// ENTRY CONDITIONS
// Long: Price breaks above first-hour high, and 9 EMA crosses above VWAP with a positive slope.
longBreakout = ta.crossover(close, firstHourHigh)
longEMAConfirmation = ta.crossover(ema9, vwapVal) and (emaSlope > 0)
longCondition = firstHourComplete and longBreakout and longEMAConfirmation
// Short: Price breaks below first-hour low, and 9 EMA crosses below VWAP with a negative slope.
shortBreakout = ta.crossunder(close, firstHourLow)
shortEMAConfirmation = ta.crossunder(ema9, vwapVal) and (emaSlope < 0)
shortCondition = firstHourComplete and shortBreakout and shortEMAConfirmation
// Generate entries
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Add buy and sell signals on the chart
plotshape(longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Calculate ATR for dynamic stop loss
atrValue = ta.atr(atrPeriod)
// Set exits using ATR-based stop loss and fixed profit target (1% gain)
if (strategy.position_size > 0)
longStop = strategy.position_avg_price - atrValue * atrMultiplier
longTarget = strategy.position_avg_price * (1 + targetPercent)
strategy.exit("Long Exit", from_entry="Long", stop=longStop, limit=longTarget)
if (strategy.position_size < 0)
shortStop = strategy.position_avg_price + atrValue * atrMultiplier
shortTarget = strategy.position_avg_price * (1 - targetPercent)
strategy.exit("Short Exit", from_entry="Short", stop=shortStop, limit=shortTarget)
// Plot EMA and VWAP for visual confirmation
plot(ema9, title="9 EMA", color=color.blue)
plot(vwapVal, title="VWAP", color=color.orange)