L'API IG est superbe, mais des exemples facilitent vraiment sa compréhension, ce sujet est là justement pour donner ces exemples.
La première étape est de créer une clé API de préférence avec un compte démo, via votre compte IG, chercher dans les menus !
Les commandes suivantes vont être passé via la commande curl, déjà présente sur les systèmes linux, téléchargeable sous windows, mais il faudra surement changer la façon d'enregistrer les variables, ou sinon, faut installer cygwin mais c'est pas à la portée du premier venu.
1/ Première étape, se connecter à son compte
Attention, ne pas faire avec un compte réel à partir d'un serveur mutualisé, l'administrateur/root pourrait retrouver la liste des commandes lancées.
NB: L'autre session éventuellement ouverte du compte seront fermé
Code : #
# IG_HOST=api.ig.com
ou
# IG_HOST=demo-api.ig.com
# IG_LOGIN=votreLoginIG
# IG_PASSWORD=leMotdePasseDeVotreCompteIG
# IG_API_KEY=laCléAPIgenereViaLInterfacedIG
# DATA="{\"identifier\":\"$IG_LOGIN\",\"password\":\"$IG_PASSWORD\"}"
# curl -v --data "$DATA" "https://$IG_HOST/gateway/deal/session" -H "X-IG-API-KEY: $IG_API_KEY" -H "Content-type: application/json; charset=UTF-8"
Code : #
# XST=leTexteRetournéParLEnteteX-SECURITY-TOKEN
# CST=leTexteRetournéParLEnteteCST
Code : #
# LSEP=LeLightstreamerEndpoint
NB: Je n'ai pas encore retesté ci-dessous, je le met déjà pour les impatients
2/ On ouvre une session de streaming Lightstreamer
Code : #
# DATA="LS_user=$IG_LOGIN&LS_password=CST-$CST|XST-$XST&LS_content_length=20000000"
# curl --data "$DATA" "$LSEP/lightstreamer/create_session.txt"
3/ On dit à lightstreamer que l'on veut les cours du DAX et du CAC
On regarde la sortie affiché par lightstreamer et on note :
Code : #
# LS_SessionID=LaSessionIDPresenteDansLeDebutDeLaSortieDuStream
# LS_ControlAddress=LaControlAddressPresenteDansLeDebutDeLaSortieDuStream
Je veux les cours du DAX dans la table 1 :
Code : #
# LS_table=1
# IG_indice_code=CHART%3AIX.D.DAX.IMF.IP%3ATICK
# DATA="LS_session=$LS_SessionID&LS_table=$LS_table&LS_op=add&LS_mode=DISTINCT&LS_id=$IG_indice_code&LS_schema=UTM%20BID%20OFR
# curl --data "$DATA" "https://$LS_ControlAddress/lightstreamer/control.txt"
Maintenant le CAC
Code : #
# LS_table=2
# IG_indice_code=CHART%3AIX.D.CAC.IDF.IP%3ATICK
# DATA="LS_session=$LS_SessionID&LS_table=$LS_table&LS_op=add&LS_mode=DISTINCT&LS_id=$IG_indice_code&LS_schema=UTM%20BID%20OFR
# curl --data "$DATA" "https://$LS_ControlAddress/lightstreamer/control.txt"
Je ne veux plus les cours du DAX :
Code : #
# LS_table=1
# DATA=LS_session=$LS_SessionID&LS_table=$LS_table&LS_op=delete
# curl --data "$DATA" "https://$LS_ControlAddress/lightstreamer/control.txt"