I initially skipped over QunatConnect when I was looking for a platform to build algos on. They offered C# as a language, and as a C# programmer by trade, I loved that, but I wasn't interesting in writing code inside the browser.
BUT, then I found LEAN and the LEAN CLI. I was blown away by the amount of work that has gone into it. and the quality of the code. That same day, I bought a monthly subscription to QC. Even if I never use it, I figured, they deserve the money just for what they have open sourced.
I'm now writing some very simple algos as I learn the QC platform. Coming from writing my own code and using Zorro for a short time, I have a few suggestions for QC. Keep in mind, I'm a new user.
Backtesting: Impressive stuff. The only thing I've found missing is charting. In Zorro, which has a rough charting interface, it was invaluable to see where your algo made a trade compared to the indicators and candlestick. It's easy to quickly find bugs in your algo or places where it needs to be tweaked. 1) There is a 4k point limit due to memory usage for the backtest chart. Perhaps a different js chart would work better. I know some can work with millions of points, such as uplot. Using a WebGL chart would be even better. 2) The highlighting that occurs when you hover on a chart makes it harder to read.
Indicators: The indicators are easy to setup and use. Really well done.
Concurrent algos: Currently you can run only one algo per brokerage account. I think this would actually be fairly easy to fix and I think it can be worked around already. Why not create a proxy algo that simply passes OnData calls to a list of algos and their OnData calls. This would allow you to have a different algo per asset, etc. Of course, you could shoot yourself in the foot, but aren't we already taking risks just by trading? ;-)
Resuming shutdown algo: It would be nice if the algos could perform their own portfolio management. What I mean by this is, upon start up, a list of owned assets could be downloaded and handled by an algo. 1) This would allow you to automate the restarting of an algo. 2) You could also perform more intricate algos could run once a month a do rebalancing, etc. 3) makes running multiple algos easier.
These are just a few suggestions and feel free to shoot them down or critique them.
Also, I'm more than happy to contribute to the open source LEAN and help in any way I can, honestly, it's the least I can do after what they have given to the community.
…Thanks…
…Michael…
Alexandre Catarino
Hi @michael-silver,
Thank you for your impressions and suggestions.
Would you mind letting me address some of the issues you have raised?
It's a little unfortunate that you skipped QuantConnect because of the writing code in the browser. Since Lean is written in C#, C# developers have always been able to code locally with their favorite browser, use the API to send the code to QuantConnect Cloud, and manage the backtests and live deployments. It's slightly trickier for Python developers because we need to attach the debugger to a second process to debug the code.
Lean-CLI is a great tool because it addresses the hard issues for Python developers and makes the life of C# developers easier. Additionally, it comes with a local GUI.
It's only possible to run one algorithm per account because QuantConnect/Lean only manages one portfolio. In order to place orders, we need to know the portfolio state for buying power calculation. Consequently, we would need to fetch information from each account and save it in different portfolios with different states/buying power.
If you are a Financial Advisor, you can manage multiple accounts with the same algorithm (see example: FinancialAdvisorDemoAlgorithm.cs).
Resuming shutdown algorithm: it's already supported. When we (re-)deploy an algorithm, it fetches the account balance, positions, and open orders. It's not supported for QuantConnect Paper Trading yet, but most of the work has been done, and we will be soon in production.
Best regards,
Alex
The material on this website is provided for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation or endorsement for any security or strategy, nor does it constitute an offer to provide investment advisory services by QuantConnect. In addition, the material offers no opinion with respect to the suitability of any security or specific investment. QuantConnect makes no guarantees as to the accuracy or completeness of the views expressed in the website. The views are subject to change, and may have become unreliable for various reasons, including changes in market conditions or economic circumstances. All investments involve risk, including loss of principal. You should consult with an investment professional before making any investment decisions.
Jared Broad
Thank you for the feedback Michael! All your suggestions are excellent and on the todo -- we even have them designed out, it's just our bandwidth to implement them is limited so we have to build things one by one. We focus on bugs and stability before features to make sure we're building on a robust foundation so it slows us down a touch.
We appreciate your financial support and offer of time. If serious for time offer there are a thousand ways to contribute to the open-source! =) We'd be happy to have your help, even if just with documentation to start.
The material on this website is provided for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation or endorsement for any security or strategy, nor does it constitute an offer to provide investment advisory services by QuantConnect. In addition, the material offers no opinion with respect to the suitability of any security or specific investment. QuantConnect makes no guarantees as to the accuracy or completeness of the views expressed in the website. The views are subject to change, and may have become unreliable for various reasons, including changes in market conditions or economic circumstances. All investments involve risk, including loss of principal. You should consult with an investment professional before making any investment decisions.
To unlock posting to the community forums please complete at least 30% of Boot Camp.
You can continue your Boot Camp training progress from the terminal. We hope to see you in the community soon!