99% des bots "StatArb" vendus aux traders de détail utilisent une fenêtre de lookback statique (OLS) pour calculer le ratio de couverture. Lorsque le régime du marché change, l'écart dépasse le seuil Z-score, et votre compte est liquidé.
Un arbitrage institutionnel réel nécessite une couverture dynamique. Voici l'étape exacte de mise à jour du filtre de Kalman que j'utilise dans mon bot Sentinel pour suivre dynamiquement la relation entre deux actifs en temps réel.
core/kalman_filter.py (Lignes 42-56)import numpy as np
def kalman_update(prix_x, prix_y, état_moyen, cov_state, bruit_observation, bruit_transition):
# Matrice d'observation
H = np.array([price_x, 1.0]).reshape(1, 2)
# Prédiction
pred_cov = state_cov + transition_noise
# Mise à jour
innovation = price_y - np.dot(H, state_mean)
innovation_cov = np.dot(H, np.dot(pred_cov, H.T)) + observation_noise
kalman_gain = np.dot(pred_cov, H.T) / innovation_cov[0, 0]
new_state_mean = state_mean + kalman_gain * innovation[0]
new_state_cov = pred_cov - np.dot(kalman_gain, np.dot(H, pred_cov)) return new_state_mean, new_state_cov
Si votre bot ne recalcule pas le ratio de couverture à chaque tick en utilisant des modèles d'état-espace, vous tradez une illusion retardée.
J'ai emballé l'ensemble de mon moteur StatArb en Python (Kalman + Z-Score) dans un conteneur Docker prêt à déployer. Il utilise SQLite WAL pour des vitesses de lecture/écriture extrêmes, Redis pour la gestion d'état, et est entièrement contrôlable via le polling Telegram. Aucune intervention manuelle requise.
Arrêtez d'acheter des emballages. Achetez les mathématiques. Lien dans la bio pour l'image Docker et la licence SaaS pour exécuter cela pour vos clients. #StatArb #algoTrading #Python #BybitFutures #QuantTrader