Contents
TrueData
India Equity Security Master
Introduction
The India Equity Security Master dataset by TrueData tracks India Equities corporate actions. The data covers 2,053 India Equities, starts in January 2010, and is delivered on a daily update frequency. With the map and factor files installed in LEAN, all corporate actions are automatically handled and passed into your algorithm as events.
For more information about the India Equity Security Master dataset, including CLI commands and pricing, see the dataset listing.
About the Provider
TrueData was founded by Kapil Marwaha in 2007 with goal to provide a multitude of solutions for the financial services sector, including making market data feeds available. TrueData is an authorized NSE and MCX data vendor that supports many applications, including a wide range of technical analysis applications and trading platforms.
Getting Started
You don't need any special code to utilize the TrueData India Equity Security Master. It automatically loads when you request India Equities data.
Supported Assets
To view the supported assets in the India Equity Security Master dataset, see the Data Explorer.
Data Point Attributes
The India Equity Security Master dataset provides Split, Dividend, Delisting, and SymbolChangedEvent objects.
Split Attributes
Split objects have the following attributes:
Dividend Attributes
Dividend objects have the following attributes:
Delisting Attributes
Delisting objects have the following attributes:
SymbolChangedEvent Attributes
SymbolChangedEvent objects have the following attributes:
Accessing Splits
To get the current split data, index the Splits property of the current Slice with the Equity Symbol. Slice objects deliver unique events to your algorithm as they happen, but the Slice may not contain data for your security at every time step. To avoid issues, check if the Slice contains the data you want before you index it.
def OnData(self, slice: Slice) -> None: if slice.Splits.ContainsKey(self.symbol): split = slice.Splits[self.symbol] split_type = {0: "Warning", 1: "SplitOccurred"}.get(split.Type) self.Log(f"Split: {split.Symbol}\t{split.SplitFactor}\t{split.ReferencePrice}\t{split_type}")
public override void OnData(Slice slice) { if (slice.Splits.ContainsKey(_symbol)) { var split = slice.Splits[_symbol]; Log($"Split: {split.Symbol}\t{split.SplitFactor}\t{split.ReferencePrice}\t{split.Type}"); } }
For more information about accessing splits, see Splits.
Accessing Dividends
To get the current dividend data, index the Dividends property of the current Slice with the Equity Symbol. Slice objects deliver unique events to your algorithm as they happen, but the Slice may not contain data for your security at every time step. To avoid issues, check if the Slice contains the data you want before you index it.
def OnData(self, slice: Slice) -> None: if slice.Dividends.ContainsKey(self.symbol): dividend = slice.Dividends[self.symbol] self.Log(f'Dividend: {dividend.Symbol}\t{dividend.Distribution}\t{dividend.ReferencePrice}')
public override void OnData(Slice slice) { if (slice.Dividends.ContainsKey(_symbol)) { var dividend = slice.Dividends[_symbol]; Log($"Dividend: {dividend.Symbol}\t{dividend.Distribution}\t{dividend.ReferencePrice}"); } }
For more information about accessing dividends, see Dividends.
Accessing Delistings
To get the current Delistings data, index the Delistings property of the current Slice with the Equity Symbol. Slice objects deliver unique events to your algorithm as they happen, but the Slice may not contain data for your security at every time step. To avoid issues, check if the Slice contains the data you want before you index it.
def OnData(self, slice: Slice) -> None: if slice.Delistings.ContainsKey(self.symbol): delisting = slice.Delistings[self.symbol] delisting_type = {0: "Warning", 1: "Delisted"}.get(delisting.Type) self.Log(f'Delistings: {delisting_type}')
public override void OnData(Slice slice) { if (slice.Delistings.ContainsKey(_symbol)) { var delisting = slice.Delistings[_symbol]; Log($"Delistings: {delisting.Type}"); } }
For more information about accessing delistings, see Delistings.
Accessing Symbol Change Events
To get the current Symbol change events, index the SymbolChangedEvents property of the current Slice with the Equity Symbol. Slice objects deliver unique events to your algorithm as they happen, but the Slice may not contain data for your security at every time step. To avoid issues, check if the Slice contains the data you want before you index it.
def OnData(self, slice: Slice) -> None: if slice.SymbolChangedEvents.ContainsKey(self.symbol): symbol_changed_event = slice.SymbolChangedEvents[self.symbol] self.Log(f"Symbol changed: {symbol_changed_event.OldSymbol} -> {symbol_changed_event.NewSymbol}")
public override void OnData(Slice slice){ if (slice.SymbolChangedEvents.ContainsKey(_symbol)) { var symbolChangedEvent = slice.SymbolChangedEvents[_symbol]; Log($"Symbol changed: {symbolChangedEvent.OldSymbol} -> {symbolChangedEvent.NewSymbol}"); } }
For more information about accessing Symbol change events, see Symbol Changes.
Example Applications
The India Equity Security Master enables you to accurately design strategies harnessing any core corporate actions. Examples include the following strategies:
- Post-dividend announcement trading strategies.
- Trading on new Equities by monitoring for IPOs.
- Harnessing split announcements for reverse-split announcement momentum.