Стратегия Advanced Opportunity Space Oscillator: количественная торговая система, основанная на разрыве справедливой стоимости

FVG ATR SMA VOL BFVG SFVG
Дата создания: 2025-02-21 10:43:26 Последнее изменение: 2025-02-24 14:55:25
Копировать: 1 Количество просмотров: 362
2
Подписаться
319
Подписчики

Стратегия Advanced Opportunity Space Oscillator: количественная торговая система, основанная на разрыве справедливой стоимости Стратегия Advanced Opportunity Space Oscillator: количественная торговая система, основанная на разрыве справедливой стоимости

Обзор

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

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

В основе стратегии лежит выявление потенциальных торговых возможностей путем мониторинга ценовых пробелов между последовательными K-линиями. В частности:

  1. Условие формирования BFVG заключается в том, что минимальная цена текущей K-линии выше максимальной цены до двух K-линий
  2. Условие формирования FVG (SFVG) состоит в том, что максимальная цена текущей линии K ниже минимальной цены до двух линий K
  3. Стратегия вводит механизм верификации, основанный на объеме сделок и размере пробелов, и только FVG, удовлетворяющие условиям верификации, могут инициировать торговый сигнал
  4. Используйте динамическое окно подсчета 50 циклов для подсчета количества многомерных FVG
  5. Преобразование ширины отверстий в более интуитивно понятные показатели с помощью унификации

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

  1. Система имеет хорошо продуманный механизм проверки сигнала, чтобы повысить качество сигнала с помощью двойного подтверждения объема сделок и ширины пробелов
  2. Динамическое окно счета позволяет эффективно отслеживать изменения рыночных тенденций
  3. Унификация позволяет сравнивать сигналы разных периодов
  4. Стратегия имеет автоматическую функцию управления позициями, которая автоматически устраняет обратные позиции перед открытием новых позиций
  5. Отличная визуализация, которая помогает трейдерам понять состояние рынка

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

  1. Сигналы FVG могут создавать ложные сигналы на высоко волатильных рынках
  2. Фиксированные параметры проверки могут не применяться во всех рыночных условиях
  3. Не установленные механизмы остановки и остановки, которые могут привести к большему отступлению
  4. Частые транзакции могут привести к более высоким транзакционным затратам Рекомендуется управлять этими рисками путем установления соответствующих стоп-позиций и внедрения фильтров рыночной среды.

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

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

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

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

Исходный код стратегии
/*backtest
start: 2024-02-22 00:00:00
end: 2025-02-19 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

// ----------------------------------------------------------------------------
// This Pine Script™ code is subject to the terms of the Mozilla Public License
// 2.0 at https://mozilla.org/MPL/2.0/
// © OmegaTools
// ----------------------------------------------------------------------------

//@version=5
strategy("FVG Oscillator Strategy", 
     shorttitle="FVG Osc v5 [Strategy]", 
     overlay=false, 
     initial_capital=100000, 
     default_qty_type=strategy.percent_of_equity, 
     default_qty_value=100)

//------------------------------------------------------------------------------
// 1) Input Parameters
//------------------------------------------------------------------------------
lnt   = input.int(50, "Bars Back")
area  = input.bool(true, "Show Areas")
upcol = input.color(#2962ff, "Positive Color")
dncol = input.color(#e91e63, "Negative Color")

//------------------------------------------------------------------------------
// 2) FVG Detection
//    bfvg = bullish FVG, sfvg = bearish FVG
//------------------------------------------------------------------------------
bfvg = low > high[2]
sfvg = high < low[2]

//------------------------------------------------------------------------------
// 3) Additional Conditions - FVG Verification (Volume, Gap Size)
//------------------------------------------------------------------------------
vol  = volume > ta.sma(volume, 10)
batr = (low - high[2]) > ta.sma(low - high[2], lnt) * 1.5
satr = (high - low[2]) > ta.sma(high - low[2], lnt) * 1.5

//------------------------------------------------------------------------------
// 4) Sum of Bullish / Bearish FVG within the Last lnt Bars
//------------------------------------------------------------------------------
countup   = math.sum(bfvg ? 1 : 0, lnt)      // +1 for each BFVG
countdown = math.sum(sfvg ? -1 : 0, lnt)     // -1 for each SFVG

//------------------------------------------------------------------------------
// 5) Verification (e.g., Require Higher Volume or Large Gap)
//------------------------------------------------------------------------------
verifyb = (bfvg and vol[1]) or (bfvg and batr)
verifys = (sfvg and vol[1]) or (sfvg and satr)

//------------------------------------------------------------------------------
// 6) Normalized Gap Values
//------------------------------------------------------------------------------
normb = ((low - high[2]) * countup * 0.75) / ta.highest(low - high[2], lnt)
norms = ((high - low[2]) * countdown * 0.75) / ta.lowest(high - low[2], lnt)

//------------------------------------------------------------------------------
// 7) Total Net FVG Count + Calculation of Maximum for fill()
//------------------------------------------------------------------------------
totcount = countup + countdown
max      = math.max(
               ta.highest(countup, 200), 
               ta.highest(math.abs(countdown), 200)
           )

//------------------------------------------------------------------------------
// 8) Plotting Values (as in an indicator – can be kept for visualization)
//------------------------------------------------------------------------------
up   = plot(countup,     "Buy FVG",  color=upcol,  display=display.none)
down = plot(countdown,   "Sell FVG", color=dncol,  display=display.none)
zero = plot(0, "", color.new(color.gray, 100), display=display.none, editable=false)

// Net Value (sum of FVG)
plot(totcount, "Net Value", color=color.new(color.gray, 50))

// Filling areas above/below zero

plot(verifyb ? normb : na, "Long Pattern Width",  color=upcol,  linewidth=1, style=plot.style_histogram)
plot(verifys ? norms : na, "Short Pattern Width", color=dncol, linewidth=1, style=plot.style_histogram)

//------------------------------------------------------------------------------
// 9) Simple Trading Logic (STRATEGY)
//------------------------------------------------------------------------------
// - If "verifyb" is detected, go long.
// - If "verifys" is detected, go short.
//
// You can extend this with Stop Loss, Take Profit, 
// closing old positions, etc.
//------------------------------------------------------------------------------
bool goLong  = verifyb
bool goShort = verifys

// Basic example: Open Long if verifyb, Open Short if verifys.
if goLong
    // First close any short position if it exists
    if strategy.position_size < 0
        strategy.close("Short FVG")
    // Then open Long
    strategy.entry("Long FVG", strategy.long)

if goShort
    // First close any long position if it exists
    if strategy.position_size > 0
        strategy.close("Long FVG")
    // Then open Short
    strategy.entry("Short FVG", strategy.short)