Just a sample strategy, inspired and created in collaboration with Strongs
Wanted to start a collaboration thread and to spark your creativity on adding whatever ideas you're fancy to add on top of this framework.
As tips/ideas we were thinking to add:
- Add a momentum-based ETF selection for the bull days (to select best mom etf from QQQ, FDN, etc.)
- Add a momentum-based ETF selection for the bear days (to select best mom etf from TLT, TLH, etc.)
- Try adding IN&OUT switch (with wait days)
- Replace bull days with a Stock selection strategy
Below few info about the KEI indicator
Key Short—Term Economic Indicators. The Key Economic Indicators (KEI) database contains monthly and quarterly statistics (and associated statistical methodological information) for the 33 OECD member and for a selection of non—member countries on a wide variety of economic indicators, namely: quarterly national accounts, industrial production, composite leading indicators, business tendency and consumer opinion surveys, retail trade, consumer and producer prices, hourly earnings, employment/unemployment, interest rates, monetary aggregates, exchange rates, international trade and balance of payments. Indicators have been prepared by national statistical agencies primarily to meet the requirements of users within their own country. In most instances, the indicators are compiled in accordance with international statistical guidelines and recommendations. However, national practices may depart from these guidelines, and these departures may impact on comparability between countries. There is an on—going process of review and revision of the contents of the database in order to maximise the relevance of the database for short—term economic analysis.
For more information see: http://stats.oecd.org/OECDStat_Metadata/ShowMetadata.ashx?Dataset=KEI&Lang=en
Reference Data Set:
Simone Pantaleoni
Here the framework algo
Vladimir
Simone Pantaleoni,
Good idea and in line with my personal preferences.
Thank you for sharing.
Before we start to add on top of this framework we need to fix some existing problem.
1.Every line in orders log has Warning: fill at stale price.
Try to change resolution for stocks and bond from Daily to Hour.
And change
self.TimeRules.AfterMarketOpen("SPY")
to
self.TimeRules.AfterMarketOpen("SPY", 31)
This should solve the problem.
Good luck .
Peter Guenther
Interesting project, looking forward to the discussion. Well done, Simone Pantaleoni and Strongs!
Strongs
Hi all guys, this is just a base from which to start. The starting idea is to also exploit the concept of in & out and the intersection of ROC by Vladimir . The LEI could actually be exploited for a dynamic selection of ETFs, essentially identifying phases of the economic cycle and then selecting groups of ETFs that perform best in that specific phase of the cycle.
Simone Pantaleoni
New version with the fixes from Vladimir 😊
Vladimir
Simone Pantaleoni,
Completed as requested!
The second problem is that you have initialized the position in QQQ,
which is contrary to the main logic at the beginning of backtest.
To solve this. I define
To make self.mom visible on the chart changed self.MOM to self.MOMP
Here is "SIMON LesFlex" modified by Vladimir
with changes I mention above and some cosmetic changes.
Enjoy.
Strongs
The idea would be to turn the indicator like that
.ekz.
First of all, great work :)
I've had some time to look at this, and I want to be sure i'm interpreting it correctly...
Questions:
Simone Pantaleoni
Hi .ekz. ! many thanks for appreciating it. :)
Let me try to answer your questions:
Questions:
.ekz.
Perfect, Simone Pantaleoni. Thanks for this.
Simone Pantaleoni
Hi guys!
KEI Leading Indicator PhasesAs suggested, we have been working behind the scene on applying the concepts shared above about the different phases of the market. Based on that, we apply ETF-selection accordingly, out of a basket of sectorial ETFs (we kept a similar switch to shift to bond in case of possible market downturn using the leading indicator)
Some improvement on Total Return, sharpe and so on.
Feel free to work on this release, fix it in case I've made mistakes (here I rely on Vladimir as PeerReview :P ) and improve it (there's still something to optimize - but don't want to share all in once so… work on it and share your outcomes with us! :) )
Strongs
Surely there is still a lot of work to be done, but this is definitely a great start. Levels for identifying the phases of the business cycle with associated ETF groups was presented. We await more ideas from you to improve it.
Frank Giardina
Great stuff Guys thanks for sharing. I have a question and a comment. I have a Quandl free account have not used it much. I plugged in my key and started looking at the algo. My question is how does the self.history statement get the Quandl data to sync up with the start of the algo? i see the request for the 1400 bars, so does the Quandl request use the start date of the algo as it start retrieval date? I see the data frame adjusting to the different start dates I tried. Any clarification greatly appreciated.
My comment is i have been following a youtube channel Hedgeeye. The gentleman who runs the channel is an ex-Hedge fund manager who also uses a macro view of investing. He uses inflation and gdp rates of change for his strategy much like this algo uses the KEI data as leading indicators.. He uses ETFs like this algo but also uses different styles based on his macro view of 4 Quadrants. Depending on the Quads as he calls them he picks the ETFs and the investment style (Momentum, V:alue, High Beta, Low Beta etc.)
GrowthInflationQuad 1acceleratingslowingQuad 2acceleratingacceleratingQuad 3slowingacceleratingQuad 4slowingslowingA full explanation of his approach is on Hedgeeye.com, but here is a link to his strategy
https://app.hedgeye.com/insights/77156-chart-of-the-day-what-works-in-which-quad?type=macro
Frank
Frank Giardina
Sorry, the grid got messed up when i pasted it
Quad 1 Growth accelerating Inflation slowing
Quad 2 Growth accelerating Inflation accelerating
Quad 3 Growth slowing Inflation accelerating
Quad 4 Growth slowing Inflation slowing
Varad Kabade
Hi Frank,
History method takes the StartDate as the anchor retrieves data before it for the requested period. Refer to the following source code.
returns the last 1400 bars of history but we have the option to pass start and end dates to the History method.
returns the historical data for custom 90 day period.
Refer to the attached backtest, which demonstrates both approaches just comment out any one.
Best,
Varad Kabade
Frank Giardina
Varad,
Thank you for the explanation now i understand
Frank
Frank Schikarski
Hi there,
interesting stuff!!
Here are my 2 cents:
And the results using QQQ and TLT only:
Results using an amended version of Sector ETF's:
Results using an overfitted version of Sector ETF's:
Suggestions for the way forward:
Have fun,
Frank
Tom Penrose
Expanding on Frank's work, I've added to the number of assets allocated depending on the regime.
I've attempted to replicate an asset allocation chart that I have which tells you where you should put your money depending on the trajectory of the economy.
For example, in a scenario of better than expected growth forecasted, it suggests allocating to 37% US equities, 18% non-US equities, 25% US-fixed income, 3% non-US fixed income, 13% alternative investments, and keeping 4% cash.
This doesn't translate perfectly to this strategy but I've done a crude implementation that follows more ETF's weighted based on this chart. For the US-equities component I've maintained the same sectors suggested in the previous version, only with different weighting.
The optimal implementation of this version of the strategy in my opinion would be to use universe selection to choose the best companies in each index, rather than following a whole sector. I think this would increase performance dramatically. Unfortunately, I'm not advanced enough to do this sort of dynamic universe selection.
Simone Pantaleoni
Thanks to Frank Giardina and Tom Penrose for the good work and for moving the thread forward!
You're going on the exact direction I was meant to drive this discussion, when we've started it :)
I've been a bit busy lately on other projects, but next step will be exactly as Tom outlined, about stock-selection to pick up best 4-5 stocks for each sector.
Challenge there is to make the code decently quick, so I think a quite strict pre-selection of stocks will be needed
Frank Giardina
I think we got the wrong Frank, I made some comments and certainly want to help but Frank Schikarski did more meaningful work with his post.
Simone Pantaleoni
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!