Стратегия отслеживания прорыва VWAP - это стратегия отслеживания тренда, которая использует индикатор VWAP для определения направления тренда. Она обнаруживает прорывы цен в VWAP на основе цен закрытия последних 5 бар. Когда 3 последовательных бара прорыва VWAP в одном и том же направлении, записывается самая высокая / самая низкая цена 3-го бар. Затем генерируется торговый сигнал, когда цена прорывается через этот зарегистрированный самый высокий / самый низкий уровень цены.
Ключевое преимущество этой стратегии заключается в ее быстрой реакции на возможности выхода для ультракороткосрочной импульсной торговли. Однако существует также риск накопления слишком большой позиции. Это можно оптимизировать путем корректировки параметров размещения позиций.
Основным показателем, используемым в этой стратегии, является VWAP. VWAP означает средневзвешенную цену по объему, которая является средневзвешенной ценовой линией по объему. Она отражает консенсусный уровень цен на рынке.
Стратегия рассчитывает цены закрытия последних 5 бар и индикатор VWAP в режиме реального времени.
Торговые сигналы генерируются на основе новых высоких/низких цен, созданных в результате ценового прорыва.
Таким образом, основная идея заключается в определении направления ценового прорыва, и торговли новыми самыми высокими / самыми низкими ценами, полученными в результате прорывов.
Размер позиции по умолчанию устанавливается на 100% собственного капитала. Это представляет собой полную позицию на каждой сделке. Учитывая краткосрочный характер этой стратегии, размер позиции может быть уменьшен, чтобы контролировать риск.
Правило выхода - VWAP crossunder/crossover. VWAP служит последующим стоп-лосом, чтобы избежать беглых потерь.
Наибольшее преимущество стратегии VWAP Breakout Tracking заключается в его быстрой реакции на краткосрочную динамику цен и трендовые возможности.
Эта стратегия особенно подходит для высокочастотного краткосрочного трейдинга, позволяющего быстро закрепить прибыль.
Хотя эта стратегия обладает эффективной способностью отслеживания, все же существуют риски, которые следует учитывать:
Следующие оптимизации могут помочь смягчить эти риски:
В качестве сверхкороткосрочной стратегии отслеживания можно было бы сделать дальнейшие оптимизации в следующих областях:
Интеграция нескольких показателей: Сочетание других показателей волатильности и импульса для установления более строгих правил фильтрации и повышения точности
Динамическое размещение позиции: Динамически корректировать размер позиции на основе меняющихся рыночных условий.
Адаптивные остановки: модернизация фиксированных остановок VWAP на адаптивный механизм остановки, основанный на ATR и других сигналах ценового действия.
Управление рискамиДля контроля рисков необходимо установить больше ограничений по показателям риска, таких как максимальные периоды хранения, лимиты прибыли/убытка в день, лимит привлечения и т.д.
Машинное обучение: Собирать исторические данные о торговле и применять модели машинного обучения для поиска оптимальных параметров стратегии для повышения стабильности.
В целом, стратегия отслеживания прорыва VWAP является очень практичной высокочастотной торговой системой. Она быстро реагирует на краткосрочные возможности прорыва и отслеживает цены с использованием полной позиции для быстрого скальпирования.
С дальнейшими оптимизациями, такими как фильтрация с несколькими индикаторами, динамическое размещение позиций, адаптивные остановки и машинное обучение, эта стратегия может достичь еще большей эффективности и стабильности.
/*backtest start: 2023-12-12 00:00:00 end: 2023-12-19 00:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title="VWAP Push", initial_capital = 100000, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, currency = 'USD', overlay=true) //VWAP vwap = ta.vwap(close) plot(vwap, color=color.black, title="vwap") //Last 5 Closes closeBarPrevious5 = close[5] closeBarPrevious4 = close[4] closeBarPrevious3 = close[3] closeBarPrevious2 = close[2] closeBarPrevious1 = close[1] closeBarCurrent = close //is_1530 = (hour == 15) and (minute == 30) is_push_up = (closeBarCurrent > closeBarPrevious1) and (closeBarPrevious1 > closeBarPrevious2) and (closeBarPrevious2 > closeBarPrevious3) and (closeBarPrevious4 < vwap) and (closeBarPrevious3 > vwap) is_push_down = (closeBarCurrent < closeBarPrevious1) and (closeBarPrevious1 < closeBarPrevious2) and (closeBarPrevious2 < closeBarPrevious3) and (closeBarPrevious4 > vwap) and (closeBarPrevious3 < vwap) var float hi = na var float lo = na hi := is_push_up ? high : hi lo := is_push_down and (close < vwap) ? low : lo plot(hi, "High", color.green, 1, plot.style_circles) plot(lo, "Low", color.red, 1, plot.style_circles) // Conditions longCondition = ta.crossover(close,hi) exitLong = ta.crossunder(close,vwap) shortCondition = ta.crossunder(close,lo) and (close < vwap) exitShort = ta.crossover(close,vwap) // Entries Exits if (longCondition) strategy.entry("Long", strategy.long) if (exitLong) strategy.close("Long") if (shortCondition) strategy.entry("Sell", strategy.short) if (exitShort) strategy.close("Sell")