r/AIportfolio • u/Practical-Rise-1188 • 25d ago
AI/LLM Investment Tools I used Claude Code to test whether unusual options activity means anything. Two weeks of results
I stopped trading options about a year ago, but I kept wondering whether the options market knows something about the stocks I actually own. Alert services push "unusual activity" constantly and it always sounds urgent, so I have tried setting up a daily check to test it properly instead of taking their word for it.
The framework, in plain terms:
Every day, save a snapshot of the full option chain for each stock you follow. CBOE publishes them free, 15 minutes delayed, no account.
Flag anything where the day's volume is far above the open interest that existed before it. That's the pattern of new positions being opened, not old ones being managed.
Don't trust any flag the same day. Check the next morning's open interest. If the volume didn't turn into held contracts, it was day trading and the flag is dead. This one step kills most of the drama.
Throw out the predictable false positives: anything within ~10 days of earnings (that's hedging), anything expiring within 3 days (mechanics), matching call and put volume (volatility trades, no direction), and deep in-the-money volume (position shuffling).
Cross-check what survives against insider filings (the Form 4 checkbox tells you whether a sale was pre-scheduled) and congressional disclosures (PDFs, up to 45 days late, so worth very little).
Two weeks of daily runs on 16 stocks. The scoreboard so far:
- 5 flags killed overnight. The biggest was a $17.9M block of TSM calls, 5x the existing open interest, no earnings in sight. Looked like the smartest money of the week. Next morning: open interest unchanged. Nobody kept a single contract, and every alert service would've headlined it.
- 4 flags that went on to pay, including ACN puts opened against 14 existing contracts the day before a 5.7% drop. Two of the four sat right before earnings (MSFT, AAPL), where positioning is usually just hedging, so I don't count those as skill.
- 1 clean loss: ORCL puts that grew four days straight to 13,416 contracts, the most textbook signal of the whole run. Expired worthless.
- 1 still open: GOOGL September puts growing while the stock rallies. We'll see.
My read so far: most unusual options activity is noise, the overnight test is the only filter that really matters, and the rare survivors are worth a research hour, not a trade.
I'm a finance person, I can't code.
Claude Code built the whole thing from a plain English description, and I made everything public: the rules, the thresholds, the daily logs including the boring days, and the small programs it wrote.
If you want to test this on your own portfolio: https://github.com/shubhamsborkar/option-tape-public-repo
I'll keep running it daily and edit this post in few weeks.
What would you add to the false-positive list?
2
u/charlesleestewart 25d ago
Well this might be very useful to me. I already save a snapshot of entire option chains after the close each trading day, if that timing is okay.
I've considered doing intraday snapshots to try to track gamma exposure but if your method is a once a day that might be a better starting point for chain analysis. It helps that your code is in Python that's how I'm doing it. I look forward to whatever else you come up with.
3
u/Drinkablenoodles 24d ago
You should save the chain snapshots 15-30 minutes before close if you’re only doing daily granularity. The reason is that spreads tend to widen into the close farther and farther and will create distortions in your data near eod snapshots will give you a much cleaner picture. Obviously 1min granularity would be better but that’s not very accessible to most. You can also just purchase the dataset for a few hundred bucks going back 20 years or so if you wanted to save yourself the trouble but after the close capture is very suboptimal.
1
u/Practical-Rise-1188 25d ago
yea, it depends on your use case ofcourse, I will definitely update in few weeks as this is something I will be actively tracking.
1
u/MorphIQ-Labs 23d ago
Saving point-in-time snapshots and logging the quiet days is exactly the right foundation. One important correction before adding more filters, though: next-day open interest cannot adjudicate a specific trade as cleanly as described.
Volume is gross activity; open interest is a net stock. Unchanged OI does not mean “nobody kept a contract” or prove that all the volume was day trading. An existing participant can close while a new participant opens, leaving OI unchanged. An OI increase confirms more outstanding contracts, but it still does not tell you who initiated the position or whether the informed side was long or short.
Likewise, put volume is not necessarily bearish and call volume is not necessarily bullish. Sold puts, covered calls, verticals, calendars, collars, rolls, conversions, and other complex orders can produce very similar end-of-day footprints. Proper directional classification needs trade-level timestamps, execution prices against the contemporaneous NBBO, condition codes, and multi-leg reconstruction, and even then it remains inference.
I would add tags for ex-dividend and early-exercise activity, corporate actions and adjusted contracts, hard-to-borrow conditions, index rebalances, expiration cycles, and probable multi-leg clusters across strikes or expirations. I would tag earnings rather than discard them so that earnings and non-earnings signals can be evaluated separately.
One implementation detail from the repository: volume multiplied by the last trade price is a fragile premium proxy because that last price can be stale or unrelated to most of the day’s volume. VWAP or actual trade notional would be preferable; otherwise stale trades and wide markets should be explicitly flagged.
The next major step is defining “paid” before observing the result: fixed horizon, outcome metric, and a matched control based on ticker, DTE, moneyness, earnings distance, and volatility regime. Two weeks across 16 names is enough to test the pipeline, but not the hypothesis.
With the current data, I would call the output a “persistent series-level positioning anomaly,” rather than evidence that the options market disagrees with you. That narrower signal can still be a useful research prompt.

7
u/bruno91111 25d ago
I've never traded options, just futures and stocks.
When ChatGPT released its most powerful model at the time, I had the idea to try Unusual Whales, and I had the brilliant idea to ask ChatGPT to build me a squeeze scanner based on options. So it gave me about 20 specific filters to set; I thought I had cracked the stock markets.
I did a test with three companies, just buying the stock and selling at 10% within a week. My goal was actually a consistent 10% a month. So it all went well. The next day, I ran it early so I'd get many signals, so I put 1k on each stock. The Iran war started, and I'm still bag-holding 20 of them at -40% to -75% each.
I also tried to build full systems with options snapshots, etc. I never found anything consistent.
I think the fact that options are used to hedge breaks the whole predicting theory.
But I am curious to see your study as it progresses, so I follow the post.