Hello everyone,
For the last month, Shile Wen and I, two Quantitative Developer Interns at QuantConnect, have been building trading strategies for a small in-house fund. We've spent the last several Friday afternoons working on this project and today we are excited to announce that we've deployed the fund's first two live trading strategies! In this post, we'd like to introduce ourselves, explain how users can emulate our workflow, and reveal the strategies we've deployed.
Introductions
Derek Melchin
I was first introduced to quantitative trading in the summer of 2018. Over the last two years, I've enjoyed spending my free time studying various quant finance topics and building personal projects. For the 2019-2020 school year, I accepted an executive position at the University of Lethbridge Finance Club. During my time there, I hosted several educational sessions and competed in the 2020 Rotman International Trading Competition as the algorithmic-focused team member. In the latter part of the academic year, I accepted an internship as a Quantitative Developer at QuantConnect. Now I utilize my background in software development and entrepreneurship to help the community and develop trading strategies.
Shile Wen
I was introduced to Quantitative Finance when I was browsing Quora, and came upon a post about the Medallion Fund, the legendary fund ran by Jim Simons and RenTec. I thought it was fascinating, and that’s what got me hooked. I currently attend the University of Washington, with a major in Computer Science. At UW, I partake in the Algorithmic Trading Club at my school. I hope to help the community with their issues and develop trading strategies (we have a Strategy Library for those that want to view strategies developed by interns) for the community.
Team Workflow
Shile and I both work in different countries, yet we've been able to remotely manage the InternFund together via the project collaboration feature. In short, we performed our research independently but merged our strategies together into one project after we validated their individual performance. The Algorithm Lab made deploying these strategies very simple. For an overview of the point-and-click process, check out this quick video.
InternFund Strategies
A concern some users have, and rightfully so, is that our staff may take their private strategies. Rest assured, we don't. Our terms of service and privacy policy explain this at great lengths. Shile and I don't even have access to users' private projects or the Alpha Streams algorithms. The strategies we researched and deployed for the InternFund can be found in public research papers.
The strategies we deployed are:
Algorithm
We merged the two strategies into one classic-style algorithm. A backtest of our live deployment is attached.
Future Updates
We hope to keep the community updated with the performance of the InternFund throughout the rest of the summer, so stay tuned!
Best,
Derek Melchin
JP B
@Stephen I've also answered your other question through the new message feature. I think you haven't noticed my reply yet, so just letting you know ;)
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.
Stephen Oehler
I can't upvote you enough. Thanks for answering my questions, JP :-)
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.
JP B
The parameters that need to be calibrated are the _consolidated_minutes (how often you want to trade), the MAMA_FastLimit (fast moving average) and MAMA_SlowLimit (slow moving average). These moving averages are based on cycles. One way of calibrating them is by eye: - Take a small backtesting period - Backtest the algorithm and click on the "MAMA" chart when done - Zoom in to individual days and look how the moving averages fit the data - Adjust until satisfactory You can also take a look at my other post, in which I give a demonstration of how you can detect cycles in the price series using another of Ehlers' methods. Good luck :)
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.
James Smith
Unfortunately, Ehler's moving averages though highly effective are prone to being confused.
Following Adaptive Moving Average = FAMA
MESA Adaptive moving average = MAMA
Fractal Adaptive Moving Average = FRAMA
The algorithm drawn from this paper is the MAMAFAMA.
I recently implemented the FRAMA indicator for integration into the codebase. I'm not sure how this feeds through to QC, but I guess it will be available some time or another. Is there any desire from anyone to have the MAMAFAMA algorithm pre-packaged in the same way?
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
@James Smith; Github merges are available on master within 10 minutes :) Your code is in the current code base.
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.
JP B
@Stephen I've also answered your other question through the new message feature. I think you haven't noticed my reply yet, so just letting you know ;)
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.
Stephen Oehler
I can't upvote you enough. Thanks for answering my questions, JP :-)
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.
JP B
The parameters that need to be calibrated are the _consolidated_minutes (how often you want to trade), the MAMA_FastLimit (fast moving average) and MAMA_SlowLimit (slow moving average). These moving averages are based on cycles. One way of calibrating them is by eye: - Take a small backtesting period - Backtest the algorithm and click on the "MAMA" chart when done - Zoom in to individual days and look how the moving averages fit the data - Adjust until satisfactory You can also take a look at my other post, in which I give a demonstration of how you can detect cycles in the price series using another of Ehlers' methods. Good luck :)
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.
James Smith
Unfortunately, Ehler's moving averages though highly effective are prone to being confused.
Following Adaptive Moving Average = FAMA
MESA Adaptive moving average = MAMA
Fractal Adaptive Moving Average = FRAMA
The algorithm drawn from this paper is the MAMAFAMA.
I recently implemented the FRAMA indicator for integration into the codebase. I'm not sure how this feeds through to QC, but I guess it will be available some time or another. Is there any desire from anyone to have the MAMAFAMA algorithm pre-packaged in the same way?
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
@James Smith; Github merges are available on master within 10 minutes :) Your code is in the current code base.
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.
JP B
@Stephen I've also answered your other question through the new message feature. I think you haven't noticed my reply yet, so just letting you know ;)
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.
Stephen Oehler
I can't upvote you enough. Thanks for answering my questions, JP :-)
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.
JP B
The parameters that need to be calibrated are the _consolidated_minutes (how often you want to trade), the MAMA_FastLimit (fast moving average) and MAMA_SlowLimit (slow moving average). These moving averages are based on cycles. One way of calibrating them is by eye: - Take a small backtesting period - Backtest the algorithm and click on the "MAMA" chart when done - Zoom in to individual days and look how the moving averages fit the data - Adjust until satisfactory You can also take a look at my other post, in which I give a demonstration of how you can detect cycles in the price series using another of Ehlers' methods. Good luck :)
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.
James Smith
Unfortunately, Ehler's moving averages though highly effective are prone to being confused.
Following Adaptive Moving Average = FAMA
MESA Adaptive moving average = MAMA
Fractal Adaptive Moving Average = FRAMA
The algorithm drawn from this paper is the MAMAFAMA.
I recently implemented the FRAMA indicator for integration into the codebase. I'm not sure how this feeds through to QC, but I guess it will be available some time or another. Is there any desire from anyone to have the MAMAFAMA algorithm pre-packaged in the same way?
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
@James Smith; Github merges are available on master within 10 minutes :) Your code is in the current code base.
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!