ProRealTime
Zone de développement des applications API, des logiciels et utilitaires développés par les membres du forum
Répondre • Page 1 sur 1

LS_snapshot (stream)

par Tartempion » 22 sept. 2015 21:57

Bonjour bien chers tous !
Ma question concerne le stream :
Considérons une table CHART en ticks à laquelle je souscris. J'utilise une déclaration de ce genre:
LS_table=2&LS_mode=DISTINCT&LS_op=add&LS_id=CHART:IX.D.DOW.IDF.IP:TICK&LS_schema=Bid
Ça marche, il n'y a pas de problème, les graphes déroulants, les OPU et autres fonctionnent.
Sauf que je cherche le moyen de charger un historique d'environ 7000 ticks d'un coup par la connexion stream au préalable, à la suite duquel le stream ticks par ticks s'enchainera. (le fonctionnement classique dans ce genre d'appli, typiquement ce que fait la prt, quand on la lance les graphes ne sont pas vides)
Le pdf "Network Protocol Tutorial" propose le mode "Snapshot synchonisation" avec une connexion silencieuse sélectionnée par le paramètre LS_op=add_silent qu'on active ensuite avec le paramètre LS_op=start. Je pense que c'est pour laisser du temps à l'utilisateur pour gérer le snapshot. Ça lui permet, après avoir géré le snapshote, de recevoir le stream, stream bufferisé depuis qu'il a ouvert la connexion silencieuse .
Mais mon problème est en amont : le paramètre LS_snapshot qui peut prendre la valeur FALSE ou la valeur TRUE ou la valeur égale à la longueur du snapshot exprimée en nombre d'évènements est inefficace chez moi (toujours référence à la même doc pdf). Je ne sais plus où j'ai lu que ça ne marchait que pour le mode DISTINCT. Ça tombe bien on est en ce mode. Mais aucune data de l'historique n'arrive, que je mette TRUE ou 50 ou 500, avec LS_id=CHART je reçois nada du snapshot. (Dow à 21h00).
J'ai essayé en souscription activée (add) et en souscription silentieuse (add_silent).

Est-ce que quelqu'un qui trace les ticks sur un graphe dans son appli arrive à obtenir un historique des ticks quand il lance son appli (comme sur la prt par exemple) ? (Il y a quelqu'un sur ce forum qui utilise matlab ou mapple mais je ne sais plus son nom, qu'il me pardonne :oops: )
Sur l'espace "community" de ig je n'ai trouvé que ce post : http://labs.ig.com/node/33 mais c'est pour LS_id=TRADE et non LS_id=CHART.
Avant de poster en désespoir de cause ma requête là-bas (les pauvres ils vont rien comprendre à mon anglish) j'aurai préféré une explication en français .

remarque : Snapshot sur les ticks par la connexion REST c'est impraticable d'abord parce que ça ne descend pas sous la seconde, mais surtout à cause du quota hebdomadaire largement dépassé dans ce cas.
À vous les studios ! :merci:

Re: LS_snapshot (stream)

par jized » 22 sept. 2015 23:16

Bonjour,
Il ne faut pas espérer obtenir autre chose que ce qui est décrit dans la doc (pas trop mal fichue) des API.

- LightStreamer, c'est un peu pour consulter des données à l'instant présent, et surtout pour être informé de leurs évolutions en temps réel.
- REST, c'est aussi pour des données à l'instant présent, et en plus pour consulter un historique assez limité (dans lequel il n'y a pas les ticks isolés).
C'est comme ça, il faut faire avec, et honnêtement c'est déjà pas si mal ;)

Dans ces conditions, le seul moyen d'obtenir un historique des ticks disponible à tout moment, c'est de les enregistrer en continu depuis le flux LS avec un programme qui ne fait que ça et qui tourne en permanence.

Les conditions d'utilisations des API indiquent que ce ne peut être que pour un usage personnel.

Re: LS_snapshot (stream)

par Tartempion » 23 sept. 2015 06:06

ok merci jized. c'est déjà pas mal comme ça effectivement.

Re: LS_snapshot (stream)

par Nomade » 23 sept. 2015 11:25

Pareil, pas vraiment de solution pour avoir un historique au debut.

J'ai une appli qui est chargee de recuperer les cours et ensuite dispatcher a l'appli graphique/passage ordre. Sur demande de l'appli utilisatrice, le dispatcher construit un historique de bougies et le met a disposition. Pour faciliter la synchro, la mise a disposition se fait au premier tick d'une nouvelle Bougie.
Il suffit d'avoir lance le recuperateur des cours un peu avant l'utilisateur pour avoir un peu de profondeur et tu peux fermer/ouvrir l'utisateur a volonte.

Ca marche plutot bien, je charge en general pas plus de 50 a 200 bougies 20 ticks, avec des mises a jour d'affichage dans les 1 a 3 ms sur ma charette... :)

Re: LS_snapshot (stream)

par beni » 23 sept. 2015 14:25

Intéressante ta façon de procéder Nomade. Tu utilises quelle language ?

Re: LS_snapshot (stream)

par Nomade » 23 sept. 2015 15:30

Salut beni

Python, je suis parti de la L3. Au debut je pensais me tourner vers un language plus rapide (surtout pour l'affichage), mais aujourd'hui apres avoir un peu optimise ca m'a l'air suffisant. En passant sur une becane plus performante je devrais pouvoir gagner encore un peu.

Re: LS_snapshot (stream)

par beni » 23 sept. 2015 16:32

Ok merci pour la réponse. Dernière question et après j'arrête de polluer la file :mrgreen:
Si j'ai bien compris te fais des graphiques, t'utilises quelle librairie ?

Re: LS_snapshot (stream)

par Nomade » 23 sept. 2015 16:58

Beni,
J'utilise Merci d’éviter les citations au maximum. Elles sont illisibles sur les smartphones. Relisez le message de bienvenue., j'avais commence avec matplotlib, mais c'etait plus/trop lent meme en optimisant (j'etais a ~15ms pour ajouter un tick)...
La, je dessine directement sur des bitmaps avec un memoryDC, j'avais trouve ca http://wiki.wxpython.org/DoubleBufferedDrawing pour commencer.
C'est deja assez rapide, et en ayant plusieurs couches de bitmap (background, historique, Bougie courante) ca marche encore mieux. Tu viens coller les bitmaps les uns sur les autres avec des masques si necessaires.
Il doit y avoir moyen de faire un peu mieux en conservant en memoire les parties de bitmap inchangees.

Re: LS_snapshot (stream)

par falex » 23 sept. 2015 17:07

Vous allez nous faire une nouvelle version de Merci d’éviter les citations au maximum. Elles sont illisibles sur les smartphones. Relisez le message de bienvenue., les amis !!!

Re: LS_snapshot (stream)

par beni » 23 sept. 2015 18:44

Merci nomade ça à l'air robuste, bravo !
J'avais abandonné aussi matplotlib (pour les mêmes raisons que toi) pour pyqtgraph. Vu que j'utilise PyQt pour l'interface, ça s'intègre au top :)

Re: LS_snapshot (stream)

par Tartempion » 23 sept. 2015 23:57

- a écrit : Il y a peut-être une autre solution. Mais chut (c'est d'un compliqué de chez compliqué mais ça pourrait marcher).
Sous matlab tu fais comment ? Tu charges tes graphes avec le stream à partir du premier tick qui arrive dans ta souscription ? C'est à dire que tes graphes sont vides au lancement ?

À quoi tu penses ? du peer-to-peer ? (à plusieurs on peut espérer qu'une bécane est déjà connectée…)

P.-S. Quant à moi je developpe sous Labview.

Sujets similaires
API REST / STREAM
Fichier(s) joint(s) par FemtoTrader » 22 sept. 2014 10:35 (178 Réponses)
[PYTHON] Script API IG STREAM + REST
par tcournez » 14 sept. 2015 21:50 (30 Réponses)
clarification signification "#" et "" dans les flux stream
par musicae » 23 sept. 2016 15:01 (3 Réponses)
risque d'arrêt du Gulf Stream
par noko » 07 sept. 2018 20:28 (4 Réponses)
Trader au Stream Deck avec ProRealTime : une révolution
Fichier(s) joint(s) par Benoist Rousseau » 04 déc. 2019 12:00 (75 Réponses)
Comment configurer son Stream Deck ProRealTime pour trader ?
Fichier(s) joint(s) par Amarantine » 05 déc. 2019 20:53 (40 Réponses)
Première expérience avec un Stream Deck 32 boutons
Fichier(s) joint(s) par Benoist Rousseau » 15 déc. 2019 11:53 (38 Réponses)
Stream Deck et IG
par fred631 » 04 mars 2020 10:39 (30 Réponses)
API IB TWS comment stream flux future Dax
par shuraver » 28 mai 2020 22:07 (3 Réponses)