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 (12.98 Kio) Vu 1725 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 (44.1 Kio) Vu 1718 fois
si quelqu'un voit directement mon erreur , qu'il n'hésites pas à me le dire
