Downloading ES futures data for export

Hi all,

I’m trying to download ES futures data from 2010 on the daily TF to export to build strategies on SQX. However, when I open the text file it only shows 140 records. I already selected the global merge option. NT doesn’t have a continous contract of ES. Any ideas as to how to download all the data in a single file? Thank you

The merge setting controls contract rollovers during a download. It does not guarantee that your provider supplies daily history back to 2010. Export writes data already stored in NinjaTrader, so 140 rows alone do not show whether the gap is in the download, stored history or export selection.

First check the earliest and latest Day/Last records under Historical Data for the ES instrument you downloaded. Then compare those dates with the export’s start/end dates. If the stored history itself is short, confirm your provider’s available daily-history range before downloading it with MergeBackAdjusted or MergeNonBackAdjusted.

Keep a backup of existing history first: the download guide warns that requesting dates older than the provider supports can remove stored data for those dates.

Official guides:

Which data provider and exact ES contract are you using, and what are the first/last dates in the exported file? That will distinguish missing source history from a selection problem before choosing a single-file workaround.

Hi! thank you for your reply. I’m using the NT data provider. I’ve followed the instructions in the links provided. I’ve selected and downloaded ES Sep 26, Data from 3/12/2010 to present. Daily. Last. The global merge option has been selected prior to doing this. Then I used the same settings for the export and nothing. What could I be doing wrong?

Thanks. Let’s check one stored day first. Open Tools > Historical Data > Edit, then Historical > ES 09-26 > Last > Day. Select a date and look for a price row.

If a row exists, export that same instrument with Day/Last and both date fields set to that date, using a new filename. If that works, the export path works; the remaining issue is which history was stored. If there is no row, the download did not store data there. If a row exists but the one-day export is empty, check the Control Center Log for an error.

Do you see a Day/Last row there, and what date is it on?

Hi,

Yes, it showed that exact same row. So how can I do this to export data from 2010 to present in one file?

Thank you

Yes, one text file is possible if that whole history is stored. In Tools > Historical Data > Export, choose ES 09-26, Day, Last, start 2010-03-12 and today as end; click Export and save a new .txt. A single price row does not establish coverage back to 2010. What’s the earliest stored Day/Last date?

The earliest is 20260608. That’s the problem I’ve been having. The merge option is on.

Are you able to download the data from 2010 to present in one file?

I haven’t downloaded that full range, so I can’t give you a verified 2010-present file. Your stored Day/Last history starts on 8 June 2026. Export can only include stored data; merge doesn’t create missing history.

The next step is to check whether your feed provides older ES contracts. If it does, download those contracts before exporting. If it doesn’t, you’ll need a historical source covering the missing years, then import its data. NinjaTrader’s download guide explains the provider limit.

Do you have access to another source of ES daily history?

Hi,

I do have other contracts all the way back to 2010. I can also see all the chart data from 2010 to the present. Does that have anything to do with it? Or is it something else?

Yes. Seeing 2010 on the chart changes the picture. It can join older contracts, while export selects one contract. I shouldn’t have treated ES 09-26’s start date as the start of all your history.

Export an old contract with Day/Last first. For one SQX file, the contracts then need joining at rollover dates, with matching price adjustments.

Merge guide. Does that old-contract export contain its dates?

Yes it does contain the dates. I’m somewhat confused with the process. I’m not sure I fully understand. I see data all the way back to 2010 on the chart, so my understanding is that the data is downloaded and merged. An that by exporting the Sept 26 contract with the start date on 3/12/10 it should download all the data. However it is not happening.

I’m also getting that i need to download each contract from 2010 from present in order to get the data. But I’m not entirely sure.

Have you been able to merge the data in a single file? If so, how did you do it?

Thank you

I haven’t made a verified 2010-present ES file. My earlier instruction to export everything from ES 09-26 was incomplete.

The chart stitches older expiries together. Exporting ES 09-26 still exports that contract’s stored records.

Since your old-contract export contains old dates, don’t download everything again first. Export the stored Day/Last files for each expiry. For one file, keep each contract’s rows only until its rollover date, then switch to the next. To match a back-adjusted chart, apply the same rollover offsets to older prices. Simply combining all rows creates overlaps.

Paste the first and last five lines from two adjacent contract exports here, with their contract names and merge setting. I can check that small example before you repeat the whole range.

NinjaTrader’s merge guide.

So what your saying is that i need to do this manually one by one?

Yes, each expiry needs a separate export in that dialog. You don’t need to join the rows by hand.

A script can combine the files using the rollover dates and price adjustments. Start with two adjacent contracts. Paste a few rows from both here so I can show how they fit together.

20260312;6817.5;6819.75;6721.75;6727.25;95788
20260313;6735.5;6787.25;6674.75;6685.75;202147
20260316;6659.75;6784.75;6656;6755.5;1055286
20260317;6751.75;6808.5;6715.75;6773.25;1084942
20260318;6774;6814;6654.5;6677;1395185

20260609;7412.75;7491;7247.25;7392.75;2367506
20260610;7380;7404.75;7256;7278.5;1709626
20260611;7259.25;7420;7232.25;7396;1816678
20260612;7397.5;7461.75;7366.5;7435;1184128
20260615;7480;7584.5;7480;7561.25;579431

20260608;7429.75;7539;7416.75;7477.5;14809
20260609;7473.75;7553.5;7307.75;7454.25;43127
20260610;7444.25;7466.25;7315.75;7338.75;68723
20260611;7320;7481.75;7292.25;7458.5;207251
20260612;7459.25;7525;7429;7497.5;390962

20260914;7609.25;7652;7593.75;7625;737362
20260915;7631;7633.25;7576.75;7589.25;258019
20260916;7596.5;7632;7509.25;7556.5;158661
20260917;7557.5;7654.5;7551.5;7640;103497
20260918;7637;7670.25;7625.25;7657.35;7743

Thanks. June 9–12 overlap. On June 12, the closes are 7435 and 7497.5, a 62.5-point gap. Combining both files would double those dates. A join must choose one contract per date; matching a back-adjusted chart also needs its rollover offset. What are the two contract filenames and your merge setting?

140 rows is roughly the life of one ES contract on a daily chart, which points to the export rather than your provider. The Historical Data export writes the records stored for the single contract month you pick; the merge policy is applied when bars are built for a chart or a strategy, not when stored data is exported. One way around it: open a daily ES ##-## chart (merge back-adjusted or not, your choice), load from 2010, and dump the bars with a tiny indicator that writes Time[0], Open[0], High[0], Low[0], Close[0], Volume[0] to a CSV in OnBarUpdate. NinjaTrader’s StreamWriter sample shows the file handling.

For bobsi’s chart-export route, first export June 9–12 only. Write one row per completed daily bar to a new file, using decimal points. Compare all four rows with the chart Data Box under the same merge policy before extending to 2010. Your June 12 samples have different closes. Should SQX receive adjusted chart prices or original contract prices?