Hooks (перехватчики)¶
Hook — это заранее определённая функция плагина, которая вызывается сервером в определённый момент времени.
Например, hook HookTradeRequestOpen вызывается каждый раз, когда клиентский запрос добавляется в очередь на обработку.
Полное описание доступно в разделе Hooks документации.
Любой плагин должен содержать как минимум два hook-функции:
- AboutPlugin — предоставляет серверу основную информацию о плагине.
- CreatePlugin — используется для глобальной инициализации плагина; получает интерфейс сервера в качестве параметра.
- DestroyPlugin — используется для глобальной инициализации плагина; получает интерфейс сервера в качестве параметра.
Если плагину требуется деинициализация (например, закрытие потоков или сокетов), добавьте hook-функцию DestroyPlugin. Она вызывается при завершении работы сервера.
Внимание: после вызова CreatePlugin доступ к интерфейсу сервера запрещён.
Например, если в плагине есть отдельный поток, его следует завершать именно в DestroyPlugin, не дожидаясь выгрузки плагина.
How to add plugins to the Docker image?
Your answer or details here.
Схема обработки hook-функции¶

Пояснения к схеме:
- Сервер инициирует вызов hook-функции (например,
HookUserAdd). - Запрос проходит по цепочке подключённых плагинов:
- Каждый плагин получает управление по очереди (в порядке приоритета).
- Если плагин возвращает
RET_OK, управление передаётся следующему плагину. - Если плагин возвращает любой другой код, дальнейшая обработка останавливается — сервер не вызывает следующие плагины для этого hook.
- Если ни один плагин не остановил обработку (все вернули
RET_OK), сервер завершает обработку события.
Таким образом, hook обрабатывается до первого отказа (No на схеме), и дальнейшее выполнение прекращается для оставшихся плагинов.
Trades Hooks¶
| Hook | Description |
|---|---|
| HookTradeRequestOpen | Hook for adding a checked trade request to the queue |
| HookTradeProcessOpen | Hook for trade request execution |
| HookTradeRequestClose | Hook for Close By request execution |
| HookTradeProcessClose | Hook for checking if a trade request matches routing rules |
| HookTradeProcessCommission | Hook for calculating the commission blocked when placing an order |
| HookTradeProcessMarginCall | Hook for margin calculation (in progress) |
| HookTradeProcessStopOut | Hook for stop out calculation (in progress) |
Accounts Hooks¶
| Hook | Description |
|---|---|
| HookAccountAdd | A hook of an event of adding a new client record |
| HookAccountUpdate | A hook of an event of client record update |
| HookAccountDelete | A hook of an event of client record deletion |
| HookAccountLogin | A hook of a client's connection to the server |
| HookAccountLogout | A hook of a client's connection to the server |
System Hooks¶
| Hook | Description |
|---|---|
| HookServerConnect | The hook for managing ScaleTrade platform components connections to Gateway API. |