5 ms·
"And, in fact, every single one of our simulated trades was profitable, even while the stock overall was going up and down." This is a huge red flag with respe
by minimax 14y ago
"And, in fact, every single one of our simulated trades was profitable, even while the stock overall was going up and down."
This is a huge red flag with respect to the simulation results. You show some trades like this one
> 2013-03-05 6:41,2013-03-05 7:15,14.47,14.48,LONG,5192,75145.75,52.85,100237.47
where you enter the trade and exit a penny higher. It sounds like you're just looking at the trade print and assuming you can execute at that price with a market order (or marketable limit order). Consider a stock at 14.47 bid x 14.48 ask. If I cross the spread to sell at 14.47 and then someone else crosses the spread to buy at 14.48, you will see two trades at the two different prices, without the prices on the inside having changed, this is why the midpoint between bid and ask is considered a more useful value than the last trade price.
With the system you propose, you are a price taker. You are crossing the spread with both your entering and exiting trades. Most of the trades you show are for around 5000 shares. Assuming the spread is $0.01, you are going to spend $100 just to get in and out of the position.
I don't know what kind of data Google offers about the intraday state of the order book, but I think you'll need to incorporate it into your backtesting in order to get a better picture about the profitability of your strategy.
- henning 14y agoThanks for this. I hadn't looked at that carefully enough and need to think more about it.
- fawce 14y agoIf you are up for porting Bateman to python, over at https://www.quantopian.com https://www.quantopian.com we let you backtest with high quality intraday data for free. You can also reference our opensource backtesting engine, http://zipline.io http://zipline.io, to see how we handled modeling slippage and order simulation.