Happy Holidays -- new v5.16.1225
Huge revision: qdl-libor-fed-funds.ipynb re Fed rate hikes -- major clarification using transposition and tenor assumptions. Include 2016-12-14 Fed rate hike, and 2017 policy forecast; please see: https://git.io/fedfunds for details. Market is currently aligned with Fed's announced intention of three 25 bp rate hikes during 2017. Implied Fed Funds one-year forward: 1.15%
Polished https://git.io/gdpspx -- We examine the US gross domestic product's relationship to the US equity market (S&P500), in real terms. Forecasts for both are demonstrated using Holt-Winters time-series model. We derive the most likely range for real GDP growth, and identify extreme equity valuations aside from inflationary pressures.
Our analysis would suggest the following back of the envelope calculation: say, SPX nominally has an annual gain of 6% and inflation stands at 2%, then the real SPX gain is 4%. Take half of that to arrive at real GDP growth: 2%. Helpful because GDP numbers are announced after months of lag.
plot(get(w4cotr_equities))which derives from CFTC Commitment of Traders Reports for combined pool of SP and ES futures and options representative of the S&P 500:
@lnsongxf hi, the preferred way for installation is just to clone the project under a directory in your PYTHONPATH. Best way to establish that editable variable is installing Anaconda beforehand which will resolve complex package dependencies. Then https://git.io/fecon-intro will help. Please message me if there are any other problems -- will revise the documentation accordingly.
Another way is non-native but direct cross-platform, Docker container : https://hub.docker.com/r/rsvp/fecon235/ -- Anaconda and git are pre-installed so just pull from origin/master to get latest fecon235 updates.
Quick look at equities in France since 2014, which covers Hollande malaise, Le Pen market fears, and Macron as President:
>>> fr = get('s4ewq') :: Retrieved from Google Finance: EWQ >>> fr14 = fr['2014':] >>> roundit(gemrat(fr14)) [-0.6532, 1.6122, 19.0886, 15.7456, 256, 857] >>> plot(fr14, 'FR_eq_2014-Macron')
The geometric mean rate is sub-zero, despite recent rally. The volatility is reasonable 19%, but the kurtosis is rather high at 15.7 (vs. 3 for a Gaussian). The function gemrat will be included in our next release.
It is very interesting that Berkshire Hathaway has accumulated more than 100 million shares of Apple recently, which has a geometric mean rate of 16.6% over the last ten years -- extraordinary growth:
>>> gm2gem(get('s4aapl')) Geometric mean rate: 16.5693 Arithmetic mean rate: 22.4526 sigma: 32.8234 kurtosis (Pearson): 10.3151 GM(2), sigma1: 24.0206 GM(2), sigma2: 82.0585 GM(2), q: 0.0813 GM(2), b: 2.5 yearly: 256 N: 2512
and the above does not include dividend yield of 1.6%. The Gaussian mixture model deduces two volatilities: 24% and 82%, the latter occurring with probability 0.0813.
In contrast, BRK.A pays no dividends and has less a third of Apple's geometric growth (only 4.7% over the same period). It seems strange for value equities that Berkshire returns exhibit extremely high kurtosis of 21.4 (which compares to 3 for an ordinary Gaussian, and 10.3 for Apple).
gemrat()function, see https://git.io/gmix -- the section on monthly geometric returns is insightful for asset allocation: comparison across real estate, stocks, bonds, gold, and FX from the viewpoint of USD-based investor.
Our inflation measure is a composite of CPI and PCE, both core and headline versions for each.
>>> infl = get(m4infl) >>> roundit(gemrat(infl['2015':], yearly=12)) [1.6045, 1.6052, 0.3525, 5.8699, 12, 28]
The volatility is so low (0.35%) that the geometric and arithmetic rates of inflation are very close: 1.6%. The Fed target is 2%, core PCE basis, so they are currently off by about 1 standard deviation. Yellen in her recent testimony seemed puzzled given the labor market situation.
To score the Federal Reserve's performance under its dual mandate for inflation and unemployment, rerun this Jupyter notebook using current data, https://git.io/fed
Re: #2 -- Git shell script to list commit dates, given path/filename(s)
The system's modification time for a committed file may not
be the actual commit date and time! This can be verified
if you checkout an older branch and switch back.
There is no nice builtin git utility, so I wrote one: