There are largely 2 types of backtesters, an event-based backtester, and a vectorised backtester. Events-based are really complicated but, in exchange, they can get you the highest fidelity in terms of fills and transaction costs. On the other hand, vectorised backtesters are really simple and thus tend to make a lot of "loose" assumptions about fills and transaction costs.
Despite their flaws, many of the largest hedge funds in mid-frequency use variants of vectorised backtesters due to their ease of use and backtesting speed.
A vectorised backtester can process 500 tickers over 10 years in under one second. The same data in an event-driven framework takes 15-30 minutes. Here’s how to build one in Python that accounts for slippage, spreads, and costs.
Great post. Can you write about the discretionary aspects of a systematic shop? I guess something around signal generation and weighting diff signals based on market regimes if applicable
Great post as always. Vectorizing is good stuff for quick filtering, though I still fallback to other backtesting approaches once I have some promising leads. I have been vectorizing my panel building code as well and seeing significant improvements. I vote more content like this :)
Great post. Can you write about the discretionary aspects of a systematic shop? I guess something around signal generation and weighting diff signals based on market regimes if applicable
Great post as always. Vectorizing is good stuff for quick filtering, though I still fallback to other backtesting approaches once I have some promising leads. I have been vectorizing my panel building code as well and seeing significant improvements. I vote more content like this :)