Show HN: Zipline - algorithmic trading in open source Python
github.com
github.com
You're right that there is a chasm between backtesting and actual trading.
The title may be a little future thinking, we are working on adapting the event/stream-based backtesting engine to drive live trading.
Updating the description to help declare intended goals of being a wider algorithmic trading suite.
How much of an impact would factors like latency in a real world environment have on this algorithm?
https://www.quantopian.com/posts/the-hello-world-algorithm-m...
Problem is that the bigger the ticker, the more crowded and optimized your competitors already are. The spread on AAPL options/stock is razor-thin, so using IB to do any kind of arbing/volatility/market-making trades is probably not going to be idea.
The trade-off with smaller ticker is you might have less competitors and even if it's a good opportunity, hedge funds aren't interested because potential profit is less than $1mil but for a retail guy, it's a lot. But the catch is the market is thinner, so in a volatile event, you might not be able to trade out of a very bad situation quickly. So your risk is higher.
Basically anything involving HFT where you are trading for liquidity rebates or sub-penny profits doing market-making or arbitrage, latency is critical; but 1sec tick data is an eternity already, for those operations, you need co-location to the exchanges for quotes and execution, not to mention 1mil+ trading capital for sub-penny profits/share to make sense.
1 second tick data would be more useful in swing trading situations where your profit target is 5-10% in a span of a few days to a week - it matters less if your order gets executed $0.01 less or more. So latency shouldn't be an issue.
How stiff is the competition in that kind of trading?
Why not prevent this borrowing in the backtest? Quantopian's philosophy is to report the results, rather than block you from trying outrageous scenarios.
Backtests are not predictive; they are a tool to investigate the behavior of your algorithm.
(I know that's probably 0 brokers)
But to save you the time, applying regular ML to historical tick-data will only make you into a smarter market-maker. In usual trending or sideways equities, you'll make small amounts of money followed by a catastrophic loss due to catalyst events, earnings etc that wipes out months of money.
Perhaps the most important part of algo-design is not the ML, but tweaking draw-down and risk management.
Or you could just PR a new data source class for Zipline that pulls data from IB. Ah, the wonders of open source!
Though iirc Collective2 lets you test strategies for free: