$30
1 Introduction
Here you will consider a few financial accounting ratios, as an approximation of “quantamental” models that typically take much more numerous and carefully defined financial accounting into consideration. You will then investigate profit opportunity of a quantile-based long-short scheme.
2 Understand Your Data
Read all documentation webpages for Zacks Fundamentals B. You will see they supply 6 related tables, FC, FR, MT, MKTV, SHRC and HDM [1]. The strategy coding for this assignment will be reasonably easy. The data assembly, deliberately, is the difficult part.
3 Define the Universe
Choose at least 200 tickers[2] of US equities such that[3] they satisfy the following:
• end-of-day adjusted closing prices are available , over the entire period Jan 2014 through Jan 2021
• debt/market cap ratio is greater4 than 0.1 somewhere in the period Jan 2014 through Jan 2021 (preferably more than fleetingly)
• not in the automotive, financial or insurance sector , over the entire period Jan 2014 through Jan 20215
• has feasible calculation of the ratios specified below , over the entire period Jan 2014 through Jan 2021, including for at least one PER END DATE no more than one year old. Debt ratio of zero is OK.
4 Select Financial Ratios
For this assignment, we will work with the following ratios:
• debt to market cap[4].
• return on investment[5]
• price to earnings[6]
Note that these data items are reported (at best) quarterly. Use annual numbers only when quarterly ones do not exist. As the equity price changes day-to-day, each ratio changes accordingly[7], so ultimately the time series you have will be on daily data[8]. Recall that we did not know any of these numbers until the FC/FILING DATE .
4This is about 1000-2000 companies, including ASH, VTOL, ISUN and VIVO.
5See the Quandl ZFB fields ZACKS SECTOR CODE, ZACKS X IND CODE, and the classification list
As an example, consider V , return on investment. Say that our entity had successive report dates of March 31 and June 30, V 3−31 and V 6−30 and those numbers were known on filing dates April 4 and July 7. Our equity price series, which we take (also a bit problematically) as adjusted close prices, will be Pt. We have a debt number D for each report date as well.
We can infer the “return” R for a given report date as the unknown element in
and we assume it doesn’t change day-to-day. Rather only the market value element M changes daily, and we estimate the corresponding V˜ values according to the filing dates. So for example our inferred values look like
but the next day is the filing date so we have
where and
5 Analysis
Study performance of weekly or monthly quantile trading strategies using each of these single ratios as well as your choice of least one nontrivial combination of them[9].
Set initial capital to be 10 times the gross notional of your first month’s set of positions. You may assume zero trading costs, that trading fractional shares and arbitrary positions sizes are possible, that all securities are easy to borrow with a repo rate equal to your funding rate minus 100bp[10], and that the portfolio capital is equal to the initial capital, adjusted for all realized and unrealized PL to date. Choose either a constant funding rate, or rolling 3-month LIBOR.
Analyze performance of a top-and-bottom decile trading strategy. Now rank based on changes in your ratios rather than the ratios themselves. Play with the effects of sizing positions by rank.
6 Data Example
Here is recent sample data for Eli Lilly (ticker LLY):
6.0.1 SEC Reports
6.0.2 Ratios On Key Dates
(Using MKTV/MKT VAL, FC/NET LTERM DEBT to infer operating income)
2019-10-25 5.554480 8.048674 73.467766
2019-10-28 4.352354 7.249701 79.176659
2019-12-31 3.720165 6.227653 92.631604
2020-01-02 3.698217 6.191987 93.181347
2020-02-19 3.453830 5.794008 99.774689
2020-02-20 5.225211 8.356740 77.868328
2020-03-31 5.348760 8.549034 76.069679
2020-04-01 5.438939 8.689238 74.808431
2020-05-01 4.829656 7.739485 84.245853
2020-05-04 4.877282 7.671248 92.984654 2020-06-30 4.532301 7.127691 100.062297 2020-07-01 4.556724 7.166169 99.525966
2020-07-31 4.951182 7.787704 91.596800
2020-08-03 4.105682 7.841469 96.155810
2020-09-30 4.218627 8.056110 93.581421
2020-10-01 4.327682 8.263302 91.223235
2020-10-28 4.755473 9.075546 83.017001
2020-10-29 3.782411 6.317094 97.662767 2020-12-31 2.953930 4.948484 125.053966
2021-01-04 3.013544 5.047243 122.580143
2021-02-17 2.405588 4.038046 153.559427 2021-02-18 2.381655 7.910124 86.126239
2021-03-31 2.563957 8.509632 80.002505
2021-04-01 2.585826 8.581494 79.325897
2021-04-30 2.620772 8.696299 78.268161 2021-05-03 2.293549 5.842814 123.433215
2021-06-30 1.849797 4.789536 153.043896
2021-07-01 1.836912 4.758436 154.117443
2021-08-03 1.658523 4.324818 170.694087
2021-08-04 2.167266 5.725783 170.439396
[1] It is easiest to download your data through full-table downloads. Use URLs such as https://www.quandl.com/api/v3/datatables/ZACKS/MT?qopts.export=true
[2] You can find the full list of available tickers online
[3] We will not concern ourselves with selection bias in this exercise.
[4] FR/TOT DEBT TOT EQUITY in Quandl, we pretend that it is OK to treat market capitalization and book equity as equivalent, though they are not the same thing.
[5] Based on FR/RET INVST, MKTV/MKT VAL, FC/NET LTERM DEBT,
FC/TOT LTERM DEBT. Investment is defined here as market cap plus long term debt. Use net debt where available, total debt otherwise. Quandl will report debt as NaN if it was 0.0, but be careful about net versus tot debt.
[6] Compute this based on FC/EPS DILUTED NET, BASIC NET EPS, SHRS/SHARES OUT, MKTV/MKT VAL, use the basic version (GAAP) if no diluted number is available. Treat negative earnings per share as 0.001.
[7] In many cases PER END DATE is not a trading day, so go ahead and forward fill equity price from the previous trading day.
[8] If you have memory errors when joining data, you are probably mistakenly creating a combinatorial explosion in your merging code.
[9] That is to say, at least 4 types of scores.
[10] This number may sometimes become negative.