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.