What it is
This fundamental provider downloads the complete historical insider transaction data for U.S. stocks available at
OpenInsider.
Part of MS123 Extra Fundamental/News Providers.
Sample chart annotations |
The provider only considers meaningful transactions. Gifts, grants, are automatically filtered out. Each insider transaction record comes with extra details attached: actual trade date, filed date, insider name/firm, relationship (i.e. job title), total proceeds. They are available in two forms:
- In a popup when mousing over an Insider Transaction popup on a stock chart
- In WealthScript Strategies via the GetDetail or FormatValue methods. Available field names for the extra details are: officer, relationship, proceeds, psdate, and remark.
The optional
remark field (added in release 2016.06) may include an additional bit of information that indicates one or a combination of factors: amended filing; derivative transaction (option exercise); error filing; multiple insider transactions summarized.
Reported vs. actual dates
Unlike the many sources of insider transaction information out there, this provider is using
"filed dates" i.e. the actual date of reporting the transaction by the insider. According to a regulation, insiders have two business days to report their trades. However, to use the widely available elsewhere "trade date" in backtesting you'd have to look over the insider's shoulder when she closes the deal. Obviously, this is virtually impossible to know before they actually file their trades with the SEC. Consequently, accurate backtesting of insider transactions implies that you rely on filed dates.
The actual transaction date, of course, is not lost and is also present in the data. Here's an example of obtaining it in a WealthScript Strategy via
FormatValue. Make sure you've collected the fundamental data before running this Strategy (Data Manager > Update Data tab > check "Insider Transactions" > DataSets tab > "Update DataSet"):
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using WealthLab;
using WealthLab.Indicators;
namespace WealthLab.Strategies
{
public class MyStrategy : WealthScript
{
protected override void Execute()
{
// Illustrates the usage of FormatValue using the fundamental data item "insider transaction"
const char tab = '\u0009';
string item = "[oi] insider transaction";
IList<FundamentalItem> fList = FundamentalDataItems(item);
ClearDebug();
PrintDebug(Bars.Symbol + tab + "Item Count: " + fList.Count);
PrintDebug("Insider Transaction");
foreach (FundamentalItem fi in fList)
{
PrintDebug(fi.FormatValue().Replace("\n", " ") );
}
}
}
}