Расширенная стратегия устранения разрывов справедливой стоимости: система фиксации микродисбаланса, основанная на количественных алгоритмах

FVG SMC TP/SL 量化交易 价格不平衡 趋势过滤器
Дата создания: 2025-07-09 09:44:04 Последнее изменение: 2025-07-09 09:44:04
Копировать: 1 Количество просмотров: 371
2
Подписаться
319
Подписчики

Расширенная стратегия устранения разрывов справедливой стоимости: система фиксации микродисбаланса, основанная на количественных алгоритмах Расширенная стратегия устранения разрывов справедливой стоимости: система фиксации микродисбаланса, основанная на количественных алгоритмах

Обзор

Это количественная торговая стратегия, основанная на пробелах справедливой стоимости, вдохновленная концепцией умных денег и теорией ценового дисбаланса в институциональной торговле. Стратегия использует фиксированные 0.10% стоп-лосс и стоп-стоп, разработанные специально для коротколинейных трейдеров и алгоритмических трейдеров с целью строгого контроля риска, чтобы захватить мелкие колебания рынка.

Стратегический принцип

В основе этой стратегии лежит выявление и использование пробелов в справедливой стоимости (FVG). FVG - это зоны, через которые цены проскакивают в течение короткого периода времени, представляющие собой уровни цен, на которых рынок недостаточно торгуется, и которые обычно считаются зонами, в которых цены могут быть вновь зафиксированы.

Стратегия основана на двух типах FVG:

  1. FVG: образуется, когда низкая точка текущей K-линии выше высокой точки перед двумя K-линиями, а цена закрытия средней K-линии выше высокой точки перед двумя K-линиями.
  2. Падение FVG: образуется, когда высота текущей линии K ниже низких, предшествовавших двум линиям K, и цена закрытия средней линии K ниже низких, предшествовавших двум линиям K.

Логика сделки выглядит следующим образом:

  • Когда цена вновь входит в позитивную зону FVG, вызывается сигнал MULTI.
  • Когда цена вновь входит в понижательную зону FVG, запускается сигнал “отрыва”.
  • Установленный уровень стоп-лосса и стоп-стоп на 0.10% для каждой сделки.

Также в стратегию включен фильтр отклонений, который позволяет отфильтровать достаточно большие пробелы, чтобы избежать небольшого рыночного шума. Пользователь может вручную настроить процент отклонений или выбрать автоматический режим, позволяющий стратегии корректировать отклонения в соответствии с динамикой исторической волатильности.

Стратегические преимущества

  1. Определение структуры микрорынкаСтратегия способна запечатлеть микро-рынковые структуры и дисбалансы, которые могут быть проигнорированы обычным техническим анализом, и которые часто представляют собой следы деятельности институционального капитала.

  2. Точная точка входа: С помощью четко определенных условий FVG, стратегия обеспечивает объективные и точные входные сигналы, уменьшая ошибки, вызванные субъективным суждением.

  3. Строгий контроль риска: фиксированная стоп-стратегия 0,10% обеспечивает строго контролируемый риск на каждой сделке и подходит для трейдеров с строгим управлением капиталом.

  4. РасширяемостьФункциональные параметры: Функциональные параметры: Функциональные параметры: Функциональные параметры: Функциональные параметры: Функциональные параметры:

  5. Проблемы без перерисовок: реализация кода позволяет избежать переписывания и гарантирует, что результаты исторических отсчетов будут соответствовать показателям на реальном диске.

  6. Приспособность к многократным временным рамкам: Пользователь может настроить параметры временных рамок, позволяя стратегии адаптироваться к различным условиям торговли от 1 минуты до более длительного периода времени.

Стратегический риск

  1. Высокая частота коротких сделокС учетом того, что стратегия ориентирована на микро-неравновесие, может быть создано большое количество торговых сигналов, что увеличивает стоимость торговли, особенно в условиях высокочастотного торговли.

  2. Шумные помехи: В низко волатильных или горизонтальных рынках FVG-сигналы могут содержать больше шума, что приводит к увеличению количества ложных сигналов.

  3. Риск фиксированной потериФиксированный стоп на 0,10%, хотя и обеспечивает строгий контроль риска, может быть слишком плотным в условиях высокой волатильности рынка, что приводит к частому возникновению.

  4. Риск обратного трендаВ случае сильного тренда, обратный сигнал FVG может привести к торговле в противоположность основной тенденции, увеличивая вероятность потери.

  5. Параметр ЧувствительностьНастройка параметров порога оказывает существенное влияние на эффективность стратегии. Неправильные параметры могут привести к переоптимизации или пропуску эффективного сигнала.

Снижение риска может быть достигнуто путем:

  • Фильтр направления тренда в сочетании с более высокими временными рамками
  • Повышение требований к уменьшению стоимости на низко волатильных рынках
  • Уровни остановки и остановки корректируются в соответствии с динамикой волатильности рынка
  • Внедрение фильтров объема сделок, чтобы избежать торговли в условиях низкой ликвидности

Направление оптимизации стратегии

  1. Система адаптации к пониженным значениямВ текущей стратегии уже включены варианты автоматического снижения стоимости, но они могут быть дополнительно оптимизированы в качестве адаптивной системы, основанной на показателях волатильности рынка (например, ATR), что позволяет более точно идентифицировать FVG в соответствии с текущим состоянием рынка.

  2. Подтверждение многократных временных рамок: внедрение многоразового анализа, выполнение сделок только в тех случаях, когда направление тенденции в более высоких временных рамках соответствует сигналу FVG, повышение выигрышной ставки.

  3. Динамическая остановка / остановка: замена фиксированного 0.10% стоп-стоп на динамическую настройку, основанную на рыночной волатильности, автоматически расширяя пределы стоп-стоп при увеличении волатильности и сужая пределы при снижении волатильности.

  4. Подтверждение объема сделки: в процессе формирования FVG и возобновления входа в цены добавляется анализ объема сделки, сделки выполняются только при наличии достаточной поддержки объема сделки, уменьшается количество ложных сигналов.

  5. Классификация состояния рынкаСистема автоматического распознавания состояния рынка (тенденции, диапазоны, высокая / низкая волатильность), корректировка параметров стратегии или приостановка торгов в зависимости от различных состояний рынка.

  6. Машинное обучение: Анализ успешности исторических моделей FVG с помощью алгоритмов машинного обучения, создание прогнозных моделей для оценки потенциальной вероятности успеха текущих сигналов FVG.

Эти направления оптимизации могут не только повысить устойчивость стратегии, но и повысить ее способность адаптироваться к различным рыночным условиям, потенциально повысить общую доходность и снизить отказ.

Подвести итог

Стратегия пробела справедливой стоимости - это технически сложная количественная торговая система, специализирующаяся на захвате неравновесий цен в микроструктуре рынка. Благодаря точному выявлению и точному исполнению FVG, стратегия предоставляет торговую структуру с четкими правилами и строгим контролем риска для краткосрочных и алгоритмических трейдеров.

Несмотря на то, что в базовой версии стратегии уже продемонстрирована способность улавливать микроклиматные неравновесия, ее эффективность может быть дополнительно повышена путем реализации предлагаемого направления оптимизации, в частности, адаптивной системы параметров и подтверждения многократных временных рамок. Это способ, который стоит рассмотреть для трейдеров, которые стремятся к дисциплинированной количественной стратегии торговли в короткие временные рамки.

В конечном счете, успех этой стратегии зависит от глубокого понимания трейдером концепции FVG и его способности корректировать параметры в зависимости от различных рыночных условий. В сочетании с надлежащим управлением рисками и постоянной оптимизацией, стратегия Fair Value Gap может стать эффективным инструментом в портфеле количественных сделок.

Исходный код стратегии
/*backtest
start: 2024-07-09 00:00:00
end: 2025-07-04 08:00:00
period: 4d
basePeriod: 4d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("FVG Strategy [algo ] - 0.10% TP/SL", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// === INPUTS ===
thresholdPer = input.float(0, "Threshold %", minval = 0, maxval = 100, step = .1, inline = 'threshold')
auto = input(false, "Auto", inline = 'threshold')
tf = input.timeframe("", "Timeframe")

// SL/TP settings (0.10% each)
sl_pct = 0.10
tp_pct = 0.10

// === TYPE ===
type fvg
    float max
    float min
    bool isbull
    int t = time

// === DETECTION FUNCTION ===
detect() =>
    var new_fvg = fvg.new(na, na, na, na)
    threshold = auto ? ta.cum((high - low) / low) / bar_index : thresholdPer / 100

    bull_fvg = low > high[2] and close[1] > high[2] and (low - high[2]) / high[2] > threshold
    bear_fvg = high < low[2] and close[1] < low[2] and (low[2] - high) / high > threshold

    if bull_fvg
        new_fvg := fvg.new(low, high[2], true)
    else if bear_fvg
        new_fvg := fvg.new(low[2], high, false)

    [bull_fvg, bear_fvg, new_fvg]

// === FVG Detection ===
[bull_fvg, bear_fvg, new_fvg] = request.security(syminfo.tickerid, tf, detect())

var fvg_records = array.new<fvg>(0)
var t = 0

if (bull_fvg or bear_fvg) and new_fvg.t != t
    array.unshift(fvg_records, new_fvg)
    t := new_fvg.t

// === ENTRY STRATEGY ===
if array.size(fvg_records) > 0
    latest = array.get(fvg_records, 0)
    
    // BUY Logic
    if latest.isbull and close <= latest.max and close >= latest.min and strategy.position_size <= 0
        sl = close * (1 - sl_pct / 100)
        tp = close * (1 + tp_pct / 100)
        strategy.entry("Buy FVG", strategy.long)
        strategy.exit("TP/SL Long", from_entry="Buy FVG", stop=sl, limit=tp)
    
    // SELL Logic
    if not latest.isbull and close >= latest.min and close <= latest.max and strategy.position_size >= 0
        sl = close * (1 + sl_pct / 100)
        tp = close * (1 - tp_pct / 100)
        strategy.entry("Sell FVG", strategy.short)
        strategy.exit("TP/SL Short", from_entry="Sell FVG", stop=sl, limit=tp)

// === VISUALIZE FVG ZONES ===
plotshape(bull_fvg, title="Bullish FVG", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(bear_fvg, title="Bearish FVG", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)