Strategy: Dogs of the Dow
Dogs of the Dow : [Rev B.]
Important! Execute by clicking
any one symbol in the Dow 30 DataSet.
This "symbol rotation" Strategy simply invests in the 10 highest-dividend yielding stocks from a Dow 30 Industrials
at the beginning of each calendar year. When readjusting the Portfolio,
the Strategy code sells all stocks first and then repurchases. Besides
simplifying the code, the "sell all /
repurchase" method allows dividends to be effectively reinvested, and it
makes it easy to readjust each Position with an equal-dollar size.
- Upon comparing the 2017 dogs generated by Rev A. with the dogs at www.dogsofthedow.com, it was apparent that the correct method uses projected yield instead of yield for the trailing-12-months (TTM). Consequently, the script now calculates projected yield based on the first dividend in the next year if it occurs before March 1st. If this does not exist, then the calculate the yield based on the last dividend paid.
Note! To properly calculate the current dogs on December 31st, it's required to know announced dividends that will be paid in the future. Fidelity Wealth-Lab Pro's Fundamental Provider's "dividend" stream contains these data and therefore should calculate the correct set of dogs. I don't know of a provider having announced dividends for Wealth-Lab "Developer", however, the backtest prior to the current year should still give correct results barring the "note on historical results" below.
- Added an option for a "Small Dogs" strategy. Dogsofthedow.com claims that buying an equal value of the 5 lowest-price dogs generates an even better return. If you use the small dogs option, use 20% of Equity sizing.
- Option added to show the dogs as of "today", the most recent bar. The symbols and projected yield as shown on the chart.
- Removed: the option to vary the number of dogs, as it was extraneous.
- Removed: IComparer implementation and used Linq sort instead
- Minor bug fixes.
reported that the previous dividend yield calculation
was not correct, and this appears to be a bug in the WealthLab.Rules.FundamentalsRatio
method. That prompted this revision, which calculates
dividend yield based on the the per-share cash dividend
series, which extends back 10 years. Fortunately, that
gives us the ability to test "Dogs" 4 more years
than with the regular 10-Q fundamental data, although see
"Note on historical results" below.
Run the Strategy by clicking
any one symbol in the Dow 30 DataSet. Note that the dividend yield is recorded as the Entry SignalName.
- Scale: Daily
- Data Range: Most-Recent
10 Years (max). Fidelity per
share dividend series used to calculate dividend
yield are available for 10 years. For more
accurate Performance metrics, use the Date Range
option to start the test on the first trading day
following Christmas 10 years ago.
- Position Size: 10% of Equity when using the 10 "Dogs" (Positions)
default. The number of Dogs may be changed using the Strategy Parameter's
slider. Set Position Sizing accordingly. Set the margin factor
slightly higher than 1:1 so that no trades are rejected due to price gaps.
- Preferences, Backtest Settings: Apply Dividends to
Backtest Results .
- Preferences, Slippage and Round Lots: Rounds Lots disabled
Note on historical results
This Strategy does not take into account the index component changes over the years. For example,
- Previously both 'T' (AT&T) and 'SBC' (SBC Communications) were part of the Dow 30, but SBC purchased T in Nov. 2005, and then SBC changed their name and symbol to AT&T and 'T', respectively, in Dec. 2005.
- After the 2008 financial crisis, bellwethers such as AIG, C,
and GM were dismissed from the Dow components.
- Current component, Visa Inc. (V), only started trading in March 2008.
- Furthermore, CSCO became a Dow component with 0%
the results will clearly differ somewhat with published historical results for the Dogs of the Dow trading system. More information on the Dogs of the Dow strategy can be found at the