Architecture d'un bot de paris sur les cotes Pinnacle
Réponse : la plupart des bots de paris ou de trading ont cinq parties : (1) un flux de données, (2) un état local des événements et marchés, (3) des règles de signal, (4) des contrôles de risque et (5) l'exécution sur le compte avec lequel vous pariez. PinnFeed fournit la partie 1 et aide pour les parties 2 et 3 : un WebSocket (Builder) qui envoie un snapshot complet puis des frames delta à chaque changement de prix de Pinnacle, avec fair, margin et maxStake. Il ne place pas de paris : l'exécution vous revient, chez un opérateur qui l'autorise et là où parier est légal pour vous.
Le pipeline#
| Partie | Rôle | Avec PinnFeed |
|---|---|---|
| Ingestion | Garder une connexion ouverte, répondre pong au ping, se reconnecter avec backoff | wss://pinnfeed.io/v1/stream (guide Python et Node) |
| État | Map market.id → dernier marché ; supprimer sur op: "remove" | snapshot/delta |
| Signaux | Baisse de prix, offre au-dessus de fair, changement de ligne | guide steam |
| Risque | Plafonds de mise, maxStake >= 100, exposition maximale par événement, arrêt d'urgence | Votre code |
| Exécution | Placer le pari, consigner prix et résultat | Votre opérateur ou bourse de paris |
Boucle minimale de signaux (Python)#
book = {} # market id -> market
def on_frame(msg, alert):
if msg["type"] == "snapshot":
for m in msg["markets"]:
book[m["id"]] = m
elif msg["type"] == "delta":
for ch in msg["changes"]:
if ch["kind"] != "market":
continue
if ch["op"] == "remove":
book.pop(ch["id"], None)
continue
new, old = ch["market"], book.get(ch["market"]["id"])
book[new["id"]] = new
if not old or (new["maxStake"] or 0) < 100:
continue
for o_new, o_old in zip(new["outcomes"], old["outcomes"]):
if o_old["decimal"] and o_new["decimal"] / o_old["decimal"] - 1 <= -0.04:
alert(new["eventId"], o_new["name"], o_old["decimal"], o_new["decimal"])
Branchez on_frame sur n'importe quel client, par exemple le client Go. Consignez chaque signal et chaque décision pour les mesurer ensuite face à la clôture : suivi de paris avec CLV.
Conseils de conception#
- Faites tourner l'ingestion sur un hôte toujours allumé, pas dans une fonction serverless.
- Gardez un mode
paperqui consigne ce que ferait le bot avant de miser quoi que ce soit. - Un WebSocket par processus, réparti en interne ; Builder autorise 3 connexions, Pro 10.
- Traitez
4008 slow_consumeren sortant le travail de la boucle de réception.
Offres#
Builder (99 €/mois) : WebSocket, les 13 sports, tous les marchés. Pro (199 €/mois) : 10 connexions et frames bruts. Essai de 3 jours ; carte requise, débitée après le jour 3 sauf résiliation. Prototypez d'abord avec le REST gratuit : inscription.
Contenu éducatif pour adultes (18+). Les paris automatisés peuvent faire perdre de l'argent très vite ; ni pronostics ni promesse de gain. En France, seuls les opérateurs agréés par l'ANJ peuvent proposer des paris en ligne.
Questions fréquentes#
PinnFeed peut-il placer des paris pour mon bot ?#
Non. Ce sont des données en lecture seule. L'exécution se fait sur votre propre compte chez un opérateur ou une bourse de paris.
Les opérateurs autorisent-ils les bots ?#
Beaucoup restreignent les paris automatisés dans leurs conditions. Vérifiez avant d'automatiser l'exécution.