Investment Thesis
The algorithm's objective is to select stocks from the SP500 universe that exhibit the fastest rising prices, high sentiment, and limited volatility.
- Market: SP500 universe
- Trading Schedule: Trades are executed on Wednesday
- Regular Selling/Buying: Stocks are bought and sold every week.
- Rebalancing: Positions are rebalanced twice a month to manage risk.
- Top Ranking Stocks: The algorithm selects the top 100 (or 20%) ranked stocks from the SP500 as determined by sentiment.
- Sentiment Filter: Only purchasing stocks with a average weekly sentiment score of over |0.8|
- Moving Average Filter: Stocks below their 100-day moving average are sold.
- Gap Filter: Stocks with a gap of more than 15% over the last 90 days are not bought.
- Index Membership Filter: Stocks that leave the SP500 index are sold.
- Market Regime Filter: Stocks are bought only when the SP500 is above its 200-day moving average
- Position Sizing: Position sizes are calculated based on a 0.15% risk of the total portfolio value using the Average True Range (ATR) of the last 20 days.
- Momentum Calculation: Momentum is calculated based on the annualized exponential regression slope over the past 90 days.
- Momentum Weighting: Momentum values are weighted for volatility adjustment using the coefficient of determination (R-squared).
Quant League Competitions
Competition entry updated by Nathan Gutierrez
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.
Quant League Competitions
Competition entry updated by Nathan Gutierrez
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!
I'm happy that Jovad included an options straddle, as I was planning to replace VXX in the Dragon portfolio with a rolling straddle on SPY to serve as the long vol component. As I haven't used options in QC before, Jovad's algo is very useful as a starting 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.
Sairaj Patil
This is amazing 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.
Jovad Uribe
Hi everyone,
This week Derek built a strategy he heard on episode #10 of the Better System Trader podcast. The guest, Perry Kaufman, explained the strategy idea came from George Douglas Taylor in the '50s, but Derek reversed the strategy rules. The strategy trades IWM and QQQ, and the backtest can be viewed here. It generates a 0.845 Sharpe ratio and a drawdown of 2.7% when backtested over the last several years.
Adding this strategy to the InternFund algorithm increases the diversification as we do not currently trade IWM or QQQ. Although the historical Sharpe ratio decreases slightly from 1.931 to 1.902, the compounding annual return increases from 6.845% to 7.019%, and the max drawdown decreases from 3.8% to 3.3%. With this new deployment, our backtest has a max drawdown of just $1,379. This deployment (with an increased max drawdown limit) is attached below.
Shile also built a Risk Parity strategy inspired by this article. During his research, he noticed that the drawdown was a whopping 43.4%, outlined in this backtest. To reduce this drawdown, the effects of risk parity were increased by shorting TBT, a -2x 20+ Years ETF, which gives us a positively leveraged position. Then, the dip of SPXL was bought, then sold using the Risk Management inspired by this Strategy Library Addition. See the results of the strategy here.
Previously, Ernest mentioned that our 60:40 strategy would exceed a 100% allocation ratio. We added an update to this strategy ensuring that it does not exceed this ratio. The line we updated is:
quantity = self.CalculateOrderQuantity(ticker, weight * self.SF_AR / sum(self.weight_by_ticker.values()))
Tamim Fund pointed out that our Fibonacci Option Straddle was primarily purchasing Apple. We converted the strategy to the algorithm framework and added a dynamic universe selection model to remove look-ahead bias. To further clarify the strategy's logic, if the market sentiment of a stock is down, the bid price for the call option will decrease and fall below the retracement level, causing a sell. If market sentiment is up, then the bid price may cross above the retracement, causing a buy. Many TA traders use this strategy, but their execution may take some time. The strategy attempts to enter the same position but quicker. I have attached the backtest here. As we cannot implement this in the InternFund, we will not continue with it.
As for the InternFund's performance, here is a screenshot of our latest track record.
This week our strategy lost 0.099276% of its value while SPY gained ~1.8%. Although this is a small setback, we aim to improve our algorithms alpha of 0.067.
Our backtest produces a whopping Treynor ratio of 2.298. It is no surprise that this ratio is high because the current risk-free rate (10YR Treasury Rate) is at a low 0.69%, and our beta of 0.031 is also low. However, this is one indication that our algorithm is a worthwhile investment.
Thanks for tuning in for this week's update. Constructive criticism and feedback help us build better strategies for the fund. Stay tuned for more updates!
Cheers,
Jovad Uribe
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 Everyone!
We are planning on continuing the InternFund past summer!
This week, we are allocating 5% of our portfolio to Taylor Robertson’s post on using Leveraged ETFs. This led to a .4% decrease in drawdown as well as a 1.7% increase in the CAGR. Furthermore, our strategy is now very close to a Sharpe of 2.0, sitting at 1.98. After that, we increased the ratios of our existing strategies to take advantage of the cheap leverage offered by IB, and the new deployment algorithm is attached below.In addition, I also implemented a very simple seasonal strategy described in this article, and the results can be seen here. The high drawdown of 11.4% did not justify the returns of only 4.356%, so this strategy will not be making it into our InternFund algorithm.
Derek implemented an ETF rotation strategy that was sourced from RotationInvest. During each monthly rebalance, it calculates the trailing 3-month Sharpe ratio of SPY, EFA, and GLD. For the top-ranking ETF, it'll invest in it only if it's trading above its 150-day simple moving average. Otherwise, it allocates 100% of the portfolio to a bond ETF (TLT).
When backtested since 2015, this strategy generates a 1.218 Sharpe ratio and an annual standard deviation of 0.118. By comparison, the S&P 500 produces a 0.712 Sharpe ratio and 0.185 annual standard deviation over the same period. See the backtest results here. We will add this strategy to the deployment algorithm next week.
Furthermore, Jovad implemented the Golden Butterfly Portfolio from this article in this backtest. After a few alterations, he achieved a relatively low drawdown at 4.4% and a CAGR of 3.9%, and the updated backtest can be found here. Unfortunately, when added to our algorithm, the drawdown increases while the CAGR decreases (backtest), so it will not be making it into our live deployment.Our updated track record can be seen here:

And we are only $1 away from a new equity high!
Best Regards,
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.
HughStryker
Thanks for the update, Shile. What the InternFund is doing is very cool and I'm learning a lot.
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 7: A Little Turbulence
Hi everyone,
The InternFund had a sharp increase in volatility this week. However, we are still within our allowed max drawdown of $1000. Here's an image of our live track record over the last 7 weeks.
This week, we built a few more strategies with the hope of adding more to the InternFund algorithm.
Shile worked on a trend following strategy that measured the strength of the trend using an Ordinary Least Squares (OLS) model. When the past 50 days of close data have an r2 > .7, and the (current price - the average of the absolute values of the residuals) is at least the predicted value from the OLS model, we hold SPY, else, we liquidate our position. This model only had a Sharpe of .475 with a large drawdown of 34.2%, so this strategy will not be making it into the InternFund. The backtest can be found here.
I built a strategy that was inspired by Scott Andrews (aka "The Gap Guy"). Each market open, it fits a linear regression model using overnight gaps as the independent variable and the open-to-close returns as the dependent variable. It trains the model using the previous 10 weeks of data, using only weekdays that match the current trading day. After the model is trained, it predicts the direction of the current day's intraday return given the overnight gap and places its trade. The strategy achieves a 0.488 Sharpe ratio when backtested since 2015. See the backtest for reference. Since this strategy underperforms our benchmark, we didn't integrate it into the InternFund algorithm.
I also built a strategy I sourced from InvestiQuant that takes advantage of the long-bias in traders after a bull market breakout. Whenever the SPY has a multi-month breakout during a bull market rally but then gaps down into the next open, the strategy longs from the open until 15 minutes before the close. Backtesting the strategy since 2015 generates a 0.991 Sharpe ratio, outperforming the buy-and-hold Sharpe ratio of 0.742. See the backtest results here. After integrating this strategy into the InternFund algorithm, the Sharpe ratio of the algorithm backtest increases from 2.103 to 2.161. See the attached backtest for a copy of our latest deployment (with an extended drawdown limit).
In regards to the ETF rotation strategy we published last week, there was actually a bug in it. Line 71 should have read
if data[top_symbol].Price >= sma:
instead of
if data[symbol].Price >= sma:
After fixing this, the strategy underperforms the SPY, so we did not add it to our live deployment.
Thanks for tuning in for our weekly update!
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.
Mark Reeve
Hi guys,
I am wondering is it possible to combine several strategies like this using the algorithm framework?
Is there a reason you chose to avoid using the Algorithm Framework, other than simplicity?
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 Mark,
It would be possible to combine these strategies using the Algorithmic Framework, however, we chose to stick with the classic algorithm because it is easier to account for multiple strategies.
From my experience, an algorithm developed using the Algorithmic Framework is best suited to a single signal type, however, our algorithm is a Frankenstein’s monster of various strategies that aren’t related. If we were to divide up our algorithm strategies into separate projects, then it would totally be viable for us to use the Algorithmic Framework on the strategies individually.
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.
Samuel Schoening
You guys have helped me a lot so I just wanted to reach out and make sure you know that the orders for VXX may not be executing as you go back in history. This is because the price was over 30,000 in 2010 due to countless splits. Same goes for UVXY. The data is not adjusted so the order will not fill. That is why I just trade with 1 or 100 billion dollars in my backtests lol. With that said, this is very compelling research and do please keep up the good work!
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
It has been a few months -- any live trading update from the intern team?
Cool project and great work!
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.
Zicai Feng
hey interns, your self.max_dd is a fixed amount, should change it to a ratio as a % of the portfolio value. Because as your portfolio gets bigger due to profitable trades, a fixed amount that was set during a smaller AUM will just terminate your strategy randomly. I am sure Jared would understand and let you risk a fixed % of AUM rather than a fixed dollar amount with a fluctuating n growing AUM
Keep up the good work and build those RenTech libraries!
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 Zicai,
Thank you. We will adjust the drawdown limit if the InternFund is launched again this summer.
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.
Zicai Feng
Hope it gets launched again :). Btw, similarly, your stop loss limit in your tesla example is a fixed amount. Similar reason to above, it should be a % number not a fixed $ amount as tesla price is all over the place depending on the price of dogecoins
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!