Accessing historical data & histogram

Okay, as a basic example, I’m sending the follow message to access “@NQ” data (continuous):

            symbol: "@NQ",
            chartDescription: {
              withHistogram: true,
              elementSize: 5,
              elementSizeUnit: "UnderlyingUnits",
              underlyingType: "MinuteBar",
            },
            timeRange: {
              asMuchAsElements: 300,
              //closestTimestamp: "2021-04-04T19:45:00.000Z", // Enable this to use historical
            },

This allows me to access 5m bars on the “@NQ” with histograms intact. To go back further, I enable

closestTimestamp

and I am able to go back ~2 months, BUT, if I keep the following enabled

withHistogram: true

It just returns, which I presume means no data:

a[{“s”:200,“i”:2,“d”:{“mode”:“RealTime”,“historicalId”:743368,“realtimeId”:743368}}]
a[{“e”:“chart”,“d”:{“charts”:[{“id”:743368,“eoh”:true}]}}]

When I disable the histogram, I am able to access 5m bars back 2 months. When I then try to go back 3 or 4 months by adjusting closestTimestamp, it doesn’t seem to work.

I think I’ve read the “@NQ” goes back to 2017, but is there some other way I should be accessing this historical market data (5m bars) as well as associated histograms?

Thanks for your help and I appreciate your clarification! Great API nonetheless

You can get more historical data by changing underlyingType from "MinuteBar" to "DailyBar". You can only get about 2 months of data using minute bars but you can get a great deal of historical data (back to 2015 using @NQ) if you look at "DailyBar". Try using this data for your chart:

{
    "symbol": "@NQ",
    "chartDescription": {
        "underlyingType": "DailyBar",
        "elementSize": 1,
        "elementSizeUnit": 'UnderlyingUnits',
    },
    "timeRange": {
        "closestTimestamp": "2021-06-10T19:45:00.000Z",
        "asFarAsTimeStamp": "2017-12-01T19:45:00.000Z"
    }            
}

i assume theres no available tick-by-tick data, right? I know that’s definitely a long shot but figured I’d ask. thanks!

You can request tick data as well using a websocket for market data. Check this part of the API docs out:
https://api.tradovate.com/#section/Request-Reference/Cancel-Chart

1 Like

@Alexander

I’m able to access live tick data, but is there a way to access historical? I vaguely remember reading somewhere we should be able to access 1 year of tick data?

Otherwise I need to record the data for a while before I can use this model I’m building.

Hello @Boomerang,

You can get up to 1 year of historical tick data if you have the Extended Data addon (currently $9.95/month). With no extended data subscription, you’ll get about two months of historical tick data.

@Alexander – is historical DOM data available as well?

@Alexander
Can I access more than 1-2months of 1min intraday data (like 1-2 years), if I obtain the “Extended Data addon” or is the max historical data available for download via API for 1min data, set to about 1-2months?
I just figured there has to be a way to get access more OHLC intraday 1 minute data than 1-2months worth, especially with continuous contracts.

@Benjamin_Parrish To an extent, yes. If you use Market Replay you can analyze historical DOM data for that replay session. @biggy8133, see my above comment. You can purchase the extended tick data add-on allowing you to access a year of historical data.

Thanks for the update @Alexander. I read the above comment you posted but it did not quite answer my question. My specific question relates to 1min and 30 second OHLC data. I need to get a hold of 1+ years of it. I do not need tick data. Right now when I create an API request for 1min data, it only sends me back about 1-2months of data(around 29k data points).
I spoke with customer rep and they told me that when they pull up the continuous contract on the web version of Tradovate, that they can see much more than 1-2 months of 1minute data on the chart, yet when I pull the 1min data from API, I am still limited to 29k data points. Not sure why this is happening…?

Therefore, my question is,
what exactly do I need to do in order to get 1+ years of 1minute data through the API?

Do I need to order the extended data add on in order to get 1+ years of 1min and 30 second data for products such as NQ and ES?

or

Has the API not been updated yet to send 1+ year of data for the 1minute timeframe?

Please advise on this. @Alexander @BWeis

For minute-based charts, you actually shouldn’t need to purchase the extended data - only for raw tick data. Can you please share your request parameters that you are using currently with the getChart endpoint?

Hey @Alexander,

I am working on the same project with @biggy8133.
So the end point is taken from the API example:
“wss://md.tradovateapi.com/v1/websocket/md/getChart”

And the request params:

const body = {

symbol: "@NQ",

chartDescription: {

  underlyingType: "MinuteBar",

  elementSize: "UnderlyingUnits",

  elementSizeUnit: 1,

  withHistogram: false,

},

timeRange:

 {
        asMuchAsElements: 1000000,

 }

};

Is it possible it happens because of the Demo environment?

Also, I am using the real time chart subscription example, is there a way to get only historical chart data?

Hello @Alexander ,
@Csaba_Csaba has posted above what we have used as our request parameters to try to obtain the 1min data for 1 year from API, but we have not yet been successful with obtaining more than 1-2 months of it. Could you or @BWeis please advise us on a remedy for this situation. Thanks.

Hello @biggy8133, @Csaba_Csaba,

We do have limits on the amount of data we can send in one response, so to get all of that data you will likely need to composite multiple requests’ responses. You could ask for each month by using the asFarAsTimestamp field for the start date, and closestTimestamp for the end date. If you create a list of timestamps you could probably make the requests in an iterative fashion to minimize the code volume impact that many requests might have.

@Alexander
Is there a way to find the first date of the dataset?

For most products, our data goes back to January 1st 2017. Some contracts have been introduced since that date of course, these will obviously not start at January 1st 2017, but on the day that contract was introduced. If you’re dealing with NQ though, you should be able to get data back that far.

1 Like