Stacked Imbalances Strategy

Создано: 07 янв 2024 · Обновлено: 24 янв 2025

Стратегия Stacked Imbalances — это механическая стратегия класса Premium для платформы NinjaTrader 8. Это полностью автоматическая стратегия, которая может работать в автопилоте, а встроенные командные кнопки позволяют продлить её работу или вручную переопределить её решения. Стратегию можно использовать для прохождения оценочных челленджей проп-фирм.

Требования

Чтобы правильно использовать эту стратегию, вам понадобятся следующие компоненты.


  • NinjaTrader 8, с любым типом лицензии. Нажмите здесь, чтобы скачать
  • Аккаунт NinjaTrader с поддержкой OrderFlow, полученный либо покупкой пожизненной лицензии NinjaTrader, либо через лицензию, предоставленную программой финансирования трейдеров.
  • Учётная запись automated-trading.ch с действующей подпиской Premium

Важное предупреждение

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

Стратегия Stacked Imbalances одновременно является трендовой и разворотной стратегией, основанной на предположении, что накапливающиеся дисбалансы объёма — это признак присущей рыночной микроструктуре неэффективности.

Стратегия реализует несколько схем входа на основе дисбалансов:

  • Trend Mode: входит в лонг, когда возникает накопленный дисбаланс со стороны ask, или в шорт, когда возникает накопленный дисбаланс со стороны bid
  • Reversal Mode: входит в лонг, когда обнаружены «запертые» продавцы при развороте цены вниз, или в шорт, когда обнаружены «запертые» покупатели при развороте цены вверх
  • Auto Mode: автоматически переключается между режимами Trend и Reversal на основе Volume Profile предыдущего дня относительно текущего движения цены

Стратегия стремится быть прибыльной в долгосрочной перспективе, получая положительное математическое ожидание доходности при соотношении прибыльных и убыточных сделок выше 1. Её можно использовать с ценовым баром (Range или Tick) или с временным баром — рекомендуемые настройки для разных инструментов см. в разделе «Отчёты о результатах».

Примеры настройки входа

Вход в лонг в режиме продолжения тренда

Стратегия обнаруживает накопленный дисбаланс со стороны ask, который переводит её в состояние ожидания лонга, а затем ждёт, пока движение цены подтвердит сделку — например, закрытие свечи выше максимума предыдущей свечи. В одном из таких примеров сделка была открыта со Stop Loss и Take Profit $100 и объёмом 2 контракта на MES.

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

Когда параметр Stacked Imbalances Entry Mode установлен в значение Reversal, накопленный дисбаланс со стороны покупок (buy-side) запускает вход в шорт, а накопленный дисбаланс со стороны продаж (sell-side) — вход в лонг. Например, лонг открывается после накопленного дисбаланса со стороны bid и подтверждающей свечи. Сделка оказалась прибыльной, поскольку дисбаланс отражал крупные лимитные ордера на покупку, которые зафиксировали прибыль после нисходящего тренда, а затем цена развернулась вверх.

Пример входа в сделки в режиме разворота
Нажмите, чтобы увеличить
Вход в лонг по сигналу «запертых» продавцов

Если включён только сетап Trapped Traders, накопленный дисбаланс со стороны bid на зелёной свече (агрессивные продажи оказались в ловушке или на этом уровне накопился большой объём лимитных ордеров на покупку) переводит стратегию в состояние ожидания, а свеча продолжения подтверждает вход. Один из таких сетапов дал прибыльную сделку в лонг с 2 контрактами на MCL и соотношением 1:1 для Take Profit и Stop Loss на уровне $100.

Пример входа в лонг по сигналу «запертых» продавцов
Нажмите, чтобы увеличить
Управление ордерами «Dollar Cost Averaging» в действии

Когда в качестве стратегии управления ордерами используется DCA, объём позиции увеличивается на каждой закрывающейся свече в направлении прибыли. Цель — выйти в безубыток и закрыть позицию раньше, в безубытке или с небольшой прибылью. Это работает не всегда: иногда из-за увеличенного объёма стоп-лосс срабатывает раньше тейк-профита, и сделка закрывается с убытком. Перед использованием этого метода рекомендуется провести обширный бэктест на разных рыночных режимах, инструментах и таймфреймах, чтобы понять его долгосрочное влияние.

Управление ордерами Dollar Cost Averaging в действии
Нажмите, чтобы увеличить
Сильный сигнал дисбаланса без подтверждения движением цены

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

Сильный сигнал дисбаланса без подтверждения движением цены (пример)
Нажмите, чтобы увеличить

Возможности

Стратегия Stacked Imbalances обладает набором уникальных возможностей:

  • Производительный движок обнаружения дисбалансов собственной разработки
  • Отложенные ордера не выставляются — только рыночные ордера
  • Полностью автоматическая стратегия, которую можно масштабировать на несколько экземпляров
  • Может работать как полуавтоматическая стратегия через интерфейс автоматической торговли на панели Chart
  • Точное бэктестирование в соответствии с официальными рекомендациями NinjaTrader, обеспечивающее точное тестирование входов и выходов на уровне тиков
  • Надёжная собственная библиотека управления ордерами, устойчивая к обрыву соединения и безупречно работающая со счетами Rithmic или брокерскими счетами NinjaTrader

Параметры

Мы стараемся минимизировать количество параметров — вынесены только самые важные.

General
Execute Historical TradesДолжен быть включён, когда стратегия работает в режимах Historical, Backtest или Optimization, и выключен при работе в режиме Live Real-Time.
Daily TakeProfit TargetСтратегия прекращает торговлю на день, как только дневная реализованная прибыль достигает этой суммы. При значении 0 не учитывается.
Weekly TakeProfit TargetСтратегия прекращает торговлю на неделю, как только после закрытия позиции достигнута эта недельная цель по прибыли. Сбрасывается в начале каждой новой недели. При значении 0 не учитывается.
Daily StopLoss LimitСтратегия прекращает торговлю на день, как только после закрытия позиции достигнут дневной лимит убытка (указывается положительным числом — например, 300 останавливает торговлю, когда реализованный PnL ≤ -$300). При значении 0 не учитывается.
Stop @ Winning CountОстанавливает торговлю на день, когда чистое количество прибыльных сделок достигает этого значения. При значении 0 не учитывается.
Stop @ Losing CountОстанавливает торговлю на день, когда чистое количество убыточных сделок достигает этого значения. При значении 0 не учитывается.
Swings PeriodЗадаёт, сколько баров должно пройти, чтобы два свинга одного типа считались разными. Чем выше значение, тем меньше свингов всего; чем ниже — тем больше. Обычно используется значение 3 или 4.
Draw Price SwingsВключает/выключает отрисовку свингов на графике. Свинги в любом случае анализируются и обрабатываются — параметр влияет только на видимость.
Buy Imbalances Color / Sell Imbalances ColorЦвет зон накопленных дисбалансов на покупку / на продажу, отрисовываемых на графике.
Execute on MicrosИсполняет сделки на инструменте, отличном от инструмента активного графика — например, логика работает на мини-контрактах, а исполнение идёт на микро-контрактах для лучшего управления риском. Весь расчёт риска производится по инструменту исполнения.
Execution InstrumentВыберите из списка микро-контрактов, доступных в вашем подключении NinjaTrader, инструмент, на котором будут исполняться сделки. В этом случае исторические и текущие сделки на графике не отображаются.
Entry Setup
Time Zone Часовой пояс, используемый для параметра Trade Time ниже. Фьючерсные рынки работают по времени US Eastern (EST), поэтому здесь вы можете задать торговый интервал относительно часового пояса своего компьютера.
  • EST, CET или Local Time
Trade TimeЗадаёт интервал(ы) времени, в которые стратегия может открывать сделки — например, 09:30-16:15 для RTH по EST или 00:01-08:00,09:55-15:55,18:01-23:59, чтобы охватить RTH и ETH, исключив волатильные периоды. Интервалы должны перечисляться по возрастанию (в том числе интервал, переходящий через полночь на следующую сессию) и обрезаются в полночь, чтобы избежать проблем при переходе на новый день.
Quantity Strategy
  • Fixed Quantity: фиксированный объём на сделку; пропускается, если расчётный риск превышает Max Risk Currency
  • Risk Adjusted: динамический размер контракта, рассчитываемый по цене стоп-лосса и Target Risk Per Trade ($)
Max QtyМаксимально допустимый объём при выборе Risk Adjusted — полезно, поскольку некоторые проп-фирмы ограничивают объём ордера, что может аннулировать счёт.
Trade Entry Mode
  • Immediate: открывает позицию сразу по закрытию бара, когда возникает сетап для входа
  • Wait For Bar Confirmation: ждёт закрытия свечи выше (для лонга) или ниже (для шорта) свечи сетапа — помогает избежать случаев, когда цена развернулась против сетапа
  • Wait For FVG Confirmation: ждёт, когда Fair Value Gap закроется выше (для лонга) или ниже (для шорта) свечи сетапа — направлено на входы с более высокой вероятностью
Order QtyОбъём на сделку при Quantity Strategy = Fixed — также используется для каждого увеличения объёма, если механизм управления ордерами наращивает позицию.
Enable Trapped Traders EntryВключает/выключает вход по сигналам trapped traders — накопленный дисбаланс на свече разворота, за которым следует ценовой пробой максимума/минимума свечи дисбаланса вверх/вниз.
Enable Stacked Imbalances EntryВключает/выключает трендовый сигнал входа — накопленный дисбаланс, за которым следует такое же подтверждение движением цены.
Stacked Imbalances Entry Mode Задаёт режим входа для Enable Stacked Imbalances Entry.
  • Trend Following: входит в направлении накопленного дисбаланса в расчёте на продолжение тренда
  • Reversal: входит в противоположном направлении в расчёте на прибыль от разворота цены
  • Auto: задаёт направление тренда по Volume Profile предыдущей RTH-сессии (9:30-16:15 EST) — только лонг, если цена выше предыдущего Value Area High; только шорт, если ниже предыдущего Value Area Low; разворот, если цена между VaL и VaH; либо тренд (лонг или шорт), если предыдущий профиль был двойным распределением и цена находится между его двумя частями
VWAP FilterВключает/выключает фильтр VWAP для входов — лонг открывается, только когда цена выше VWAP, шорт — только когда цена ниже VWAP.
Swing Filter Включает/выключает фильтр свингового тренда для входов, который анализирует последовательные свинговые экстремумы.
  • Лонг разрешён, только если до сетапа произошло как минимум 2 последовательных нижних свинга
  • Шорт разрешён, только если до сетапа произошло как минимум 2 последовательных верхних свинга
Imbalances
Min Imbalance RatioМинимальное соотношение диагональных объёмов bid/ask, при котором считается дисбаланс.
Min Imbalance VolumeМинимальный объём на сильной стороне (bid/ask), при котором считается дисбаланс.
Max Imbalance Gap (Ticks)Допуск по разрыву между уровнями накопленных дисбалансов — дисбалансы, которые выстроены не идеально (с тиковыми разрывами между ними), всё равно считаются кластером, если этот параметр больше единицы.
Min Stacked Imbalance CountМинимальное количество дисбалансов в кластере накопленных дисбалансов — обычно 3 и более.
Order Management
Order Management Strategy
  • Classic Trail Stop: подтягивает стоп-лосс по триггеру и величине трейлинга (см. параметры трейлинг-стопа ниже)
  • ATM Strategy: полностью передаёт управление позицией шаблону ATM-стратегии NinjaTrader на ваш выбор, который выбирается на панели Chart Trader
  • Dollar Cost Averaging (Grid): увеличивает объём ордера каждый раз, когда формируется свинг против сделки, усредняя цену позиции
  • Trail Stop on Swings: подтягивает стоп-лосс каждый раз, когда формируется свинг в направлении прибыли
  • None: вместо этого используется стоп-лосс, заданный параметром Stop Loss Currency
ATM Strategy Template NameИспользуется только с методом управления ордерами ATM Strategy — точное название вашего шаблона ATM-стратегии, которое выбирается из выпадающего списка доступных шаблонов.
On Opposite Signal
  • Breakeven: переносит стоп-лосс в безубыток при возникновении противоположного сигнала
  • Close Position: немедленно закрывает позицию при возникновении противоположного сигнала
  • Do Nothing: игнорирует противоположные сигналы
StopLoss Strategy
  • Bar High Low: устанавливает стоп-лосс на уровне минимума/максимума свечи дисбаланса (также ограничивается Stop Loss Currency; позиция закрывается, когда первым срабатывает любой из уровней)
  • Last Swing: устанавливает стоп-лосс на уровне максимума/минимума предыдущего ценового свинга (действует то же ограничение Stop Loss Currency)
  • Fixed Currency Value: используется только стоп-лосс, заданный параметром Max Stop Loss Currency
  • Points: фиксированное количество пунктов от цены входа
TakeProfit Strategy
  • Fixed Currency Value, на основе Take Profit Currency
  • Фиксированные соотношения прибыли и убытка: от 0.5:1 до 6:1, рассчитываются от цены стоп-лосса
  • Points — фиксированное количество пунктов от цены входа
Target Risk Per Trade ($)Максимальный риск в долларах на позицию — проверяется перед открытием сделки: если рассчитанный стоп-лосс не укладывается в этот лимит, сделка пропускается.
Max Allowed Risk Per ($)Используется только с Risk Adjusted объёмом — определяет, насколько фактический расчётный риск может отклоняться от Target Risk (поскольку точного совпадения обычно не добиться).
Stop Loss PointsДоступен, когда стратегия стоп-лосса установлена на Points.
Stoploss offset PointsДобавляет смещение в пунктах к рассчитанному уровню стоп-лосса — используется при расчёте риска на сделку.
Take Profit CurrencyСумма тейк-профита в долларах, используется при выборе Fixed Currency Value. В остальных случаях задайте достаточно высокое значение, чтобы оно не мешало стратегиям на основе соотношений.
Enable Price BreakevenВключает/выключает безубыток на основе цены.
Price Breakeven Strategy
  • Points: безубыток срабатывает на основе пунктов
  • Percentage: безубыток срабатывает на основе процента достигнутого тейк-профита
Price Breakeven TriggerДоступен, если включён безубыток по цене — значение триггера (в пунктах или в процентах от 1 до 100), необходимое для переноса стоп-лосса в безубыток.
Enable Time BreakevenВключает/выключает безубыток по времени (в минутах).
Time Breakeven Trigger (Minutes)Доступен, если включён безубыток по времени — количество минут, необходимое для переноса стоп-лосса в безубыток.
Trailing Stop Parameters
Trailing Stop Strategy Используется с методом управления ордерами Classic Trail Stop.
  • Points: триггер и величина трейлинга рассчитываются в пунктах от цены входа
  • Ratio: рассчитывается как соотношение от величины стоп-лосса, зеркально отражаемое на стороне прибыли
Trailing Stop TriggerТриггер (в пунктах или соотношении) для метода Classic Trail Stop.
Trail AmountВеличина (в пунктах или соотношении), на которую подтягивается стоп после срабатывания триггера.
DCA (Grid) Parameters
Breakeven Profit ShiftИспользуется с методом управления ордерами DCA — добавляет небольшую прибыль к определению безубытка, чтобы покрыть комиссии при закрытии сетки в безубытке.
Grid Size to BreakevenИспользуется с методом управления ордерами DCA — количество увеличений ордера, необходимое до того, как можно будет рассмотреть закрытие позиции в безубытке.
Command Buttons
Стратегия выводит кнопки ручного управления на панели Chart Trader — убедитесь, что она отображается на вашем активном графике.
Arm/Disarm ButtonsРучное включение/выключение входов в лонг или шорт — полезно, если у вас есть направленный прогноз.
Entry Mode Switch ButtonПереключает режим входа стратегии между Trend и Reversal.
Close Position ButtonНемедленно закрывает позицию по активному инструменту без перезапуска стратегии, которая продолжит поиск новых сделок.
Increase Qty ButtonУвеличивает объём текущей активной позиции на величину, заданную в Order Qty — полезно для ручного усреднения или удвоения позиции после подтверждающего сигнала в направлении прибыли.

Отчёты о результатах

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

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

Для этой стратегии пока не загружено ни одного отчёта о результатах.

Инструкции по загрузке и установке

Требования к лицензии

На automated-trading.ch вы можете либо оформить ежемесячную подписку для использования наших продуктов Premium, либо пользоваться бесплатными продуктами без подписки.

В обоих случаях вам нужно создать учётную запись, чтобы получить лицензию, которую можно использовать как для продуктов Premium, так и для бесплатных продуктов.

Чтобы получить лицензию, просто зарегистрируйтесь, а затем получите её на странице оплаты.

Важно: Это продукт уровня Premium. Его можно запускать в режимах Backtest, Playback и Optimization бесплатно; для запуска в реальном времени требуется действующая подписка Premium.
Скачать
Войдите, чтобы скачать этот файл.
Последняя версия v1.6.0.0 · Опубликовано 1 год назад
Количество загрузок этого файла: 1083. Последняя загрузка: 1 день назад.

Вы также можете скачать эту стратегию, а также любую другую стратегию или индикатор automated-trading.ch, в любое время из централизованной страницы загрузок.

Шаги установки
1
Импортируйте загруженный .zip-файл в NinjaTrader с помощью пункта меню Import NinjaScript.
Нажмите, чтобы увеличить
2
Откройте новое окно графика, убедившись, что флажок Tick Replay установлен (если его не видно, перейдите в Tools → Options → Market Data и включите Show Tick Replay).
Нажмите, чтобы увеличить
3
Щёлкните правой кнопкой мыши по графику и выберите Strategies (или нажмите Ctrl+S), чтобы открыть окно Add New Strategy.
Нажмите, чтобы увеличить
4
После добавления стратегии она сначала работает на исторических данных графика, затем переключается в режим Real-Time и добавляет на панель Chart Trader текстовое поле для лицензии — убедитесь, что эта панель отображается.
5
Вставьте вашу лицензию (её можно найти на странице биллинга) в текстовое поле и нажмите Check License.
Нажмите, чтобы увеличить
6
После проверки кнопка «Check License» становится зелёной вместе с датой следующей проверки — повторять её нужно только после этой даты.
7
Без активной подписки стратегию всё равно можно запустить в режимах Playback, Historical, Backtest и Optimization, чтобы сначала её протестировать.

Часто задаваемые вопросы

Общие

VPS — хорошее решение, но не обязательное: для большинства пользователей достаточно недорогого Windows VPS.

Да, если каждый экземпляр работает с уникальным инструментом. NinjaTrader объединяет ордера в одну позицию на инструмент в рамках счёта, поэтому два экземпляра на одном инструменте работать не будут.

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

Да — стратегия создана именно для этого и без проблем работает с Rithmic, брокером NinjaTrader, Tradovate или любым другим провайдером, подключённым к вашей платформе NinjaTrader.

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

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

Да — если у вас есть идея, которая может улучшить стратегию, свяжитесь с нами через страницу контактов.

Нет, исходный код защищён по соображениям авторского права.
Оплата

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

Нет, пробного тарифного плана мы не предлагаем, но вы можете скачать продукт и протестировать его в режимах backtest и playback до оформления подписки.

Мы не предоставляем полный или частичный возврат средств, однако вы можете в любое время отменить подписку, чтобы прекратить будущие платежи.
Скептики

Я профессионально занимаюсь разработкой программного обеспечения с 2010 года и создаю автоматические торговые стратегии с 2012 года — как для себя, так и для клиентов по всему миру. Я также работал в сфере финансов и инвестиционного банкинга. Я не маркетолог, и разработку стратегий я не передаю на аутсорсинг.

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

Отложенные (лимитные) ордера обеспечивают лучшее исполнение по цене и некоторую защиту от сбоев связи, но их могут отклонить при высокой волатильности, они требуют активного сопровождения и видны брокеру. Рыночные ордера гарантируют исполнение независимо от волатильности, невидимы для брокера до отправки и исполняются быстрее. Их единственный реальный недостаток в том, что при потере соединения отправить их вообще нельзя. Ордера MIT (market-if-touched) в NinjaTrader — надёжная альтернатива, если вам нужно именно поведение отложенных ордеров.

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

Примечания к релизам

  • Added CET timezone; Added Fair Value Gap entry filter; Added 1.5:1 take profit option; Fixed fixed-value take profit interference with dynamic mode; Optimized memory usage on optimizations; Added Points as stoploss option; Added Risk per trade / max allowed risk parameters; Added StopLoss Offset Points parameter; Upgraded price breakeven methods; Added time based breakeven; Better dynamic quantity calculation; Added Points based take profit; Added Weekly take profit target

  • Fix duplicate Chart Panel controls

  • Added Execution on Micros; Added new trail stoploss method; Added stoploss offset in points; Various Fixes

  • Added Breakeven option; Removed maximum count of trades as daily stop trade method

  • Bug Fix: error on render method

  • Bug Fix: Max Currency Risk should not take over stoploss price

  • Added additional daily stop strategies; Added Risk adjusted quantity strategy; Added Auto switch Trend/Reversal entry modes; Added VWAP filter for entries; Added Swing direction filter for entries

  • Major update: adding ATM Strategy management capabilities

  • Added Entry Mode Switch to command buttons

  • Bug Fix: Last Swing StopLoss method was incorrect

  • User Friendly parameter value options; Better Swing analysis; Rendering of imbalances zones from within strategy; Added Take profit strategy; Strategy became Premium

  • First Release of the strategy as a free strategy
discord
Присоединяйтесь к нашему сообществу в Discord
Есть вопросы, отзывы или просто хотите пообщаться с другими трейдерами? Заходите.
Присоединиться к Discord
Основные сведения
Платформа NinjaTrader 8
Категория Стратегия
Требуемый план Premium
Последняя версия v1.6.0.0
Последнее обновление 1 год назад
Загрузки 1083