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.

Data Summary

The following table describes the dataset properties:

PropertyValue
Start DateJanuary 2010
Asset Coverage2,053 India Equities
Data DensitySparse
ResolutionDaily
TimezoneIndian Standard Time

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.

You can also see our Videos. You can also get in touch with us via Discord.

Did you find this page helpful?

Contribute to the documentation: