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
Derek Melchin
Day 1: On the Up
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.
Pi..R INVESTOR
Very cool internship project guys, thanks for sharing :)
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.
Jovad Uribe
This is amazing!
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.
Jon Quant
Nice! Good luck with guys.
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.
Derek Melchin
Week One: A Good Start
Hi everyone,
The live deployment has been profitable throughout its first week!

We researched some new strategies today but not find anything worth adding this week. Instead, we've decided to increase the allocation ratios of the two current strategies. This adjustment raises the Sharpe ratio of the backtest to 1.95 while maintaining a max drawdown <$1K. The <$1K drawdown is vital as the InternFund is only allowed a $1K drawdown.
Going forward, we are excited to research more strategies to add to our portfolio. We have a few in the pipeline, but are always looking for more. If our readers have anything they would like us to test, feel free to add suggestions to this forum thread.
See the attached backtest for the latest deployment.
Best,
Derek Melchin
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.
HughStryker
Thank you for sharing, I look forward to following this thread.
I'd be very interested to see a QC implementation of Chris Cole's Dragon portfolio, i.e. 20% allocation to equities, bonds, trending commodities, gold and active long volatility. It was created in response to the typical 60/40 split so it would be nice to see how the two strategies compare.
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.
Shile Wen
Hi Hugh,
Thank you for the suggestion, we'll keep it in mind.
Best,
Shile Wen
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.
Ernest Shaggleford
Hi Derek and Shile,
thanks for revealing your strategies that you are trading live.
On the weights used for the 60:40 algo set of tickers:
self.weight_by_ticker = {'SPY': 0.6, 'AGG': 0.4, 'VXX': 0.1}
The total weight for this set is 1.1 which is then scaled by the allocation ratio of 0.5 so it would be 55%.
But as the TLT (treasury proxy) algo allocation ratio is 50% then the total portfolio allocation with both algos could potentially be 55% + 50% = 105% during the Treasury holding period, which doesn't seem correct.
Have I missed something?
Thanks,
ES.
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.
Shile Wen
Week 2: The Hunt for the Next Strategy Addition
Hi Everyone,
This week, we’ve been researching new strategies for the InternFund. One strategy we researched is a Gap Down strategy, where we buy stocks during the day that surpass the previous day’s close if they open down 1% from the previous day’s close. However, the backtest (attached below) was not promising, so it will not make it into the InternFund. We also developed an option spread strategy, however, we deemed that the drawdown was too large, thus, this strategy will not be added either.
Here is the performance of our portfolio for this week.
Ernest Shaggleford pointed out that with our current ratios, we’d have 105% allocation during periods when we hold TLT. We confirmed that our account has access to overnight margin, which means going over 100% allocation will not affect our algorithm.
As for next week, we will implement HughStryker's suggestion and keep researching new strategies.
Best,
Shile Wen
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.
Ernest Shaggleford
Hi Shile,
re: "We confirmed that our account has access to overnight margin, which means going over 100% allocation will not affect our algorithm":
Out of curiousity, won't the cost of margin have some impact on the P&L?
Thanks,
ES.
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.
HughStryker
Thanks for the update, Shile!
Here is another strategy idea, I'm too much of a beginner to accurately describe it, but I'd say it's a L/S portfolio using institutional ownership as a factor. There's a variation which uses long/short interest instead.
BofA version
ZeroHedge variation
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.
Derek Melchin
Hi everyone,
Just a quick update: InternFund closed at a new high today!
Stay tuned for a more comprehensive update this Friday.
Best,
Derek Melchin
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.
Shile Wen
Week 3: Researching More Strategies
Hi Everyone!
This week, we researched more strategies for the InternFund. One strategy we tested this week was HughStryker’s suggestion, Chris Cole’s Dragon Portfolio. Although the drawdown is relatively low compared with other strategies, it is still too high for us, so we decided not to add it. An implementation can be seen in the attached backtest.
Derek implemented a Trailing Breakout Strategy with TSLA. It performs well throughout 2020. However, extending the backtest start date further into the past decreases the performance. For the InternFund we are specifically looking for strategies with a long track record of consistent returns.
As for the InternFund performance, we are at a new equity high! Five days ago, we entered our first TLT trade, and we have exited TLT today, for a gross profit of $76.54. Here is the graph of our equity:
Ernest Shaggleford mentioned that margin will affect our P/L, which is true, however, we have very low margin interest, and we only hold TLT for five days out of the month, so the costs are negligible. HughStryker offered another strategy of incorporating institutional ownership. Unfortunately, we do not have access to this data.
Thanks to everyone for tuning in to our weekly update, and special thanks to HughStryker for the Dragon Portfolio strategy suggestion! Stay tuned for more updates, and feel free to suggest more strategies.
Best,
Shile Wen
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.
Josh M
Interesting; cool discussion and glad to see it's working live!
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.
Tamim Fund
Shile,
The Gap Down strategy seems to be executing at "stale prices," resulting in there being no price gain or loss other than the commission, since you are comparing the current days close to the previous days close and placing a buy order after market closes, instead of comparing intraday minute or hourly price data. Could you look at that?
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.
HughStryker
Thanks for the update!
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.
Derek Melchin
Hi Ernest and Tamim Fund,
We appreciate the constructive feedback. However, the InternFund is limited to only trading equities. Thus, we cannot implement the suggestions #2 & #3 from Ernest above. As for the Dragon portfolio changes, we will take a closer look at this today.
In regards to the stale prices in the Gap Down Strategy, we will work to resolve this today as well.
Best,
Derek Melchin
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.
Derek Melchin
Week 4: Up To Three Strategies!
Hi everyone,
We are excited to announce that the InternFund generated profits for another week. Here's the latest screenshot of our live track record.
Today, we spent some time fixing the "stale price" issue with the Gap Down strategy. The issue surfaced because the universe resolution was set to daily in the original algorithm while the strategy was trading off intraday prices. Here is the backtest of the strategy after fixing the bug. Thank you Tamim Fund for reporting this issue.
This week, we also spent some time implementing the Turnaround Tuesday strategy. As can be seen from this backtest, the strategy has performed quite well over the last few years. Allocation 33% of the portfolio to the strategy generates a 58% win rate, >1 Sharpe, and a mere 1.6% drawdown. We are confident enough in these results that we've decided to deploy this strategy to live-trading within the InternFund algorithm. To incorporate the strategy, we reduced the allocation ratio of the 60/40 strategy to 30%, allowing the Turnaround Tuesday strategy to have a 20% portfolio allocation.
We found out today that the post of our latest live deployment above actually quits early because it reaches our max drawdown limit of $1000. After increasing the max drawdown limit so the backtest completes, the original max drawdown was 6.3%. With the Turnaround Tuesday strategy incorporated into the algorithm, the new combined strategy experiences a 3.8% drawdown. The Sharpe ratio is also increased from 1.64 to 1.93. We will of course only deploy the new strategy with the $1000 max drawdown limit, but a complete backtest of the InternFund algorithm (with an extended drawdown limit) is attached below.
For those readers who may have missed the discussion thread introducing our newest team member, we'd like to introduce Jovad to this thread. He implemented an interesting strategy this week while researching for the InternFund. It's a Fibonacci Option Straddle strategy that sets a retracement at 30% below the 5 day maximum of the underlying security. Every two hours a scheduled event is triggered checking if the nearest expiring and strike price option's bid price has met or crossed the set retracement. If this is true, then we enter a long position. If it's false, we liquidate our position, or we do nothing. Lastly, the universe was selected based on equities that have had a historical Implied Volatility <=35% for the options with the nearest strike price. The strategy performed well but it would cost the fund $400/month for an options data feed in our account and would cancel out returns.
Thank you everyone for following along with our live track record. The support and constructive criticism gets us excited to work on this each Friday. As always, we encourage our readers to stay involved by requesting trading strategies for us to test for the InternFund.
Stay tuned,
Derek Melchin
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.
Tamim Fund
For the option straddle strategy, it only gets the option with the absolute lowest strike price. The expiry doesn't matter since it is sorted by the strike price afterwards.
Could you explain the logic behind this strategy? It seems that it relies on the variety of the underlying options, since only very very deep ITM calls will be worth between .7 and 1.3x the security price, instead of relying on some trading principle.
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.
Tamim Fund
I just ran it, and the reason it works is because 99% of the time, the only call options with a low enough strike price to fit the parameters is apple's and sometimes, GS, V, TGT, and MSFT. Apple has been going up for the past decade. About 80% of the orders over the past 5 years is just Apple. In the past year, there has been more Microsoft, but it is still mostly Apple.
If I am wrong, please correct me.
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.
Nathan Swenson
I'm thinking to set up the live trading, but to use it with paper trading just to get the signals in real time. I guess it would be better if it alerts ahead of time, like at open that there will be a trade at 2 hours after open. Because this strategy has so few trades, it's easy enough to just do the trades manually. I'm thinking I'll use a small amount in futures to trade NQ and ZB pair and my TD Ameritrade self managed 401k with a more conservative setup.
Regarding the Alpha Competition, this version qualifies with 84% PSR (Alpha score). Peter, you should think about entering it. You did all the work. I'm just playing around with for consideration of using for my own accounts.
Regarding the high results above, that was without any Margin. So if you wanted to go crazy, you could add some margin to it, or simply trade non-Leverage funds but lean more on margin.
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.
Nathan Swenson
Screen shot of the end result.
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.
Nathan Swenson
Sorry for all the posts. Having trouble posting screen shots when working from an IPAD.
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.
Mateusz Pulka
Tien Duy Vo Peter Guenther
I have spotted this bug also, the problem is here (the loop is run outside the if statement):
if not self.be_in:
# Close 'In' holdings
#for asset, weight in self.HLD_IN.items():
# self.SetHoldings(asset, 0)
#for asset, weight in self.HLD_OUT.items():
# self.SetHoldings(asset, weight)
wt[self.STKS] = 0
wt[self.TLT] = .5
wt[self.IEF] = .5
# Thomas's reducing unnecessary trades
for sec, weight in wt.items():
cond1 = (self.Portfolio[sec].Quantity > 0) and (weight == 0)
cond2 = (self.Portfolio[sec].Quantity == 0) and (weight > 0)
if cond1 or cond2:
self.SetHoldings(sec, weight)
The for loop will be fire every time even if we set self.be_in to false. The correct version is:
if not self.be_in:
# Close 'In' holdings
#for asset, weight in self.HLD_IN.items():
# self.SetHoldings(asset, 0)
#for asset, weight in self.HLD_OUT.items():
# self.SetHoldings(asset, weight)
wt[self.STKS] = 0
wt[self.TLT] = .5
wt[self.IEF] = .5
# Thomas's reducing unnecessary trades
for sec, weight in wt.items():
cond1 = (self.Portfolio[sec].Quantity > 0) and (weight == 0)
cond2 = (self.Portfolio[sec].Quantity == 0) and (weight > 0)
if cond1 or cond2:
self.SetHoldings(sec, weight)
The same should be applied in second if statement.
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.
Mateusz Pulka
Sorry some kind of formatting problem. Generally the for loop should be move inside the if statement as Tien Duy Vo pointed out when algo starts and be_in paramter is true we will buy long and short at the same time.
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.
Nathan Swenson
I'm sorry, I don't know Python. I don't see any difference between your code blocks. Is this mistake resulting in inflated results due to margin usage?
Edit: Didn't see your last response. I will wait for a Python coder to update it. I only know C#.
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.
Mateusz Pulka
Sorry for formating problem. The code should look like this:
https://pastebin.com/cnKm9BVYinstead of this:
https://pastebin.com/pPcGFKR0The 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.
Nathan Swenson
So the issue pointed out by Gpw radar and Tien Duy Vo only occurs if "be_in = true" at the time of start. I don't see any issues with my order when ran from 2008 to 2020. It would seem that the results for mine are correct. I was worried that the results were invalid.
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.
Tien Duy Vo
gpw radar : Thanks for pointing out. Great job. Unfortunately, the backtesting framework on Quantconnect seems to be much slower than on Quantopian. It is quite difficult to debug that way.
There is another issue related to this part of the code:
self.Schedule.On(
self.DateRules.EveryDay(),
self.TimeRules.AfterMarketOpen('SPY', 120),
self.rebalance_when_out_of_the_market
)
self.Schedule.On(
self.DateRules.WeekEnd(),
self.TimeRules.AfterMarketOpen('SPY', 120),
self.rebalance_when_in_the_market
)
Here, the algo is firing the two functions rebalance_when_out_of_the_market and self.rebalance_when_in_the_market, which is responsible to get "in" and "out". However, you can see that one is started every day and the other one at weekend. I wonder, whether this is done on purpose.
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.
Mateusz Pulka
You are right Nathan Swenson it only occures once at the begining when you start algo and when flag in is set to true. For example check out your orders when you set the star date at 1st January 2018. It is not a big deal but worh to fix it.
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.
Mark hatlan
Great work! This market timer does a really nice job.
However TQQQ does do way better than SPXL. SPXL starts on 11/03/2008. UPRO starts on 6/28/2009. TQQQ starts on 2/7/2010. When switching the start date to 2/7/2010 here are the returns:
SPXL +7,552%
UPRO +7,180%
TQQQ +19,859%
I think SPXL only looked better because of the earlier first trade date.
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.
Nathan Swenson
Thanks Mark! Good point!
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.
Aalap Sharma
Relativily new to all this and I would really like to know are these returns realistic in the real markets? Has anyone deployed such algos to the market and seen healthy returns. Just curious...
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.
Nathan Swenson
Aalap, I just turned the algo on and entered TMF. We shall see soon enough. I'm going very aggressive with leveraged products. It should be very realistic as it only trades about 10 times a year with trades just 2 hours after RTH market open. Algo is entirely in treasury bonds at the moment.
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.
Aalap Sharma
Cool! I was thinking the same :)
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.
Mateusz Pulka
Hi Guys,
I have added some improvments to the code and please noticed the result. So first algo has improvment in terms of open the trade at the begning of the cycle when we start the algo. The return for 2010-2020 is: 16 772%
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.
Mateusz Pulka
The second run contains the following improvement. I just want to generate a signal about in/out just right after the open market. But open position just in the same way as the original algo. What is surprising the result is 21 011%. I am a little bit surprised about this, to be honest. Any idea where this difference comes from?
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.
Nathan Swenson
Gpw Radar, I see it takes more trades when you check signal at open. Perhaps it's due to increased volatility at open which is more likely to trigger needed deviation. The 2 hours after close is actually European market close for which there is often a ramp up in index price. I had thought about messing around with that as even 5 minutes makes a difference in that period. I know 2hrs and 5 min is significant. The timing of entry vs exit and asset type all matter. Bonds seem affected more at open, mid day, and close, while 2hr after open seems more significant for equities. Lots of opportunity for improvement I believe with timing alone.
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.
Mateusz Pulka
please notice that I only generate a signal in/out 1min after the market is open and then after 120min I open the position base on the signal. I have noticed that as I used IB with the cash parameter some of the orders were not filled (lack of money) and the order was later sometimes even 5 days later.
Peter Guenther Have you tried to use futures instead of etf to generate the in/out signal?
https://finance.yahoo.com/commodities?.tsrc=fin-srch
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.
Nathan Swenson
Gpw, perhaps the delayed order in due to transaction order. I often see that the buy order is executed before the sell order for prior holdings. This probably needs to be fixed.
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!