About Insider Trading

Corporate insiders are required to disclose purchases or sales of their own stock within two business days of when they occur. Using these disclosures, we collect data on insider trading activity, which can give hints on whether executives are bullish or bearish on their own companies. Here is a blog that we did on this dataset: https://www.quiverquant.com/blog/081121

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.


About Quiver Quantitative

Quiver Quantitative was founded by two college students in February 2020 with the goal of bridging the information gap between Wall Street and non-professional investors. Quiver allows retail investors to tap into the power of big data and have access to actionable, easy to interpret data that hasn’t already been dissected by Wall Street.


About QuantConnect

QuantConnect was founded in 2012 to serve quants everywhere with the best possible algorithmic trading technology. Seeking to disrupt a notoriously closed-source industry, QuantConnect takes a radically open-source approach to algorithmic trading. Through the QuantConnect web platform, more than 50,000 quants are served every month.


Algorithm Example

from AlgorithmImports import *
from QuantConnect.DataSource import *

class QuiverInsiderTradingAlgorithm(QCAlgorithm):
    
    def initialize(self):
        self.set_start_date(2022, 2, 1)   #Set Start Date
        self.set_end_date(2022, 2, 28)    #Set End Date
        self.aapl = self.add_equity("AAPL", Resolution.DAILY).symbol
        # Subscribe to insider trade data for AAPL to generate trade signal
        self.dataset_symbol = self.add_data(QuiverInsiderTrading, self.aapl).symbol

        # history request
        history = self.history(self.dataset_symbol, 10, Resolution.DAILY)
        self.debug(f"We got {len(history)} items from historical data request of {self.dataset_symbol}.")

    def on_data(self, slice: Slice) -> None:
        # Trade only base on insider trade data
        for insider_trades in slice.Get(QuiverInsiderTrading).values():
            for insider_trade in insider_trades:
                # Any buy insider trade will result in buying, assuming insider have confidence in stock price with more informed information and projection
                if insider_trade.shares > 0:
                    self.set_holdings(self.symbol, 1)
                # Any sell insider trade will result in liquidation, assuming insiders believe the stock price has reached maximum or poor future confidence
                else:
                    self.liquidate(self.symbol)

Example Applications

The Quiver Quantitative Insider Trading dataset enables researchers to create strategies using the latest information on insider trading activity. Examples include: