RegAlytics

US Regulatory Alerts - Financial Sector

Introduction

The US Regulatory Alerts dataset by RegAlytics tracks US regulatory changes within the financial services sector. The data covers 400,000 alerts, starts from January 2020, and is delivered on a daily basis. This dataset is created by sourcing information from over 5,000 regulators and using proprietary technology to gather and structure the regulatory data. Once prepared, the data is thoroughly reviewed by RegAlytics' team of regulatory experts and delivered each morning by 8AM for industry use.

This dataset depends on the US Equity Security Master dataset because the US Equity Security Master dataset contains information on splits, dividends, and symbol changes.

For more information about the US Regulatory Alerts - Financial Sector dataset, including CLI commands and pricing, see the dataset listing.

About the Provider

RegAlytics was founded by Mary Kopczynski, Aaron Heisler, Alexander Appugliese, and Werner Pauliks in 2019 with the goal of significantly reducing the time and cost required to mitigate regulatory risk. RegAlytics provides access to accurate and clean regulatory data from all global regulators in all sectors that is enriched by regulatory experts for risk and compliance teams everywhere. Please come to RegAlytics directly if you would like data on other sectors or countries!

Getting Started

The following snippet demonstrates how to request data from the US Regulatory Alerts - Financial Sector dataset:

self.dataset_symbol = self.AddData(RegalyticsRegulatoryArticles, "REG").Symbol
_datasetSymbol = AddData<RegalyticsRegulatoryArticles>("REG").Symbol;

Data Summary

The following table describes the dataset properties:

PropertyValue
Start DateJanuary 2020
Coverage400,000 Alerts
Data DensitySparse
ResolutionDaily
TimezoneNew York

Data Point Attributes

The US Regulatory Alerts dataset provides RegalyticsRegulatoryArticle and RegalyticsRegulatoryArticles objects.

RegalyticsRegulatoryArticle

RegalyticsRegulatoryArticle objects have the following attributes:

RegalyticsRegulatoryArticles

RegalyticsRegulatoryArticles objects have the following attributes:

Requesting Data

To add US Regulatory Alerts data to your algorithm, call the AddData method. Save a reference to the dataset Symbol so you can access the data later in your algorithm.

class RegalyticsDataAlgorithm(QCAlgorithm):
    def Initialize(self) -> None:
        self.SetStartDate(2021, 1, 1)
        self.SetEndDate(2021, 6, 1)
        self.SetCash(100000) 
        
        self.dataset_symbol = self.AddData(RegalyticsRegulatoryArticles, "REG").Symbol
namespace QuantConnect
{
    public class RegalyticsDataAlgorithm : QCAlgorithm
    {
        private Symbol _datasetSymbol;
        
        public override void Initialize()
        {
            SetStartDate(2021, 1, 1);
            SetEndDate(2021, 6, 1);
            SetCash(100000);
            
            _datasetSymbol = AddData<RegalyticsRegulatoryArticles>("REG").Symbol;
        }
    }
}

Accessing Data

To get the current US Regulatory Alerts data, index the current Slice with the dataset Symbol. Slice objects deliver unique events to your algorithm as they happen, but the Slice may not contain data for your dataset 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.ContainsKey(self.dataset_symbol):
        data_points = slice[self.dataset_symbol]
        for data_point in data_points:
            self.Log(f"{self.dataset_symbol} title at {slice.Time}: {data_point.Title}")
public override void OnData(Slice slice)
{
    if (slice.ContainsKey(_datasetSymbol))
    {
        var dataPoints = slice[_datasetSymbol];
        foreach (var dataPoint in dataPoints)
        {
            Log($"{_datasetSymbol} title at {slice.Time}: {dataPoint.Title}");
        }
    }
}

To iterate through all of the dataset objects in the current Slice, call the Get method.

def OnData(self, slice: Slice) -> None:
    data = slice.Get(RegalyticsRegulatoryArticles)
    if data:
        for articles in data.values():
            self.Log(f"{self.Time} {articles.ToString()}")
            
            for article in articles:
                self.Log(f"{self.dataset_symbol} article title at {slice.Time}: {article.Title}")
public override void OnData(Slice slice)
{
    var data = slice.Get<RegalyticsRegulatoryArticles>();
    if (!data.IsNullOrEmpty())
    {
        foreach (var articles in data.Values)
        {
            Log($"{Time} {articles.ToString()}");
            foreach (RegalyticsRegulatoryArticle article in articles)
            {
                Log($"{_datasetSymbol} article title at {slice.Time}: {article.Title}");
            }
        }
    }
}

Historical Data

To get historical US Regulatory Alerts data, call the History method with the dataset Symbol. If there is no data in the period you request, the history result is empty.

# DataFrame
history_df = self.History(self.dataset_symbol, 100, Resolution.Daily)

# Dataset objects
history_bars =  self.History[RegalyticsRegulatoryArticles](self.dataset_symbol, 100, Resolution.Daily)
var history = History<RegalyticsRegulatoryArticles>(_datasetSymbol, 100, Resolution.Daily);

Remove Subscriptions

To remove your subscription to US Regulatory Alerts data, call the RemoveSecurity method.

self.RemoveSecurity(self.dataset_symbol)
RemoveSecurity(_datasetSymbol);

Example Applications

The US Regulator Alters dataset enables you to accurately design strategies while mitigating regulatory risk. Examples include the following strategies:

  • Temporarily increasing/decreasing exposure to securities when new regulations are announced
  • Parsing the content of regulatory announcements to determine market or sector impact

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: