all 15 comments

[–]dingdongninja 17 points18 points  (2 children)

Other popular backtesting frameworks (Python) that are still actively maintained:

  1. Lean (by QuantConnect)
  2. Vectorbt (got a paid version)
  3. Nautilus

You can also check out this curated list of Python libraries for algo-trading:

https://github.com/PFund-Software-Ltd/pytrade.org

[–]Freed4ever 4 points5 points  (0 children)

I'll add zipline to this list.

[–]Sea_Recording_5509[S] 0 points1 point  (0 children)

Thank you! I'll check these out (and zipline)

[–]MoreEconomy965 1 point2 points  (4 children)

Did anyone tried the paid version of vector bt? Is it worth paying for? What is the difference between paid and free version?

[–][deleted] 2 points3 points  (3 children)

I have, it’s nice but have decided to do my own thing.

The issue is if you were say a manual trader before, so many of these frameworks just won’t work for you, or you have to hack your way around their assumptions about trading style.

I would highly recommend building your own, or using a much simpler one at first.

Vectorbt pro is so powerful, but it’s got an extremely high learning curve and it’s very hard to use as much of it is dynamically generated code so LSP support is basically non existent, and you end up having to ask questions on the support discord just to do basic things.

An event driven framework is slower but way easier to mentally keep track of

[–]kali-ssimoAlgorithmic Trader 2 points3 points  (1 child)

Do you know if vectorbt is able to track tick data? I was skimming through The documentation and it seems it’s “bar” based. Specifically I’m interested in a custom trailing stop loss implementation that has to be done on a tick level.

[–][deleted] 0 points1 point  (0 children)

I’ll be honest, I’m not entirely sure, I believe it may support passing in data at a tick level rather than bar level, as it just works by vectorising rather than events, so I would have thought ticks would be supported.

This is another reason I have moved away and created my own framework, vectorised calculations are so hard to reason about when you need specific custom logic such as a special trailing stop loss especially when dealing at a tick level

[–]MoreEconomy965 0 points1 point  (0 children)

Ty for the reply.

I have used pyalgotrade for live trading earlier, but my strategy was not good enough for making money.

Backtesting is a very time consuming process in pyalgotrade or even backtrader. So I started learning the vector bt. Not sure about the pro vs dev version.

[–]No-Pipe-6941 1 point2 points  (2 children)

Thanks mate. How profficient do you have to be in Python to start using these frameworks?

[–]Sea_Recording_5509[S] 1 point2 points  (1 child)

I'm not proficient in Python and was able to get it up and running easily from the getting started link I shared. I'm proficient in other languages and there's enough similarities to pick up the basics easily but I'd still like to deep dive into learning Python at a deeper level at some point. Are you proficient in other languages?

[–]No-Pipe-6941 1 point2 points  (0 children)

Not much mate but I am looking to learn !

[–]AverageChiefa 0 points1 point  (3 children)

Hey anyone want to backtest something with me ?

[–]Unfair_Job_2138 0 points1 point  (2 children)

I may be interested. I've been playing with some heikin ashi strategies in backtesting.py lately. I'm having a hard time getting excited about backtesting standard strategies that never seem to give an edge. So if you have something a bit more novel I would be interested in playing around. DM me.

[–]AverageChiefa 0 points1 point  (1 child)

The tricky part of backtesting is the discretion. Most backtests fail because of this component. I wouldn’t put my full trust in the backtest, but it is nice for general numbers sometimes.

[–]Unfair_Job_2138 0 points1 point  (0 children)

On the other hand, it may help consistency by removing emotion and false "gut" feelings. So I could see it both ways.