API REST / STREAM

LabZone, l'atelier de développement du forum Andlil : API, logiciels et utilitaires de trading créés par les membres, versions, bugs et idées.
Avatar du membre
falex
Le Gladiateur
Messages : 34267
Enregistré le : 12 févr. 2013 15:41

API REST / STREAM

Message non lu par falex »

IG nous met à disposition une API documenté pour pouvoir faire no propres robots de trading à partir de ce que l'on veux (Javascript, C, python, ruby perl, pascal, ...).

Valable uniquement pour les compte IG pas les marque blanche.

Les pointeurs utilent :
Présentation de l'API : http://labs.ig.com
FAX avec les informations importantes comme les url d'accès où les quotas de requêtes : http://labs.ig.com/faq

Le "Getting Started" : http://labs.ig.com/gettingstarted

Il est important de créer un compte démo avec le même email que votre compte réel, ainsi que le compte de démo aura une validité permanente (confirmé ce matin au téléphone).

Les scripts d'exemple mis à disposition par IG est paramétré avec l'url de démo, je ne comprennais pas pourquoi ça ne marchait pas et hop en mettant l'url de prod et l'API key de mon de mon compte : je voyais les cours et les positions.
MàJ : il y a deux scripts d'exemple : un en javascript pour un navigateur web et l'autre en VBA pour Excel.

A priori pas de souci de "double connexion" comme sur iphone vs web : vous pouvez très bien être connecté sur le web et via API en même temps.

---
Quelles utilisations de l'API :
- Refaire l'interface de trading à votre sauce (:lol:)
- Ajouter des outils non présents dans l'interface d'origine
- Créer des automates en dehors des outils grnad public que sont PRT et MT4
- Toute autre idée qui n'est pas possible avec les outils actuels.
...
Avatar du membre
frigolite
Chevalier Jedi
Messages : 2850
Enregistré le : 12 sept. 2011 17:09

Re: API REST

Message non lu par frigolite »

Spoiler:
Je pensais que tu ouvrais un post pour une nouvelle rencontre entre andliliens, Mon traducteur de ton langage aiephonien, me donnait : Happy restaurant! ;)
Avatar du membre
falex
Le Gladiateur
Messages : 34267
Enregistré le : 12 févr. 2013 15:41

Re: API REST

Message non lu par falex »

Spoiler:
pas trop déçu ?
Avatar du membre
frigolite
Chevalier Jedi
Messages : 2850
Enregistré le : 12 sept. 2011 17:09

Re: API REST

Message non lu par frigolite »

Spoiler:
non, je reste happy
Avatar du membre
falex
Le Gladiateur
Messages : 34267
Enregistré le : 12 févr. 2013 15:41

Re: API REST

Message non lu par falex »

Spoiler:
Me voilà rassuré, j'avais peur que tu sois en REST
Avatar du membre
Benoist Rousseau
Trader Futures / CME Member
Messages : 174740
Enregistré le : 06 sept. 2011 22:45

Re: API REST

Message non lu par [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/src/Extension/CoreExtension.php on line 570: strtr(): Ignoring replacement of empty string
Benoist Rousseau
»

Et bien cela peut-être très très sympa... faire l'interface de rêve dont on a envie... reste le temps à trouver :(
Avatar du membre
z0om
Padawan
Messages : 494
Enregistré le : 10 sept. 2014 12:40

Re: API REST

Message non lu par z0om »

:roll:
Avatar du membre
z0om
Padawan
Messages : 494
Enregistré le : 10 sept. 2014 12:40

Re: API REST

Message non lu par z0om »

Benoist Rousseau a écrit :Et bien cela peut-être très très sympa... faire l'interface de rêve dont on a envie... reste le temps à trouver :(
Ca me brancherait bien aussi, moi qui aime custom.
Avatar du membre
falex
Le Gladiateur
Messages : 34267
Enregistré le : 12 févr. 2013 15:41

Re: API REST

Message non lu par falex »

Culture : REST n'est ni un protocole ni un format de donne mais plutôt un cadre sur comment doit se faire le dialogue entre un client et un serveur : http://fr.m.wikipedia.org/wiki/Representational_State_Transfer

---
Alors qui a fait ses premiers codes ?
Avatar du membre
takapoto
Membre du Conseil Jedi
Messages : 7801
Enregistré le : 16 déc. 2013 15:56

Re: API REST

Message non lu par takapoto »

falex a écrit :je ne comprennais pas pourquoi ça ne marchait pas et hop en mettant l'url de prod et l'API key de mon de mon compte : je voyais les cours et les positions.
Bonjour Falex,

Peux-tu préciser où tu as mis l'url de prod et l'API key de ton compte ?
Dans quel exemple : Javascript ou Excel ?
Et à quel endroit précisément ?
Et l'API key est celle de ton compre réel ou démo ?

=> je n'arrive pas à faire fonctionner les exemples...
Avatar du membre
falex
Le Gladiateur
Messages : 34267
Enregistré le : 12 févr. 2013 15:41

Re: API REST

Message non lu par falex »

Hello

Je n'ai testé que la V1 du script javascript, je n'ai pas encore regardé la version excel.
IG a corrigé son script javascrip (sorte de v1.1) mais n'a pas mis à jour le "versioning", enfin peu importe.

L'exemple fourni par ig fonctionne avec l'url de démo, donc il faut mettre l'API key du compte de démo.
Si tu veux l'utiliser avec ton compte réel, idem que pour le démo il fautr générer une API-key et changer l'url.

L'url se trouve dans le fichier : ig-public-api.js
c'est la première variable : urlRoot=...

Pour les url d'accès cf. la FAQ : https://labs.ig.com/faq
Avatar du membre
takapoto
Membre du Conseil Jedi
Messages : 7801
Enregistré le : 16 déc. 2013 15:56

Re: API REST

Message non lu par takapoto »

:merci:

Grâce à tes indications, j'arrive à faire marcher la démo.

A suivre...
Avatar du membre
falex
Le Gladiateur
Messages : 34267
Enregistré le : 12 févr. 2013 15:41

Re: API REST

Message non lu par falex »

bien !

J'avoue que la première fois j'ai cherché pendant un bon moment avant de trouver où était le pb.
Avatar du membre
takapoto
Membre du Conseil Jedi
Messages : 7801
Enregistré le : 16 déc. 2013 15:56

Re: API REST

Message non lu par takapoto »

Je n'ai pas non plus réussi à exécuter l'exemple Excel.

Jized utilise l'API avec java.
Avatar du membre
falex
Le Gladiateur
Messages : 34267
Enregistré le : 12 févr. 2013 15:41

Re: API REST

Message non lu par falex »

J'ai commencé a faire des tests avec Python mais j'ai laissé tomber pour l'instant a cause ... De l'authent NTLM du proxy de ma boite ... :-(
beni
Compagnon Jedi
Messages : 1395
Enregistré le : 11 juil. 2012 18:31

Re: API REST

Message non lu par beni »

Bonjour à tous,

Aucun problème de mon côté pour tester l'exemple excel, que ce soit en démo ou en live.
J'ai pas testé pour passer des ordres mais la visualisation des cours marchent bien, je retrouve mes listes, mes pos....

Par contre je trouve que c'est un peu lent et perso je pense pas qu'excel soit le meilleur outil pour exploiter l'API. Mais ça permet de s'inspirer

Je suis en train de tester de mon côté avec python, je sais pas trop ce que je vais en faire mais ça permet d'apprendre :mrgreen:

Si quelqu'un a des idées d'appli je suis preneur !

Un dernier petit truc: pendant deux jours j'ai eu une erreur 401 en me connectant à mon compte demo sans comprendre pourquoi...en fait j'avais oublié le "demo-" devant mon identifiant comme un âne... j'ai honte :oops: :oops:
Avatar du membre
falex
Le Gladiateur
Messages : 34267
Enregistré le : 12 févr. 2013 15:41

Re: API REST

Message non lu par falex »

Quand je faisais les tests fonctionnels avec l'exemple javascript d'IG, j'avais effectivement, l'affichage des position, la recherche Ok par contre impossible de passer un ordre avec leur exemple : A chaque fois erreur ou ordre rejeté ...
Avatar du membre
bobbyO
Padawan
Messages : 407
Enregistré le : 30 janv. 2013 20:45

Re: API REST

Message non lu par bobbyO »

Bonjour tout le monde,
Sympa comme news.
Ayant rapidement parcouru les exemples donnés, si j'ai bien compris l'exemple Excel, c'est en fait du code C# qui se sert d'Excel comme receptacle de données ?
En tous cas, cela peut me permettre de construire mes indicateurs multi-UT, cose que je ne pouvais pas faire avec IG.
-+
beni
Compagnon Jedi
Messages : 1395
Enregistré le : 11 juil. 2012 18:31

Re: API REST

Message non lu par beni »

Désolé pour le délai de ma réponse
- a écrit :Comme tu es dans une configuration où ça marche, pourrais-tu s'il te plaît nous indiquer ta configuration :
- windows (XP, XP SP3, Vista, Windows 7, Windows 8 ?) ---> Windows 7
- version système : 32bits ou 64bits ---> 64 bits
- version Excel (97, 2003, 2007, 2010 ?) ---> Excel 2010
- version .NET (3.0, 3.5, 4.0, 4.5 ?) ---> .NET FrameWork 4.0
- la version ActiveX Data Objects (ADO 6.0, 6.1, 6.2 ou autres ?) ---> je pense que c'est la 6.0 :? , y'a un moyen de le vérifier ?
- quel est le paramétrage spécifique que tu aurais fait sur Excel ? ---> je n'ai rien changé
- etc... etc...
- quelle est la version de l'exemple Excel fourni par IG as-tu utilisé ? ---> la version 32 bits, sur les forums d'ig labs je crois que c'est celle qu'ils conseillent
- etc... etc...
A+
Avatar du membre
jized
Stormtrooper
Messages : 127
Enregistré le : 23 sept. 2014 21:13

Re: API REST

Message non lu par jized »

Bonjour,

En echo aux messages précédents :

En effet, j'utilise le langage Java pour la connexion pour diverses raisons :
- Javascript est plus lent, nécessite un navigateur ou un environnement lourd pour tourner, et il a plein de limites d'accès aux fichiers pour des raisons de sécurité.
- Excel : pas du tout adapté à une gestion en temps réel des ticks qui arrivent à tout moment.
- Le mode STREAM fait appel à une bibliothèque externe qui n'existe pas dans beaucoup de langages (Lightstreamer).

Pour se connecter en mode REST, il faut pouvoir contrôler complètement les paramètres des requêtes HTTPS pour respecter le protocole d'accès au serveur IG, ce qui n'est pas évident avec les trucs tout fait de langages plus simples à utiliser mais qui cachent plein de paramètres.

La connexion en mode REST ne donne pas accès aux cotations en temps réel, mais elle permet d'obtenir des codes de session pour basculer en mode STREAM.

Malgré tout je note quelques problèmes :
- une connexion directe en mode REST ferme toute autre connexion active, en particulier le trading par l'appli web de IG, et vice-versa. On ne peut pas avoir les 2 en même temps.
Par contre si PRT tourne il n'est pas fermé (ouf).
Quand le mode STREAM est établi, on peut à nouveau se connecter par l'interface web.

- il y a des déconnexions aléatoires plusieurs fois dans la journée de la part du serveur IG (0, ou 1, ou bien 5 ou 6, c'est imprévisible).
J'ai donc mis en place un système de surveillance qui détecte les déconnexions pour se reconnecter immédiatement (moins d'une minute).

Mais il y a un effet secondaire car qui dit nouvelle connexion dit déconnexion de l'interface web... c'est ennuyeux quand un scalp est en cours :o