Super Bowl Indicator
How effective is the Super Bowl in predicting market returns? Test this stock market theory, going back to the very first Super Bowl.
Introduction
The Super Bowl Indicator, also known as the Stock Market Predictor, is a popular myth that suggests that the outcome of the Super Bowl can predict the direction of the stock market for the coming year.
This theory states that:
- If a team from the American Football Conference (AFC) wins, it is a bearish signal for the stock market
- If a team from the National Football Conference (NFC) wins, it is a bullish signal for the stock market
In this tutorial, we will put this theory to test, by building our very own Super Bowl Indicator.
Along the way, we will examine the underlying assumptions and principles, and evaluate its accuracy and reliability as a predictor of stock market performance.
Volatility Box Invite
We are TOS Indicators.com, home of the Volatility Box.
The Volatility Box is our secret tool, to help us consistently profit from the market place. We’re a small team, and we spend hours every day, after the market close, doing nothing but studying thousands of data points to keep improving and perfecting the Volatility Box price ranges.
We have two different Volatility Boxes - a Futures Volatility Box and a Stock Volatility Box.
Futures Volatility Box - Trade Major Markets With an Edge
Designed For: Futures, Micro-Futures and Index Market Traders
Supported Models: Hourly Volatility Box models
Supported Markets: 10 Major Futures Markets
The Futures Volatility Box comes with:
- 5 Volatility Models for each market
- Support for 10 Futures Markets (/ES, /NQ, /YM, /RTY, /CL, /GC, /SI, /ZB, /HG, /NG)
- Video Setup Guide
- Trade Plan
- Access to all members-only resources, including Squeeze Course
Learn More About the Futures Volatility Box
Trade futures and micro futures with a consistent volatility edge
Stock Volatility Box - Powerful Web Based Volatility Platform
Designed For: Stock and Options Traders
Supported Models: Hourly and Daily Volatility Box models
Supported Markets: 10,000+ Stocks and ETFs (new markets added frequently)
A Stock Volatility Box membership includes access to:
- Live Scanner - A powerful scanner we've built from scratch, to scan 10,000 symbols every 2 seconds for new volatility breaches
- Dashboard - A quick and easy way to view daily volatility model levels online
- Short Interest Scanner - Short interest, Squeeze, and EMA data to find short squeezes
- Squeeze Course - All of our proprietary squeeze tools, including robust backtesters
- All Members Only Indicators - We don't nickel and dime you. Everything really is included.
- And much more!
Learn More About the Stock Volatility Box
Trade stocks and options with a consistent volatility edge
Step-by-Step Coding Guide for the Super Bowl Indicator
Step 1: Setting Up Inputs
We begin by creating inputs in ThinkOrSwim. These inputs provide flexibility, allowing you to toggle chart bubbles and labels on or off, depending on what you wish to visualize. Here’s how you set these inputs:
input chartBubblesOn = yes;
input labelsOn = yes;
These inputs are Boolean types, defaulted to “yes,” enabling both chart bubbles and labels on the chart. Later on, we’ll use these variables to control which features are displayed.
Step 2: Defining Conference Values
Next, we define constant values to represent the AFC and NFC conferences. These will make it easier to distinguish which conference each Super Bowl winner belongs to, enabling more straightforward comparisons.
def nfc = 1;
def afc = -1;
These simple definitions will help us set up the rest of the code for determining Super Bowl winners based on conference affiliations.
Step 3: Classifying Super Bowl Winners by Year
In this step, we’ll assign each Super Bowl winner to the appropriate conference based on the year. This block uses conditional statements to tie each year to either the AFC or NFC, which will allow us to visualize changes over time. You can use data from an external source, like Wikipedia, to ensure accuracy when inputting the winning conferences.
def SuperBowlWinner = if getYear() == 2024 and getYear()[-1] == 2025 then afc
else if getYear() == 2023 and getYear()[-1] == 2024 then afc
...
else if getYear() == 1967 and getYear()[-1] == 1968 then nfc
else 0;
This code block runs through each year and assigns the appropriate value (AFC or NFC) based on the Super Bowl’s outcome. You’ll need to ensure that all years from 1967 onward are accounted for, allowing for comprehensive analysis.
Step 4: Calculating Yearly Market Stats
Now, let’s add code to calculate the market’s annual percentage change. This is crucial for understanding how each Super Bowl outcome correlates with market performance:
def yearChange = (close(period = AggregationPeriod.Year) - open(period = AggregationPeriod.Year))/(open(period = AggregationPeriod.Year));
def totalAFCWinners = TotalSum(SuperBowlWinner == afc);
def totalNFCWinners = TotalSum(SuperBowlWinner == nfc);
def AFCPctChange = if SuperBowlWinner == afc then yearChange else 0;
def NFCPctChange = if SuperBowlWinner == nfc then yearChange else 0;
def averageAFCPctChange = TotalSum(AFCPctChange)/totalAFCWinners;
def averageNFCPctChange = TotalSum(NFCPctChange)/totalNFCWinners;
By calculating the yearChange
, we can analyze each year’s performance and store the results for AFC and NFC teams separately. This step provides valuable data on annual market trends and the average percentage change for each conference’s winning years.
Step 5: Adding Chart Bubbles
Chart bubbles enhance the visual appeal and functionality of the Super Bowl Indicator. With bubbles, you can quickly identify Super Bowl winners and corresponding market changes each year. Here’s the code to add these bubbles:
AddChartBubble(chartBubblesOn and SuperBowlWinner, close, "Winner: " + if SuperBowlWinner == afc then "AFC \nYear Change: " + AsPercent(yearChange) else "NFC \nYear Change: " + AsPercent(yearChange), if SuperBowlWinner == afc then color.pink else color.cyan);
This line creates a bubble that displays the conference of the Super Bowl winner, along with the market’s percentage change for that year. You can modify the colors to your preference, making it even easier to distinguish AFC and NFC years.
Step 6: Adding Labels for Total Wins and Averages
With labels, we can summarize the total number of wins for each conference and the average percentage changes. This step provides a high-level view of the market impact by Super Bowl outcomes.
AddLabel(labelsOn, "AFC Wins: " + totalAFCWinners + " | Avg Pct: " + AsPercent(averageAFCPctChange), color.pink);
AddLabel(labelsOn, "NFC Wins: " + totalNFCWinners + " | Avg Pct: " + AsPercent(averageNFCPctChange), color.cyan);
Labels condense all the data into a more digestible format, making it easy to see overall trends at a glance. This feature provides immediate context for both AFC and NFC performance over the years.
Step 7: Building a Custom Excel Sheet (Optional)
If you want to expand the analysis, consider creating a custom Excel sheet. Enter historical Super Bowl winners, categorizing them by conference. Then, bring this data into ThinkOrSwim for analysis. By using Excel, you can easily update the data annually and even experiment with other variables.
For this process, set up columns in Excel for the year, conference, and market change. Use ThinkOrSwim’s import function to streamline the transition from Excel to the platform.
Step 8: Calculating Averages Manually
In this part, we create our own averaging function for more flexibility. Rather than using built-in ThinkOrSwim functions, this manual approach gives greater control over how data is processed, especially for separating AFC and NFC years:
def averageAFCPctChange = TotalSum(AFCPctChange)/totalAFCWinners;
def averageNFCPctChange = TotalSum(NFCPctChange)/totalNFCWinners;
This method ensures that the averages reflect only the years in which each conference won the Super Bowl, allowing for more precise analysis.
Step 9: Testing and Fine-Tuning
Before finalizing the indicator, test it on different time frames and chart types. You might find certain settings reveal more about the market’s reaction to Super Bowl outcomes. Experiment with other markets, such as the Dow Jones or NASDAQ, to see how they align with the Super Bowl theory.
Adjust the input variables and test on various periods. These tests will show whether the indicator holds any significant insights or is purely coincidental fun.
Final Thoughts and Analysis
By completing this tutorial, you’ve not only built a fully functioning Super Bowl Indicator, but you’ve also gained insights into the ThinkOrSwim platform’s data handling capabilities. With the flexibility of inputs, chart bubbles, and labels, this indicator is a unique tool for exploring historical trends based on a famous football event.
Remember, the Super Bowl Indicator is meant for entertainment rather than scientific analysis. The purpose here is to help you explore new coding techniques and see how even non-traditional data points can be visualized in ThinkOrSwim. You can find the full script and Excel data template on our website for further experimentation.
downloads
Download the Super Bowl Indicator for ThinkorSwim.
The download contains a STUDY.ts file, which you can directly import into your ThinkOrSwim platform.
Download Indicator
Download the Super Bowl Indicator for ThinkorSwim.
The download contains a STUDY.ts file, which you can directly import into your ThinkOrSwim platform.