ProRealTime
Zone de développement des applications API, des logiciels et utilitaires développés par les membres du forum

Re: Utilisation Excel avec API IG

par clodreb » 16 déc. 2015 09:02

oui, je me suis mis en mode édition par la suite pour voir le code vba et le modifier pour qu'il prenne mes identifiants.
Mais avant de passer en mode édition, j'ai simplement testé la sheet et elle ne réagit pas du tout comme il le faudrait...

pas grave, je vais reprendre le code vba et l'associer à ma propre feuille excell dans laquelle je mettrai mes propres boutons.

il fau juste que je trouve les commandes exactes pour faire des ordres OTC ...

Re: Utilisation Excel avec API IG

par clodreb » 17 déc. 2015 09:39

un truc que je ne comprends pas bien dans leur macro c'est que la fonction qui crée leur position ne tient pas du tout compte de la valeur introduite dans "ordertype"

dans leur code, il y a :
dealReference = restClient.createPosition(epic, expiry, direction, size, crncy, limit)

or, si je teste via le Companion API de leur site pour créer une position OTC, voici les champs que j'aimerais bien remplir :

Code : #

    epic = "IX.D.CAC.IMF.IP"
    expiry = "-"
    direction = "BUY"
    size = "3"
    orderType = "LIMIT"
    timeInForce = Null
    level = "4720"
    guaranteedStop = "false"
    stopLevel = Null
    stopDistance = "15"
    trailingStop = Null
    trailingStopIncrement = Null
    forceOpen = "true"
    limitLevel = Null
    limitDistance = "2"
    quoteId = Null
    currencyCode = "EUR"
cette notion de type d'ordre devrait quand même apparaître dans leur vba, non ?

edit : ok, je n'ai rien dit : c'est bien défini de manière implicite dans IGApiRestClient

Code : #

    If Trim(limit) = "" Or limit = "N/A" Then
        Call requestBodyDictionary.Add("orderType", "MARKET")
    Else
        Call requestBodyDictionary.Add("orderType", "LIMIT")
        Call requestBodyDictionary.Add("level", limit)
    End If
par contre, ça n'explique toujours pas pourquoi je n'arrive pas à envoyer des ordres OTC via cette sheet excell ....grrrrr

bon...on continue : je mets "en dur" les valeurs que je veux lors de la création de la request :

Code : #

    Call requestBodyDictionary.Add("epic", "IX.D.CAC.IMF.IP")
    Call requestBodyDictionary.Add("expiry", "-")
    Call requestBodyDictionary.Add("direction", "SELL")
    Call requestBodyDictionary.Add("size", "3")
    Call requestBodyDictionary.Add("orderType", "LIMIT")
    Call requestBodyDictionary.Add("timeInForce", Null)
    Call requestBodyDictionary.Add("level", "4780")
    Call requestBodyDictionary.Add("guaranteedStop", "FALSE")
    Call requestBodyDictionary.Add("stopLevel", Null)
    Call requestBodyDictionary.Add("stopDistance", "15")
    Call requestBodyDictionary.Add("trailingStop", Null)
    Call requestBodyDictionary.Add("trailingStopIncrement", Null)
    Call requestBodyDictionary.Add("forceOpen", "TRUE")
    Call requestBodyDictionary.Add("limitLevel", Null)
    Call requestBodyDictionary.Add("limitDistance", "2")
    Call requestBodyDictionary.Add("quoteId", Null)
    Call requestBodyDictionary.Add("currencyCode", "EUR")

et la sheet excell me renvoit ....ceci ....super explicit comme message à débugger
20151217_error_message_excell.JPG
20151217_error_message_excell.JPG (12.98 Kio) Vu 1292 fois
visiblement, ce n'est pas un champs obligatoire qui pose problème car si je mets en commentaire les champs un par un, j'ai chaque fois un message qui me dit que le champ untel ou untel ne convient pas ...par contre, le message ci-dessus....impossible de savoir que quel champs il s'agit.....allez ...on continue le débug :musique: .....

re-edit : bon, je crois que je me suis trompé de type d'ordre, il faut que je teste les "working order" pour mettre des ordres OTC par contre, via l'API conpanion , impossible d'encoder des valeurs que le système admette.

j'ai encodé ceci mais j'ai à chaque fois le message ""errorCode": "invalid.input""
20151217_working_order.JPG
20151217_working_order.JPG (44.1 Kio) Vu 1285 fois
si quelqu'un voit directement mon erreur , qu'il n'hésites pas à me le dire ;-)

Re: Utilisation Excel avec API IG

par clodreb » 18 déc. 2015 12:37

Bon alors, voici les valeurs que j'ai encodées et qui fonctionnent pour working-orders :

Code : #

    Call requestBodyDictionary.Add("epic", "IX.D.CAC.IMF.IP")
    Call requestBodyDictionary.Add("expiry", "-")
    Call requestBodyDictionary.Add("direction", "BUY")
    Call requestBodyDictionary.Add("size", "3")
    Call requestBodyDictionary.Add("level", "4000")
    Call requestBodyDictionary.Add("forceOpen", "true")
    Call requestBodyDictionary.Add("type", "LIMIT")
    Call requestBodyDictionary.Add("currencyCode", "EUR")
    Call requestBodyDictionary.Add("timeInForce", "GOOD_TILL_CANCELLED")
    Call requestBodyDictionary.Add("goodTillDate", Null)
    Call requestBodyDictionary.Add("guaranteedStop", "false")
    Call requestBodyDictionary.Add("limitDistance", "2")
     Call requestBodyDictionary.Add("stopDistance", "15")


En ce qui concerne la feuille excell, j'ai forcé les mêmes valeurs et ça n'a pas fonctionné tout de suite....il manquait une ligne dans leur définition du header : il faut ajouter la version pour que ça colle parfaitement à ce qu'il y a moyen de tester via API companion :

Code : #

Call oXMLHTTP.SetRequestHeader("version", "2")
attention également qu'il faut modifier l'adresse d'ouverture des envois pour les working-order :

Code : #

Call oXMLHTTP.Open("POST", IG_API_HOST + "/workingorders/otc", False)
rem : si vous voulez mettre une date de validité , attention qu'il y a un décalage d'une heure.

Code : #

    
"timeInForce": "GOOD_TILL_DATE",
"goodTillDate": "2016/01/11 22:25:00",
ça donnera dans votre station de trading un validité jusqu'au 11/01/2016 à 23h25
attention également de ne pas mettre d'espace à la fin du champs spécifiant l'heure

Re: Utilisation Excel avec API IG

par clodreb » 08 janv. 2016 16:02

Bon et bien les ordres de clôture partielles n'ont pas l'air de bien fonctionner via excell....grrrr...

même en mettant des valeurs en " dur" dans l'appel, il me met une erreur sur l'url utilisée ....bizarre,....je prends pourtant bien celle qui est utilisée via l'API companion et ça ne fonctionne pas .....

Si quelqu'un voit directement mon erreur, merci du renseignement :mrgreen:

Code : #

'
' Clôture partiel d'un ordre actif
'
Public Function closePartialPosition(dealId As String, direction As String, size As String) As String
    
    Call oXMLHTTP.Open("DELETE", IG_API_HOST + "/positions/otc", False)
    
    Dim requestBodyDictionary As Dictionary
    Set requestBodyDictionary = New Dictionary
    
    '''''  valeurs d'origine de l'envoi d'ordre "en live" '''''''''''''
    Call requestBodyDictionary.Add("epic", Null)
    Call requestBodyDictionary.Add("expiry", Null)
    Call requestBodyDictionary.Add("level", Null)
    Call requestBodyDictionary.Add("direction", "SELL")
    Call requestBodyDictionary.Add("size", "0.1")
    Call requestBodyDictionary.Add("orderType", "MARKET")
    Call requestBodyDictionary.Add("dealId", "DIAAAAAQQ848RA2")
    Call requestBodyDictionary.Add("timeInForce", Null)
    Call requestBodyDictionary.Add("quoteId", Null)
  
    Dim requestBodyString As Variant
    requestBodyString = JSON.toString(requestBodyDictionary)
MsgBox requestBodyString
    Call oXMLHTTP.SetRequestHeader("X-SECURITY-TOKEN", m_accountToken)
    Call oXMLHTTP.SetRequestHeader("CST", m_clientToken)
    Call oXMLHTTP.SetRequestHeader("X-IG-API-KEY", m_apiKey)
    Call oXMLHTTP.SetRequestHeader("Content-Type", "application/json; charset=utf-8")
    Call oXMLHTTP.SetRequestHeader("Accept", "application/json; charset=utf-8")
    Call oXMLHTTP.SetRequestHeader("version", "2")
    Call oXMLHTTP.SetRequestHeader("_method", "DELETE")
    Call oXMLHTTP.Send(requestBodyString)
'MsgBox requestBodyString
    Dim responseData As Dictionary
    Set responseData = JSON.parse(oXMLHTTP.responseText)
    
    If oXMLHTTP.Status = 200 Then
        closePartialPosition = responseData.Item("dealReference")
    Else
        MsgBox oXMLHTTP.responseText
        closePartialPosition = ""
    End If
        
End Function


Re: Utilisation Excel avec API IG

par raiden500 » 24 janv. 2016 14:02

Dites, quelqu'un peut il m'aider je suis vraiment vraiment debutant et pige rien :D
Bon je suis pas developpeur, dejà c'est fait.
Donc j'ai telechargé sur le site iglabs dans samples apps le fichier excel
Dezzipé et installé

Bon par contre j'ai oppenoffice
et j'ai lancé et bah rien, j'ai l'interface qu'on peut modifier sous excel
Mais et apres ?
Faut faire quoi :D ?

Peut etre faut il que j'abandonne :x

Re: Utilisation Excel avec API IG

par Benoist Rousseau » 24 janv. 2016 22:17

Ça a peu de chance de marcher avec open office

Re: Utilisation Excel avec API IG

par clodreb » 26 janv. 2016 06:54

déjà que ça ne fonctionne pas super bien avec excell et l'exemple d'ig ;-)
(il faut chipoter dans leur macro pour que ça fonctionne sur excell)

Re: Utilisation Excel avec API IG

par Benoist Rousseau » 26 janv. 2016 08:04

Ça dépend des versions d'excel :)

Re: Utilisation Excel avec API IG

par libertarian » 19 févr. 2016 16:39

bonjour
je voudrais avoir des infos sur ce projet, en fait je veux récupérer les cours de certains marchés dans une feuille excel
rien de compliqué il me faut juste le prix d'achat et le prix de vente c'est tout après ma feuille excel est déjà prête
je précise que je ne veux pas trader avec l'api excel d'ig mais je me suis dis que ce serait le moyen le plus simple d'arriver à mes fins
or je viens de télécharger et d'installer l'api et quand j'essaie de me login il y a un message d'erreur ça bloque dans la macro
un peu d'aide serait la bienvenue
merci:)

Re: Utilisation Excel avec API IG

par libertarian » 21 févr. 2016 16:59

salut!
j'ai essayé de bidouiller mais je ne suis pas assez calé en vba pour le faire fonctionner
tu avais réussi à obtenir les cours? on dirait que ig a aussi laissé de côté ce projet sur excel

Re: Utilisation Excel avec API IG

par libertarian » 21 févr. 2016 23:21

salut
je suis allé dans les paramètres régionaux de mon windows qui est réglé sur anglais (USA)
et le point y est déjà réglé comme symbole décimal
après je suis sur excel 2013-2016 donc ça doit venir de là
merci de ton aide :)

Re: Utilisation Excel avec API IG

par clodreb » 22 févr. 2016 07:46

- libertarian, tu dis que tu as un message d'erreur de la macro, tu peux nous faire un prinscreen , s'il te plait ?

ça sera plus facile pour nous de t'aider (si on le peut ;-) )

c'est au moment du login que ça bloque ou plus loin ?
ils ont défini les différents champs d'encodage via des alias en définissant des plages de rows. C'est peut-être cela qui pose problème dans la nouvelle version d'Excell (je ne sais pas y jeter un coup d'oeil car je n'ai pas cette version.)

As-tu essayé de mettre "en dur" tes identifiant dans la macro de login ?

Re: Utilisation Excel avec API IG

par libertarian » 22 févr. 2016 14:23

salut les amis
comme un ballot j'avais téléchargé la version 64 bits car mon système est 64 bits alors que mon excel est 32bits...
j'ai téléchargé la bonne version et tout roule!
merci de votre aide
j'avais envoyé un mail à ig pour de l'aide et ils m'ont envoyé un lien qui serait très utile à ceux qui auraient des difficultés aussi
je le laisse là :
h**ps://labs.ig.com/node/140

Re: Utilisation Excel avec API IG

par LPhilippe » 21 mai 2016 22:50

Bonsoir j'ai installé la bonne version (32bits) et lancé le fichier et activer les données mais rien ne fonctionne comme si la fonction macro ne s'activait pas (les cases ne sont pas actives et pourtant je n'ai pas de messages d'erreur) des suggestions ? merci.

Re: Utilisation Excel avec API IG

par LPhilippe » 22 mai 2016 13:38

Bonjour merci oui mais je pense que le problème est autre puisque ce fichier se comporte sans que les cases/cellules (ou on rentre par exemple les infos de connexion etc) ne soient actives ; Et d'autres cellules types bouton pour valider les infos ne fonctionnent pas, quand je clique dessus par exemple je peux que déplacer le bouton et non valider les infos, j'espère mettre bien exprimer sur le problème, pour ce qui est des données du marché, je verrais demain si à ce niveau quelque chose change, merci pour ta réponse et bon week end.

Re: Utilisation Excel avec API IG

par LPhilippe » 22 mai 2016 17:15

Oui pour la virgule j'ai vu les astuces des liens qui ont été donné, par contre merci pour l'info du VBA car je pense que le principal problème vient de là, comment passé du coup en mode "excécution" s'il te plait ?

Re: Utilisation Excel avec API IG

par Lysan » 29 mai 2016 09:12

Bonjour, je galère depuis 3 semaines avec l'exemple ig excel pour passer un trade avec un stop garanti. Le pire, je n'y arrive même pas avec l'api compagnion. A l'aide svp.

Re: Utilisation Excel avec API IG

par DarthTrader » 29 mai 2016 22:06

si pb connection avec api compagnon la seule solution c est de contacter ig directement

Re: Utilisation Excel avec API IG

par MrMaheo » 29 août 2016 23:52

Salut à tous,

Je suis en train de me servir de ce fichier Excel pour récupérer les cours en temps réel et les intégrer ensuite dans un autre logiciel que je maitrise mieux afin de faire des projections.

Ca marche plûtot bien pour les indices, mais ça me squize tous les cfd à risque limité basé sur une action unique...

Par exemple sur la liste par défaut "Marché populaires" je n'ai pas les lignes correspondantes à BNP, peugeot, renaud, facebook ...

Avez vous une idée d'où cela peut venir?

Merci de votre aide!

++

Re: Utilisation Excel avec API IG

par falex » 30 août 2016 07:30

Oui les marchés actions n'est pas disponible avec les API

Sujets similaires
Loiciel -> Excel (données de marché sur Excel)
par Benoist Rousseau » 13 oct. 2018 16:23 (2 Réponses)
Utilisation des API IG avec C#
par Mister Hyde » 04 juin 2015 08:36 (24 Réponses)
API IG : Utilisation de CURL
par Tartempion » 14 sept. 2016 17:00 (7 Réponses)
Utilisation de l'API d'IB pour récupérer les prix en TR
Fichier(s) joint(s) par cafeiine2023 » 26 mai 2022 15:08 (3 Réponses)
Forex : feuille Excel de suivi
par Djobydjoba » 28 juil. 2012 11:13 (1 Réponses)
Backtest et Excel
par Greg31600 » 18 avr. 2013 01:26 (4 Réponses)
Maximum Drawdown - Excel Formula
par Tulipe » 05 août 2013 21:12 (9 Réponses)
Actualisation automatique des PV sur Excel
par Aarnii » 28 avr. 2014 18:00 (5 Réponses)
Les programmes simples, Excel, c'est ici ;)
Fichier(s) joint(s) par GOLDENBOY » 14 nov. 2014 22:18 (25 Réponses)
Extraction Excel
par Benoist Rousseau » 26 nov. 2014 21:19 (4 Réponses)