Кратко#
HyperMatch — облачная консоль сопровождения для тех, кто торгует золотом в MT5. Торговля всегда остаётся на собственном счёте клиента у брокера; HyperMatch даёт движки сопровождения (советники), работающие в терминале клиента, облачное управление и оповещения, проверку счёта, проверяемую запись результатов в блокчейне и необязательный ончейн-хедж сопровождения.
Эта белая книга написана для клиентов, партнёров и технических экспертов: из чего состоит продукт, как устроена система, где проходят границы безопасности, какие открытые технологии мы используем и чего мы обещать не можем.
Ончейн-часть использует несколько технических архитектур и объединяет нескольких ончейн-LP (поставщиков ликвидности), выбирая маршрут по правилам. Из соображений коммерческой тайны мы не называем LP: вошедшие клиенты видят постоянные обозначения («Канал ликвидности 1, 2, 3»), а при подписи кошелёк показывает фактического контрагента.
Официальная поддержка: Telegram @hypermatch123 (открытие окон, вопросы; советник скачивается на сайте).
Проблема#
Трейдеры, торгующие золотом в MT5, постоянно сталкиваются с четырьмя проблемами:
- У сеточных советников и советников с доливкой нет внешнего контроля риска. На однонаправленном рынке плавающий убыток может быстро вырасти, а трейдер часто не у компьютера: с телефона счёт не виден, а советником не управлять.
- Результаты трудно проверить. Скриншоты можно отредактировать, историю — дописать задним числом; публичная «история результатов» редко может доказать, что записана в момент событий.
- Разрыв между ончейн-ценой и ценой брокера часто преувеличивают. В записанных нами выборках разница между ончейн-котировками золота и котировкой брокера чаще всего составляла несколько центов и быстро сходилась, а полный цикл открытия и закрытия стоит несколько долларов на унцию. Выборки ограничены и пока не охватывают американскую сессию и выход данных. Сам разрыв — не устойчивый источник дохода.
- Передавать деньги или торговый пароль рискованно. Многие схемы «доверительного управления» просят отдать третьей стороне средства или торговый пароль, и если что-то пойдёт не так, вернуть их трудно.
HyperMatch исходит из этих четырёх пунктов: контроль риска работает в терминале клиента, облако наблюдает и оповещает; результаты запечатываются и фиксируются в блокчейне в момент событий; разрыв цен — лишь ориентир, чтобы не открываться по невыгодной цене, а не обещание дохода; деньги и торговые права остаются у клиента.
Продукты#
HyperMatch состоит из частей ниже. Для каждой сказано, что она делает, кто ею управляет и в каком состоянии она начинает; что открыто сейчас — на странице статуса системы.
| Часть | Состояние сейчас | Кто управляет |
|---|---|---|
| Советник HyperMatch V2.2 (китайская версия 「HyperMatch抛单套利引擎」 и английская "HyperMatch Copy & Arbitrage Engine"; V2.0 и V2.1 продолжают работать) | Обе версии с одинаковыми функциями; EX5 скачивается на сайте (страница инструкции); панель сообщает о новой версии, а программа обновления HyperMatch (Windows) ставит её во все MT5 на компьютере; о важных данных США панель и MT5 напоминают заранее (только напоминание, торговля не меняется) | Клиент устанавливает его в свой MT5 |
| Движки сопровождения A–D | Входят в советник V2.0; сами не запускаются | Клиент: «Включить авторежим» или «ЗАПУСК» на панели MT5 с подтверждением (реальный счёт — ещё одно подтверждение) |
| Уровень риска 1–10 и частота 10%–100% | Входят в советник V2.0; движки, запас и глубину защиты по уровню, средствам и рынку задаёт сервер | Клиент выбирает только уровень и частоту; в разделе «Дополнительно» — свой движок, запас и защиту |
| Стоп раунда | Необязателен, по умолчанию выключен: свой максимальный убыток на раунд (от 3% средств или фиксированная сумма) | Клиент |
| Защищённый старт | В разработке; сначала работает в режиме наблюдения | Переключатель клиента; платформа может сделать его только осторожнее |
| Фиксация прибыли | Входит в советник V2.0; цель по умолчанию +5% | Клиент |
| Быстрый первый ордер | Входит в советник V2.0 (движки A и B) | Запускает клиент; сторону и момент задаёт сервер |
| Ротация движков / автоматический режим | Входит в советник V2.0; авторежим чередует движки уровня риска (на уровне 5 — A и B) | Клиент: «Включить авторежим» на панели MT5 и подтверждение |
| Привязка по QR-коду и облачная лицензия | Входит в советник V2.0 | Клиент: подтверждение с телефона; привязку можно снять или отозвать в любой момент |
| Ордера советника прямо в блокчейн | Работает: после того как официальная поддержка откроет ончейн-исполнение для вашего счёта (как и окна), в кабинете доступны все функции — копирование запускается на сайте, сделки MT5 уходят на ваш собственный ончейн-счёт, закрытия следуют, маржа возвращается на ваш кошелёк; что включено — на странице статуса системы | Клиент: одобряет торгового агента в своём кошельке, запускает и останавливает на сайте; платформа не может выводить средства |
| Облачная консоль и оповещения | Доступны | Клиент; советник может отклонить любую команду сайта |
| Проверка счёта | Доступна, только чтение | Клиент |
| Окна (на год или навсегда) | Одно окно = лицензия одного счёта MT5: на год 150U (365 дней с открытия, с напоминанием до окончания) или навсегда 900U (бессрочно, без продления), демо или реальный; пока оплата и открытие через официальную поддержку | Клиент: любое окно, на год или бессрочное, можно один раз перевести на другой счёт MT5 |
| Чтение у брокера | Только для администраторов; клиенты подключаются советником | Администраторы |
| Запись результатов в блокчейне | Открывается постепенно; по умолчанию закрыта | Клиент решает, публиковать ли |
| Ончейн-хедж сопровождения | По умолчанию скрыт; включается для отдельных аккаунтов | Клиент |
| Симуляция счёта в сети (симуляция, не реальные деньги) | Входит в советник V2.0: у каждого привязанного счёта по умолчанию симулированный счёт на 500U рядом с реализованным результатом MT5 | Клиент: стартовая сумма, сброс, вкл./выкл.; «Открыть реальный счёт в сети» — необязательный следующий шаг |
| Монитор разрыва цены и фандинга золота | Публичный, только чтение | — |
Движки сопровождения A–D
Четыре сеточных движка сопровождения в собственном терминале MT5 клиента (советник сопровождения), риск от низкого к высокому. Консоль по формуле оценивает, насколько каждый движок подходит к балансу счёта, и показывает «подходит», «работает, запас мал» или «недостаточно» (при лоте от средств — сколько долей хватает или «средств мало», см. ниже); это формула, а не бэктест и не прогноз дохода.
У каждого движка есть лимиты, которые задаёт клиент: слои, лоты, сделки в день, загрузка маржи и торговое окно; последняя линия — защита от стоп-аута (в новом советнике стопа 20% по умолчанию нет, см. ниже). Движки сами не запускаются: движок выставляет ордера в терминале клиента только после того, как клиент нажмёт на панели MT5 «Включить авторежим» (или «ЗАПУСК» вручную), прочтёт на карточке, что будет делать движок и какие риски, и подтвердит; эта карточка и есть включение, входные параметры менять не нужно. Реальный счёт спрашивает ещё раз: «Это реальный счёт: ордера на реальные деньги». В советнике остаётся расширенный аварийный выключатель (принудительно выключен: без ордеров, сопровождения и отчётов).
В новом советнике сопровождения параметры движков (таймфрейм входа, канал, шаг сетки и т. п.) не записаны в публичном файле советника: после привязки советника к аккаунту HyperMatch сервер передаёт их в зашифрованном виде для этого устройства, и они вступают в силу только когда у движка нет позиций (см. Безопасность и риск).
Защищённый старт (в разработке, только движки A и B)
Первый ордер на каждой стороне сверяется со средней ценой ончейн-стакана: пока котировка брокера заметно хуже, он ждёт — не дольше 30 секунд. Он лишь избегает явно невыгодной цены и никогда не ждёт более выгодной. Сначала он работает в режиме наблюдения и только записывает, что сделал бы; к действию он переходит лишь после того, как наблюдаемая выборка пройдёт статистический порог, подтверждающий, что открытию это не вредит.
Фиксация прибыли
Когда общий результат раунда (результат движка в MT5 за этот раунд плюс ончейн-часть минус оценка стоимости закрытия) достигает цели (по умолчанию +5%) на двух независимых проверках с интервалом не меньше 30 секунд, советник сначала закрывает позиции движка в MT5, а после их закрытия ончейн-часть закрывается только на уменьшение; затем раунд останавливается. Ниже цели сопровождение продолжается; защита от стоп-аута (или стоп, заданный клиентом) действует как обычно, и раунд всё ещё может закончиться убытком.
Быстрый первый ордер
Если в начале раунда собственный сигнал движка на вход не появился примерно за 20 секунд, движок выставляет первый ордер базовым лотом через свой обычный путь входа; сторона определяется положением цены относительно средней линии канала движка. Если включён защищённый старт, этот ордер сначала проходит его проверку цены и пропускается не позже 50-й секунды окна входа, так что первый ордер уходит примерно в течение минуты; раунд, начатый, когда новые входы закрыты (выходные, вне торгового окна), отсчитывается с момента их открытия. Быстрый первый ордер определяет только момент первого ордера; доливки, закрытие и лимиты работают по прежним правилам, и вероятность прибыли этого ордера он не повышает.
Лот от средств, защита от стоп-аута и частота
Новый советник сопровождения рассчитывает базовый лот от средств счёта: клиент выбирает запас прочности (смелый, стандарт по умолчанию или осторожный) — сколько нужно на 0.01 базового лота, чтобы выдержать движение золота примерно на $100, $150 или $200; базовый лот — столько 0.01, сколько таких долей на счёте, и предел лотов растёт вместе с ним. Лот пересчитывается только без позиций движка, не посреди раунда. Советник читает только число средств — без валюты, типа счёта и суффикса символа. Если средств меньше одной доли, советник работает минимальным лотом 0.01: авторежим всё равно берёт все движки уровня (V2.1; в V2.0 только A, а B, C и D добавляются, когда средств хватает на их долю), панель пишет «мин. лот 0.01»; ручной запуск пишет «минимальный лот 0.01» на карточке подтверждения. Выдерживаемое движение тогда меньше запаса, и защита от стоп-аута срабатывает раньше. Значения приходят с сервера и могут пересматриваться; это оценка по формуле, а не бэктест.
Прежний стоп 20% по плавающему убытку больше не действует по умолчанию. Последняя линия — защита от стоп-аута: когда плавающий убыток движка достигает 70% средств (настраивается от 50% до 90%) или уровень маржи падает до 150% (выше, если у брокера выше стоп-аут), советник закрывает все позиции движка и через час продолжает сам (когда уровень маржи снова выше линии; «СБРОС» на панели — сразу). Движение сильнее запаса прочности включает её и стоит около 70% средств; гэпы и проскальзывание могут увеличить убыток. Клиент может также задать свой стоп раунда (по умолчанию выключен, см. ниже).
Частота (10%–100%, по умолчанию 100% — собственный темп движка) влияет только на новые корзины после первого ордера раунда: чем ниже, тем строже входы, дольше пауза стороны после закрытия корзины и меньше новых корзин в день. Быстрый первый ордер не меняется. Все три настройки меняются на сайте, на панели MT5 или во входных параметрах советника: лот — при следующем моменте без позиций, частота — сразу; более глубокая защита — сразу, более мелкая — только после закрытия позиций движка (смена не закрывает текущие позиции). Эти три — ваш выбор, на сайте и на панели их можно менять в обе стороны; остальные лимиты безопасности можно только ужесточать.
Уровень риска 1–10 и стоп раунда (V2.0)
С V2.0 клиент выбирает только две вещи: уровень риска от 1 до 10 (по умолчанию 5) и частоту от 10% до 100%. Сервер передаёт таблицу, которая превращает уровень, средства и рынок в движки, запас прочности и глубину защиты (V2.1: движок без своей доли — минимальным лотом 0.01; V2.0: A — 0.01 при нехватке средств, остальные движки — когда хватает на их долю; движок каждого раунда ротации тоже выбирает сервер):
| Уровень | Движки | Запас прочности | Защита от стоп-аута |
|---|---|---|---|
| 1–3 осторожно | Только A | Осторожный (движение около $200) | 50% / 60% / 70% |
| 4–6 стандарт | A и B по очереди (уровень 5 = прежние значения по умолчанию) | Стандарт (около $150) | 60% / 70% / 80% |
| 7–8 смело | A, B и C по очереди (в спокойном рынке ведёт C; в V2.0 — только если средств хватает на долю C) | Смелый (около $100) | 70% / 75% |
| 9–10 смело | A, B, C и D по очереди (в спокойном рынке ведёт D, только минимальным лотом; в V2.0 — только если средств хватает на долю D) | Смелый (около $100) | 80% / 85% |
Чем выше уровень, тем больше стартовый лот при тех же средствах, никогда не меньше. Уровни 7–10 добавляют к A и B движок C, уровни 9–10 — ещё и D: в спокойном рынке раунд ведёт самый активный движок уровня (D, затем C, B, A; в V2.1 движок без своей доли — минимальным лотом 0.01, в V2.0 — только те, на долю которых хватает средств); в тренде, при сильной волатильности и в активные часы авторежим по-прежнему ждёт. C всегда работает одной долей (своя лестница лотов, без роста от средств), D в авторежиме — только минимальным лотом. C и D нет в прогоне: только оценка по формуле без исторического прогона, и C и D могут терять больше, чем A и B. Выбор уровня с C или D требует ещё одного подтверждения — и в «Быстром старте» на сайте, и на панели MT5. Цифры A и B — офлайн-прогон 26 месяцев истории и формула; авторежим A+B со смелым запасом в прогоне 1–2 раза доходил до защиты. Прогон — не прогноз; прибыль не гарантируется. Сами параметры можно менять: в разделе «Дополнительно» можно выбрать свой движок, запас или защиту; ручные A и B по умолчанию следуют правилам рынка авторежима, это можно выключить.
Стоп раунда (необязательно, по умолчанию выключен): можно задать свой максимальный убыток на раунд (от 3% средств или фиксированную сумму); при двух значениях срабатывает то, что раньше. Позиции движка этого раунда закрываются обычным путём, через час движок продолжает сам («СБРОС» на панели — сразу). Гэп может стоить больше лимита, а слишком тесный стоп режет корзины, которые бы вернулись: в историческом прогоне большинство глубоких корзин позже закрылись в плюс.
Ротация движков и автоматический режим
Ротация идёт раунд за раундом, по одному движку на раунд: движок выбирается из отмеченных клиентом по типу рынка (флэт, тренд, сильная волатильность, активные часы); по умолчанию в тренде, при сильной волатильности и в активные часы ротация ждёт спокойствия. Движок меняется только без открытых позиций; можно задать максимум раундов в день (по умолчанию 6).
Автоматический режим выполняет сам советник в терминале клиента: он начинает работу только после того, как клиент нажмёт «Включить авторежим» на панели MT5 и подтвердит карточку, где сказано, что режим делает и каковы риски. Он чередует раунд за раундом движки уровня риска, насколько позволяют средства (на уровне 5 — A и B; уровни 7–8 добавляют C, 9–10 — ещё и D, D только минимальным лотом), и первый ордер каждого раунда — быстрый первый ордер; когда общий результат раунда достигает цели фиксации прибыли (по умолчанию +5%), раунд закрывается и следующий начинается сам. Защита от стоп-аута (или стоп клиента) либо раунд, закончившийся ниже нуля, ставят авторежим на паузу: после защиты или стопа он продолжает сам через час, после раунда ниже нуля — через 15 минут; на панели можно продолжить сразу. Кнопка «Быстрый старт» на сайте может сохранить авторежим и отправить его советнику, но никогда не запускает его за клиента.
В любом случае лимиты безопасности с сайта (слои, лоты, сделки, стоп, маржа, окно времени) могут только ужесточать, но не ослаблять входные параметры советника; запас прочности, частота и глубина защиты — ваш выбор на сайте или на панели. Выбор по типу рынка — не обещание большей прибыли; в исторических прогонах цель +5% достигалась редко, и большинство раундов заканчивались без позиций при развороте рынка.
Сначала реализованный результат
Панель MT5 и веб-консоль сначала показывают реализованный результат: итог с установки (с первой сделки движка, насколько хватает истории терминала), раунд, сегодня и месяц, а также закрытия в плюс: одна сторона движка без позиций — одно закрытие, результат выше нуля — закрытие в плюс («В плюс N из M»). Цель фиксации считается по всему раунду, поэтому показан только прогресс. Плавающий результат открытых позиций не главная цифра: он на отдельной вкладке «Риск» (на сайте — раскрывающийся «Риск») вместе с тем, сколько запаса прочности он использует, на сколько золото ещё может пойти против позиции до защиты, средствами и уровнем маржи. Только закрытые результаты, с комиссиями и свопами; цифры приходят из терминала клиента, это прошлые результаты, они не предсказывают будущие.
Облачная консоль и оповещения
С телефона или компьютера видно каждый счёт по последнему отчёту: реализованный результат, баланс и состояние движка; средства, плавающий результат, уровень маржи и расстояние до стоп-аута раскрываются в «Риске». При необходимости можно приостановить или возобновить новые входы, закрыть позиции сопровождения (с подтверждением), сменить движок и изменить параметры безопасности:
- Команда с сайта отменяется, если не доставлена за 120 секунд; советник выполняет её или отклоняет.
- У советника есть переключатель «разрешить удалённое управление с сайта»; когда он выключен, любая команда сайта отклоняется.
- Вход по почте позволяет только приостановить новые входы; возобновление, закрытие, смена движка и параметров требуют входа с ключом доступа или кошельком.
Оповещения — о плавающем убытке, уровне маржи, остановке движка и отключении советника; правила по умолчанию: плавающий убыток 20%, уровень маржи 200%, остановка движка и 5 минут без связи. Оповещения приходят по почте, а после настройки — и в Telegram.
Проверка счёта
Оценивает риск по снимку счёта: глубину сетки на каждой стороне, крупнейший лот, плавающий убыток относительно баланса, уровень маржи, насколько должно сдвинуться золото до стоп-аута, и позиции на выходные. Проверка только читает и ничего на счёте не меняет.
Чтение у брокера (только чтение, без установки)
Сейчас только для администраторов; клиенты устанавливают советник и привязывают его по QR.
Без советника и открытого терминала: HyperMatch читает счёт, сделки и котировки напрямую у брокера через собственный шлюз протокола, работающий только на чтение. Шлюз вызывает лишь методы чтения, какой бы пароль ни дал клиент; платформа также может перейти в режим, в котором принимаются только пароли инвестора (только чтение).
Запись результатов в блокчейне (открывается постепенно)
Каждая сделка и итог каждого дня по счёту получают отпечаток в момент событий и раз в час пакетами фиксируются в L2 Ethereum (см. Архитектуру). По умолчанию запись закрыта и публикуется только владельцем: на публичной странице — результаты и отметка «зафиксировано в блокчейне»; подробные доказательства открыты владельцу счёта, который может создать ссылку с ограниченным сроком действия и отозвать её в любой момент.
Необязательно: ончейн-хедж сопровождения
Когда плавающий убыток движка доходит до линии срабатывания, заданной клиентом, в его собственном ончейн-аккаунте по правилам открывается встречная позиция, чтобы замедлить рост убытка; когда убыток возвращается к линии снятия, она постепенно закрывается. Размер хеджа ограничен размером кошелька, и хедж сам может принести убыток. По умолчанию функция скрыта в разделе «Дополнительно (ончейн)» и включается отдельно.
Симуляция счёта в сети (симуляция, не реальные деньги)
На старте результат клиента в основном даёт движок сопровождения в его собственном MT5: консоль и панель MT5 сначала показывают реализованный результат MT5, а симулированный счёт в сети — вид по умолчанию у каждого клиента, открывать ничего не нужно. Клиент может увидеть, как ончейн-часть работала бы на его счёте, ничего не внося в сеть: у каждого привязанного советника сопровождения по умолчанию есть симулированный счёт в сети с виртуальными 500 USDT (300 / 500 / 1000 или своя сумма; его можно сбросить в любой момент, прежние записи сохраняются). Он не держит средств, ничего не подписывает, нигде не выставляет ордера и не заставляет советник торговать.
Симуляция использует только реальные данные: котировки MT5 клиента (советник отправляет их с heartbeat, когда нужно), реальные заявки и глубину ончейн-стакана, текущие комиссии и фандинг и измеренное время от ордера до исполнения. Две части:
- Арбитражные пары — по правилам самого арбитражного движка: лимитная заявка в сети считается исполненной, только если сделка прошла сквозь её цену, и только на объём этой сделки; сторона MT5 — по bid/ask клиента плюс проскальзывание и комиссия. Одна пара за раз, объём — минимальный лот MT5 клиента.
- Защитный хедж и нога возврата: когда движок сопровождения на компьютере клиента запрашивает хедж в сети, действуют те же правила решений, что и у реального хеджа (срабатывание, снятие, нога возврата, закрытие вместе с фиксацией прибыли, предел кошелька); каждый ордер — рыночный, по глубине стакана с учётом измеренного времени исполнения; при малом балансе хеджируется только часть.
Реализованным считается только закрытый результат: консоль и панель MT5 показывают сегодня, месяц, всё время, число сделок и сколько из них в плюсе; открытые позиции — только в разделе «Риск». Консоль также показывает реализованный результат сопровождения MT5 и «Итого (реальные + симуляция)» с явной пометкой, что туда входит симуляция. Симуляция не учитывает отказы ордеров, остановки площадки, исчезновение ликвидности на резких движениях и конкуренцию других участников за те же сделки; реальные результаты могут быть хуже, а результаты симуляции не гарантируют будущей доходности.
«Открыть реальный счёт в сети» — необязательный следующий шаг: понаблюдав, клиент может выбрать его на той же карточке: когда пополнение открыто, это ведёт к шагу пополнения в USDT; пока нет — «Скоро» и «Сообщить, когда откроется».
Монитор разрыва цены и фандинга золота
Публичная страница показывает сводную котировку золота, диапазоны спреда и фандинга, которые HyperMatch собирает у нескольких ончейн-LP, в сравнении со стоимостью полного цикла в MT5. Арбитражный движок в режиме наблюдения только записывает и не выставляет ордера.
Архитектура#
В HyperMatch четыре слоя: слой терминала MT5 на стороне клиента, облачная плоскость управления, слой исполнения и ликвидности и слой доказательств. Деньги и торговые права остаются на счетах клиента у внешнего края; чем глубже слой, тем меньше у него прав.
Слой терминала MT5
- Советник сопровождения: открывает, доливает и закрывает ордера в терминале клиента по правилам движка; по умолчанию выключен.
- Советник HyperMatch V2.2 (две публичные версии, китайская и английская, с одинаковыми функциями; V2.0 и V2.1 продолжают работать): передаёт пульс, сделки и котировки и содержит движки сопровождения, которые выставляют, доливают и закрывают ордера в терминале клиента по правилам движка; по умолчанию выключены и запускаются только после подтверждения на панели. Каждые 12 часов панель читает список версий на сайте и сообщает о новой; программа обновления HyperMatch скачивает по тому же списку и проверяет SHA-256, прежде чем поставить в MT5. Напоминание о важных данных берёт собственный экономический календарь MT5 и только напоминает: торговля не меняется. Версия только для передачи сделок используется лишь для внутренних тестов.
- Шлюз чтения у брокера: без установки, только чтение; читает счёт и сделки у брокера.
Устройство привязывается по QR-коду: клиент нажимает «Привязать HyperMatch» на панели MT5, панель показывает QR-код и 8-символьный код (действует 10 минут); клиент сканирует его телефоном или вводит код на hypermatch.org/b, входит в аккаунт, сверяет счёт MT5, сервер и код и подтверждает. Токен устройства передаётся прямо этому советнику, минуя телефон. Личный файл настроек (.set), созданный в консоли, по-прежнему работает как второй способ. Сервер хранит только хеш токена устройства; токен действует, пока у счёта MT5 есть оплаченное окно (бессрочная лицензия), без него истекает после 30 дней без связи и перестаёт работать сразу после отзыва в консоли или снятия привязки в советнике.
Облачная плоскость управления
- Периферийная сеть: TLS, заголовки безопасности и политика безопасности контента (CSP); публичные страницы кэшируются на периферии, поэтому даже большой трафик не обращается к базе при каждом визите.
- Бессерверные вычисления (Node.js): вход, привязка устройств, очередь команд, решения об оповещениях, объединённое и кэшированное чтение публичных данных.
- Управляемый PostgreSQL: транзакционная запись; таблицы доказательств только дополняются и защищены триггерами базы; у каждого фонового сервиса своя роль в базе с минимальными правами.
- Фоновые задачи: плановая проверка оповещений, журнал арбитража в режиме наблюдения, пакетная фиксация доказательств и процесс копирования, у каждой — своя учётная запись на хосте и своя роль в базе.
Слой исполнения и ликвидности
Ончейн-часть использует несколько технических архитектур (в реальной маршрутизации сейчас — стакан заявок и котировки по оракулу) и объединяет нескольких ончейн-LP, выбирая маршрут по правилам. Браузер никогда не подключается к LP напрямую: всё, что клиент должен подписать, сервер формирует в официальном формате LP, клиент подписывает это в своём кошельке, а сервер один раз передаёт подписанный запрос без изменений. Подпись покрывает все поля, поэтому изменить их сервер не может.
Функции, которым нужно исполнять действия самостоятельно (например, ончейн-хедж сопровождения), используют ключ исполнения, который клиент авторизует отдельно; его права ограничены механизмом авторизации соответствующего LP, и клиент может отозвать его в любой момент. Мы никогда не запрашиваем и не храним приватный ключ или сид-фразу основного кошелька клиента.
Исполнение соблюдает четыре инварианта:
- Намерение исполнить сохраняется до отправки.
- Если отправка могла произойти, запрос никогда не отправляется повторно вслепую и не переносится к другому LP.
- Неизвестный исход помечается «результат не подтверждён»: добавление риска приостанавливается, а исходные идентификаторы сверяются.
- Действия, снижающие риск, например закрытие, никогда не блокируются фильтрами входа.
Слой доказательств
- Отпечаток: каждая сделка и итог каждого дня по счёту кодируются по ABI и дважды хешируются keccak256 в лист дерева. Логин и сервер MT5 появляются только как хеши с солью.
- Пакет: каждый час новые листья образуют дерево Меркла в раскладке, описанной в опубликованной спецификации StandardMerkleTree от OpenZeppelin (листья отсортированы, пары хешируются упорядоченно).
- Фиксация: корень каждого пакета записывается в L2 Ethereum одной транзакцией — нулевым переводом на собственный адрес, в 48 байтах данных вызова которого только номер пакета, число листьев и корень. Все счета делят эту одну транзакцию, поэтому она почти ничего не стоит.
- Запечатывание и опоздания: день UTC запечатывается через 15 минут после окончания; сделка, полученная больше чем через час после совершения, помечается «с опозданием» — она фиксируется, но не входит ни в один показатель.
- Проверка: любой, у кого есть доказательство, может в своём браузере запросить транзакцию фиксации у публичного узла и пересчитать лист и доказательство Меркла, не доверяя нашему серверу.
Фиксация доказывает, что запись существовала именно в таком виде не позже блока фиксации; она не доказывает, что советник передал каждую сделку, и ничего не говорит о будущих результатах.
Один пульс от начала до конца
Советник регулярно отправляет в облако пульс со снимком счёта, состоянием сопровождения и квитанциями по последним командам. Облако проверяет и сохраняет его, решает, пересечена ли линия оповещения (запись и уведомление — только при пересечении), и вкладывает в ответ ожидающие команды; пока команда ждёт доставки, облако просит советник ускорить пульс до раза в 3 секунды на срок до двух минут. Советник выполняет или отклоняет каждую команду и сообщает результат в следующем пульсе.
Безопасность и контроль рисков#
Вход и полномочия
- Три способа входа: ключ доступа (WebAuthn с обязательной проверкой пользователя), подпись кошельком или код по почте. Подпись при входе кошельком только подтверждает вход: она не переводит деньги и не разрешает торговлю.
- Cookie сессии — HttpOnly и SameSite=Strict, срок действия 24 часа.
- Полномочия зависят от риска: вход по почте позволяет только приостановить новые входы; возобновление входов, закрытие, смена движка и параметров требуют входа с ключом доступа или кошельком.
- Администраторы задаются списком в настройках развёртывания и должны входить с кошельком или ключом доступа. Редакторы контента могут править только публичный контент вроде этой страницы и не имеют доступа ни к деньгам, ни к торговле.
- Запросы на запись проверяются на источник и ограничиваются по частоте для каждого аккаунта и каждой сети.
Где заканчивается облачное управление
- Сайт отправляет лишь запрос, который советник выполняет или отклоняет; лимиты безопасности с сайта (слои, лоты, сделки, стоп, маржа, окно времени) могут быть только строже входных параметров советника, а запас прочности, частота и глубина защиты — выбор клиента.
- «ЗАПУСК» есть только на панели MT5; сайт не может запустить движок за клиента.
- Советник может одним параметром выключить «разрешить удалённое управление с сайта».
Облачная лицензия движков
- Новый советник сопровождения открывает новую позицию только при трёх условиях: аккаунт привязан к HyperMatch, есть параметры движка, которые сервер передаёт в зашифрованном виде для этого устройства (AES-256 с проверкой подлинности; ключи выводятся из токена устройства, счёта MT5, сервера, номера терминала и нового случайного значения при каждом пульсе), и есть разрешение на вход примерно на 3 минуты, которое продлевается каждым пульсом.
- Один счёт MT5 открывает новые позиции только с одного терминала одновременно; перенести новые входы на другой терминал клиент может в консоли.
- Открытые позиции сопровождаются всегда: без связи несколько дней, с истёкшим разрешением, после снятия привязки или отзыва советник продолжает вести и закрывать открытые позиции по параметрам, запечатанным на этом компьютере; он лишь не открывает новых.
Запечатанные учётные данные
Пароль, нужный для чтения у брокера, шифруется в браузере клиента открытым ключом шлюза (RSA-OAEP-256) до отправки. Сайт хранит только шифротекст, который не может открыть; открыть его может лишь шлюз, работающий только на чтение. При отзыве подключения шифротекст сразу удаляется, а после 30 дней без связи с брокером пароль больше не используется и удаляется. По возможности используйте пароль инвестора (только чтение): с ним торговать не сможет даже сервис чтения.
Доступ к брокеру только на чтение
Шлюз чтения у брокера вызывает только методы чтения, слушает только локальный адрес loopback и изолирован сетевыми правилами; поля его журналов ограничены списком, а номера счетов замаскированы.
Контроль рисков
- Защита от стоп-аута (стоп раунда по желанию: от 3% средств или фиксированная сумма, по умолчанию выключен), лот от средств (уровень риска 1–10), торговое окно, жёсткие лимиты слоёв и лотов, лимит загрузки маржи.
- Размер ончейн-хеджа ограничен размером кошелька.
- По устаревшим данным новых решений не принимается: например, если состояние сопровождения устарело, ончейн-часть остаётся как есть и новый риск не открывает.
Где остаются деньги
- HyperMatch не хранит средства у брокера, а для работы советника не нужен пароль MT5 клиента.
- Ончейн-функции, такие как хедж сопровождения и копирование, работают в собственном ончейн-аккаунте клиента; если какая-либо дополнительная функция связана со средствами, которые хранит платформа, её страница говорит об этом отдельно и запрашивает отдельное подтверждение.
- Официальный интерфейс каждого LP всегда остаётся способом выхода, не зависящим от HyperMatch.
Конфиденциальность и прозрачность
Публичные страницы, публичные API и код, который загружает браузер, не называют LP; вошедшие клиенты видят постоянные обозначения. То, что подписывает клиент, готовит сервер, а страница перед запросом подписи сверяет известные ей значения (собственный торговый ключ, адрес клиента, показанные сумму и комиссию). Когда клиент подписывает в кошельке, кошелёк показывает фактического контрагента; мы этого не скрываем и не могли бы скрыть. Подписанный запрос потом изменить нельзя: сервер может в худшем случае задержать или потерять его — тогда консоль показывает «результат не подтверждён». Исключение из окна кошелька — быстрая торговля: после включения заявки подписывает кратковременный торговый ключ на странице, без окна кошелька, поверх заявки, подготовленной сервером. Страница разрешает этому ключу подписывать только заявки; выводить средства он не может и истекает вместе с сессией (не более 8 часов).
Открытый стек#
HyperMatch построен на зрелом открытом программном обеспечении. В таблице — основные открытые компоненты, которые действительно используют сайт и его клиенты; версии соответствуют lock-файлам репозитория, здесь указана только основная версия.
| Компонент | Для чего | Лицензия |
|---|---|---|
| Next.js 16 | Каркас сайта и API: App Router, серверный рендеринг, инкрементальная статическая генерация | MIT |
| React 19 | Интерфейс | MIT |
| TypeScript 5 | Основной язык и проверка типов | Apache-2.0 |
| Tailwind CSS 4 | Основа стилей | MIT |
| viem 2 | Работа с Ethereum: проверка подписей, кодирование ABI, keccak256 | MIT |
| wagmi 2, RainbowKit 2 | Подключение кошелька в браузере | MIT |
| WalletConnect, Reown AppKit | Подключение мобильного кошелька (косвенная зависимость) | Apache-2.0 |
| TanStack Query 5 | Загрузка и кэширование данных на клиенте | MIT |
| SimpleWebAuthn 14 | Регистрация и проверка ключей доступа (WebAuthn) | MIT |
| Neon serverless driver, PostgreSQL | Подключение к управляемой базе данных и хранение | MIT / PostgreSQL License |
| Node.js 24 | Серверная среда выполнения | MIT |
| tsx | Запуск скриптов TypeScript и фоновых задач | MIT |
| cuer | QR-коды | MIT |
| Vitest 4, Playwright, ESLint 9 | Модульные тесты, браузерные тесты и статические проверки | MIT / Apache-2.0 / MIT |
| Foundry anvil | Тесты на локальной цепочке | MIT или Apache-2.0 |
| solc-js | Компиляция контрактов только для тестов; в продукт не входит | MIT (сам компилятор — GPL-3.0) |
| psycopg 3 | Драйвер базы данных для фоновых сервисов на Python | LGPL-3.0 |
| cryptography | Шифрование в фоновых сервисах на Python | Apache-2.0 или BSD-3-Clause |
| websockets | Соединения в реальном времени в фоновых сервисах на Python | BSD-3-Clause |
- Дерево Меркла: собственная реализация в раскладке, описанной в опубликованной спецификации StandardMerkleTree от OpenZeppelin (MIT), поэтому любой может независимо проверить его стандартной свёрткой доказательства Меркла.
- MetaTrader 5 и MQL5 — сторонняя коммерческая платформа, а не открытое ПО; движки сопровождения работают на ней.
- Таблица охватывает основные открытые компоненты сайта и его клиентов; компоненты интеграции с каждым LP используются только на сервере, по их собственным лицензиям.
Инженерные практики
Несколько практик, которых мы держимся и которые можно проверить:
- Сначала сохранить, потом отправить: всё, что исполняется во внешнем мире, записывается в базу до отправки.
- Идемпотентные команды: у каждой команды уникальный ID, советник помнит недавно обработанные ID, поэтому повторная доставка не выполняется дважды.
- Ограждающие токены (fencing tokens): используются в условиях записи «сравнить и заменить» и на границе подписи и отправки, чтобы устаревший исполнитель не мог записать.
- Доказательства только дополняются: триггеры базы запрещают изменять и удалять таблицы доказательств.
- Минимальные права: по одной роли в базе на фоновый сервис, только с нужными ему таблицами и операциями.
- Точные числа: суммы и количества — десятичные строки или целые атомарные единицы, никогда не плавающая точка.
- Объединённое кэшированное публичное чтение: множество публичных запросов в один момент превращается в одно чтение с коротким кэшем на периферии.
Данные и приватность#
Что мы собираем
- Идентификаторы входа: адрес кошелька, адрес почты или открытый ключ ключа доступа.
- Снимки счёта MT5 и события сделок, которые передаёт советник в терминале клиента или которые читает чтение у брокера.
- Настройки клиента: правила оповещений, параметры движка и безопасности, а также то, опубликованы ли результаты.
Чего мы не собираем
- Приватный ключ или сид-фразу основного кошелька: никогда не запрашиваем и не храним.
- Пароли в открытом виде: кроме учётных данных только для чтения, нужных для чтения у брокера и запечатанных в браузере, никакие пароли не хранятся.
Что публично
Только результаты, которые клиент сам решил опубликовать: выбранный им псевдоним, результаты и отметка «зафиксировано в блокчейне». Логин MT5 появляется в блокчейне и на публичных страницах только как хеш с солью; имя сервера брокера скрыто, если клиент не решит его показать.
Кто что видит
- Ваши данные читаются только через вашу собственную сессию; другие клиенты их не видят.
- Ончейн-доказательства (хеши транзакций, доказательства Меркла, данные фиксации) открыты только владельцу счёта; владелец может создать ссылку с ограниченным сроком действия и отозвать её в любой момент. Токен ссылки стоит после «#» в адресе, поэтому не попадает в журналы сервера.
Хранение и удаление
- Отзыв подключения сразу прекращает действие токена устройства и удаляет зашифрованный пароль для чтения у брокера; пароль, с которым 30 дней не было связи с брокером, тоже выводится из работы и удаляется.
- Симуляция счёта в сети: котировки, которые советник отправляет для симуляции, удаляются через 30 минут; симулированные сделки хранятся 180 дней; итоги симуляции по подключению хранятся вместе с ним и удаляются вместе с данными аккаунта по запросу.
- Записи о сделках и доказательства хранятся как свидетельства. Корень Меркла, уже зафиксированный в блокчейне, отозвать нельзя, но в нём только хеши и ничего, что позволяло бы опознать счёт.
- Чтобы удалить данные аккаунта, свяжитесь с нами через официальное сообщество или каналы поддержки.
Дорожная карта#
В дорожной карте нет дат: пока пункт не прошёл приёмку и его переключатель не включён, продукт и страница статуса системы помечают его «в разработке» или «открывается постепенно».
В разработке
- Запуск записи в блокчейне: когда сервис доказательств заработает и первые пакеты будут зафиксированы, страницы результатов начнут показывать «зафиксировано в блокчейне».
- Переход защищённого старта к действию: после того как наблюдаемая выборка пройдёт статистический порог.
Далее
- Больше LP и архитектур ликвидности — больше маршрутов исполнения на выбор.
- Больше торговых инструментов.
- Партнёрские книги котировок (интерфейс архитектуры готов, для реальной маршрутизации пока не используется).
Постоянно
- Усиление безопасности.
- Китайский, английский и русский поддерживаются синхронно.
Команда#
HyperMatch разрабатывает и поддерживает кросс-функциональная команда; обязанности распределены так:
| Функция | За что отвечает |
|---|---|
| Торговая стратегия и риск | Правила, лимиты, запас прочности и защита движков сопровождения, методы прогонов и оценок. |
| Разработка MT5 / MQL5 | Советники сопровождения и ретрансляции, панель MT5 и проверка в терминале. |
| Облачная платформа и данные | Сайт, API, база данных, консоль и оповещения. |
| Ончейн-разработка и доказательства | Слой исполнения и ликвидности, передача подписей, пакеты доказательств и проверка в браузере. |
| Безопасность и эксплуатация | Права и учётные данные, роли на хостах и в базе, выпуск и мониторинг. |
| Продукт и поддержка клиентов | Дизайн продукта, контент на трёх языках и общение с клиентами. |
Раскрытие рисков#
- Этот документ не является инвестиционной рекомендацией и не обещает дохода. Прошлые результаты, прогоны и симуляции не предсказывают будущих.
- Сеточные стратегии и стратегии с доливкой могут понести крупный убыток на однонаправленном рынке. Защита от стоп-аута и стоп по убытку ограничивают убыток, но не устраняют его; движение сильнее запаса прочности включает защиту и стоит около 70% средств; гэпы и проскальзывание могут пройти дальше линии.
- Ончейн-риски: ошибки смарт-контрактов, сбои оракулов или рынка, ликвидация, фандинг, перегрузка сети, безопасность кошелька и собственные операционные риски LP.
- Риски брокера: изменения котировок, свопов и торговых условий, разрывы связи.
- Технические риски: пока советник не в сети, сеть недоступна или сервис не работает, команды могут не дойти, а данные — устареть.
- Право и соответствие требованиям: клиент сам проверяет, разрешены ли соответствующие продукты и услуги в его юрисдикции.
- HyperMatch не брокер и не даёт инвестиционных рекомендаций. Торговля золотом с плечом высокорискованна, можно потерять всю маржу.