Absolute vs. percentage price change in backtesting | Traders Hideout

futures.io - futures trading strategies, market news, trading charts and platforms

Traders Hideout

Discuss day trading practices and futures trading strategies on this forum for all markets. This forum is also for discussing and reviews for brokers, data feeds, and commercial or third party add-ons


Absolute vs. percentage price change in backtesting

  #6 (permalink)

charlotte nc
Trading Experience: Master
Platform: ninjatrader
Broker/Data: NinjaTrader
Favorite Futures: Emini (ES, YM, NQ, ect.)
Posts: 391 since Jan 2015
Thanks: 71 given, 969 received

Hi Thatsbooo,

To your questions:

1. Historical data at this level of detail can be considered very accurate. Where you might find flaws with data would be extremely granular level 2 events, and price level events where you may have thousands of data points in just a few seconds. If we are taking about using a minute, or hour time series just get H,L,O,C type of data, then you will have no issues with accuracy.
2. I think your second question concerns building an unabridged linear data set with no gaps. This is fairly easy to do as well. The key is that if there are overlapping contracts you just need to pick the one that is relevant to your use case. Some people arbitrage when there are two concurrent futures contract for the same instrument for example last month we have a few days where both the ES 03-18 and the ES 06-18 were actively traded. So if you pick a random da in March you could have data for either contract (3-18 or 6-18) available. There are two popular ways to construct data sets that run through multiple contracts: (A: As soon as the new contract is available to trade simply switch. B: Only once the volume on the new contract > the volume on the old contract switch). This just comes down to your preference.

3. To your specific questions on the back-adjusted contract: I suppose there can be variations with different data feeds, trading software, etc. But in general I see no reason why connecting 2 contracts together would produce an anomaly if done correctly. The easiest use case will be to switch contracts on the first day available. So in your analysis you would have one day on the old contract and one day on the new contract back to back. The first data point on the open of the new contract connected to the last data point from the old contract might have a large gap that inflates any real move that ever occurred because you are switching contracts. For rollover days I would just omit these from your analysis. Depending on your instrument this only occurs 1x per quarter or 1x per month. Don't make your work ahead more complex than it needs to be, just eliminate these on your first pass. Focus on the only 95% of the days that are easy to analyze and try to determine if you have a viable bet first.

In case you can't tell, I am assuming that you are downloading your data and working manually in excel. I know there are charting tools that can attempt to tie things together but since you will need to get this data in a more granular format for your analysis I am talking more to the technical aspects of building an unabridged data set with downloaded data.

Hope this helps!


Thatsbooo View Post
Hi iantg

Thanks for your reply!

What I have to know, is how reliable are tests with price changes on history data.

Maybe I have to specify my question:

Lets say, on the 9th of february 2017 the price closed 2% or respectively 10 ticks above the previous Day High. (on the single contract)

So, on back-adjusted continuous contracts where the contracts are merged together to remove the roll over gap, did the price also raise up 2% or 10 ticks on 9th of february 2017 in comparison to the day before?

I hope my question is now clearer

In the analytical world there is no such thing as art, there is only the science you know and the science you don't know. Characterizing the science you don't know as "art" is a fools game.
Visit my futures io Trade Journal Reply With Quote
The following user says Thank You to iantg for this post: