Granularité des ticks rendus par l'API IB
-
Guimbardino
- Ewok
- Messages : 16
- Enregistré le : 24 sept. 2022 13:46
Granularité des ticks rendus par l'API IB
Bonjour à tous
Je me suis lancé depuis 3-4 mois dans l'écriture d'un bot de trading en python. Il est connecté à IB via TWS et son API python.
Je me rends compte tout juste qu'il y a une limitation que je n'avais pas identifiée au départ sur la granularité du tyck by tick restitué par l'api reqTickByTickData. En effet certains ticks sont agrégés en 1 seul, très probablement pour réduire le nombre de ticks à streamer (?). D'après mes observations et comparaisons avec les données PRT, les ticks agrégés ont le même price et ont la même heure (à la seconde près, ce qui n'est pas super précis). Quand je reconsitue des bougies 100-ticks ç partir de ces ticks, j'ai donc une grosse différence avec les bougies 100-tiks de PRT, qui elles sont bonnes.
D'où plusieurs questions :
- comment récupérer des bougies 100 ticks (par exemple) avec l'API IB ? Y en a t-il parmi vous qui le font ?
- sinon quel API utilisez-vous pour récupérer vos données en temps réel ? Autre broker ?
- et même question pour récupérer de l'historique (utile pour les backtests) ?
Grand merci à vous tous
Je me suis lancé depuis 3-4 mois dans l'écriture d'un bot de trading en python. Il est connecté à IB via TWS et son API python.
Je me rends compte tout juste qu'il y a une limitation que je n'avais pas identifiée au départ sur la granularité du tyck by tick restitué par l'api reqTickByTickData. En effet certains ticks sont agrégés en 1 seul, très probablement pour réduire le nombre de ticks à streamer (?). D'après mes observations et comparaisons avec les données PRT, les ticks agrégés ont le même price et ont la même heure (à la seconde près, ce qui n'est pas super précis). Quand je reconsitue des bougies 100-ticks ç partir de ces ticks, j'ai donc une grosse différence avec les bougies 100-tiks de PRT, qui elles sont bonnes.
D'où plusieurs questions :
- comment récupérer des bougies 100 ticks (par exemple) avec l'API IB ? Y en a t-il parmi vous qui le font ?
- sinon quel API utilisez-vous pour récupérer vos données en temps réel ? Autre broker ?
- et même question pour récupérer de l'historique (utile pour les backtests) ?
Grand merci à vous tous
-
falex
- Le Gladiateur
- Messages : 34269
- Enregistré le : 12 févr. 2013 15:41
Re: Granularité des ticks rendus par l'API IB
De mémoire il y a vaut eu un débat sur le
Sujet.
En résumé ib stream uniquement de l’agrégé. C’est pas un flux pro en vrai tick by tick.
Sujet.
En résumé ib stream uniquement de l’agrégé. C’est pas un flux pro en vrai tick by tick.
-
Benoist Rousseau
- Trader Futures / CME Member
- Messages : 174758
- Enregistré le : 06 sept. 2011 22:45
Re: Granularité des ticks rendus par l'API IB
Bonjour
tu peux faire une recherche, je l'ai expliqué 50 fois au moins, tu auras des réponses détaillées
IB stream les cours à hauteur de 4 ticks par seconde en moyenne (il l'indique sur leur site)
PRT donne tous les ticks si tu mets le flux premium donc tu peux en avoir 20 57 89 par secondes
Donc chez IB en direct ils sont de toute façon incomplets et on ne peut pas scalper en ticks avec
tu peux faire une recherche, je l'ai expliqué 50 fois au moins, tu auras des réponses détaillées
IB stream les cours à hauteur de 4 ticks par seconde en moyenne (il l'indique sur leur site)
PRT donne tous les ticks si tu mets le flux premium donc tu peux en avoir 20 57 89 par secondes
Donc chez IB en direct ils sont de toute façon incomplets et on ne peut pas scalper en ticks avec
-
xeebee
- Messages : 3
- Enregistré le : 26 mai 2023 14:49
Re: Granularité des ticks rendus par l'API IB
Bonjour,
C'est une question intéressante. J'utilise l'API de IB pour expérimenté du trading algo en python depuis 6 mois. J'avais au début constaté la même chose à propos des ticks. J'avais mis cette question de côté car je suis sur des UT plus grand pour le moment 5 minutes et plus.
IB n'est pas un fournisseur de données. Il propose ce service par intermédiaire d'une autre société (voir dans les configuration le nom est indiqué). Ce n'est pas sa spécialité. Cela est aussi précisé à un endroit dans la doc de l'API (je ne sais plus où).
Il y a eu une discussion à ce propos intitulé ""granularity of ticks " sur le groupe de discussion TWS API https://groups.io/g/twsapi/topic/99129776#51241 . D'ailleurs ce post est initié par un une personne française à peu près à la même date (25 mai 2023). Peut être est-ce ta question?
Voici une partie de ce qui est dit pour répondre à la question et en savoir plus (après voir le fil de discussion):
La data est une question en apparence simple mais en fait compliquée. C'est un métier en soi. Cela implique de grosse quantité de donnée à traiter et à mettre en forme pour l'exploiter. Cela prend du temps et nécessite de l'expérience. Si on rajoute le facteur temps avec les ticks cela se complique encore plus. Python ne sera peut être pas assez performant. Au niveau du traitement du tick, il est plus souvent évoquer le C/C++.
C'est une question intéressante. J'utilise l'API de IB pour expérimenté du trading algo en python depuis 6 mois. J'avais au début constaté la même chose à propos des ticks. J'avais mis cette question de côté car je suis sur des UT plus grand pour le moment 5 minutes et plus.
IB n'est pas un fournisseur de données. Il propose ce service par intermédiaire d'une autre société (voir dans les configuration le nom est indiqué). Ce n'est pas sa spécialité. Cela est aussi précisé à un endroit dans la doc de l'API (je ne sais plus où).
Il y a eu une discussion à ce propos intitulé ""granularity of ticks " sur le groupe de discussion TWS API https://groups.io/g/twsapi/topic/99129776#51241 . D'ailleurs ce post est initié par un une personne française à peu près à la même date (25 mai 2023). Peut être est-ce ta question?
Voici une partie de ce qui est dit pour répondre à la question et en savoir plus (après voir le fil de discussion):
Spoiler:
-
Amarantine
- Modératrice
- Messages : 75630
- Enregistré le : 16 sept. 2011 19:12
Re: Granularité des ticks rendus par l'API IB
Présentation de xeebee le 29 mai:
presentation-de-xeebee-t55428.html#p2001327
presentation-de-xeebee-t55428.html#p2001327
-
Guimbardino
- Ewok
- Messages : 16
- Enregistré le : 24 sept. 2022 13:46
Re: Granularité des ticks rendus par l'API IB
@xeebee : oui c'est moi qui ai posté le message sur groups.io
Pour moi, ce n'est pas clair de savoir à quel fournisseur on peut s'adresser pour avoir une API fiable qui restitue l'intégralité des ticcks avec une faible latence (besoin du temps réel). Les tests que je fais en ce moment avec IB me donnent un délai de réception des ticks de l'ordre de 2sec alors que je ping à 100ms un serveur de chicago... (je suis en Fibre avec une latence de 20ms sur les speedtests nperf ). Bref je vais faire avec ces limitations mais quand j'aurai du temps je verrai pour trouver mieux...ça n'a pas l'air simple à trouver.
@Benoist : Même si IB est effectivement bien en-dessous de PRT en terme de granularité des ticks, mes tests sont plus optimistes que les chiffres que tu donnes. Par exemple lors de l'ouverture d'hier vendredi à 15:30:00, l'API reqTickByTicks m'a retourné 183 ticks, puis 138 ticks la seconde suivante, etc. Donc on a quand même une excellente précision, même si elle n'est suffisante pour reconstituer les bougies en 100 ticks...
Je galère pas mal sur ce sujet, j'espère que ces quelques infos pourront être utiles aux membres de ce forum qui m'a déjà beaucoup apporté
@Benoist : Même si IB est effectivement bien en-dessous de PRT en terme de granularité des ticks, mes tests sont plus optimistes que les chiffres que tu donnes. Par exemple lors de l'ouverture d'hier vendredi à 15:30:00, l'API reqTickByTicks m'a retourné 183 ticks, puis 138 ticks la seconde suivante, etc. Donc on a quand même une excellente précision, même si elle n'est suffisante pour reconstituer les bougies en 100 ticks...
Je galère pas mal sur ce sujet, j'espère que ces quelques infos pourront être utiles aux membres de ce forum qui m'a déjà beaucoup apporté