Quote from braincell:
I'm sure some of you have encountered this problem when testing daily bars.
For example MSFT goes down to a value of around 0.01 per share by 1986 if you account all of the splits. Then the backtester gets confused since it's max tick value is 0.01, so it can only place orders at 0.00 or 0.02 for example. In reality, the price was around $20, and there would be no problems placing orders at 0.01 intervals (or 1/8ths) in reality. This means that the backtester can (in the case of MSFT in 1986) only place orders at +/- 100% of the stock price. That won't work.
The only realistic option I see is having the backtester detect stock splits via a separate database and know how to respond to it.
If we keep increasing future values (and not past like now) from the splits (ie MSFT would be around $8000 per share now), we get a different problem as the spread and everything else would have to be artificially inflated or something. It's not workable.
What are your experiences when working with daily data that goes that far back?
Does anyone maybe convert the stock price to real dollar purchasing power or commodity index to smooth it out? What tricks could I use, short of forcing the backtester to detect the splits and react as it would in reality (which may be a lot of work)?
Note: I have coded my own backtester.
Why don't you use data adjusted for dividends and splits?