Разграничение типов сделок в WebSocket-фидах Гонконга

Рыночные данные в реальном времени меняются стремительно. При стриминге сделок с акциями Гонконга вы видите различные типы записей. Не все сделки означают одно и то же. Некоторые являются ордерами инвесторов. Другие — автоматическими системными сопоставлениями или сделками неполными лотами (odd-lot).

Вам необходимо быстро классифицировать эти сделки.

Проблема

Стандартные поля данных часто оказываются бесполезными. Поле типа сделки (trade type) часто ненадежно. Чтобы решить эту проблему, используйте следующие три правила:

  • Проверка объема: Большинство акций Гонконга торгуются лотами по 100 штук. Любая сделка объемом менее 100 акций считается неполным лотом (odd lot).
  • Временная кластеризация: Автоматические сопоставления происходят быстрыми всплесками. Вы видите множество исполнений в течение миллисекунд. Сделки неполными лотами не следуют этому паттерну.
  • Проверка контрагента: Посмотрите на покупателя и продавца. Если оба являются системными счетами, такими как SYS, то это автоматическое сопоставление.

Реализация

Вы можете внедрить эту логику в свой поток данных.

from websocket import create_connection
import json

API_TOKEN = 'your_api_token'
ws_url = f"wss://ws.alltick.co/stock?token={API_TOKEN}"
ws = create_connection(ws_url)

subscribe_msg = {
    "action": "subscribe",
    "symbol": "00700.HK",
    "type": "transaction"
}
ws.send(json.dumps(subscribe_msg))

def check_auto_match(tick):
    return tick.get('buyer') == 'SYS' and tick.get('seller') == 'SYS'

while True:
    data = ws.recv()
    tick = json.loads(data)
    volume = tick.get('volume', 0)

    if volume < 100:
        tick['tag'] = 'odd_lot'
    elif check_auto_match(tick):
        tick['tag'] = 'auto_match'
    else:
        tick['tag'] = 'normal'

    print(tick['time'], tick['price'], tick['volume'], tick['tag'])

Сортировка этих сделок помогает увидеть истинное движение рынка.

Источник: https://dev.to/emily19980210/differentiating-auto-matched-and-odd-lot-trades-in-hong-kong-stock-websocket-feeds-3bgg

Дополнительное обучающее сообщество: https://t.me/GyaanSetuAi