Trading signal from Fed minutes?

Can Fed minutes be a trading signal even after 3 weeks of delay?

Chuan Bai
Towards Data Science

--

Social network sentiments, as well as news sentiment, has been widely used to drive market movements in real-time. Dozens of companies have established live sentiment analysis feed for trading purposes. However, I found that there is a gap in analysing FED reserve’s FOMC (Federal Open Market Committee) minutes.

Background

FOMC is the part of FED that is in charge of engaging with the market directly. When the Fed wants to perform QE (Quantitative Easing), it is the FOMC that actually operates. With such powerful backing, it is not surprised that Mr Market follows the press release of each meeting closely. However, Mr Market is only responding to Fed operations for a few days at most, and lost its memory and moved on to non-farm payroll, PMI, GDP etc.

The Fed is in charge of two important goals

  • Keep inflation at a target rate (2%)
  • Maximise employment rate

These goals have a long term impact on the economy. I then start to wonder whether the sentiment in FOMC minutes actually have a longer-term impact on the economy.

Once an FOMC meeting has been held, there are three key documents produced from it, minutes and transcript. When the meeting concludes on the day, a statement (Sep 2019)is released and this is when Mr Market reacts and readjust itself to any action / no action from FOMC. Three weeks later, minutes (Sep 2019)of the meeting is released, including some key discussions during the meeting. And after five years, the full transcript (Dec 2013) of the FOMC meeting will be released.

When I look at these three documents, the press statement is too short and can be analysed manually easily. It doesn’t give much of a context to why it reached the conclusion. The full transcript is 5 years away after the original meeting. Considering the whole economic cycle only lasts about 5 years. It’s really hard to imagine it would provide much value as a trading signal. This leads me to take a detailed look at the minutes.

Line up the minutes

By going back in the full history of all the minutes, I found that the early minutes of the FOMC is very short indeed, a lot of them has a similar length to the current press release. Take a look at this FOMC minutes for June 1937.

For the early years, they are only available in PDF format, so I have used Tika-python (wrapping Tesseract OCR) to extract the text from PDF. First I have plotted the average word count and average sentence count of all the minutes. The minutes go back to 1936, but I found that it’s not very informative, so ignored. As we can see, the Fed has become very wordy over time, especially after the subprime crisis in 2008.

Then I have used a quick sentiment analysis library TextBlob to perform a quick sanity check whether it does fluctuate enough over time. Based on previous text analysis experience, professional articles tend to have a small variation in sentiment.

Here I have plotted the raw sentiment of each individual minutes. We can see that the sentiment is very noisy when the amount of words in the minutes is below 2500 or before 1970. We can see that the overall range of sentiment is quite small, fluctuates between 0.05 and 0.1, whereas the full range is -1 and 1. With this raw sentiment, the graph is very noisy and hard to observe any general trend. Hence I have put a rolling window of 10 minutes and calculate their mean of sentiment.

Some interesting trends emerge as we smooth out the noise in sentiment. We can see some clear trends. The 1973 and 1979 oil crisis has been reflected in the sentiment, as well as the subprime crisis.

We can see that there are a lot of noises in the original text, these are because of the non-policy related text has ruined the stats. This could be the list of attendees in the meeting, voting description etc. Hence I have used guideposts to allow us to focus on the policy text alone. (See yellow highlight)

After the cropping of text, standard NLP preprocessing work has been carried out like Lemmatization, this results in a smoother result for the sentiment.

Load up the market

I have used S&P 500 as a proxy to the general market, since it covers a wide range of industries unlike Dow Jones, Nasdaq. Thanks to Yahoo! Finance, I was able to load up its daily history back to 1950 (part of the reason I start analysis from 1950).

https://www.macrotrends.net/2324/sp-500-historical-chart-data

However, we are only interested in the short term return after any given date. The best way to proxy this is by using the cumulative product of the daily return over a period of time. The chart below shows the smoothed sentiment vs the cumulative return of the past 200 trading days (approximately 250 days a year). It seems that there is some correlation between the two.

Before we go into further analysis, we probably want to change the dictionary that we use for analysing the financial text. Since the Pattern library included in the TextBlob is mainly sourced from the internet, news, and social network. It may not be the best library for financial text analysis. There is a library called Loughran and McDonald Dictionary, which is extracted from the US 10K annual report. It may be a more relevant library to use in this case, and the correlation between the market agrees with it.

For visualisation, I would like to immediately tell whether the sentiment is correlated with the market. In addition, I would like to shift the market forward and backwards to check the correlation after the shift. This will tell me whether the signal is leading or lagging the market.

To achieve this goal, we will need to shift the time series multiple steps and plot many graphs, which could become overwhelming to look at.

This helper method solves this issue by shifting the market back and forth multiple steps and recalculate the correlation between the two time-series. While doing so, we also calculate the p-value it needs in order for the correlation to become statistically significant. As a result, this graph combines three different charts.

  1. S&P 500 return overlay with FED sentiment (Plot above)
  2. Correlation between S&P 500 and FED sentiment after shifting the market N steps (Plot below in blue bars)
  3. The p-value for correlation to be statistically meaningful. If the red bar is higher than the blue bar, it means the correlation is too low to be statistically meaningful. (Plot below in red bars)

In this particular case, we can tell immediately that the sentiment is a lagging indicator compared to the market. The correlation plateaus after 5 periods of delay for the market. In other words, the sentiment in the minutes needs roughly 6 -7 month delay to fully adjust to the market’s reaction. Based on this we can say the market is very efficient indeed.

Can we do better?

It’s very disappointing yet not surprised to see that the sentiment is not a leading indicator to the market. Let’s bring out a bigger gun in NLP processing — LDA (Latent Dirichlet Allocation), topic extraction model. It allows us to extract abstract concepts based on the bag-of-words method.

Initially, we have a mapping between the articles and its bag-of words.

Can’t remember where I got this from, but it’s really nice illustration!

LDA allows us to specify how many topics we think there are. And it tries to insert an extra layer between the words and our articles to reduce the connection complexity between the articles and words.

Hence this creates some abstract concepts that groups related words into topics. Each of these topics can be calculated as the sum of the weighting of different words. For example, a topic can be formulated as:

0.047*”rate” + 0.024*”market” + 0.016*”period” + 0.015*”decline” + 0.015*”treasury” + 0.014*”interest”

The question now becomes, how do I decide how many topics should I use. Although LDA is able to create the topics, it doesn’t really understand what each topic is about. Here, I have used pyLDAvis library to visualise the topic modelling result, reducing the overlapping between different topics, trying to have an equally sized topic. After several iterations of trial and error, I have settled on a model that looks like this.

In the end, I have asked LDA to create 6 different topics, because it has a relatively equal topic distribution and mostly overlapping topics. However, this still doesn’t solve the problem of knowing what each topic is about.

For this, I have printed out the top-ranked sentences on each topic and try to get a sense of what this topic is trying to describe.

Topic 1:

Short-term market interest rates declined substantially on balance  over the meeting interval: in private short-term markets, yields fell 2 to 3-1/2 percentage points; in the Treasury bill market, yields fell some what less, about 3/4 to 2 percentage points, as the Treasury raised large  amounts of new money through bill auctions and heavy seasonal issuance of  cash management bills.

Topic 2:

M1 comprises demand deposits at commercial banks and thrift institutions, currency in circulation, travellers checks, negotiable orders of withdrawal (NOW) and automatic transfer service (ATS) accounts at banks and thrift institutions, and credit union share draft accounts.

By going through this exercise for all topics, I have given the topics their names and printed out their top 10 keywords.

Moment of Truth

Finally, we have arrived at the point where we can plot the sentiment in each topic against the market.

For the interest rate, it’s very hard to see much correlation between the sentiment and the market, but it feels like a major shift in interest rate sentiment will lead to a big market movement, but the direction is less clear. Since the correlation seems to be positive after 2000, but negatively correlated before 2000.

For economic outlook, the sentiment definitely shows some correlation with the market movement. However, it’s not very stable over time, sometimes it leads the market, sometimes it lags. But the correlation seems to plateau after 0 periods, i.e. lagging the market in general.

With FOMC policy, it looks very much like an economic outlook topic. it doesn’t really have a clear indication on whether the signal is leading or lagging.

With international trade and labour/domestic market, the sentiment is definitely lagging the market. The correlation suggests that the full impact of the market is only reflected fully in the sentiment roughly 7 meetings later, i.e. after nearly a full year worth of delay. This is probably due to the smoothing operation that I have used on the sentiment analysis. I have smoothed the sentiment over 10 meetings.

The most interest chart is the money supply topic. It has a weak but meaningful negative correlation with the market, 3 meetings before the market start to catch up on the trend in sentiment. This leading signal is valid even after smoothing of sentiment over the last 10 meetings. I believe this is the fact that the open market operation is an ongoing process that surpasses Mr Market’s memory span. Hence the market has not fully priced in the subsequent operations in the months following.

Hopefully, this work brings some ideas on how you would perform sentiment or general text analysis. Feel free to leave comments below or contact me directly.

Note from Towards Data Science’s editors: While we allow independent authors to publish articles in accordance with our rules and guidelines, we do not endorse each author’s contribution. You should not rely on an author’s works without seeking professional advice. See our Reader Terms for details.

--

--