Исполнение MT5 в Web3, шаг за шагом
Сделка в MT5 выражена в лотах, у брокера, который сам определяет размеры контрактов. Ончейн-бессрочный контракт выражен в единицах контракта, развёрнутого кем-то другим, со своей маржой, фандингом и торговыми сессиями. Превращение одного в другое — это пять отдельных решений, и каждое из них может сделать копирование невозможным.
1. Наблюдение — это не управление
Первое, что нужно системе копирования, — сигнал, и самый безопасный сигнал тот, который не может ничего сделать. HyperMatch Bridge — это советник MT5, который читает новые сделки на счёте, где он запущен, и отправляет их на веб-эндпоинт. В нём вообще нет кода отправки ордеров: опубликованный исходник содержит только чтение истории сделок и ни одного вызова OrderSend, CTrade или открытия позиции. Речь о мосте передачи; советник HyperMatch с движками сопровождения — другая программа: он может выставлять ордера в вашем терминале, но только после того, как вы включите движок и нажмёте «ЗАПУСК».
Он запускается на паузе и ничего не собирает, пока не начнётся сессия передачи. Каждая сессия идёт с момента своего запуска, поэтому ничего из того, что было раньше, никогда не переотправляется, а пауза не оставляет догрузки задним числом. По умолчанию советник сам начинает сессию, когда вы запускаете копирование на сайте, а кнопка «ЗАПУСК» на панели по-прежнему запускает её вручную; паузу, поставленную вами на панели, сайт никогда не отменяет. Доставка выполняется по принципу «хотя бы один раз», то есть дубликат возможен, и дедупликацией обязана заниматься принимающая сторона.
- Токен устройства, связывающий терминал, хранится в виде хеша и отзывается отдельно; он действует, пока у счёта MT5 есть оплаченное окно, а без оплаченного окна истекает после 30 дней без связи.
- Привязка доказывает, что кто-то управляет терминалом, вошедшим в этот счёт. Это не независимое подтверждение владения счётом со стороны брокера.
- Отзыв токена останавливает приём событий. Он не закрывает позицию и является отдельным средством контроля от разрешения на площадке.
2. Один лот не равен ничему постоянному
Лот — это множитель, заданный брокером. Один и тот же символ у двух брокеров может означать два разных количества, а у рынка назначения свой размер контракта и свой минимальный шаг. Для пересчёта нужна спецификация брокера как данные, а не догадка по названию символа.
HyperMatch выполняет пересчёт одним точным рациональным вычислением и один раз округляет вниз до шага назначения. Экспозиция источника никогда не округляется вверх: количество, которое нельзя выразить точно, получается меньше исходного, но не больше.
- Справочные размеры контрактов из нашей документации (100 унций на лот для золота, одна монета на лот для BTC или ETH) — это заглушки, которые нужно заменить спецификацией вашего брокера.
- Существуют две несовпадающие политики размера: сохранять номинал в долларах или сохранять количество базового актива. Инструмент, который не сообщает, какая из них применена, скрывает эту разницу.
- Арифметика выполняется в целых числах с фиксированной точкой, а не в двоичной плавающей, поэтому количество не может сместиться из-за артефакта округления.
3. Плечо — это потолок, а не множитель
Счёт MT5, настроенный на 1:500 или 1:1000, имеет высокий потолок маржи. Это не означает, что на счёте открыта такая экспозиция, и не означает, что какая-либо площадка назначения предложит тот же потолок по тому же инструменту.
Значение имеет реальная экспозиция против реального капитала. Чисто арифметическая иллюстрация: счёт с настройкой 1:1000 и капиталом 10 000 USD, держащий позицию по золоту номиналом 4 375,50 USD, работает с экспозицией примерно 0,438 от капитала — намного ниже настройки 1:1000. Настроенный потолок не повлиял на эту позицию вообще.
- Изменение настройки плеча на площадке не меняет прибыль или убыток при том же номинале. Оно меняет объём заблокированного обеспечения и близость ликвидации.
- Обеспечение не разделяется между площадками. Каждому подходящему назначению нужна собственная свободная маржа.
- Стоп не гарантирует размер убытка. Гэпы, фандинг, ликвидация и фактическое исполнение могут отличаться от выставленного уровня.
4. Что возможно, решает рынок назначения
Рынок со знакомым названием не становится автоматически эквивалентным инструментом. Символ золота на площадке бессрочных контрактов — это контракт со своим оракулом, своими торговыми часами, своим активом обеспечения и своими правилами оператора. Эквивалентность проверяется свойство за свойством, и HyperMatch считает отсутствие такой проверки причиной отклонить маршрут, а не причиной попробовать.
Минимальный номинал, знаки после запятой в размере, ставки фандинга, ограничения по сессиям и доступная глубина вместе решают, можно ли вообще выставить данный размер и сколько будет стоить выход. Спред — лишь одна составляющая этой стоимости и редко самая большая.
- Максимумы плеча сильно различаются между LP и меняются с торговой сессией. Это параметры, а не гарантии: сессионные и новостные ограничения могут снизить их в любой момент, и значение имеет цифра, действующая в момент заявки.
- Эти цифры принадлежат той площадке, были верны на указанную дату и могут измениться без уведомления. Метаданные, полученные от площадки во время работы, важнее любой таблицы, скопированной на веб-страницу, включая эту.
- Присутствие площадки в нашем каталоге описывает этап интеграции. Это не одобренный маршрут и не обещание исполнения.
5. Что на самом деле говорит квитанция
Принятое событие означает, что движок надёжно его сохранил. Оно не означает, что событие было направлено в маршрут, исполнено, рассчитано или что что-то доступно к выводу. Успешный HTTP-ответ — самый слабый сигнал во всей этой цепочке.
Решения о маршруте в текущем рабочем пространстве — бумажные. Это помечено в самом ответе: без сохранения, область — отдельный сценарий, а не журнал, и синтетические рыночные данные для смоделированной части. Публичные данные стакана, прочитанные с площадки, реальны и помечены как неисполнимые; выведенная из них бумажная квитанция — симуляция и не отправляет ордер.
6. Что проверять в любой системе копирования
Эти вопросы не относятся конкретно к HyperMatch. Они отделяют систему, способную объяснить произошедшее, от системы, которая этого не может.
- Может ли подключение к источнику выставлять ордера? Если да, радиус поражения ошибки включает ваш счёт-источник.
- Что происходит со сделками, открытыми при выключенной трансляции? Тихая догрузка — это способ получить позиции, которых никто не выбирал.
- Какая политика размера применяется и округляется ли количество назначения вверх?
- Что система делает, когда результат неизвестен? Повтор возможно исполненного ордера — это то, как один сигнал становится двумя позициями.
- Можно ли отозвать подключение источника и торговое разрешение по отдельности, и закрывает ли что-то из этого позицию?
- Показаны ли результаты источника, симуляция и исполнение на площадке как три набора данных или слиты в одну кривую?
Где HyperMatch находится сегодня
Формулировки этапов ниже взяты из кодовой базы и записей о поставке без изменений.