Rainmaker Trades

Rainmaker Trades

Share this post

Rainmaker Trades
Rainmaker Trades
Does 'Smart Money' Really Outperform? Testing a COT Trading Strategy
Copy link
Facebook
Email
Notes
More

Does 'Smart Money' Really Outperform? Testing a COT Trading Strategy

A Data-Driven Approach to Following the "Smart Money" in Stocks and Bonds

Rainmaker's avatar
Rainmaker
Apr 19, 2025
∙ Paid
2

Share this post

Rainmaker Trades
Rainmaker Trades
Does 'Smart Money' Really Outperform? Testing a COT Trading Strategy
Copy link
Facebook
Email
Notes
More
Share

In today’s post, I’ll attempt to create an indicator based on the Commitment of Traders report to gauge how the "smart money" is positioned in the stock market. Here, "smart money" refers to asset managers, hedge funds, and similar institutional traders. The premise is that over mid- and long-term horizons, these traders tend to outperform retail investors due to more sophisticated research methods, better risk management, and superior access to data.

The logic behind this indicator draws from a paper by Raymond Micaletti, freely available on SSRN. In this post, I’ll recreate the indicator and share my thoughts on it. As usual, I’ll also provide the full code so you can modify it to suit your needs.

Rainmaker Trades is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.

What is the Commitment of Traders report?

First, let’s review what the Commitment of Traders (COT) report is and how to access it. Published weekly by the Commodity Futures Trading Commission (CFTC)—the U.S. agency regulating commodity futures and options markets—the COT report breaks down open interest in U.S. futures and options markets. It offers valuable insights into the positioning of different trader groups, helping market participants analyze trends, sentiment, and potential price movements.

The report is released every Friday at 3:30 PM Eastern Time, reflecting data as of the preceding Tuesday. If a U.S. holiday falls on a Friday, publication may be delayed until the following week.

The COT report covers futures and options markets across asset classes, including commodities (e.g., oil, gold, wheat), currencies, interest rates, and stock indices. By examining the net long or short positions of various trader groups, investors and analysts can gauge market sentiment.

Open interest (OI) is a key metric in futures trading that represents the total number of outstanding or "open" contracts for a particular futures or options market at any given time. Unlike trading volume, which measures the number of contracts traded in a day, open interest tracks the number of active contracts that have not yet been settled, exercised, or closed out.

How Open Interest Works
  • When a new buyer and seller enter into a futures contract, open interest increases by one.

  • If an existing trader closes their position (by offsetting it with an opposite trade), open interest decreases by one.

  • If a trader transfers their position to another trader (e.g., selling to a new buyer), open interest remains unchanged because no new contracts are created or closed.

For this post, we’ll use the Traders in Financial Futures (TFF) report, which focuses on financial contracts like stock indexes and bonds. The TFF report categorizes open interest into five groups: Dealer, Asset Manager, Leveraged Money, Other Reportables, and Non-Reportables. Below is an example of what it looks like on the website.

The report we need is also available through an API and you don’t need an account to access it.

Accessing the Traders in Financial Futures report

In the code below, we install the necessary dependencies and pull the publicly available data. For this indicator, we only need data for S&P 500 futures, 10-year note futures, and U.S. Treasury (UST) bond futures.

pip install sodapy
import pandas as pd
from sodapy import Socrata
client = Socrata("publicreporting.cftc.gov", None)
# We define only the columns we need
select_str = "contract_market_name, report_date_as_yyyy_mm_dd, yyyy_report_week_ww, pct_of_oi_tot_rept_long_all, pct_of_oi_tot_rept_short, pct_of_oi_nonrept_long_all, pct_of_oi_nonrept_short_all"

# We only pull futures data for S&P 500, 10-y note and UST Bond
where_str = "contract_market_name='S&P 500 Consolidated' OR contract_market_name='UST BOND' OR contract_market_name='UST 10Y NOTE'"

results = client.get("yw9f-hn96", select=select_str, where=where_str,
                     order="report_date_as_yyyy_mm_dd ASC", limit=40000)

results_df = pd.DataFrame.from_records(results)

Now let’s take a look at the data we downloaded and I will explain what we are looking at.

results_df

The dataset includes weekly position data for:

  • S&P 500 futures

  • Long-duration U.S. Treasury bonds

  • 10-year Treasury notes

The column pct_of_oi_tot_rept_long_all shows the long positions of all reportable market participants (Dealers, Asset Managers, Leveraged Money, and other large players) as a percentage of total Open Interest. Similarly, pct_of_oi_tot_rept_short displays their short positions. The remaining columns show the same metrics for smaller, non-reportable participants.

For our indicator, we treat reportable participants as institutional players—those with the resources and expertise to outperform retail investors.

My goal is to provide you with the tools that will give you an edge in the markets. Follow the link below to get 10% off for the next 12 months.

Get 10% off for 1 year

Become a paid subscriber to receive:

  • Trading indicators and strategies. Full, ready-to-use code for your investing — no black boxes or holy grails, just full transparency and ownership of your advantage.

  • Weekly newsletter covering current market conditions. Analysis on economic trends, key data releases, and actionable insights to stay ahead of market shifts.

This post is for paid subscribers

Already a paid subscriber? Sign in
© 2025 Rainmaker
Privacy ∙ Terms ∙ Collection notice
Start writingGet the app
Substack is the home for great culture

Share

Copy link
Facebook
Email
Notes
More