Distinguer les transactions dans les flux WebSocket de Hong Kong
Les données de marché en temps réel évoluent rapidement. Lorsque vous diffusez les transactions sur les actions de Hong Kong, vous voyez différents types d'exécutions. Toutes les transactions ne représentent pas la même chose. Certaines sont des ordres d'investisseurs. D'autres sont des auto-appariements système ou des transactions de lots atypiques (odd-lots).
Vous devez classifier ces transactions rapidement.
Le problème
Les champs de données standard échouent souvent à aider. Le champ du type de transaction est souvent peu fiable. Pour y remédier, utilisez ces trois règles :
- Vérification du volume : La plupart des actions de Hong Kong se négocient par lots de 100 actions. Toute transaction de moins de 100 actions est un lot atypique (odd lot).
- Regroupement temporel : Les transactions auto-appariées se produisent par rafales rapides. Vous voyez de nombreuses exécutions en quelques millisecondes. Les lots atypiques ne suivent pas ce modèle.
- Vérification de la contrepartie : Examinez l'acheteur et le vendeur. Si les deux sont des comptes système comme SYS, il s'agit d'un auto-appariement.
Implémentation
Vous pouvez intégrer cette logique dans votre flux de données.
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'])
Trier ces transactions vous aide à percevoir le véritable mouvement du marché.
Communauté d'apprentissage optionnelle : https://t.me/GyaanSetuAi