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: Tout sélectionner
    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: Tout sélectionner
    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: Tout sélectionner
    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



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""


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: Tout sélectionner
    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: Tout sélectionner
Call oXMLHTTP.SetRequestHeader("version", "2")


attention également qu'il faut modifier l'adresse d'ouverture des envois pour les working-order :

Code: Tout sélectionner
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: Tout sélectionner
   
"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 Jan 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: Tout sélectionner
'
' 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 Jan 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 Jan 2016 22:17

Ça a peu de chance de marcher avec open office

Re: Utilisation Excel avec API IG

par clodreb » 26 Jan 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 Jan 2016 08:04

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

Re: Utilisation Excel avec API IG

par libertarian » 19 Fév 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év 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

Articles en relation
Utilisation des API IG avec C#
par Mister Hyde » 04 Juin 2015 07:36 (24 Réponses)
L3 : Votre utilisation ?
par falex » 09 Sep 2015 16:38 (35 Réponses)
API IG : Utilisation de CURL
par Tartempion » 14 Sep 2016 16:00 (7 Réponses)
Utilisation des fichiers générés par TakaPeek.
par schneiderj » 27 Oct 2018 14:18 (8 Réponses)
Récupérer les cours des marchés IG sous Excel
par LPhilippe » 22 Aoû 2015 15:25 (9 Réponses)
trading sur options ig avec api ?
par Benoist Rousseau » 28 Mar 2017 16:24 (4 Réponses)
API IG : problème avec les working order ?
par clodreb » 01 Fév 2016 09:09 (11 Réponses)
ordres passés en double avec la L3
par falex » 08 Avr 2016 18:43 (5 Réponses)
Monotrade : encore une application de trading avec les API
Fichier(s) joint(s) par Benoist Rousseau » 14 Aoû 2015 04:28 (67 Réponses)
Cours en temps réel sur le forum avec API iG ?
Fichier(s) joint(s) par jized » 26 Aoû 2015 15:56 (96 Réponses)

ProRealTime

Alors partagez-le 5 fois c'est bon pour la santé