Стратегия обратного разрыва справедливой стоимости


Дата создания: 2025-07-03 11:29:05 Последнее изменение: 2025-07-04 11:38:50
Копировать: 0 Количество просмотров: 290
2
Подписаться
319
Подписчики

Стратегия обратного разрыва справедливой стоимости Стратегия обратного разрыва справедливой стоимости

Обзор стратегии

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

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

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

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

  2. IFVG подтверждает: Когда цена возвращается в зону FVG и появляется обратный сигнал, образуется обратный разрыв справедливой стоимости ((IFVG)). В частности, IFVG подтверждается, когда цена выше высокой точки по убывающей FVG и закрытая цена выше открытой, или цена ниже низкой точки по убывающей FVG и закрытая цена ниже открытой.

  3. Тенденции подтверждены: Стратегия использует простые движущиеся средние ((SMA) на 50 и 200 циклов для определения рыночной тенденции. Когда краткосрочная SMA ((50 циклов) выше, чем долгосрочная SMA ((200 циклов), подтверждается восходящая тенденция; наоборот, подтверждается нисходящая тенденция.

  4. Условия приема:

    • Многоусловие: когда IFVG формируется, цена ниже IFVG-низких и рынок находится в восходящей тенденции
    • Условия дефолта: когда IFVG формируется, цены выше высоты IFVG и рынок находится в нисходящей тенденции
  5. Управление рисками:

    • Первоначальный стоп-лост установлен на 0,5% от цены входа
    • Цель стоп-аппа - 1,5% от цены входа
    • Запуск динамического стоп-трафика, когда прибыль достигнет половины целевого показателя стоп-трафика (0,75%)
    • Движущаяся корректировка, основанная на ATR ((14)), чтобы обеспечить большую цену в случае усиления рыночных колебаний

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

  1. Механизм многократного подтвержденияЭта стратегия сочетает в себе структуру цены (IFVG), направление тренда (SMA) и динамическое управление рисками (ATR) в виде многоуровневой системы фильтрации, что значительно снижает количество ложных сигналов.

  2. Структура рынкаИдентифицируя FVG и IFVG, стратегия может улавливать изменения в микроструктуре рынка, которые обычно представляют собой дисбаланс в краткосрочной силе купли-продажи и возможные направленные возможности.

  3. Однообразие тенденций: С помощью перекрестных SMA подтверждается направление общей тенденции, стратегия торгуется только в направлении тенденции, избегая высокого риска обратной торговли.

  4. Динамическое управление рисками: Стратегия не только устанавливает фиксированные уровни стоп-лосса и стоп-стоп, но также реализует динамический стоп-лосса на основе ATR, который может адаптироваться к уровню защиты в зависимости от волатильности рынка.

  5. Защита прибыли: Когда сделка достигает половины от установленной прибыли, стоп-лосс автоматически перемещается выше залоговой позиции, чтобы обеспечить, что сделка не превратится из прибыли в убыток.

  6. Гибкость временных рамок: Несмотря на то, что отсчет проводится в 1-минутный цикл, основная логика стратегии (FVG, подтверждение тренда и динамическая остановка) может применяться в различных временных рамках.

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

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

  2. Тенденции определяют ограничения: Использование только двух SMA для определения тренда может привести к ошибочным сигналам на рынке в колебаниях. Решение заключается в добавлении дополнительных показателей подтверждения тренда, таких как ADX (индекс среднего направления), для измерения силы тренда.

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

  4. Недостаточное управление выводом: Когда рынок внезапно реверсирует, то отслеживание стоп-лозов может не реагировать быстро, что приводит к расширению вывода. Решение заключается в установке максимально допустимого отвода, а если он превысит, то сразу же выйти.

  5. Параметр Чувствительность: Стратегическая производительность очень чувствительна к таким параметрам, как цикл SMA, коэффициент остановки и умножение ATR. Решение заключается в поиске стабильной комбинации параметров путем обратной оптимизации и регулярной переоценки.

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

  1. Интеграция многовременного анализаВключение в процесс принятия решений информации о FVG и тенденциях на более высоких временных рамках может повысить качество сигнала. Например, можно требовать, чтобы сигнал на 1-минутном графике соответствовал FVG и тенденции на 15-минутном или 1-часовом графике.

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

  3. Восстановление и адаптивность рынка: Добавление логики идентификации рыночной среды, использование текущей стратегии в период ясного тренда, а в период консолидации использование различных критериев входа и выхода.

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

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

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

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

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

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

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

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

Исходный код стратегии
/*backtest
start: 2025-05-31 00:00:00
end: 2025-06-30 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BNB_USDT"}]
args: [["RunMode",1,358374]]
*/

//@version=6
strategy("Inverted FVG Strategy with Trend Check and Trailing Stops", default_qty_value = 10, overlay=true)

// Function to detect FVG
fvgDetected(src, high, low) =>
    float prevHigh = na
    float prevLow = na
    float prevClose = na
    float fvgHigh = na
    float fvgLow = na
    bool fvg = false
    if (not na(src[3]))
        prevHigh := high[3]
        prevLow := low[3]
        prevClose := src[3]
        if (src[2] > prevClose and low[2] > prevHigh) or (src[2] < prevClose and high[2] < prevLow)
            fvg := true
            fvgHigh := low[2] > prevHigh ? high[2] : na
            fvgLow := high[2] < prevLow ? low[2] : na
    [fvg, fvgHigh, fvgLow]

// Detect FVG on the chart
[fvg, fvgHigh, fvgLow] = fvgDetected(close, high, low)

// Detect IFVG - Inversion of FVG
bool ifvg = false
float ifvgHigh = na
float ifvgLow = na

if (fvg)    
    if (high[1] > fvgHigh and close[1] > open[1]) or (high[1] < fvgLow and close[1] < open[1])
        ifvg := true
        ifvgHigh := close[1] > open[1] ? high[1] : na
        ifvgLow := close[1] <  open[1] ? low[1] : na

// Plot FVG and IFVG zones for visualization
plot(ifvgHigh, title="IFVG High", color=color.red, linewidth=2, style=plot.style_cross)
plot(ifvgLow, title="IFVG Low", color=color.red, linewidth=2, style=plot.style_cross)

// Trend Check using Simple Moving Averages
smaShort = ta.sma(close, 50)  // Short term SMA
smaLong = ta.sma(close, 200)  // Long term SMA
bool uptrend = false
bool downtrend = false

uptrend := smaShort > smaLong  // Up trend if short SMA is above long SMA
downtrend := smaShort < smaLong  // Down trend if short SMA is below long SMA

// Plot SMAs for visualization
plot(smaShort, title="SMA Short", color=color.blue, linewidth=1)
plot(smaLong, title="SMA Long", color=color.orange, linewidth=1)

// Trading logic with trend confirmation
longCondition = ifvg and close < ifvgLow and uptrend
shortCondition = ifvg and close > ifvgHigh and downtrend

// Risk Definition - 使用百分比
stopLoss = 0.005   // 0.5% 止损
takeProfit = 0.015  // 1.5% 止盈

if (longCondition and strategy.position_size == 0)
    strategy.entry("Long", strategy.long)
    stopPrice = close * (1 - stopLoss)
    limitPrice = close * (1 + takeProfit)
    strategy.exit("Initial Long Exit", "Long", stop=stopPrice, limit=limitPrice)

if (shortCondition and strategy.position_size == 0)
    strategy.entry("Short", strategy.short)
    stopPrice = close * (1 + stopLoss)
    limitPrice = close * (1 - takeProfit)
    strategy.exit("Initial Short Exit", "Short", stop=stopPrice, limit=limitPrice)

// ATR for dynamic trailing stop
atr = ta.atr(14)

// Trailing Stop for Long Position if the trade has moved > 0.5% (half of takeProfit)
if (strategy.position_size > 0)
    profitThreshold = takeProfit * 0.5  // 1.5% profit threshold
    if (close - strategy.position_avg_price >= strategy.position_avg_price * profitThreshold)
        // 将止损移动到盈亏平衡点加上一点利润
        trailingStopLong = math.max(strategy.position_avg_price * (1 + profitThreshold), close - (atr * 2))
        strategy.exit("Trailing Stop Long", "Long", stop=trailingStopLong)

// Trailing Stop for Short Position if the trade has moved > 0.5% (half of takeProfit)
if (strategy.position_size < 0)
    profitThreshold = takeProfit * 0.5  // 1.5% profit threshold
    if (strategy.position_avg_price - close >= strategy.position_avg_price * profitThreshold)
        // 将止损移动到盈亏平衡点加上一点利润
        trailingStopShort = math.min(strategy.position_avg_price * (1 - profitThreshold), close + (atr * 2))
        strategy.exit("Trailing Stop Short", "Short", stop=trailingStopShort)