В процессе загрузки ресурсов... загрузка...

Многоуровневая институциональная стратегия количественного потока заказов с динамической системой масштабирования позиций

Автор:Чао Чжан, Дата: 2024-12-27 15:01:36
Тэги:PCTVOLМ.А.ОБ

img

Обзор

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

Принципы стратегии

Стратегия основана на нескольких ключевых элементах:

  1. Идентификация блоков ордеров - использование 20-периодного ретроспективного окна для идентификации блоков ордеров покупки и продажи с помощью анализа моделей свечей.
  2. Контроль времени торговли - торговля ограничивается основной сессией с 09:30 до 16:00, избегая периодов высокой волатильности во время открытия и закрытия рынка.
  3. Логика входа - длинные позиции открываются, когда цена превышает блок ордера покупки в течение торговых часов, и короткие позиции, когда цена превышает блок ордера продажи.
  4. Позиционное масштабирование - внедряет трехуровневую систему масштабирования на уровне 50% - 30% - 20% в соответствии с целями 0,5%, 1,0% и 1,5%.

Преимущества стратегии

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

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

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

Оптимизация стратегии

  1. Приспособление к волатильности - рекомендуется включить индикатор ATR для динамической корректировки целевых процентов на основе волатильности рынка.
  2. Анализ объема потока заказов - рассмотреть возможность объединения анализа объема для повышения надежности подтверждения блока заказов.
  3. Динамическое временное окно - рассматривать возможность динамической корректировки периода просмотра на основе рыночных условий для улучшения адаптивности стратегии.
  4. Улучшенный контроль рисков - Добавление максимальных лимитов привлечения и лимитов ежедневных потерь для повышения надежности стратегии.

Резюме

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


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=6
strategy("Institutional Order Flow Strategy", overlay=true)

// Input settings
inputSession = input("0930-1600", "Trading Session") // Trading session
lookbackPeriod = input.int(20, "Order Block Lookback Period", minval=1) // Lookback for Order Blocks
target1Pct = input.float(0.5, "Target 1 (% move)", step=0.1, minval=0.1) // First profit target
target2Pct = input.float(1.0, "Target 2 (% move)", step=0.1, minval=0.1) // Second profit target
target3Pct = input.float(1.5, "Target 3 (% move)", step=0.1, minval=0.1) // Third profit target

// Order Block identification
highestHigh = ta.highest(high, lookbackPeriod)
lowestLow = ta.lowest(low, lookbackPeriod)
orderBlockBuy = ta.valuewhen(close[1] < open[1] and close > open, highestHigh, 0)
orderBlockSell = ta.valuewhen(close[1] > open[1] and close < open, lowestLow, 0)

// Entry logic
inSession = true
longCondition = close > orderBlockBuy and inSession
shortCondition = close < orderBlockSell and inSession

// Strategy entries
if longCondition
    strategy.entry("Long", strategy.long)

if shortCondition
    strategy.entry("Short", strategy.short)

// Calculate targets for scaling out
longTarget1 = strategy.position_avg_price + strategy.position_avg_price * target1Pct / 100
longTarget2 = strategy.position_avg_price + strategy.position_avg_price * target2Pct / 100
longTarget3 = strategy.position_avg_price + strategy.position_avg_price * target3Pct / 100

shortTarget1 = strategy.position_avg_price - strategy.position_avg_price * target1Pct / 100
shortTarget2 = strategy.position_avg_price - strategy.position_avg_price * target2Pct / 100
shortTarget3 = strategy.position_avg_price - strategy.position_avg_price * target3Pct / 100

// Exit logic with scaling out
if strategy.position_size > 0
    strategy.exit("Target 1", from_entry="Long", limit=longTarget1, qty_percent=50)
    strategy.exit("Target 2", from_entry="Long", limit=longTarget2, qty_percent=30)
    strategy.exit("Target 3", from_entry="Long", limit=longTarget3, qty_percent=20)

if strategy.position_size < 0
    strategy.exit("Target 1", from_entry="Short", limit=shortTarget1, qty_percent=50)
    strategy.exit("Target 2", from_entry="Short", limit=shortTarget2, qty_percent=30)
    strategy.exit("Target 3", from_entry="Short", limit=shortTarget3, qty_percent=20)

// Visualize Order Blocks
plot(orderBlockBuy, "Order Block Buy", color=color.green, linewidth=2, style=plot.style_line)
plot(orderBlockSell, "Order Block Sell", color=color.red, linewidth=2, style=plot.style_line)


Связанные

Больше