Разработка платформы копи-трейдинга — это не простое дублирование ордера мастер-счёта на счёте подписчика. Для каждого follower-счёта система должна создать отдельное, проверяемое решение: можно ли копировать событие, каким должен быть объём, какой символ и тип заявки доступны у брокера, что произошло после отправки и совпадает ли внутреннее состояние с брокерским.

До запуска полезно разделить продукт на три связанных слоя: стратегия и согласия клиента; аллокация и риск-проверки; исполнение и сверка с брокером. Такая архитектура делает social trading продукт управляемым в эксплуатации и не подменяет техническое описание обещаниями доходности.

Храните отношения master-follower как мандат, а не как простую привязку счетов

В минимальной схеме один master-счёт связан со многими follower-счетами. В промышленном продукте пользователь должен подключаться к версии стратегии через отдельный copy mandate. Счёт мастера остаётся источником торговых событий, но не является единственным документом отношений с пользователем.

  • идентификаторы клиента, юридического лица и follower-счёта;
  • идентификаторы стратегии и источника master-событий, а также их версии;
  • даты действия и текущий статус мандата;
  • модель аллокации, бюджет, разрешённые инструменты и риск-параметры;
  • версия раскрытия рисков, согласие, время принятия и доказательство;
  • настройки pause, stop-copy и сценарий для уже открытых позиций.

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

Правовая квалификация зависит от юрисдикции и требует оценки профильным специалистом. Например, FCA указывает, что при отсутствии явного ручного участия владельца счёта копи-трейдинг может быть отнесён к управлению портфелем или инвестиционному управлению. ESMA также подчёркивает необходимость оценивать конкретную модель сервиса и ожидания по защите клиента, информации и внутреннему контролю. Поэтому согласия, раскрытия, политики и решения о допуске должны быть неизменяемыми записями внутри продукта, а не файлами вне системы. ([fca.org.uk](https://www.fca.org.uk/firms/copy-trading?utm_source=openai))

Copy trading allocation engine: фиксируйте входные данные и правила округления

Модуль аллокации превращает исполнение у мастера в отдельное намерение исполнить сделку для follower-счёта. Это не должна быть непрозрачная формула «лот мастера × процент». Для расчёта нужны зафиксированные входные данные: выделенный капитал, референсный капитал мастера, валюта счёта, leverage, текущая экспозиция, размер контракта, минимальный объём, шаг объёма, доступность инструмента и версия применённой риск-политики.

Пропорциональная модель

В пропорциональной модели объём follower обычно рассчитывается из объёма master-исполнения и отношения капиталов, затем округляется вниз по шагу объёма брокера. Сохраняйте snapshot equity или balance, время снимка, multiplier и итог округления. Если после округления объём равен нулю, создайте запись о блокировке с причиной «ниже минимального торгового объёма», а не пропускайте событие без следа.

Фиксированный номинал и бюджет стратегии

Фиксированная сумма или лимит капитала на стратегию могут быть понятнее пользователю. Но такая модель требует точной обработки частичного закрытия, наращивания позиции и инструментов с разными мультипликаторами контракта. Если мастер закрывает 25% позиции, закрываемый объём follower следует считать от отслеживаемой скопированной позиции follower, а не заново угадывать по текущей позиции мастера.

Отдельно спроектируйте начальную синхронизацию. Входит ли новый follower в уже открытую позицию мастера по текущей цене? Копирует ли только новые события? Нужно ли явное подтверждение? Документация MetaTrader показывает, что у счетов поставщика и подписчика могут различаться доступные символы, лимиты объёма, leverage и ценовые потоки, поэтому синхронизация требует самостоятельных правил. ([metatrader5.com](https://www.metatrader5.com/en/terminal/help/signals/signal_subscriber?utm_source=openai))

Вынесите symbol mapping и broker execution profile в отдельный сервис

У мастера инструмент может называться «EURUSD», а у follower-брокера — «EURUSD.a», иметь другой contract size или отсутствовать вовсе. Нужна каноническая модель инструмента и профиль исполнения для каждого брокерского счёта, а не набор исключений в коде.

  • канонический инструмент, символ брокера и статус доступности;
  • размер контракта, тик, точность цены, минимум/максимум и шаг объёма;
  • торговая сессия, поддерживаемые типы заявок и stop-distance ограничения;
  • режим netting либо hedging;
  • правила маржи, leverage и валютной конвертации;
  • семантика стороны, закрытия, reduce-only и идентификации позиции.

Если корректного mapping нет, нельзя направлять заявку в «похожий» инструмент. Заблокируйте intent, отметьте follower как требующий сверки и создайте операционное исключение. Даже при одинаковом направлении сделки цены, срабатывание стопов и фактические fill могут отличаться на разных брокерах. ([metatrader5.com](https://www.metatrader5.com/en/terminal/help/signals/signal_subscriber?utm_source=openai))

Copy trading risk controls на четырёх этапах

Ограничения должны применяться не только ко всей платформе, но и к конкретному мандату, стратегии, счёту и маршруту брокера. Практичный порядок проверок:

  1. Допуск: мандат активен, согласие действительно, счёт разрешён для торговли, стратегия и инструмент допустимы.
  2. До сделки: лимит экспозиции стратегии, концентрация по инструменту, маржа и leverage, минимальный размер, бюджет, допустимое отклонение цены и другие лимиты.
  3. Исполнение: подтверждение брокера, timeout, reject, partial fill, отмена, requote и недоступность маршрута.
  4. После сделки: сверка фактических fill, позиций и денежных эффектов, выявление рассинхронизированных follower-счетов.

Pause, аварийный kill switch и stop-copy должны работать на уровне стратегии, конкретного follower, брокерского соединения и всей платформы. Для каждого режима заранее определите эффект: запретить новые заявки, разрешить только reduce-only, отменить ожидающие retry, отключить маршрут или оставить открытые позиции без изменений.

Считайте задержки, дубли и ошибки нормальными состояниями

Событие исполнения у мастера и заявка follower — разные объекты. Между ними создавайте неизменяемый copy intent. Он должен содержать ID исходного исполнения, ID мандата follower, входы аллокации, версию правил и idempotency key. Тогда повторный webhook или перезапуск worker не создадут второй ордер.

State machine должна различать как минимум received, evaluated, blocked, queued, submitted, acknowledged, partially_filled, filled, rejected, cancelled, expired и reconciliation_required. Timeout не равен отказу: брокер мог принять заявку, но ответ пришёл с задержкой. Повторять отправку можно только после проверки broker reference, статуса на стороне брокера и условий идемпотентности.

Для каждого intent храните audit trail: время источника и получения, данные master fill, входы аллокации, версии политик и раскрытий, выбранный symbol mapping, рассчитанный объём, результаты проверок, очищенный от чувствительных данных запрос к брокеру, ответы, изменения состояния, retry и действия оператора.

Не смешивайте историю мастера и результат follower

Исторический результат мастера не является результатом подписчика. Follower мог подключиться позднее, получить другую цену, столкнуться с partial fill, быть ограничен risk control, иметь другую комиссию или получить reject. В интерфейсе следует отдельно показывать историю сделок мастера, методологические показатели стратегии и фактический результат follower, сверенный с брокером.

Для любого показателя необходимы границы расчёта: период, дата подключения, вводы и выводы средств, комиссии, учёт открытых позиций, realised/unrealised значения и время последней успешной сверки. Не представляйте историю стратегии до даты подписки как результат конкретного счёта follower.

Checklist перед запуском trade copying software

  • Какие классы активов, брокеры, типы счетов и заявок поддерживаются?
  • Как обрабатываются начальная синхронизация и ручные сделки follower?
  • Как сопоставляются netting, hedging, частичные fill и частичные закрытия?
  • Какие ошибки допустимо повторять автоматически, а какие требуют расследования?
  • Что именно делают pause и stop-copy с очередью и открытыми позициями?
  • Версионируются ли snapshots аллокации и риск-политики?
  • Сверяется ли внутренняя книга позиций с данными брокера?
  • Могут ли уполномоченные сотрудники support, risk и compliance видеть единую цепочку событий?

POLADO разрабатывает FinTech и trading-системы с брокерскими интеграциями, контролем исполнения и back-office процессами. Чтобы проверить пользовательские сценарии мандатов, пауз и исключений до реализации, используйте UI/UX и продуктовый дизайн; для мониторинга, безопасных релизов и incident-процессов доступна техническая поддержка и консалтинг. С аналитическим FinTech-направлением можно ознакомиться на примере проекта ESFX. Если вы оцениваете запуск серьёзного продукта копи-трейдинга, POLADO поможет превратить модель сервиса в поэтапную архитектуру и план разработки.