What it is
The collection of Zacks fundamental providers is part of
Quandl provider suite. The following fundamental databases for U.S. stocks are currently available:
The data is available as a Premium subscription on Quandl.com website:
Get API Access to Zacks data. Limited instant preview is available to all Wealth-Lab users.
Setting up
It's a must that
before using the provider you obtain a so called
Auth Token from Quandl.com. To obtain it, register on their website, activate your account and copy the sequence from Account Settings section of the website. To finish setup, either type it in the Data Manager's Quandl tab, or create a new static DataSet:
Enter Quandl auth token in Data Manager |
Zacks premium data
For the complete list of items in Zacks Fundamentals A and B collections (up to 200 items) check out the Fundamentals window in Wealth-Lab.
In addition, four more special fundamental items are currently supported:
- [z] Zacks_Analyst_Ratings
The item value returns the Rating Mean Value. Each item comes with additional details attached:
StrongBuys, Buys,
Holds, Sells, StrongSells, and ConsensusTargetPrice_Mean.
The item value returns the dollar dividend value.
- [z] Zacks_Earnings_Estimates
The item value returns the EPS Mean Estimate value. Each item comes with additional details attached:
EPSMedianEst,
EPSHighestEst, and EPSLowestEst.
- [z] Zacks_Earnings_Surprises
The item value returns the EPS Mean Estimate value. Each item comes with additional details attached:
EPSActual, EPSSurpriseAmountDollar, and EPSSurpriseAmountPercent.
Sample chart annotations |
The extended properties of a fundamental item are available in two forms:
- In a popup when mousing over an item on a stock chart
- In WealthScript Strategoes via the GetDetail or FormatValue methods:
For instance, here's a code snippet illustrating how to access the extra details of an analyst rating:
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()
{
const char tab = '\u0009';
string item = "[z] Zacks_Analyst_Ratings";
IList<FundamentalItem> fList = FundamentalDataItems(item);
ClearDebug();
PrintDebug(Bars.Symbol + tab + "Item Count: " + fList.Count);
foreach (FundamentalItem fi in fList)
{
PrintDebug(
fi.Date.ToShortDateString() + tab +
fi.Value.ToString() + tab +
fi.GetDetail("StrongBuys") + tab +
fi.GetDetail("Buys") + tab +
fi.GetDetail("Holds") + tab +
fi.GetDetail("Sells") + tab +
fi.GetDetail("StrongSells") + tab +
fi.GetDetail("ConsensusTargetPrice_Mean") + tab );
}
}
}
}
Example
Make sure you've collected the fundamental data before running this Strategy (Data Manager > "Update Data" tab > check
"Zacks fundamental data" > go to "DataSets" tab > click "Update DataSet"). After having updated the fundamental data, run the following code sample to print out all downloaded fundamental items available to Zacks premium data users:
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using WealthLab;
using WealthLab.Indicators;
namespace WealthLab.Strategies
{
public class MyStrategy : WealthScript
{
void PrintFundamentalItems(List<string> items)
{
const char tab = '\u0009';
foreach(var item in items )
{
IList<FundamentalItem> fList = FundamentalDataItems(item);
PrintDebug(Bars.Symbol + tab + "Item Count: " + fList.Count);
PrintDebug(item + tab + "Date " + tab + "Value" + tab + "FormatValue");
foreach (FundamentalItem fi in fList)
{
PrintDebug(fi.Date.ToShortDateString() + tab
+ fi.Value.ToString("$#,0.00")
+ tab + fi.FormatValue().Replace("\n", " ") );
}
}
}
protected override void Execute()
{
ClearDebug();
// Show the list of a fundamental data item
List<string> listOfZacksItems = new List<string>(){
"[z] Zacks_Analyst_Ratings",
"[z] Zacks_Dividend",
"[z] Zacks_Earnings_Estimates",
"[z] Zacks_Earnings_Surprises"
};
PrintFundamentalItems( listOfZacksItems );
}
}
}
Notes
The Zacks fundamental data is returned by Quandl.com for the usual tickers like "AAPL" or "IBM" whereas they use a very different convention when returning the static data e.g. "GOOG/NASDAQ_AAPL" or "GOOG/NYSE_IBM". Because the symbols don't match, you can not chart Zacks fundamental items using Quandl static data. Fortunately, this is not an issue: firstly, they take the data off of Yahoo and Google for which there already are static data providers, and so you can simply use any other Wealth-Lab provider from the wide choice of available in the Extensions section.