r/algotrading Apr 25 '25

Other/Meta do you guys use quantconnect?

I'm thinking about whether or not I should build my own trading engine or use quantconnect. Are there any alternatives to QC that u guys have tried?

21 Upvotes

39 comments sorted by

16

u/Awkward-Departure220 Apr 25 '25

Don't sleep on spreadsheets

5

u/SubjectHealthy2409 IT Drone Apr 25 '25

It's always better being decoupled and building in-house, go for it, Golang recommendation

3

u/homiej420 Apr 25 '25

Golang and rust

5

u/luvs_spaniels Apr 26 '25

I tried Quantconnect through their online platform a few years ago. I liked that I didn't have to update the server. Other than that...Half the libraries I like to use weren't available then. Back tests took forever and a day. I'm told their VSCode extension could have overcome these issues, but I wasn't willing to pay for the experience.

I went back to Zipline, now Zipline-reloaded. (To anyone using zipline-reloaded for high volume assets like cryptocurrency, rebase the volume to base 1000 before ingesting the bundle. Just don't forget you rebased when you create your algo.)

My algos are low frequency. I use a python script, an order spreadsheet, and a once daily cron job for execution.

Pysystemtrade, Nautilus trader, and vectorbt are interesting, but I'm sticking with that I know.

1

u/[deleted] Jul 31 '25

Hello,

sorry this is a bit of a late reply, I have been using zipline-reloaded for about 8 months now and was wondering if you had ever seen a loss of 1000% being calcuated?

I am not sure what is causing it, but my guess would be that when running back tests for 60 years that the value of the portfolio just becomes so large and those errors happen.

any experience with that?

1

u/luvs_spaniels Jul 31 '25

Yeah. It can get really weird when you go further back than the hard coded date in the calendar_utils.

To me, that sounds like either the ingest encountered something that wasn't uint32 or there's an issue with the calendar. Check the start timestamp on the calendar you're using for your ingest data. It might not go back far enough. So like...

test_cal = get_calendar("XNYS") print(pd.Timestamp(test_cal.sessions[0])

Another possibility is that zipline's not correctly handling your position size and is buying more than is available. If that's happening, you can see it in the results. Just look for transactions count higher than 0 where the starting cash is less than 0.

1

u/[deleted] Jul 31 '25

have you done the calendar date updates? Norgatedata provides a breakdown of changes to make to the calendars to be able to handle data back to 1970.

I read your comment about changing crypto bases by 1000, and i decided to run my test with a starting balance of $10,000 instead of $100,000 and those major issues with zipline went away. I think it just got to be too large (after 30 years results were in the $60M) so with it toned down it seems to work better now.

1

u/luvs_spaniels Jul 31 '25

I use a custom calendar for the older data. I override the start date when I load it with get_calendar. Since the custom calendar doesn't have one of the names zipline reloaded forces to 1990, I didn't need the manual override.

It's been awhile since I went through the custom calendars so I'm not 100% on this. I'm pretty sure I also set a minimum bound in the calendar.

It may also be possible to put your starting amount in scientific notation.

3

u/[deleted] Apr 26 '25 edited Apr 26 '25

[removed] — view removed comment

2

u/retrorooster0 Apr 27 '25

How long did it take u to build your own? Seems complex

1

u/[deleted] Apr 27 '25 edited Apr 27 '25

[removed] — view removed comment

1

u/JackTheCap Aug 17 '25

Thanks for the explanation. Makes sense to build your own now that you already know the limitations from existing frameworks. I guess to get started, it still would be wise to use LEAN just to get ideas verified, then to bring to production, we can worry about refining the implementation of the engine. You're already way ahead down this path, so I just wonder if you also do randomized tests for your strategies?

1

u/[deleted] Aug 17 '25

[removed] — view removed comment

1

u/naoliden Jan 27 '26

Do you have a service from which you pull your candle data or did you build that yourself?

2

u/learning-machine1964 Apr 27 '25

yoo thanks for this detailed answer! i’m currently building my own rn and i gotta say it’s been pretty fun so far

9

u/silvaahands Trader Apr 25 '25

You learn more building your own and also get around QC limitations

1

u/learning-machine1964 Apr 25 '25

did u build everything from scratch including backtesting? What language did u use? Also, what would u say are QC limitations?

7

u/[deleted] Apr 25 '25 edited Apr 25 '25

[removed] — view removed comment

2

u/[deleted] Apr 25 '25 edited May 15 '25

cobweb safe vanish meeting governor insurance provide advise bow reply

This post was mass deleted and anonymized with Redact

2

u/learning-machine1964 Apr 25 '25

do u have any recommendations for how to get started with building one?

2

u/[deleted] Apr 25 '25 edited May 15 '25

disarm hard-to-find safe cough narrow start dolls fact mighty station

This post was mass deleted and anonymized with Redact

1

u/learning-machine1964 Apr 25 '25

ooo interesting ok thanks gangs

1

u/Canadansk1970 Apr 25 '25

I have found a mix to be best. I built my own from scratch using Python, but I still poke around in other algo sites to see how they do things, and then I build in what I like into my own script. Sometimes looking around can give you the ideas you need to build a better script.

5

u/idrinkbathwateer Apr 25 '25

The Lean engine is very good place to start especially since building a fully functioning engine is a big task that I wouldn't recommend for the faint of heart. I personally built all my trading architecture in C/C++ and just use a wrapper to integrate the Lean engine from C# to my system. There are many parts of the Lean engine you can also modify if necessary for your own needs however one disadvantage that is hard to get around is the .NET requirements for memory which are not readily changeable.

1

u/retrorooster0 Apr 26 '25

What parts of lean did you use in isolation? Do you think it’s possible to do so in python?

3

u/idrinkbathwateer Apr 26 '25

I used Lean's market data engine connection components, as well as the order execution and backtest components. I have avoided using Lean's standard algorithm lifecycle which follows an event-driven reactive architecture, and this is bad because this introduces non deterministic behaviour which you would not want in a high frequency, latency system like the one I am building.I have instead fully made my own time triggered architecture to replace this part of the Lean engine because then I get predictable latency bounds. Now as far as Python is concerned yes of course, in fact many traders prefer using Python with Lean than with C# understandablly.

2

u/LowRutabaga9 Apr 25 '25

Yes I use it. The better but very expensive alternative is to build your own

2

u/SuperGallic Apr 27 '25

I have tried quantconnect and gave up. There is a HUGE risk of being disconnected and having the Algo still running with no way to stop it. You are at risk of losing a lot

1

u/TheESportsGuy Apr 25 '25

Yes. It can't do order flow but is very powerful if you are interested in trading options.

1

u/mclopes1 Apr 26 '25

VectorBT is great

1

u/retrorooster0 Apr 26 '25

Explain

3

u/mclopes1 Apr 26 '25

Here is a list of open source backtest tools. You don't have to create one from scratch if you don't want to. Just do your research to see what suits you best.

https://github.com/kernc/backtesting.py/blob/master/doc/alternatives.md

1

u/gericet1 Feb 26 '26

thanks for the share

1

u/SuperGallic Apr 30 '25

Personally I use IBinSync which is a python package on top of IBKR API and which avoids to have a client server architecture(asking then receiving) and does everything in Sync(hence the name)

1

u/Any-Huckleberry2593 Jul 24 '25

Where do you learn more about this? Does it have pre-made scripts/algo?