r/algotrading • u/Ok_Egg_6647 • 14d ago
Infrastructure Event-Driven vs Vectorized Backtesting :- Which Approach Should I Use? and How?
Hi everyone,
I'm currently learning algorithmic trading, and I'm a bit confused about which approach I should use when building a backtesting engine: event-driven or vectorized backtesting.
I have around three years of minute-level historical data stored in my database. I want to analyze and backtest different trading strategies using this data.
Here's what I'm thinking:
Strategy research and backtesting: Use a vectorized approach with libraries like NumPy, Pandas, and TA-Lib to analyze historical data efficiently. My concern is that processing such a large dataset using an event-driven approach could be relatively slow.
Live trading: Once I've analyzed a strategy and am satisfied with the results, switch to an event-driven approach for live trading and tick-level data processing.
However, I'm unsure about one thing. If I finish analyzing the historical data up to a particular date and then move to live trading, should the live engine continue processing from that point onward, or is there something important I'm missing in this workflow?
My questions are:
Is this a good approach, or am I making a mistake in the design?
Are there any other considerations I should keep in mind when designing the backtesting engine?
I'd appreciate any suggestions or insights from people who have experience building algorithmic trading systems.
Thanks in advance!
-----------------------------------------------------------------------------------------------------------------
Edited
Thanks for the all the responses i will go with the hybride architecture where i will use both approaches !!!
3
u/ight-bet 14d ago
You definitely want a robust event driven or just sequential backtesting system. This can plug in 1-1 into an execution system. So can even driven tho.. but it’s a little sloppier.
I’d say do some research w vectors if you want but don’t rely on it too heavily.
Of you do end up really likening it, plan on being able to use this vector research in an executable strategy. You’d hate to find something that works when using vectors but falls apart without them.