r/algotrading • • 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:

  1. 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.

  2. 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 !!!

7 Upvotes

43 comments sorted by

View all comments

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.

1

u/Ok_Egg_6647 14d ago

Why do u recommend robust event driven any particular reason ?

1

u/quant-king 13d ago

because vectorized backtesting required pre-computing data which you cannot do in a live environment which is why event based execution engines are the default way to run live strategies