
Дневная торговая стратегия, основанная на теории рыночной структуры, представляет собой количественную торговую систему, которая специализируется на выявлении и торговле ценовым пробелом между справедливой стоимостью (Fair Value Gap, или FVG). Эта стратегия использует три гиперлинейные формы, чтобы обнаружить неравновесие спроса и предложения в ценовом поведении и совершать входные сделки в этих районах при обратной оценке цен.
Основные принципы стратегии торговли справедливой стоимостью основаны на “незаработанных зонах” или “пробелах”, оставленных при быстром движении цены. Эти зоны представляют собой серьезные дисбалансы в спросе и предложении, которые обычно “заполняются” или “перепроверяются” в будущем. В частности, стратегия работает следующим образом:
Механизм обнаружения пробеловСтратегия использует трёхстрочную модель для выявления двух типов FVG:
Отзыв о логике входаТак, например, в некоторых регионах, где цены на нефть и нефть в виде золота и серебра, как правило, выше, чем в других регионах, где цены на нефть и серебро выше, чем в других регионах.
Управление рисками:
Позиция на конец дня равнозначна.Стратегия: Автоматически ликвидировать все позиции и очистить все FVG-аресты каждый день в 15:15 по индийскому времени, чтобы подготовиться к следующему торговому дню
Складные сделкиСтратегия позволяет до 5 сверхуположений, что означает возможность держать несколько позиций в одном направлении, что увеличивает прибыль на рынке с сильной тенденцией.
Этот метод использует теорию непрерывности в структуре рынка и ценового поведения, чтобы попытаться уловить предсказуемое поведение цены при заполнении этих неравновесных зон.
После более глубокого анализа кода выяснилось, что у этой стратегии есть несколько преимуществ:
Объективные торговые критерииСтратегия использует четко определенные математические условия для идентификации FVG и точек входа, устраняя субъективные суждения и повышая дисциплину и согласованность торгов.
Сделки на основе структуры рынкаСтремясь преодолеть разрыв в справедливой стоимости, стратегия фокусируется на реальных неравновесных зонах спроса и предложения на рынке, а не на сигналах, которые обычно отстают от ценового поведения, как это делают традиционные индикаторы.
Механизмы контроля риска:
Комбинированный потенциал прибыли: Позволяя накладывать сделки (до 5 позиций), стратегия позволяет значительно увеличить прибыль на рынке с сильным трендом, контролируя при этом риск для каждой позиции с помощью стоп-лосса.
Приспособность: Стратегия не зависит от фиксированного уровня цен, а динамично идентифицирует ключевые области в текущих рыночных условиях, что делает ее адаптивной в различных рыночных условиях и инструментах.
Эффективность программирования: код использует массивный способ хранения информации FVG и эффективного управления несколькими потенциальными торговыми возможностями, обеспечивая возможность отслеживания и реагирования системы на нескольких уровнях цен.
Визуальная помощь: Стратегия визуально отображает на графике зоны FVG ((зеленый - быстрый FVG, красный - нисходящий FVG), помогает трейдеру понять процесс принятия решений в системе.
Несмотря на прочную теоретическую основу и многочисленные преимущества этой стратегии, существует несколько факторов риска, на которые следует обратить внимание:
Риск ложного проникновения: В консолидирующем рынке цена может несколько раз достигать границы FVG без формирования устойчивой тенденции, что приводит к нескольким остановкам убытков. Решение может включать в себя добавление дополнительных фильтров рыночной среды или индикаторов признания тенденции.
Риск перекрытия сделок: допускается до пяти однонаправленных позиций, которые могут привести к чрезмерному воздействию в неправильном направлении, особенно при резком реверсии тенденции. Рекомендуется ввести общие ограничения риска, например, максимальный риск для всех позиций не превышает определенного процента от счета.
Ограничения фиксированного коэффициента возврата рискаИспользование фиксированного соотношения риска и прибыли в соотношении 1:2 может не подходить для всех рыночных условий. В менее волатильных рынках такое может быть трудно достижимо; в высоко волатильных рынках может быть преждевременно снято с выгодных сделок.
Отсутствие рыночных фильтров: Стратегия генерирует сигналы при всех рыночных условиях, без учета общей тенденции или волатильности. В условиях сильной тенденции противоположность FVG может привести к непрерывным потерям. Добавление фильтра тренда может значительно повысить производительность.
Отсутствие подтверждения объема сделки: стратегия основана только на ценовом поведении без учета подтверждения объема сделки, что может привести к созданию ложных сигналов в зонах низкого объема сделки.
Потенциальные проблемы с фиксированным выходомВыход в определенное время суток может привести к преждевременному выходу в выигрышном положении или к упущению лучшей возможности выхода в невыигрышном положении. Учитывайте условия выхода в сочетании с ценовыми действиями.
Опирается на гипотезу исторического отсчетаСтратегические гипотезы: поведение будущих FVG будет похоже на модели, наблюдаемые в прошлом. Динамика рынка может измениться, ослабляя эффективность этих моделей. Очень важно регулярно оптимизировать параметры и проверять гипотезы.
Основываясь на глубоком анализе кода, можно выделить несколько возможных направлений оптимизации:
Фильтрация структуры рынка:
Корректировка волатильности:
Подтверждение объема сделки:
Приспособность к размеру позиции:
Анализ многовременных рамок:
Интеллектуальные сделки:
Машинное обучение:
Фреймворк статистической обратной связи:
Динамическая стратегия торговли в сутки с разрывом в справедливой стоимости обеспечивает систематизированный метод для выявления и торговли неравновесными зонами спроса и предложения на рынке. Используя модель FVG с тремя нитями и четкие правила обратного входа, стратегия имеет как теоретическую обоснованность, так и практическую применимость.
Основные преимущества стратегии заключаются в ее объективности и методе, основанном на структуре рынка, что позволяет ей оставаться релевантной в различных рыночных условиях. Однако эффективность стратегии может быть значительно повышена путем реализации оптимизированного направления рекомендаций, в частности, добавления фильтров рыночной среды, корректировки на основе волатильности и подтверждения объема сделок.
Следует отметить, что ни одна торговая стратегия, как бы она ни была совершенной, не гарантирует успеха. Успешные сделки требуют не только здоровой стратегии, но и строгой дисциплины в исполнении, надлежащего управления капиталом и глубокого понимания рынка.
/*backtest
start: 2024-03-26 00:00:00
end: 2025-03-25 00:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("Intraday FVG", overlay=true, pyramiding=5, max_bars_back=500, default_qty_type=strategy.percent_of_equity, commission_type=strategy.commission.percent)
// 2. FVG Detection (Three-Candle Pattern)
var bullFVGHigh = array.new_float()
var bullFVGLow = array.new_float()
var bullFVGIndex = array.new_int()
var bearFVGHigh = array.new_float()
var bearFVGLow = array.new_float()
var bearFVGIndex = array.new_int()
detectFVG() =>
// Bullish FVG: Current low > prior high AND next high < current low
bullCondition = low > high[2] and close[1] > high[2]
// Bearish FVG: Current high < prior low AND next low > current high
bearCondition = high < low[2] and close[1] < low[2]
if bullCondition
// log.info("bull condition met: {0} {0} {0}", high[2], close[1], low)
array.push(bullFVGHigh, low)
array.push(bullFVGLow, low[2])
array.push(bullFVGIndex, bar_index)
if bearCondition
// log.info("bear condition met: {0} {0} {0}", low[2], close[1], high)
array.push(bearFVGHigh, high[2])
array.push(bearFVGLow, high)
array.push(bearFVGIndex, bar_index)
detectFVG()
// 3. Retest Execution Logic
checkRetests(arrayHigh, arrayLow, barIndex, direction) =>
// log.info("{0} : {1}", bar_index, time)
i = array.size(arrayHigh) - 1
while i >= 0
// log.info("barIndex : {0}" , array.get(barIndex, i))
// log.info("bar_index : {0}" , bar_index)
if array.get(barIndex, i) < bar_index
fvgHigh = array.get(arrayHigh, i)
fvgLow = array.get(arrayLow, i)
// log.info("visting : {0} : {1} : {2} : {3} ", array.get(barIndex, i), bar_index, fvgHigh, fvgLow)
if direction == "long" and low <= fvgHigh
// log.info("entering long")
sl = array.get(arrayLow, i) // Previous candle's low
entry = close
tp = entry + (entry - sl)*2
strategy.entry("L"+str.tostring(array.get(barIndex, i)), strategy.long)
strategy.exit("XL"+str.tostring(array.get(barIndex, i)), "L"+str.tostring(array.get(barIndex, i)), stop=sl, limit=tp)
array.remove(arrayHigh, i)
array.remove(arrayLow, i)
array.remove(barIndex, i)
if direction == "short" and high >= fvgLow
// log.info("entering short")
sl = array.get(arrayHigh, i) // Previous candle's low
entry = close
tp = entry - (sl - entry)*2
strategy.entry("S"+str.tostring(array.get(barIndex, i)), strategy.short)
strategy.exit("XS"+str.tostring(array.get(barIndex, i)), "S"+str.tostring(array.get(barIndex, i)), stop=sl, limit=tp)
array.remove(arrayHigh, i)
array.remove(arrayLow, i)
array.remove(barIndex, i)
i := i - 1
checkRetests(bullFVGHigh, bullFVGLow, bullFVGIndex, "long")
checkRetests(bearFVGHigh, bearFVGLow, bearFVGIndex,"short")
// 5. Daily Exit at 3:15 PM IST
exitTime = hour == 15 and minute >= 15
if exitTime
strategy.close_all()
array.clear(bullFVGHigh)
array.clear(bullFVGLow)
array.clear(bearFVGHigh)
array.clear(bearFVGLow)
array.clear(bullFVGIndex)
array.clear(bearFVGIndex)