Author: shyam

Macro: Computing DTWEXM before the FRED

In our posts on using currency indices published by the FRED to predict the NIFTY (collection), we assumed that the currency indices will be available to us on Friday before NIFTY closes. This is problematic on two counts:

  1. The FRED publishes the currency indices only on Monday afternoons, or the next business day if they were closed.
  2. The dataset uses Friday index values which is Friday New York time. NIFTY would have closed for the weekend a good 24 hours before that.

In this post, we will get around the #1 problem by computing the currency index we are interested in (DTWEXM) by using the underlying the currencies themselves and the weights used by the FRED. Here are the results:

computing DTWEXM

Apart from a few outliers, the approach looks to be good enough.

For those who are curious about how this was done, the code is on github.

SIP: Expected Returns

“A monthly Rs. 5,000/- SIP will make you a crore-pathi!” Screamed a Facebook ad. Really? Is it that simple? Lets break it apart and find out the assumptions baked into that bold assertion.

Historical annualized mid-cap returns

annualized historical midcap 100 returns

The NIFTY MIDCAP 100 index has given an annualized return of ~21% between 2002 and 2016. If you assume a 20% return over the next 20 years, then a monthly SIP of Rs. 5,000 will indeed result in a Rs. 1,21,94,282/- corpus, making you are crore-pathi.

But what happens if you were 100% invested in Midcaps (20% returns!) and retired in 2007? All your crore-pathi dreams would have gone poof (Midcaps crashed 60% in 2008.)

Static Asset allocation

One way to mitigate blow-up risk is to diversify away from equities into bonds. A popular allocation scheme is the 60/40 equity/bond allocation. So how much should you expect a 20 year, Rs. 5,000/- monthly SIP to return under this scheme?

SIP returns

It is a range of returns because it looks at a 10,000 random samples of 20×12 monthly (historical) returns to reflect the path-dependency of SIPs.

Now, what about the size of the final corpus under this scheme?

SIP returns

On average, you should not expect more then Rs. 60 lakhs as the final corpus under a static 60/40 allocation scheme. You could get unlucky and end up with Rs. 30 lakhs or get very lucky and end up with Rs. 1 crore. But this is the expected range of returns.

If you still want to get to the magic one-crore mark, you will have to “step-up” the SIP contributions.

The final corpus if the SIP is Rs. 5k a month for the first 5 years and 10k, 15k and 20k for the next 5 year blocks, under a static 60/40 allocation:
SIP returns

Glide-path Asset allocation

The 60/40 split would still leave you exposed to market downturns towards the end. One way to eliminate most equity market risks is to adopt an asset allocation scheme that starts with 100% equity, 0% bonds and “glides” to 5% equity and 95% bonds over a period of 20 years. This way, you will have progressively less exposure to equity as you near the end. Under a fixed Rs. 5,000/- a month SIP, your final corpus is likely to be:

SIP returns

And what if you stepped it up?
SIP returns

Take-away

The kind of “straight-line” thinking that the ad propagates will set you up for disappointment if you don’t understand the underlying assumptions that went into it. Prudent asset allocation is much more than raw performance. It is making sure that you will have the money when you need it. And it inevitably compresses returns, so it requires you to save more.

Next time you see such an ad, you can respond by saying “Give me one crore now and I will give you 5k every month for the next 20 yrs.”


Notes:
Rebalanced once a year.
Allows the allocation to drift by 5% before triggering a rebalance.
Assumes a 10% tax on returns at every rebalance.
“0_5” is the total return index of the 0-5 year government bond.

Code and additional charts (with returns using the NIFTY 50 index) are on github.

Book Review: Den of Thieves

In the Den of Thieves (Amazon,) author James B. Stewart provides a play-by-play of the rise and crash of Wall Street in the 80’s.

The 80’s were a beginning of a new era. The US government/administration was chock full for laissez faire free-marketers. Regan was at the helm and regulations were considered the enemy. Wall Street got punch drunk on junk bonds, leveraged buyouts, insider trading, portfolio insurance and what not. Investment bankers and traders mostly viewed the banks they worked for as a way to get rich personally – damn the “franchise.”

What really got on the SEC’s nerve was insider trading in stocks. For one, it was happening in the market they had total regulatory oversight over. And two, it was eroding the trust of retail investors in the market. So the SEC decided to stake everything on the one thing it could do – bring people who traded on inside information to justice.

And unlike the regulators of today, they did not shy away from sending some of those traders to jail.

Baird was immediately struck by the similarities between the insider-trading investigations and the Mafia cases he’d worked on. Like organized crime, the Wall Street suspects prized silence and loyalty over any duty to tell the truth and root out corruption. He assumed that a Goldman, Sachs partner, for example, would go to jail rather than implicate another partner at the firm. Also, as in organized crime investigations, there were numerous interlocking cases, and not enough investigators to pursue all the leads.

Sadly, nothing much changed. The junk-bond mania was followed by the dot-com bubble followed by the credit crisis. And the number of people who were actually punished for financial crimes kept going down. Rinse, repeat.

The book runs to almost 600 pages and is about the 80’s. So, it is not for everyone.

Recommendation: worth a read.

Macro

Can global “macro” data be used to model local markets?

Correlation and linear models

A series of posts exploring the (lack of) linear relationship between USDINR, OIL and the NIFTY 50. Part I, Part II and Part III.

Machine learning

Using an SVM over dollar indices to trade the NIFTY

An SVM can be tuned with different parameters. Principal among those is the kernel to be used. Part I looks at the difference in predictive power when different kernels are used to train an SVM over the same dataset.

Part II tries to further tune the most promising kernel from Part I – the polynomial kernel. However, we find out that there is no silver bullet.

So, we take all the dollar indices (including USDINR) and observe the predictive power of an SVM using a polynomial kernel with varying degree parameters. We find that only two out of four indices are actually useful and that going too far back in history while training the SVM is counterproductive (Part III.)

Part IV trains an SVM using the two promising indices and their respective best-performing degree parameters from Part III. An ensemble model that chains the predictions looks promising.

While performing the experiments above, we noticed that none of these models side-step the 2018 drawdown. Their principal limitation is that they are “macro.” They will not handle local events well. So we combine the model from Part III with a Simple Moving Average and find that it leads to lower drawdowns in long-short portfolios. Part V also leads us to conclude that using just one of the indices is sufficient to meet our twin goals of shallower drawdowns and higher long-short returns.

Macro: Using Currencies to Predict NIFTY, Part V

Please read Part I and Part II for an introduction. Part III extends the treatment to other dollar indices. Part IV looked at an ensemble model from our learnings from Part III.

In this final part of our series on training a simple Support Vector Machine on currency indices to predict the NIFTY, we will incorporate a Simple Moving Average into our decision matrix. While our model in Part IV would go long/long-short based purely on the predictions of the SVM, the model we use here will go long only if both the prediction is positive and the NIFTY is above a 50-day SMA and go short only if both the prediction is negative and the NIFTY is below its 50-day SMA. Think of the SMA as a regime signifier.

Results

Cumulative returns:
DTWEXB%2BDTWEXM.NIFTY with SMA SVM

DTWEXB%2BDTWEXM.NIFTY cumulative returns

BH: buy & hold
L0: Long-only using SMA 50 alone
LS0: Long-short using SMA 50 alone

L1: Long-only using DTWEXB SVM and SMA 50
LS1: Long-short using DTWEXB SVM SMA 50

L2: Long-only using DTWEXM SVM and SMA 50
LS2: Long-short using DTWEXM SVM SMA 50

L: Long-only using ensemble SVM and SMA 50
LS: Long-short using ensemble SVM SMA 50

The SVM that is only based on DTWEXM (LS2) give better returns than the one based on the ensemble model (LS.) However, the ensemble model had a slightly lower drawdown of the two. Also, when compared to the earlier version that did not use the SMA, LS2 under-performs by about 10%. However, the key difference is in the drawdowns. Using the SMA filter reduced drawdowns significantly, especially the one occurring in 2018.

Without SMA filter:
no SMA drawdowns
With SMA filter:
SMA drawdowns

Conclusion

An SVM with a 4th degree polynomial over the DTWEXM currency index in conjunction with a 50-day SMA seems to be the winning combination.

Code and charts are on github.