How much does the Federal Reserve influence movement in the Stock Market?

Vikrant Kumar
The Startup
Published in
7 min readApr 27, 2020

An analysis on the effect of changes in the Federal Funds Rate on the US Stock Market

I’ve always been interested in a good story. Bonus points if it’s related to finance.

I learnt about the Federal Reserve (a.k.a the ‘Fed’) in 2014 when I took my first finance course at university, and the stock market has intrigued me ever since I was in high school. I’ve always wondered if rate changes made by the Fed is a major factor that affects stock market volatility, or if there’s other more substantial events that influence day to day movement. This question really came to head in December 2018 when the Fed decided to raise rates for the fourth time, and the market took a dive on the news. I chalked it as a one-off event and did not question it till late-February of 2020 when the Fed slashed rates by 50 basis points, and markets fell once again. These intriguing movements drove me to try and visualize trends in the stock market and how it coincides with rate decisions made by the Fed. Before proceeding further, here are some terms that may need some explaining:

Federal Open Market Committee (FOMC): The Federal Open Market Committee (FOMC) is the part of the Federal Reserve that determines the direction of monetary policy. The FOMC meets several times a year to discuss whether to maintain or change current policy.

Federal Funds Rate: The federal funds rate refers to the interest rate that banks charge each other on the overnight basis for the excess cash in their reserve balances.

Data Gathering & Preparation

I decided to use the Standards and Poor’s Index (S&P500) to capture the majority of the US stock market. The data for S&P500 index was retrieved from Investing.com. Once downloaded, the structure was as follows:

Output after importing the dataset in Jupyter Notebook

I web-scraped the FOMC historical dates by following the instructions on the R-bloggers post for scraping FOMC dates directly from the official webpage. The output of the web-scraped data was as follows:

Output after importing the dataset in Jupyter Notebook

Although web-scraping provided me the dates of Fed meetings and whether meetings were scheduled or not, I had yet to find a reliable source for the federal funds rate. I eventually found the data on FRED Economic Data:

Output after importing the dataset in Jupyter Notebook

Upon closer inspection, I realized that my job was not yet done. The dataset contained rates on the first day of the month from 1954 onwards, but majority of the Fed meetings weren’t scheduled on the same dates. I decided to merge the two datasets on month and year, to ensure that I had the rates closest to the meeting date. Post merging, calculated the previous and next rate for each meeting date, allowing me to analyze the direction of change in rate. Once I had the previous, current and next rate, I could gauge the sentiment behind a rate change (if applicable). Broadly speaking, the Fed has three choices when it comes to the Fed Funds Rate: Hawkish (increase rate) move, Dovish (decrease rate) move, or a Hold (keeping rates constant). I defined my ‘Sentiment’ column the same way, the only caveat being that I took a difference of less than 5 basis points (0.05%) between two meetings to be a Hold sentiment (the reason being that the Fed currently makes changes of around 25bps in any direction and I wanted to keep the trend constant for historical data).

Calculate Sentiment Column

The final result of Fed Funds rate along with associated sentiment behind rate cut is as follows:

Similarly, for the S&P500 dataset, I added some additional measures to view daily movement. I measured DailyVolatility as the percentage change of the S&P500 index between the opening and closing price. I measured MaxShift as the percentage change of the S&P500 index between the intra-day high and intra-day low for a given day.

Data Analysis

Now that most of the data is ready, it’s time to plot some charts! Let’s confirm that the S&P500 dataset trends as expected:

Daily chart of S&P500 Index over Time

That seems to make sense, one can clearly see the historic 2000 dot com bubble, 2008 financial meltdown, and the subsequent longest bull-market run till February 2020. Let’s look at DailyVolatility to gather further insights:

Daily Volatility of S&P500 index over Time

We can see the Black Monday crash in 1987, and the volatile recessions of 2000s. I used the absolute measure of DailyVolatility to avoid any cancellation effect from taking place in the analysis. Before I began diving into the Fed Funds rate, I set a baseline trend against which I could check my analysis. Plotting the MaxShift and absolute DailyVolatility along with a local regression (loess) smoothing of the two data points over time gave me a starting point to compare my results.

Daily Volatility (blue) and Max. Shift (orange) with loess smoothing (in red and green respectively)

Looking at this visual, we can see that volatility tends to hover around 0.5% and maximum daily shift moves between 1%–2% and both measures have been trending downwards since 2010 (possibly due to the decade-long bull market that we’ve experienced).

To ensure that this analysis is easy to follow, I decided to focus solely on DailyVolatility to measure significant difference. The analysis, however, does not change if one uses MaxShift as a measure instead of DailyVolatility. A bar plot of DailyVolatility with the median value will also be useful in this analysis so that one does not have to eyeball the smoothed line for comparison.

Daily Volatility of S&P500 index along with median value (red) of the dataset to facilitate comparison

Combining Fed Sentiment and S&P500

Since I added a ‘Sentiment’ column with the associated Fed decision, I split the S&P500 on the Fed meeting dates and plot the volatility along with the max shift as follows:

The output for movement of S&P500 index during dovish decision is attached below(the remaining visuals are located on my Github page if interested):

Daily Volatility and smoothing of S&P500 Volatility during Dovish Fed Sentiment
Daily Volatility and median (red) of S&P500 Volatility during Dovish Fed Sentiment

Recessions

Similarly, we can look at the movement of the S&P500 during recessions, which was downloaded from the St. Louis Fed website:

Daily Volatility of S&P500 index during periods of recession

One can tell from the visual that the 2008 Great Recession experienced some of the most volatile periods in history (Black Monday is missing from this visual since it did not occur during a recession). I split the Fed decisions dataset once again during periods of recession and observed the metrics on the S&P500 index. The bar plot helped shed some light on the index during this time:

Scheduled & Unscheduled Fed Meeting Decisions

Similar to the visuals above, we can also view the interactions of Fed decisions and the S&P500 index during scheduled and unscheduled Fed meetings:

Daily Volatility of S&P500 index during unscheduled Fed meetings when rates were held
Daily Volatility of S&P500 index during unscheduled Fed meetings when rates were held
Daily Volatility of S&P500 index during scheduled Fed meetings when rates were held
Daily Volatility and median of S&P500 index during scheduled Fed meetings when rates were held

We can see from the smoothed lines and median that, barring the Black Monday black swan effect, volatility tends to stay within a certain range. This led me to believe that although the actions/decisions made by the Fed does have a small effect on the S&P500, it is not wholly responsible for orchestrating the major drops/rallies in the stock market.

Key Takeaways

Long-term volatility on the S&P500 hovers around 0.5% (median volatility: 0.458%) and it differs across the scenarios presented above. However, the difference in median volatility is not significant and trends in the same magnitude. The market may showcase some volatility on major Fed decisions, but it is not the only factor that contributes to swings in the market.

The last few weeks have been historic to say the least — the stock market has witnessed unexpected “circuit-breaker” events in extreme proximity to each other, with key economic trends hitting unforeseen levels. It provides us both, an opportunity to analyze and learn from these market conditions, and a humbling lesson at the same time — if it were so easy to consistently predict moves in the stock market, everyone would be doing it.

Thank you for reading! Please leave any suggestions/feedback that may help with this analysis.

Check my code on Github for the code and remaining plots: https://github.com/thenamesvik/FedFundsSP500

--

--

Vikrant Kumar
The Startup

Data Scientist within the financial industry focused on analyzing market trends, financial optimization models and providing actionable insights to stakeholders