Author: shyam

Calculate PEs for all Indices

index PE

Some investors like to use the PE ratio of an index to time their entry and exit. This is especially true about the widely tracked Nifty 50. However, there are advantages to rolling your own.

Annual vs. Quarterly EPS

The most popular approach of calculating PE is by dividing the price by the last reported annual EPS. This is probably fine most of the time. However, we prefer to add up the last 4 diluted quarterly EPS so that we have the latest numbers.

Closing vs. Live Prices

Once again, a matter of preference. Since most data points present the PE based on the last close, it may be useful to calculate it based on the live price, just to see the difference.

Other indices

Whereas the Nifty index PE can be obtained from a number sources, what about the other indices? And sector-wide PE estimates? By having a script handy, you can always have a ready reckoner of where things stand.

The Code

The StockViz API exposes the QuarterlyEps endpoint that returns the quarterly basic and diluted EPS in descending order of periods. You can use this to calculate the annualized number, grab the live price and adjust it by the stock’s weight within the index to arrive at the index EPS.

for cc in constituents:
	ticker = cc["SYMBOL"]
	#print ticker,

	price = common.getLivePrice(ticker)
	#print price,

	epss = common.getEps(ticker)

	annualEps = 0
	for i in range(0,4):
		annualEps += epss[i]["EPS_DILUTED_AEI"]

	#print annualEps, price/annualEps

	if annualEps != 0:
		indexPe += price/annualEps * cc["WEIGHTAGE"]

	indexPe /= 100

You can download the entire code on GitHub.

Previously

A Stochastic-MACD Model for Trading Nifty Stocks

Glenda Dowie has an interesting post up on investopedia:

Looking for two popular indicators that work well together resulted in this pairing of the stochastic oscillator and the moving average convergence divergence (MACD). This team works because the stochastic is comparing a stock’s closing price to its price range over a certain period of time, while the MACD is the formation of two moving averages diverging from and converging with each other. This dynamic combination is highly effective if used to its fullest potential.

To derive a buy signal out of these two indicators, first make sure that the MACD is trading over its signal line and then make sure that the %K crossed the %D in the last couple of days.

The problem with any multi-signal approach is that it requires you to track multiple stocks:

Because the stock generally takes a longer time to line up in the best buying position, the actual trading of the stock occurs less frequently, so you may need a larger basket of stocks to watch.

This is where you can use the StockViz API to make life simpler.

The StockViz Technical API for Equities (doc) gives you more that 50 technical stats to play with. The stochastic fields are “STOCH_FAST_D” and “STOCH_FAST_K” and the MACD fields are “MACD” and “MACD_SIGNAL.”

Here’s how it works.

Pseudocode

In order to scan all the Nifty 50 stocks:

  1. grab all the constituents of the index through the SymbolsOfIndex endpoint
  2. iterate through them and get the technicals
  3. check if the MACD is over the signal line. If it is, then check if the stochastic cross-over occurred over the last couple of days
  4. If both the conditions are met, then place the trade

Code

You can find the code on GitHub. We have extracted some shared code out into a “common” module. The main file reads much cleaner this way.

The code should be run at the beginning of the day and you can track the progress of this system through your StockViz account.

Stocks picked up today

stochastic-macd portfolio 20.02.2014

Note: You have to link your Mashape and StockViz accounts for the Accounts API to work (doc.)

Previously

 

The Forever Emerging Markets

Bank of America Merrill Lynch has a report out titled “Pig in the Python – The EM Carry Trade Unwind” that makes for some interesting reading. The authors believe that most of the emerging markets “story” is just that – a story. Investors are mistaking waves of capital inflows into EMs with intrinsic growth:

There are many ebullient investment ideas we have heard over the past 25 years: the massive infrastructure theme, the growing middle class, the nutrition/water idea, the urbanization meme, the emergence of this sub-region or the other. We remain skeptical and cynical. Eventually, these glossy investment views have run into tighter global monetary conditions, the inevitable crises, large capital losses and vows of “never again”. Until, of course, the next global monetary easing, when all is forgiven, and a fresh wave of investors wades in again.

Whenever DMs enter an easing cycle, a carry trade ensues where EM corporates and banks go on an international debt binge. But once DMs start tightening, the tide goes out.

India debt

This sort of unwind typically hits banks first – especially those who don’t have a wide deposit base. And once banks start sneezing, the rest of the economy catches a cold. But surprisingly, Indian banks actually slowed down their external borrowings post-QE:

EM bank borrowing

As QE gets tapered and the carry trade unwinds, spreads on most of this debt are going to widen and asset prices will deflate. It looks like China and Thailand are in for a pretty rough ride.

Building a Cross-Over Trading System

Investors often use moving averages to time their entry and exit into the markets. One of the most often used signals are the “Golden Cross” (for entry) and the “Death Cross” (for exit.)

The Golden Cross represents a major shift from the bears to the bulls. It triggers when the 50-day average breaks above the 200-day average. Conversely, the Death Cross restores bear power when the 50-day falls back beneath the 200-day.

The problem with most technical signals is that it requires you to inspect a chart of the stock you are interested in. However, with the StockViz API, you can automate just about every step of the process from checking for the cross-over to placing the trade.

Technical API

The StockViz Technical API for Equities (doc) gives you more that 50 technical stats to play with. Here’s how you access it in python:

unirest.get("https://stockviz.p.mashape.com/technicaldata/technicalsEquity",
     params={
          "symbol": ticker
     },
     headers={
          "X-Mashape-Authorization": mashape_auth,
          "Accept": "application/json"
     }
);

The result is a time-series in ascending order of dates. By comparing the last two elements, you can check if a cross-over occurred or not.

Accounts API

The StockViz Account API (doc) allows you to directly place trades through StockViz. These are “dummy” trades that update your portfolio. This allows you to track the performance of your investment strategy over a period of time.

Placing a trade is just another call to the API:

unirest.get("https://stockviz.p.mashape.com/account/OrderEquity", 
	params={
		"symbol": symbol,
		"qty": qty,
		"bs": buyOrSell,
		"t": "regular",
		"px": price,
		"asof": strTime
	},
	headers={
		"X-Mashape-Authorization": mashape_auth,
		"Accept": "application/json"
	}
);

Now all you have to do is run the script at the beginning of the day and you have your basic automated cross-over trading system. You can read the whole code here. The script runs the cross-over system for the NIFTYBEES ETF [stockquote]NIFTYBEES[/stockquote]

Note: You have to link your Mashape and StockViz accounts for the Accounts API to work (doc.)

Previously