Флагман · 1 299 $ бессрочно, один платёж
Коротко: DC Copier — это AddOn для NinjaTrader 8, который повторяет ваши собственные заявки с одного счёта на столько ведомых, сколько вы ведёте. Около одиннадцати с половиной тысяч строк кода, большая часть которых — о том, что происходит, когда что-то идёт не так. Он написан трейдером, который вёл оценочные и финансированные счета Apex параллельно с симулятором, и построен вокруг одной мысли: ведомый никогда не должен оказаться в состоянии, в котором нет мастера.
| Что это | AddOn для NinjaTrader 8 — собственное окно из Control Center › New |
|---|---|
| Платформа | NinjaTrader 8 Desktop, .NET Framework 4.8 |
| Счета-ведомые | Проверено с 27 ведомыми; в коде ограничения нет |
| Копируемые типы заявок | Market, Limit, Stop Market, Stop Limit, MIT — плюс OCO, воссоздаваемый по каждому ведомому |
| Расчёт объёма | Множитель или фиксированное количество, задаётся по каждому ведомому |
| Сопоставление инструментов | Микро в мини и обратно — MNQ↔NQ, MES↔ES |
| Нужен Order Flow+ | Нет |
| Нужен Tick Replay | Нет |
| Удалённое управление | Telegram, включая закрытие всего |
| Компьютеров на лицензию | 3 |
| Цена | 1 299 $ бессрочно, один платёж |
Именно эту часть пропускает страница любого другого копировщика, поэтому вот вся история целиком, включая ошибку, которую мы выпустили и которую пришлось исправлять.
Мастер стоял в шорте по MNQ и закрыл позицию. Ведомые закрылись — и открылись в лонг.
Логи объяснили почему. Старая аварийная процедура закрытия отменяла рабочие копии и вызывала Flatten() в том же вызове диспетчера. В NinjaTrader обе операции асинхронны. Копия, исполнимая по рынку, была залита внутри окна отмены, параллельно с закрытием — счёт покрылся дважды и оказался на противоположной стороне.
Задержка проп-фирмы усугубила дело: подтверждения заявок приходили за 760–1 243 миллисекунды, тогда как порог безопасности стоял на 500.
Процедуру заменили на пофазовую атомарную сверку. Целевое состояние всегда равно состоянию мастера, и поскольку ни одна закрывающая заявка не уходит до завершения отмен, гонка, породившая переворот позиции, возникнуть не может.
Снять все рабочие копии по этому инструменту.
Ничего нового не отправлять, пока отмены не подтверждены.
Вычислить дельту = цель − позиция и закрыть ровно её, одной рыночной заявкой.
Подтвердить результат. Если он неверен — повторить.
Пороги: задержка на закрытие мастера 1 500 мс, противоположная сторона 500 мс. Ручная кнопка Flat Followers проходит через ту же сверку — за кнопкой не прячется второй, менее аккуратный путь в коде.
Кнопка закрытия есть почти у каждого копировщика. Проверяет ли закрытие сработало — почти никто. Две из перечисленных функций под надзором: нечто подтверждает, что сама защитная операция завершилась, и вмешивается, если нет.
Emergency Flat All отменяет заявки и закрывает позиции на всех активных счетах. Затем сторож подтверждает, что операция завершилась. Кнопка паники не работает по принципу «нажал и забыл».
Заблокированный счёт остаётся вне игры, пока вы сами его не разблокируете, а сторож следит, чтобы блокировка держалась.
Дневные лимиты убытка и прибыли действуют и на мастер. Плохой день не должен разойтись по двадцати финансируемым счетам.
Считается по каждому счёту отдельно, потому что именно так его считают фирмы. У ведомого, подключённого позже, исторический максимум отличается от мастера.
Позиции сравниваются циклически, а не только после события по заявке, поэтому уход в сторону ловится даже тогда, когда ничего не происходит.
Определённое поведение при разрыве связи, а не импровизация. Ничего не переотправляется молча в устаревший рынок.
Не копировать в окно события или вне вашей сессии. Настраивается один раз, соблюдается каждый день.
Потолок, который не может превысить ни одна копия, что бы ни делал мастер. Ошибка пальцем выше по цепочке там и остаётся.
Закрыть отдельного ведомого, не трогая остальных — на случай, когда одному проп-счёту нужно остановиться, а другим нет.
В таблице счетов есть светофор синхронизации. Synced означает, что позиция ведомого соответствует тому, что подразумевает для неё позиция мастера. MISMATCH означает, что нет — и тогда строка подсвечивается, счётчик в заголовке меняется, а журнал событий фиксирует причину в тот же момент.
Оба состояния намеренно несут не только цвет, но и символ. Примерно у 8% мужчин есть нарушение красно-зелёного цветовосприятия, и это не то место, где кого-то стоит заставлять догадываться.
Позиции окрашены по лонгу и шорту, числа моноширинные, чтобы колонки выстраивались, а журнал событий окрашен по важности: строки сверки, паники, расхождения и отклонения выделяются, а рутина остаётся спокойной. Журнал экспортируется в CSV.
Откройте столько окон копировщика, сколько нужно. Каждое именуется автоматически, у каждого свой мастер, свои ведомые и свои настройки риска, и все они сохраняются и восстанавливаются вместе с рабочим пространством NinjaTrader.
Счета Apex в одном окне, Tradeify в другом, у каждого — те правила drawdown, которые фирма действительно применяет.
Мастер по NQ ведёт ведомых по NQ, мастер по ES — ведомых по ES, с разным расчётом объёма в каждом.
Скальпы копируются на агрессивные счета, более медленные сделки — на консервативные, из одной и той же платформы.
Ни одна страница конкурентов об этом не упоминает, поэтому здесь это заявлено как функция, а не оставлено сноской.
| Действие мастера | Что происходит на каждом ведомом |
|---|---|
| Market, Limit, Stop Market, Stop Limit, MIT | Эквивалентная заявка, с объёмом по правилу этого ведомого |
| Изменение цены или количества | Сопоставленные заявки ведомых меняются соответственно |
| Отмена | Сопоставленные заявки ведомых отменяются |
| Брекет OCO | Связь OCO воссоздаётся по каждому ведомому и никогда не делится между счетами — поэтому стоп одного счёта не может отменить цель другого |
| Частичное исполнение | Копии отслеживают исполненное количество, а не поданное |
Скопированные заявки несут префикс DC_, поэтому копировщик не может принять собственную активность за новую заявку мастера и скопировать её ещё раз.
Ведомому на небольшом оценочном счёте не обязательно торговать тем же контрактом, что и мастер. Сопоставление MNQ↔NQ и MES↔ES позволяет полноразмерному мастеру вести ведомых на микро-контрактах или наоборот, с множителем поверх.
Двадцать семь ведомых, проверено. Один мастер вёл 27 ведомых счетов одновременно — разработчик на своих собственных счетах, и всё оставалось в синхроне. Это число, которого мы действительно достигли, а не оценка.
Выше мы просто не пробовали, поэтому и заявлять не будем. Константы максимального числа ведомых в коде нигде нет, так что предел не наш: вас ограничивает то, сколько брокерских подключений может держать NinjaTrader одновременно.
NinjaTrader Desktop поддерживает одно активное подключение Rithmic за раз, но несколько подключений Tradovate одновременно. Apex, Tradeify, MyFundedFutures и BluSky работают через Tradovate, поэтому все они могут быть подключены одновременно. Если ваши фирмы на Rithmic, две сессии Rithmic в одном NinjaTrader держать нельзя — понадобится второй компьютер или другой маршрут. Фирмы меняют провайдеров — проверяйте свою, а не полагайтесь на этот абзац через год.
Большинство серьёзных мультисчётных проп-трейдеров держат NinjaTrader на Windows-VPS в дата-центре под Чикаго, рядом с движками сопоставления CME. Не ради красоты, а потому что задержка становится стабильной: каждый ведомый получает похожее исполнение, вместо того чтобы один отставал.
Копировщик перестаёт получать обновления мастера, и управление берёт защита от разрыва связи в соответствии с вашей конфигурацией. Ничего не переотправляется молча в устаревший рынок. Когда связь возвращается, механизм сверки сравнивает каждого ведомого с текущим состоянием мастера и закрывает разрыв — он не переигрывает пропущенные заявки.
Это различие важно. Переигрывание пропущенных заявок в рынок, который уже ушёл, — это то, как восстановление превращается во второй инцидент.
Все счета, которые хотите копировать, уже должны быть подключены в NinjaTrader.
Импортируйте AddOn, скомпилируйте, перезапустите NinjaTrader.
Откройте Control Center › New › DC Copier. Выберите мастера, добавьте ведомых, задайте каждому множитель или фиксированное количество.
Запустите Validate, затем Preview Test — он моделирует копирование, ничего не отправляя. Когда журнал выглядит как надо, нажмите START.
Ваш профиль — счета, объёмы, защиты, тема — сохраняется автоматически и загружается в следующий раз.
1 299 $ единоразово, бессрочно. Три компьютера на лицензию, так что и рабочая машина, и VPS покрыты.
Для сравнения: собственный аддон Multiple Broker у NinjaTrader стоит 99 $ каждый месяц, то есть больше 1 299 $ уже за первые четырнадцать месяцев — и это продукт для подключений, а не копировщик. Он позволяет подключить больше брокеров; он не повторяет одну заявку на двадцати счетах, у него нет механизма сверки, нет PANIC и нет учёта drawdown по каждому счёту.
Оплата пока не открыта — лицензионный клиент и платёжный провайдер ещё в разработке. До тех пор список основателей фиксирует более низкую цену.
Копирование между своими собственными счетами крупные фьючерсные проп-фирмы обычно разрешают. Копирование для кого-то другого — иная, регулируемая деятельность, и этот инструмент не для неё. Правила меняются без предупреждения, поэтому сверяйтесь с действующими условиями своей фирмы, а не с чьей-либо сводкой — включая эту.
Он работает с любым счётом, к которому может подключиться NinjaTrader, включая проп-счета на Tradovate и Rithmic. DC TradeLab не связана ни с одной из этих фирм и упоминает их только как факт совместимости.
Да. Брекет-заявки копируются, а связь OCO воссоздаётся на каждом ведомом отдельно, поэтому стоп одного ведомого не может отменить цель другого.
Этот счёт помечается как MISMATCH, причина записывается в журнал событий, и механизм сверки приводит его к целевому состоянию мастера. Остальные ведомые не затронуты и продолжают работать.
Да, через Telegram — включая закрытие всего. Если вас нет за столом, когда что-то пошло не так, кнопка всё равно работает.
Нет, но большинство серьёзных проп-трейдеров его используют. Windows-VPS рядом с движками сопоставления CME в Чикаго делает задержку одинаковой сразу для всех счетов, а это важнее чистой скорости.
Три компьютера на лицензию, со сбросом привязки самостоятельно из личного кабинета, когда он откроется.
Пока нет. Лицензионный клиент внутри AddOn и платёжный провайдер ещё в разработке. Запись в список основателей фиксирует более низкую цену и не требует оплаты.
Один только бессрочный копировщик планируется по 1 299 $. Комплект основателя — копировщик, десять индикаторов и Telegram-агент, всё бессрочно — стоит 1 845 $ для первых пятидесяти. Сегодня оплата не взимается.