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

    • Atomic Wallet is experiencing issues with their staking and rewards, so I would like to transfer my ATOMs to another crypto wallet. I contacted Atomic Wallet Support and they recommended Cosmostation Wallet and gave me instructions on how to do this. I followed the links they sent me, which required me to fill in my seed phrase. My ATOMs transferred to Cosmostation Wallet but were immediately transferred out. I never made that transaction. I contacted Cosmostation Wallet Support and asked them what happened. They informed me that I must have been talking to a scammer posing as support from Atomic Wallet. I contacted Atomic Wallet and they said I wasn't talking to a scammer and those links are legit. I lost my funds because my PC must be infected. Atomic Wallet wouldn't outright scam me would they?  
    • With the recent surge in "Cat Coins," a wave of playfulness and intrigue is sweeping the crypto community. KHAI, a meme token built on the Solana blockchain, is at the forefront of this movement. Fueled by a bullish community sentiment, KHAI has experienced a staggering 15.27% price increase in the past 24 hours, pushing its market cap to a noteworthy 24.4 million dollars. This impressive growth comes on top of a remarkable 94.3% price jump over the past week, significantly outperforming both the global market and other Solana-based cryptocurrencies. Could KHAI be the next big memecoin to reach unprecedented heights? Its recent listing on the Bitget exchange, accompanied by a giveaway event, certainly adds fuel to the fire. However, the question remains: will this newfound attention propel KHAI to even greater heights, or will it succumb to the volatility often associated with memecoins? Only time will tell.
    • Bitcoin halving is set for this week. Bitcoin Halving Event The cryptocurrency was hit hard over the weekend after Iran carried out a series of strikes against Israeli territory. The attack, in response to Israel’s attack on Iran’s consulate in Syria at the start of the month, saw in excess of 350 drones and missiles launched by Iran. According to the Israel Defence Force (IDF), ‘99%’ of these ‘threats’ were successfully intercepted. With the cryptocurrency sector being the only market open over the weekend, traders used the sector’s liquidity to hedge risk. Bitcoin hit a low of $60.6k as news of the impending strike filtered through, while Ethereum hit a multi-week low of $2,845. In the altcoin space, losses of 25% or more were seen, sparking multiple liquidation stories. Prices across the board are pushing higher today, but the weekend’s losses will take some time to fully recover. The weekend sell-off saw Bitcoin fall below both the 20- and 50-day simple moving averages for the first time since late January. Both of these will need to be recovered convincingly, along with a prior resistance-turned-support level at $69k, before Bitcoin can make a fresh attempt at the mid-March $73.78k all-time high. BITCOIN DAILY PRICE CHART – APRIL 15TH, 2024     Ethereum is over 3% higher today after making a multi-month low of $2,845 on Saturday. Ethereum must reclaim both the 20- and 50-day moving averages before $ 3,582 comes back into play. Above here, the April 8th/9th double high at $3,728 comes into focus. ETHEREUM DAILY PRICE CHART – APRIL 15TH, 2024   All charts via TradingView What is your view on Bitcoin and Ethereum – bullish or bearish?       Apr 15, 2024 1:30 PM +02:00 Nick Cawley, Senior Strategist DailyFX
×
×
  • Create New...
us