Install
$ agentstack add skill-staskh-trading-skills-whale-hunting ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Whale Hunting
Scans option chains for a given underlying to identify institutional-sized trades using a two-step approach:
- Crude scan (Yahoo Finance) — finds contracts with anomalous daily investment vs the rest of the chain.
- Precise drill-down (Massive API) — fetches per-second bars for each candidate and flags seconds with outlier dollar invested.
Instructions
> Note: If uv is not installed or pyproject.toml is not found, replace uv run python with python in all commands below.
uv run python .claude/skills/whale-hunting/scripts/whale_hunting.py SYMBOL [--months N] [--date YYYY-MM-DD] [--sigma F] [--sigma-z F] [--summary]
Arguments
SYMBOL— Underlying ticker (e.g.AAPL,NVDA,SPY)--months— Max months until option expiration to consider (default: 2)--date— Trading date to analyze inYYYY-MM-DDformat (default: latest trading day)--sigma— Std-deviation multiplier for crude outlier threshold (default: 3.0)--sigma-z— Modified Z-Score threshold for per-second small-sample detection (default: 3.5)--summary— Also compute per-ticker summary and include it in the JSON output
Output
Returns JSON with:
underlying— The scanned symboltrading_date— Date analyzedsource—"massive"(per-second data) or"yahoo only"(daily chain data)total_whales— Total whale events foundtotal_call_invested— Sum of invested dollars in call whale eventstotal_put_invested— Sum of invested dollars in put whale eventscall_put_ratio— Call invested / put invested (null if no puts)whales— List of whale events:timestamp,ticker,type,strike,expiryclose,volume,transactions,invested,break_evensummary(present only when--summaryis passed) — List of per-ticker aggregates:ticker,type,strike,expiry,whale_count,total_invested,break_even
Examples
# Hunt whales for AAPL (latest trading day)
uv run python .claude/skills/whale-hunting/scripts/whale_hunting.py AAPL
# Hunt whales for NVDA on a specific date
uv run python .claude/skills/whale-hunting/scripts/whale_hunting.py NVDA --date 2026-03-13
# With per-ticker summary
uv run python .claude/skills/whale-hunting/scripts/whale_hunting.py HOOD --months 3 --summary
# Looser detection threshold
uv run python .claude/skills/whale-hunting/scripts/whale_hunting.py SPY --sigma 2.0
Reporting
After running the script, present the results as follows.
Header line: > Whale activity for {underlying} on {tradingdate} — source: {source} > Call flow: ${totalcallinvested:,.0f} | Put flow: ${totalputinvested:,.0f} | C/P ratio: {callput_ratio:.2f}
When --summary was requested, render the summary array as a table:
| Time (ET) | Ticker | Type | Strike | Expiry | # Events | Total Invested | Break Even | |-----------|--------|------|--------|--------|----------|----------------|------------| | {timestamp} | {ticker} | {type} | {strike} | {expiry} | {whalecount} | ${totalinvested:,.0f} | {break_even} |
Sort by total_invested descending. For multi-event rows use the time range of first–last event (e.g. 11:46–12:33).
Interpretation guidance:
source: "massive"— High-confidence; per-second block trade data from Massive APIsource: "yahoo only"— Fallback; daily-level data (Massive API key missing or no intraday data)- Low C/P ratio ( 2.0) — Bullish institutional positioning
transactions: 1— Single block trade; strongest whale signal
Requirements
MASSIVE_API_KEYenvironment variable for per-second data. Without it, falls back to Yahoo Finance daily data.
Timezone
All timestamps and time-based calculations must use the America/New_York timezone. All JSON output must include generated_at (NY time string) and data_delay fields.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: staskh
- Source: staskh/trading_skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.