Jump to content
  • 0

Incomplete response from the API


Tomegnon

Question

Hi

I am receiving only incomplete information from my API request. I use VBA and the request is based on the sample. I only get the first market of the watchlist and only few fields such as "expiry" and "epic", but no "bid" or "ask" for instance. If anyone has an idea?

Thanks

Public Function watchlistMarkets(watchlistIdentifier As String) As Collection
 

   Call oXMLHTTP.Open("GET", IG_API_HOST + "/watchlists/" + watchlistIdentifier, False)
    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.send
    If oXMLHTTP.Status = 200 Then
        Dim data As Dictionary
        Set data = JSON.parse(oXMLHTTP.responseText)
        Set watchlistMarkets = data.Item("markets")
    Else
        Set watchlistMarkets = Nothing
    End If
          

End Function

 

Link to comment

8 answers to this question

Recommended Posts

  • 0

Hi I am getting values from the service

image.thumb.png.4d36d60113b16d8be6e3066ce61cddba.png

I wrote a bit of a test in c# at

https://github.com/oneangrytrader/brokerapiclients/blob/master/IG.Csharp.Api.Client/IG.Csharp.Api.Client.Test/WatchListTest.cs

The only difference that I can see is that I pass the endpoint version within the http call as well.

https://github.com/oneangrytrader/brokerapiclients/blob/master/IG.Csharp.Api.Client/IG.Csharp.Api.Client/Rest/IgRestApiClient.cs

image.png.951e625c999774057720625cfceda6ae.png

  • Sad 1
Link to comment
  • 0

Hi, thank you for your response

I've inserted the version it doesn't seem to help. The response include only the first market in the watchlist and only few fields for that market. The API Companion works fine though, I see all the data. I can't see why...

Public Function watchlistMarkets(watchlistIdentifier As String) As Collection

    Dim A_instrumentName As String
    Dim A_expiry As String
    Dim A_epic As String
    Dim A_marketStatus As String
    Dim A_lotSize As String
    Dim A_high As String
    Dim A_low As String
    Dim A_percentageChange As String
    Dim A_netChange As String
    Dim A_bid As String
    Dim A_offer As String
    Dim A_updateTime As String
    Dim A_updateTimeUTC As String
    Dim A_delayTime As String
    Dim A_streamingPricesAvailable As String
    Dim A_scalingFactor As String
    
    Call oXMLHTTP.Open("GET", IG_API_HOST + "/watchlists/" + watchlistIdentifier, False)
    Call oXMLHTTP.SetRequestHeader("X-SECURITY-TOKEN", m_accountToken)
    Call oXMLHTTP.SetRequestHeader("CST", m_clientToken)
    Call oXMLHTTP.SetRequestHeader("Version", "1")
    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.send
    If oXMLHTTP.Status = 200 Then
        Dim data As Dictionary
        Dim market As Dictionary
        Set data = JSON.parse(oXMLHTTP.responseText)
        Set watchlistMarkets = data.Item("markets")
        For Each market In watchlistMarkets
            A_instrumentName = market.Item("instrumentName")
            A_expiry = market.Item("expiry")
            A_epic = market.Item("epic")
            A_marketStatus = market.Item("marketStatus")
            A_lotSize = market.Item("lotSize")
            A_high = market.Item("high")
            A_low = market.Item("low")
            A_percentageChange = market.Item("percentageChange")
            A_netChange = market.Item("netChange")
            A_bid = market.Item("bid")
            A_offer = market.Item("offer")
            A_updateTime = market.Item("updateTime")
            A_updateTimeUTC = market.Item("updateTimeUTC")
            A_delayTime = market.Item("delayTime")
            A_streamingPricesAvailable = market.Item("streamingPricesAvailable")
            A_scalingFactor = market.Item("scalingFactor")
        Next
    Else
        Set watchlistMarkets = Nothing
    End If
        
    Exit Function

End Function

        
    Exit Function

End Function

 

API.thumb.jpg.0105708196e3c10a60f7c432e5c6e3c3.jpg

 

Link to comment
  • 0
52 minutes ago, Tomegnon said:

Ok you're right. The response is complete. It must come to the way I extract the info into my variables then. I used the same as the sample but somehow it is not working property.

API.jpg.c802702a3beb0e9bcef97902a8939b64.jpg

yes, that is why I asked the question, to get rid of one step.

You can tell now that your request and response are correct, so it is down to the way you are parsing the JSON object locally. I use Newtonsoft to parse JSON into objects in C# and it seems that it is working for Visual Basic as well.

https://stackoverflow.com/questions/20079177/deserializing-json-in-visual-basic/20080586

I can't thank enough to the author of that library, it made my development way easier.

 

  • Sad 1
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • image.png

  • Posts

    • Recently, U.S. Senator Bill Hagerty from Tennessee spoke at the Bitcoin conference, stating his efforts to push for Bitcoin-supportive legislation to promote freedom and opportunity. This year, cryptocurrency has become a key battleground in the election campaigns. It remains to be seen whether future policies on cryptocurrency will improve.
    • The digital landscape is undergoing a profound transformation as attention, once a freely given commodity, is increasingly recognized as a valuable asset. Layer3 is at the forefront of this revolution, pioneering a new economy where attention can be owned, traded, and monetized   This innovative approach empowers individuals to monetize their engagement, providing unprecedented control over personal data. Simultaneously, advertisers benefit from transparent metrics that optimize campaign performance. Content creators are presented with diverse revenue avenues beyond traditional advertising, while the overall ecosystem experiences a more equitable distribution of value.   The implications of Layer3 extend across various sectors. Social media platforms, for instance, can leverage this technology to revolutionize user engagement and monetization strategies. Tokenomics play a crucial role in driving Layer3's economy, incentivizing participation and rewarding value creation. While challenges such as data privacy and market volatility exist, the potential benefits of Layer3 are immense   Anticipation is building as its native token $L3 is on Bitget Pre-market as users await its listing on the exchange. This milestone is expected to significantly increase the token's visibility and accessibility, potentially driving substantial growth and attracting new investors. As the countdown begins, the crypto community watches with keen interest, eager to see how Layer3 will perform in this new chapter.
    • I've been exploring the world of play-to-earn gaming recently, looking for something that's not just about endless grinding but actually offers a fun and rewarding experience. OGC really stood out to me because it combines gaming with a sense of community in a unique way. OGC isn't just a game; it's a platform where you can play, earn, and even help shape its future. You're not just a player; you're part of a community with a voice. The idea of earning crypto while playing games is exciting, but what makes OGC special is its focus on community involvement. Your feedback can directly influence the development of the game, which is a big deal. I've also heard that the OGC token is available for pre-market trading on Bitget. While I'm still getting to know the platform and its features, it's definitely something to keep an eye on. Has anyone else tried OGC? What has your experience been like? I'd love to hear your thoughts and any tips you might have.
×
×
  • Create New...
us