IMPORTANT: Multi-Country Functionality

This is about making the taxonomy series (Industry, Sector, etc) more robust. The rules are in the document posted by Yuval. As to the why, I’ll gather more info on the whole reasoning that led to this.

The “global” Primary vs Non Primary concept we are introducing really no effect if your universe is single country universe. If your strategy buys Nestle ADR in USA it will keep doing that when we add Europe. But the North America + Europe universe will only see the Nestle primary in Switzerland.

It will not be possible to go back once this goes live. There are too many changes.

If you only invest in USA universes the main changes involve the bars that now include holidays. We can mitigate this if it’s a big problem. For example we can introduce new functions like SMAxHol(), RSIxHol() that skip over holidays. They will be about 2x slower but it should not be that noticeable.

We just need to understand precise use case examples where new functions can mitigate this back-end change.

Thanks!

Thanks for the answers. The changes in the taxonomy rules looks good to me, except I usually use daily dollar volume instead of daily volume as a criteria.

As for the bar issue, I think that will affect those that want to share ideas w/ people off-site. SMA(90) is not be the SMA(90) other sites show. And the number of trading days (i.e. true bars) captured will depend on the SMA start date since some periods have a lot of holidays crowded together. I’ll leave that to the blogger to debate, but I like Steve’s idea of loading a holiday schedule based on the chosen benchmark.

Loading the holiday schedule is not the issue. We have financial data and price series loaded in memory to make simulations fast. We would have to create two versions of the price series: one for the exchange country the other that can be used for any multi-country. At run time we would decide which time series to use depending on your universe being single country or multi-country.

It’s doable but it requires a lot more server memory.

But still, strange unwanted things would happen. You would have a stock with different technicals depending on whether you choose a single country universe or multiple country.

And you could not use, for example , the SP500 as the benchmark in North America or Europe.

So if , in the end , we felt that including holidays so the whole world is aligned was the right solution.

If the main push back is because SMA’s don’t include holidays, we can provide them.

As I wrote in my initial post, [quote]
This site does not have all of your user data (user data will be a few days old)
[/quote] I apologize for the inconvenience. Your sim is not lost!

Thanks for the suggestions, Azouz. We’ll definitely consider them.

Just saw this post… have been traveling.

My first quick observation from re-running some of my main sims is that the date change doesn’t seem to be affecting results too much.

What does seem to be changing results for me is the change to the Industry Taxonomy. I am seeing degradation in performance for simulations that utilize an IndWeight < X rule. It’s interesting because I had very recently been looking at this parameter for improving the performance of some of my strategies.

It’s not clear to me how the changes listed would have effected the application of this rule. Yuval/Marco can you elaborate on how the IndWeight might be behaving differently under the new system? Note that I am using Compustat. I assume you guys tested the changes on the Compustat Engine?

I am also seeing some unusual effects in ranking systems that utilize Industry or Sector Factors. For Example, in one “kitchen sink” ranking system with an absurd number of nodes just one of those nodes utilizes an Industry Scope for DbtTot2EqQ (the rest of the nodes are set to Universe). The annual performance of a strategy which utilizes this ranking system INCREASES by 500 bps entirely due to the taxonomy changes. If I set that node’s Scope to Universe I see a slight decrease in performance from the current to new system.

IndWeight should not at all be affected by the changes we made. I suspect the differences are due to other changes. And yes, we have done testing on the Compustat engine.

Because of the changes in bars, you will see some minor differences in rank even in a system with no industry or sector factors. For example, one ranking system I ran in production had the following stocks in the top ten, in order: DLNG, TH, GPRK, HDSN, NVGS, OCN, GPRK, LXU, RYI, SP. On the beta site, the order was: DLNG, TH, OCN, HDSN, BSM, LXU, GPRK, NVGS, SP, RYI. Notice it’s the same ten stocks, but if it had been the top nine, they would have been different. (This is using Compustat; on FactSet the result was similar, if a tiny bit less pronounced.) The main differences lie in a factor that measures volume increase over the last few months, but there are other differences in share turnover because that also relies on volume and bars. What I suspect is happening in your annual performance is that a few stocks were chosen on the beta site that were different from those chosen on the production site, regardless of the industry scope of one node, and that this affected your performance. Perhaps the best way to compare the two is to look at the transactions rather than at the annual return. You should also use the Rank tab in the Ranking System with the setting “Include Composite & Factor Ranks” so you can see exactly where the rank differences are substantial.

My Models I am using get hit with a 5 - 10% less performance on models that use industry momentum (all models I use for my trading basically!).
Models without industry models seem to be hit much less (2%).

Please explain further what did change on the industries, so I can work on my models…

Thank you

Andreas

Re: Stock universe, is ‘United States (incl ADRs and dual listed)’ the equivalent of ‘All Fundamentals’ on the legacy website?

I think I found one main problem:

I am using nootc universe, which seem not include ADRs with the new implemented logic.

If I choose US all listed stocks and exclude OTC on the buy rule that makes things much worse.

So what I would need is when I use the Non OTC which includes all stocks that have been in there before the change… (including ADRs) OR (!!!)
a working excludement of the OTCs on the buy rule.

On the beta version I’m seeing master limited partnerships in my screens despite having the rule !Universe(MasterLP). Not sure if this is a bug or if there is a different way we need to filter out MLPs now?

A few back-test comparisons: (errata: Etf Sectors Sharpe Difference should be 0.91, not 0.13)




The explanation is as clear as I could make it on the google document I linked to (Multi-Country Functionality Summary - Google Docs). See the section called “Taxonomy Series and Industry-Based Scope Parameters.” Let me know if you have specific questions.

Depending on how you measure industry momentum, it may not be affected at all by those changes. It will certainly be affected by the change that the beta site includes holidays in bars, since industry momentum is almost always measured using bars.

Yes. To quote from the linked document:

The NOOTC universe in the beta site includes just as many ADRs as it does in production (437 of them).

If you choose the United States (all listed stocks) universe and exclude OTC in the buy rule with the command Universe(OTC) = 0, that’s the same as choosing All Stocks and excluding OTC in the production website.

If you choose the United States (incl. ADRs & dual listed) and exclude OTC in the buy rule, that’s the same as choosing All Fundamentals and excluding OTC in the production website.

Yes, this is a bug. Good catch! We’ll work on fixing it.

On the beta site, I found that when I run an etf port , place XES in the restricted buy list, the restriction is ignored, and the restrict entry is deleted for successive runs…

I went further through my models and the difference is up to a 10% annual performance hit.

The last time we had major changes this got better and better with time with the new site going live, so I will wait until that happens and then test further.