#257 by GitHub stars
Jakeschincariol/day-trader-skill
11 Claude skills for day trading: scan thousands of charts, track breaking news, time every entry and exit, and replay every outcome before you risk a dollar.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
trader-alerts/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
3d0f4ef6986f → 3d0f4ef6986f
trader-analyst/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
3d0f4ef6986f → 3d0f4ef6986f
trader-broker/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
3d0f4ef6986f → 3d0f4ef6986f
trader-budget/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
3d0f4ef6986f → 3d0f4ef6986f
trader-entry/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
3d0f4ef6986f → 3d0f4ef6986f
trader-exit/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
3d0f4ef6986f → 3d0f4ef6986f
trader-news/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
3d0f4ef6986f → 3d0f4ef6986f
trader-pelosi/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
3d0f4ef6986f → 3d0f4ef6986f
trader-risk/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
3d0f4ef6986f → 3d0f4ef6986f
trader-scanner/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
3d0f4ef6986f → 3d0f4ef6986f
trader-timemachine/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
3d0f4ef6986f → 3d0f4ef6986f
Verified commit 3d0f4ef6986f4984b7c6bd46f7ff4f87744c3abd
git clone --filter=blob:none --no-checkout https://github.com/Jakeschincariol/day-trader-skill.git .hotskills/jakeschincariol-day-trader-skill && git -C .hotskills/jakeschincariol-day-trader-skill checkout --detach 3d0f4ef6986f4984b7c6bd46f7ff4f87744c3abd
# Copy each selected skill directory from .hotskills/jakeschincariol-day-trader-skill into .claude/skills/<skill-name>/Heat
8.1- Star growth, last 7 daysAhead of 100% of tracked repositories
- Star growth, last 24 hoursAhead of 100% of tracked repositories
- Rank movement, last 7 daysAhead of 99% of tracked repositories
- Commits, last 30 daysAhead of 54% of tracked repositories
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekAhead of 0% of tracked repositories
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
- trader-alerts
trader-alerts - trader-analyst
trader-analyst - trader-broker
trader-broker - trader-budget
trader-budget - trader-entry
trader-entry - trader-exit
trader-exit - trader-news
trader-news - trader-pelosi
trader-pelosi - trader-risk
trader-risk - trader-scanner
trader-scanner - trader-timemachine
trader-timemachine
How it works
trader-alerts
When your agent uses it
Price Alerts. Rings when a price, a stop or the opening bell hits. Turns the trade plan into three alerts in one go (the stop, the target and "flat by close" at your flat-by time), plus above / below / stop / target levels, percent moves from the previous close, any time of day, and the NYSE opening bell, each ringing once so you are not spammed. Knows NYSE hours with the 2026 and 2027 holidays and 1:00 p.m. early closes, works out New York time itself, fetches free delayed quotes (Yahoo chart JSON, Stooq CSV) one ticker at a time, and writes trader/prices.json for sizing and the risk check. Use when the user says "alert me when", "tell me if TSLA hits", "watch my stop", "watch my trade", "remind me to close by 3:55", "is the market open", "when does the market open", "get me a price", or right after /trader-exit writes a plan.
What it loads into context
Frontmatter
261 tokensAlways available to the agent
SKILL.md
2,329 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What it reads and writes
- Rule types
- Quotes
- The NYSE clock
- Steps
- Example: the reel
- Rules
- What it never does
- Safety
Scripts executed separately
alerts.py
Files
../.claude-plugin/marketplace.jsonasset787 bytes../.claude-plugin/plugin.jsonasset665 bytesSKILL.mdcore8,204 bytesSKILL.mdcore8,204 bytesSKILL.mdcore8,204 bytesSKILL.mdcore8,204 bytesSKILL.mdcore8,204 bytesSKILL.mdcore8,204 bytesSKILL.mdcore8,204 bytesSKILL.mdcore8,204 bytesSKILL.mdcore8,204 bytesSKILL.mdcore8,204 bytesSKILL.mdcore8,204 bytesSKILL.mdcore8,204 bytesSKILL.mdcore8,204 bytesalerts.example.jsonasset597 bytesalerts.pyruns32,825 bytes
Read SKILL.md
# trader-alerts
Price Alerts watches the numbers so the user does not have to stare at a
chart. An alert is information, never an order: when a stop alert rings,
nothing is sold by this skill. With a bracket order the stop-loss and the
take-profit already sit at the broker and do the work; the alerts tell the
user what happened and when it is time to be flat.
`${CLAUDE_SKILL_DIR}` below is this skill's folder (where this SKILL.md lives).
```bash
python3 "${CLAUDE_SKILL_DIR}/alerts.py" clock # NYSE open or closed, next open
python3 "${CLAUDE_SKILL_DIR}/alerts.py" add --from-plan # stop, target, flat by close from trader/plan.json
python3 "${CLAUDE_SKILL_DIR}/alerts.py" add --opening-bellView the complete source on GitHubtrader-analyst
When your agent uses it
The Earnings Analyst. Reads a company's reported numbers straight from SEC EDGAR (XBRL company facts from its 10-Qs and 10-Ks, plus the latest earnings 8-K and its press release) and sums up what changed: revenue, gross, operating and net margins, net income and diluted EPS, quarter by quarter, each against the same quarter a year earlier, with the trailing twelve months. Reads an earnings call transcript when you paste one. Use when the user says "how did Tesla's earnings look", "analyze the earnings", "what changed this quarter", "is revenue growing", "check the 10-Q", "compare margins", "sum up the call", "does it report this week", or before trading a stock around its earnings.
What it loads into context
Frontmatter
193 tokensAlways available to the agent
SKILL.md
1,570 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What it reads and writes
- The rules
- Steps
- Example: the reel's stock
- What it never does
- Safety
Scripts executed separately
facts.py
Files
SKILL.mdcore5,943 bytesSKILL.mdcore5,943 bytesSKILL.mdcore5,943 bytesSKILL.mdcore5,943 bytesfacts.pyruns23,996 bytesmetrics.example.jsonasset2,317 bytes
Read SKILL.md
# trader-analyst
Earnings move stocks more than anything else on the calendar, and the press
release is written to put the best number first. This skill reads the numbers
the company actually filed with the SEC, lines them up quarter by quarter, and
says plainly what changed. For a day trader it answers two questions before a
trade: what did the last report say, and is the next one inside this trade?
Tool in this folder (standard library Python, no keys):
```bash
python3 "${CLAUDE_SKILL_DIR}/facts.py" --help
```
View the complete source on GitHubtrader-broker
When your agent uses it
Order Executor. Sends approved orders to your broker, paper trading by default, never without your yes. Shows each order as a plain ticket (a bracket shows its stop-loss, take-profit and the max loss at the stop) plus the exact JSON for Alpaca's place_stock_order, records your yes word for word, then Claude's own Allow once / Deny card asks again. Builds the sell ticket that closes a day trade by your flat-by time, records fills, and logs each trade's max loss so trader-risk can hold the daily limit. Covers setting up Alpaca's official MCP server in Claude Desktop (paper by default, keys in env vars, never in chat), the Interactive Brokers connector, and setting order tools to "Needs approval". Use when the user says "place the order", "buy it", "execute", "send it to my broker", "close my position", "flatten", "get me out", "connect Alpaca", "set up paper trading", or after /trader-risk passes.
What it loads into context
Frontmatter
246 tokensAlways available to the agent
SKILL.md
2,957 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What it reads and writes
- Setup A: Alpaca (official MCP server, Claude Desktop)
- Setup B: Interactive Brokers (connector in Claude's directory)
- Steps: the entry
- Steps: while it is open, and out by the close
- Example: the reel
- What it never does
- Safety
Scripts executed separately
ticket.py
Files
SKILL.mdcore11,451 bytesSKILL.mdcore11,451 bytesSKILL.mdcore11,451 bytesSKILL.mdcore11,451 bytesSKILL.mdcore11,451 bytesSKILL.mdcore11,451 bytesSKILL.mdcore11,451 bytesSKILL.mdcore11,451 bytesclaude_desktop_config.example.jsonasset378 bytesticket.pyruns32,390 bytes
Read SKILL.md
# trader-broker
The Order Executor is the only skill in this pack that can lead to a real
order, so it is the strictest. An order reaches the market only after three
separate gates, every time, for every order:
1. **trader-risk passed this exact order today** (matched by fingerprint).
2. **The user typed an explicit yes for this one order** in the chat.
3. **The user clicked Allow once** on Claude's own permission card, which
appears because the order tool is set to "Needs approval".
Two yeses from the user, one PASS from the rules. No yes, no order.
`${CLAUDE_SKILL_DIR}` below is this skill's folder (where this SKILL.md lives).View the complete source on GitHubtrader-budget
When your agent uses it
Budget Manager. Sizes every position to your budget and your max loss per trade. Reads the trade plan from trader-exit (entry, stop, target), finds the whole shares that fit inside four limits (max loss per trade, position cap, max order, cash after your buffer), says which limit decided it, and writes ONE bracket order (entry, stop-loss, take-profit) to trader/orders.json in the exact shape of Alpaca's place_stock_order. A stop too far away for your max loss is a plain refusal, not a smaller order. Nothing is placed. Use when the user says "how many shares", "size this trade", "how much should I buy", "I have $5,000", "I only want to risk $50 a trade", "set my rules", "keep 10% in cash", or after /trader-exit writes a plan.
What it loads into context
Frontmatter
219 tokensAlways available to the agent
SKILL.md
2,411 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What it reads and writes
- Step 1: set the rules once
- Step 2: size the trade
- Step 3: show the user
- Example: the reel
- Weights mode (kept from v1)
- Rules
- What it never does
- Safety
Scripts executed separately
size.py
Files
SKILL.mdcore8,629 bytesSKILL.mdcore8,629 bytesSKILL.mdcore8,629 bytesSKILL.mdcore8,629 bytesSKILL.mdcore8,629 bytesSKILL.mdcore8,629 bytesSKILL.mdcore8,629 bytesconfig.example.jsonasset595 bytessize.pyruns39,238 bytestargets.example.jsonasset610 bytes
Read SKILL.md
# trader-budget
The Budget Manager turns a plan ("buy TSLA at 364.18, stop 358.32") into an
exact order ("buy 8 shares"), inside rules the user sets once. The stop
decides the size: the further away the stop, the fewer shares. It writes a
proposal only. trader-risk checks it and trader-broker asks the user yes or
no. Day trading loses most people money. Sizing to a max loss keeps each
loss small; it does not make a trade win.
`${CLAUDE_SKILL_DIR}` below is this skill's folder (where this SKILL.md lives).
```bash
python3 "${CLAUDE_SKILL_DIR}/size.py" # trader/plan.json + trader/config.json
python3 "${CLAUDE_SKILL_DIR}/size.py" --write # write trader/orders.jsonView the complete source on GitHubtrader-entry
When your agent uses it
Entry Timer. Watches a setup bar by bar and tells you the moment to get in. Reads free Yahoo 1-minute or 5-minute bars, builds the opening range (the first 15 minutes by default) and calls the entry on the first completed bar that CLOSES above the range high, or above a level you give it (like a 20-day high from the scanner), with an optional volume check. Says waiting and how far, triggered with the time and the price, expired, or not open yet, and writes trader/entry.json for /trader-exit. Long side only. It never places an order. Use when the user says "tell me when to get in", "watch TSLA", "has it broken out", "did it break the opening range", "entry signal", "time my entry", "check my watchlist", or after /trader-scanner and /trader-news, before /trader-exit.
What it loads into context
Frontmatter
250 tokensAlways available to the agent
SKILL.md
2,207 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What it reads and writes
- The rule
- Steps
- Example: the reel
- Rules
- What it never does
- Safety
Scripts executed separately
entry.py
Files
SKILL.mdcore7,715 bytesSKILL.mdcore7,715 bytesSKILL.mdcore7,715 bytesSKILL.mdcore7,715 bytesSKILL.mdcore7,715 bytesSKILL.mdcore7,715 bytesSKILL.mdcore7,715 bytesentry.pyruns42,324 bytes
Read SKILL.md
# trader-entry
The Entry Timer turns a setup into one moment: the bar that confirms it. It
reads bars, 1-minute or 5-minute, and waits for each one to finish. A price
that pokes above the high in the middle of a bar is not an entry. A bar that
CLOSES above it is. Then it says the time and the price, writes them down for
the Exit Planner, and stops. It never buys anything. Day trading loses most
people money, and a clean signal does not change that.
`${CLAUDE_SKILL_DIR}` below is this skill's folder (where this SKILL.md lives).
```bash
python3 "${CLAUDE_SKILL_DIR}/entry.py" check TSLA # 15-minute opening range, 5-minute bars
python3 "${CLAUDE_SKILL_DIR}/entry.py" check TSLA --write # also save trader/entry.jsonView the complete source on GitHubtrader-exit
When your agent uses it
Exit Planner. Sets your stop and your target before you enter, so you know when to get out. Reads the entry from trader-entry (or a price you give), puts the stop at the opening-range midpoint by default (or the range low, your price, a percent, or a multiple of the ATR), rounds it down to the cent, and sets the target at 2R (or 1R, or your price). Refuses a stop at or above the entry, a target at or below it, or a stop too tight to survive the spread, and says why. Writes trader/plan.json for the Time Machine, the Budget Manager and Price Alerts. Long side only. Use when the user says "where's my stop", "set my stop and target", "plan the exit", "when do I get out", "stop loss", "what's my R", "risk reward", or right after /trader-entry triggers, before /trader-timemachine.
What it loads into context
Frontmatter
267 tokensAlways available to the agent
SKILL.md
1,976 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What it reads and writes
- Stops and targets
- Steps
- Example: the reel
- Rules
- What it never does
- Safety
Scripts executed separately
exit.py
Files
SKILL.mdcore6,987 bytesSKILL.mdcore6,987 bytesSKILL.mdcore6,987 bytesSKILL.mdcore6,987 bytesSKILL.mdcore6,987 bytesSKILL.mdcore6,987 bytesexit.pyruns31,107 bytes
Read SKILL.md
# trader-exit
The Exit Planner decides how a trade ends before it starts. The stop is where
the setup has failed. The target is where you take what you came for. Both
are set BEFORE the entry, written down and handed on, so nobody has to decide
anything in the middle of a fast move. A stop is a plan, not a guarantee: a
gap or a fast market can fill past it. Day trading loses most people money,
and a neat plan does not change that.
`${CLAUDE_SKILL_DIR}` below is this skill's folder (where this SKILL.md lives).
```bash
python3 "${CLAUDE_SKILL_DIR}/exit.py" plan # trader/entry.json: midpoint stop, 2R target
python3 "${CLAUDE_SKILL_DIR}/exit.py" plan --stop or-mid --target 1R --writeView the complete source on GitHubtrader-news
When your agent uses it
News Monitor. Tracks breaking news on every stock you watch and flags what moves it: Yahoo Finance headlines per ticker, each company's 8-K filings on SEC EDGAR (earnings, CEO changes, deals, restatements, bankruptcy) and how far each stock is from yesterday's close. Shows only what is new since the last check, newest first, in New York time, tags each item (earnings, analyst, deal, halt, regulatory, macro...) and never repeats one. Use when the user says "any news on TSLA", "why is this moving", "what's the news on my watchlist", "morning briefing", "pre-market news", "monitor the news", "did anything break", "check the 8-Ks", or after /trader-scanner finds setups.
What it loads into context
Frontmatter
197 tokensAlways available to the agent
SKILL.md
1,449 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What it reads and writes
- The rules
- Steps
- Example: the reel
- What it never does
- Safety
Scripts executed separately
news.py
Files
SKILL.mdcore5,346 bytesSKILL.mdcore5,346 bytesSKILL.mdcore5,346 bytesSKILL.mdcore5,346 bytesSKILL.mdcore5,346 bytesSKILL.mdcore5,346 bytesSKILL.mdcore5,346 bytesnews.pyruns22,467 bytes
Read SKILL.md
# trader-news
A chart can look perfect and still be about to gap on an earnings date, a
halt or a lawsuit. Before a setup becomes a trade, this skill reads the two
feeds that carry those first, for every stock on the watchlist, and tells you
only what is new. It also prints how far each stock has moved today, so a
headline and a move sit side by side.
Tool in this folder (standard library Python, no keys):
```bash
python3 "${CLAUDE_SKILL_DIR}/news.py" # watchlist + plan + portfolio
python3 "${CLAUDE_SKILL_DIR}/news.py" --tickers TSLA NVDA --hours 12
python3 "${CLAUDE_SKILL_DIR}/news.py" --no-sec --jsonView the complete source on GitHubtrader-pelosi
When your agent uses it
The Pelosi Tracker. Watches the stock trades members of Congress must disclose under the STOCK Act: reads the House Clerk's public Periodic Transaction Reports (PTRs) as soon as they are posted, alerts once per new filing, and turns each PDF into clean rows (who, owner, stock, ticker, buy or sell, options strike and expiry, trade date, amount range, how many days it took to disclose). Flags trades in stocks you hold. Senate reports are covered by a documented manual route. Use when the user says "what is Pelosi buying", "track Nancy Pelosi", "Congress trades", "politician stock trades", "did any congressman buy X", "alert me when Pelosi files", or "run the Pelosi skill".
What it loads into context
Frontmatter
190 tokensAlways available to the agent
SKILL.md
1,965 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What it reads and writes
- The rules
- Step 1: what has been filed
- Step 2: watch for new ones
- Step 3: read a report
- Example: a real alert
- The Senate: the manual route
- What it never does
- Safety
Scripts executed separately
ptr.py
Files
SKILL.mdcore7,395 bytesSKILL.mdcore7,395 bytesSKILL.mdcore7,395 bytesSKILL.mdcore7,395 bytesSKILL.mdcore7,395 bytesSKILL.mdcore7,395 bytesSKILL.mdcore7,395 bytesSKILL.mdcore7,395 bytesptr.pyruns22,928 bytes
Read SKILL.md
# trader-pelosi
Members of Congress have to report their trades, their spouse's and their
dependent children's. The House Clerk posts every report as a PDF and lists
them all in one index file per year. This skill reads that index, notices the
moment a new report appears, and reads the report for you.
It is fast. It is not early. A PTR is due within 30 days of the member
learning of the trade and never more than 45 days after it, so by the time
anyone can read it the trade is days or weeks old. There is no inside
information here: only public filings, read quickly. Say that every time.
Tool in this folder (standard library Python; `pdftotext` from poppler is
optional, to read the PDFs locally):View the complete source on GitHubtrader-risk
When your agent uses it
Risk Manager. Checks every trade against your limits and stops anything over them, before it can reach the broker. For a day trade: a stop is required, the loss at the stop must fit your max loss per trade (measured from the higher of the plan's entry and a fresh price), reward:risk must meet your minimum, the day's total risk must fit your daily loss limit, no more than your trades per day, and no new entries outside your entry window or when the market is closed. It also keeps the basics: blocked tickers, order size, position cap, cash buffer, margin, short sales, options and crypto, malformed or bad bracket orders, duplicates and a daily order limit. Getting out is never blocked by a day limit. Prints PASS or BLOCK with the reason and records the verdicts so trader-broker only shows an order that passed. Use when the user says "check my order", "is this safe", "risk check", "does this break my rules", "can I take this trade", "how much have I risked today", or before /trader-broker, always.
What it loads into context
Frontmatter
272 tokensAlways available to the agent
SKILL.md
2,546 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What it reads and writes
- Entries and exits
- The checks
- Steps
- Example: the reel
- Rules
- What it never does
- Safety
Scripts executed separately
check.py
Files
SKILL.mdcore9,608 bytesSKILL.mdcore9,608 bytesSKILL.mdcore9,608 bytesSKILL.mdcore9,608 bytesSKILL.mdcore9,608 bytescheck.pyruns39,151 bytes
Read SKILL.md
# trader-risk
The Risk Manager is the gate between a proposal and the broker. Every order
written by trader-budget or trader-broker's flatten passes through it. A
BLOCK is final for that order: it does not go to the user for a yes, and it
does not go to the broker. Most people who day trade lose money. These limits
keep each loss and each day's losses small. They do not make a trade win.
`${CLAUDE_SKILL_DIR}` below is this skill's folder (where this SKILL.md lives).
```bash
python3 "${CLAUDE_SKILL_DIR}/check.py" # trader/ files; writes trader/state/risk.json
python3 "${CLAUDE_SKILL_DIR}/check.py" --json
python3 "${CLAUDE_SKILL_DIR}/check.py" --no-write # look without recordingView the complete source on GitHubtrader-scanner
When your agent uses it
Chart Scanner. Scans thousands of charts for setups: opening-range breakouts, flags, oversold bounces. Builds the list of US-listed common stocks, ordinary shares and ADRs from Nasdaq Trader's symbol directories, runs a pre-market scan of daily closes (20-day closing-high breakout, bull flag, reclaimed the 20-day average, oversold, oversold bounce) and an intraday opening-range breakout scan on 5-minute bars, then writes trader/watchlist.json for trader-news and trader-entry. Free Yahoo data, bar by bar. Use when the user says "scan the market", "find me setups", "what is breaking out", "opening range breakouts", "scan for bull flags", "oversold stocks", "pre-market scan", "build my watchlist", "what should I look at today", or at the start of a trading day before /trader-news.
What it loads into context
Frontmatter
228 tokensAlways available to the agent
SKILL.md
3,091 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What it reads and writes
- The universe
- The daily scan (before the open)
- The opening-range breakout scan (during the session)
- Data and limits
- Steps
- Example: the reel
- Rules
- What it never does
- Safety
Scripts executed separately
scan.py
Files
SKILL.mdcore10,940 bytesSKILL.mdcore10,940 bytesSKILL.mdcore10,940 bytesSKILL.mdcore10,940 bytesSKILL.mdcore10,940 bytesSKILL.mdcore10,940 bytesSKILL.mdcore10,940 bytesscan.pyruns47,679 bytes
Read SKILL.md
# trader-scanner
The Chart Scanner is the first step of a day trade. It reads thousands of
free charts and lists the ones that match a rule. That is all it does. A scan
is a list of charts that match a rule, not a list of stocks to buy, and a
setup on a chart is not a prediction. Most people who day trade lose money;
the scanner does not change that. It only saves you from flipping through
5,000 charts by hand.
`${CLAUDE_SKILL_DIR}` below is this skill's folder (where this SKILL.md lives).
```bash
python3 "${CLAUDE_SKILL_DIR}/scan.py" universe # -> trader/universe.txt
python3 "${CLAUDE_SKILL_DIR}/scan.py" daily # before the open -> trader/watchlist.jsonView the complete source on GitHubtrader-timemachine
When your agent uses it
Time Machine. Replays every possible outcome of a trade before you risk a dollar: 10,000 simulated sessions plus every past time the setup fired. Takes the plan from trader-exit (entry, stop, target), rebuilds the rest of the day 10,000 times from the stock's own 5-minute bars over the last 60 days, and re-runs the same rule on every past session. Prints the odds of target first, stop first, or neither by the close, where the price sits at the close, the average R, the history, and one honest verdict, then hands off to /trader-budget. Use when the user says "run the time machine", "replay this trade", "what are the odds", "simulate this trade", "monte carlo", "backtest this setup", "how often does this hit the target", "is this a coin flip", or after /trader-exit writes a plan, before /trader-budget.
What it loads into context
Frontmatter
251 tokensAlways available to the agent
SKILL.md
2,705 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What it reads and writes
- How it works
- Steps
- Example: the reel
- Rules
- What it never does
- Safety
Scripts executed separately
timemachine.py
Files
SKILL.mdcore9,624 bytesSKILL.mdcore9,624 bytesSKILL.mdcore9,624 bytesSKILL.mdcore9,624 bytesSKILL.mdcore9,624 bytesSKILL.mdcore9,624 bytesSKILL.mdcore9,624 bytestimemachine.pyruns43,070 bytes
Read SKILL.md
# trader-timemachine
The Time Machine sits between the plan and the money. trader-exit has set
the entry, the stop and the target. Before anything is sized or sent, this
skill asks one question: if today plays out like the stock's own last 60
days, how often does this plan hit the target first, the stop first, or
neither? It answers with 10,000 replays and with the real record of the same
rule on every past session. It is a simulation built from the stock's own
recent bars, not a prediction. Day trading loses most people money, and a
good-looking replay does not change that.
`${CLAUDE_SKILL_DIR}` below is this skill's folder (where this SKILL.md lives).
```bashView the complete source on GitHubSkills included
- trader-alerts
- trader-analyst
- trader-broker
- trader-budget
- trader-entry
- trader-exit
- trader-news
- trader-pelosi
- trader-risk
- trader-scanner
- trader-timemachine
Repository facts
- License
- MIT
- Created
- Oct 20, 2026
- Last pushed
- Oct 20, 2026
- Forks
- 1,378
- Open issues
- 34
- Project activity
- Active
Rank over the last 12 weeks
Now #257 · best #257
- #294 on Nov 1
- #286 on Nov 2
- #279 on Nov 3
- #269 on Nov 4
- #260 on Nov 5
- #257 since Nov 6
11 earlier periods
- #937 on Oct 18
- #980 on Oct 20
- #995 on Oct 21
- #942 on Oct 22
- #797 on Oct 23
- #641 on Oct 24
- #708 on Oct 25
- #434 on Oct 28
- #369 on Oct 29
- #338 on Oct 30
- #309 on Oct 31
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 2, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 68 notes
trader-alerts/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedtrader-alerts/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedtrader-alerts/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedtrader-alerts/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedtrader-alerts/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedtrader-alerts/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedtrader-alerts/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedtrader-alerts/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedtrader-alerts/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedtrader-alerts/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedtrader-alerts/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedtrader-alerts/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedtrader-analyst/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedtrader-analyst/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedtrader-analyst/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedtrader-broker/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedtrader-broker/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedtrader-broker/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedtrader-broker/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedtrader-broker/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- No dangerous shell commands
- 122 network referencesin 14 files: trader-news/news.py:18 trader-alerts/alerts.py:34 trader-analyst/facts.py:15 and 11 more
- No hidden or obfuscated text
- No instruction overrides
- 11 executable scriptsin 11 files: trader-alerts/alerts.py:1 trader-analyst/facts.py:1 trader-broker/ticket.py:1 and 8 more
- 4 references to secretsin 4 files: trader-analyst/facts.py:80 trader-broker/SKILL.md:80 trader-broker/claude_desktop_config.example.json:7 and 1 more
- No requests to vote in Hot
Show all 137 signals by file
.claude-plugin/marketplace.json
- Network accessline 1
{ "$schema": "https://anthropic.com/claude-code/marketplace.schema.json", - Network accessline 2
"$schema": "https://anthropic.com/claude-code/marketplace.schema.json", - Network accessline 5
"owner": { "name": "Jake Schincariol", "url": "https://opusjake.ai" - Network accessline 6
"name": "Jake Schincariol", "url": "https://opusjake.ai" }, - Network accessline 7
"url": "https://opusjake.ai" - Network accessline 13
"source": "./", "category": "productivity", "homepage": "https://github.com/Jakeschincariol/day-trader-skill" - Network accessline 14
"category": "productivity", "homepage": "https://github.com/Jakeschincariol/day-trader-skill" } - Network accessline 15
"homepage": "https://github.com/Jakeschincariol/day-trader-skill"
.claude-plugin/plugin.json
- Network accessline 5
"author": { "name": "Jake Schincariol", "url": "https://opusjake.ai" - Network accessline 6
"name": "Jake Schincariol", "url": "https://opusjake.ai" }, - Network accessline 7
"url": "https://opusjake.ai" - Network accessline 8
}, "homepage": "https://github.com/Jakeschincariol/day-trader-skill", "repository": "https://github.com/Jakeschincariol/day-trader-skill", - Network accessline 9
"homepage": "https://github.com/Jakeschincariol/day-trader-skill", - Network accessline 10
"repository": "https://github.com/Jakeschincariol/day-trader-skill",
trader-alerts/alerts.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 34
Quotes (free, delayed, unofficial; for alerts only, never for timing an order): yahoo https://query2.finance.yahoo.com/v8/finance/chart/TSLA (falls back to - Network accessline 35
yahoo https://query2.finance.yahoo.com/v8/finance/chart/TSLA (falls back to - Network accessline 36
query1 on a 429 or a 5xx; one retry with a pause on a 429; one request per ticker, half a second apart; the default) stooq https://stooq.com/q/l/?s=tsla.us&f=sd2t2ohlcv&h&e=csv (Stooq's free - Network accessline 37
request per ticker, half a second apart; the default) stooq https://stooq.com/q/l/?s=tsla.us&f=sd2t2ohlcv&h&e=csv (Stooq's free CSV; it answered 404 on 2026-10-13, kept for when it is back) - Network accessline 38
stooq https://stooq.com/q/l/?s=tsla.us&f=sd2t2ohlcv&h&e=csv (Stooq's free - Network accessline 42
NYSE calendar: the 2026 and 2027 holidays and 1:00 p.m. early closes as published at https://www.nyse.com/markets/hours-calendars (read 2026-10-13). - Network accessline 43
published at https://www.nyse.com/markets/hours-calendars (read 2026-10-13). - Network accessline 60
UA = "Mozilla/5.0 (compatible; day-trader-skill/2.0; +https://github.com/Jakeschincariol/day-trader-skill)" PAUSE = 0.5 # seconds between requests: be polite to free endpoints - Network accessline 196
def stooq_url(sym): return "https://stooq.com/q/l/?s=%s.us&f=sd2t2ohlcv&h&e=csv" % sym.lower().replace(".", "-") - Network accessline 197
return "https://stooq.com/q/l/?s=%s.us&f=sd2t2ohlcv&h&e=csv" % sym.lower().replace(".", "-") - Network accessline 200
def yahoo_url(sym, host=YAHOO_HOSTS[0]): return "https://%s/v8/finance/chart/%s?range=1d&interval=1d" % (host, sym.upper().replace(".", "-")) - Network accessline 201
return "https://%s/v8/finance/chart/%s?range=1d&interval=1d" % (host, sym.upper().replace(".", "-")) - Network accessline 249
_urlopen = urllib.request.urlopen # tests swap these two - Network accessline 255
req = urllib.request.Request(url, headers={"User-Agent": UA, "Accept": "*/*"}) - Network accessline 274
def fetch(url, timeout=20): - Network accessline 322
if i and pause: _sleep(pause) text = fetch(stooq_url(sym)) if source == "stooq" else fetch_yahoo(sym) - Network accessline 323
_sleep(pause) text = fetch(stooq_url(sym)) if source == "stooq" else fetch_yahoo(sym) quotes[sym] = parse_stooq(text, sym) if source == "stooq" else parse_yahoo(text, sym) - Network accessline 324
text = fetch(stooq_url(sym)) if source == "stooq" else fetch_yahoo(sym)
trader-analyst/SKILL.md
- Network accessline 37
- Reads `https://data.sec.gov/api/xbrl/companyfacts/CIK##########.json` (every
trader-analyst/facts.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 15
Sources (SEC; a User-Agent with your name and email is required, from --user-agent, SEC_USER_AGENT or sec_user_agent in trader/config.json): https://www.sec.gov/files/company_tickers.json ticker -> CIK - Network accessline 16
--user-agent, SEC_USER_AGENT or sec_user_agent in trader/config.json): https://www.sec.gov/files/company_tickers.json ticker -> CIK https://data.sec.gov/api/xbrl/companyfacts/CIK##########.json - Network accessline 17
https://www.sec.gov/files/company_tickers.json ticker -> CIK - Network accessline 18
https://data.sec.gov/api/xbrl/companyfacts/CIK##########.json - Network accessline 19
https://data.sec.gov/submissions/CIK##########.json filings list - Network accessline 20
https://www.sec.gov/Archives/edgar/data/<cik>/<accession>/index.json - Network accessline 53
TICKERS_URL = "https://www.sec.gov/files/company_tickers.json" - Network accessline 54
FACTS_URL = "https://data.sec.gov/api/xbrl/companyfacts/CIK%s.json" - Network accessline 55
SUBMISSIONS_URL = "https://data.sec.gov/submissions/CIK%s.json" - Network accessline 56
ARCHIVE_URL = "https://www.sec.gov/Archives/edgar/data/%d/%s/" - Access to secretsline 80
[Credential-related source omitted] - Network accessline 107
time.sleep(self.pause - gap) self._last = time.time() req = urllib.request.Request(url, headers={"User-Agent": self.ua, - Network accessline 108
self._last = time.time() req = urllib.request.Request(url, headers={"User-Agent": self.ua, "Accept-Encoding": "gzip"}) - Network accessline 109
req = urllib.request.Request(url, headers={"User-Agent": self.ua, - Network accessline 110
"Accept-Encoding": "gzip"}) try: with urllib.request.urlopen(req, timeout=60) as resp: - Network accessline 111
try: with urllib.request.urlopen(req, timeout=60) as resp: data = resp.read() - Network accessline 112
with urllib.request.urlopen(req, timeout=60) as resp:
trader-broker/SKILL.md
- Access to secretsline 80
[Credential-related source omitted] - Network accessline 129
Interactive Brokers publishes a verified connector: claude.ai/directory/interactive-brokers (connector URL `https://api.ibkr.com/v1/api/mcp`). Add it from Customize > - Network accessline 130
(connector URL `https://api.ibkr.com/v1/api/mcp`). Add it from Customize >
trader-broker/claude_desktop_config.example.json
- Access to secretsline 7
[Credential-related source omitted]
trader-broker/ticket.py
- Executable scriptline 1
#!/usr/bin/env python3
trader-budget/size.py
- Executable scriptline 1
#!/usr/bin/env python3
trader-entry/entry.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 42
Data: Yahoo's free chart JSON (unofficial, can lag, bars not single trades) https://query2.finance.yahoo.com/v8/finance/chart/TSLA?range=1d&interval=5m - Network accessline 43
https://query2.finance.yahoo.com/v8/finance/chart/TSLA?range=1d&interval=5m - Network accessline 64
UA = "Mozilla/5.0 (compatible; day-trader-skill/2.0; +https://github.com/Jakeschincariol/day-trader-skill)" PAUSE = 0.5 # seconds between requests to the free endpoint - Network accessline 254
def _open_url(url, timeout=20): req = urllib.request.Request(url, headers={"User-Agent": UA, "Accept": "application/json"}) - Network accessline 255
req = urllib.request.Request(url, headers={"User-Agent": UA, "Accept": "application/json"}) - Network accessline 256
with urllib.request.urlopen(req, timeout=timeout) as r: - Network accessline 267
last = "no answer" for host in HOSTS: url = "https://%s.finance.yahoo.com%s" % (host, path) - Network accessline 268
for host in HOSTS: url = "https://%s.finance.yahoo.com%s" % (host, path) for attempt in (0, 1): - Network accessline 269
url = "https://%s.finance.yahoo.com%s" % (host, path)
trader-exit/exit.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 53
UA = "Mozilla/5.0 (compatible; day-trader-skill/2.0; +https://github.com/Jakeschincariol/day-trader-skill)" - Network accessline 338
def _open_url(url, timeout=20): req = urllib.request.Request(url, headers={"User-Agent": UA, "Accept": "application/json"}) - Network accessline 339
req = urllib.request.Request(url, headers={"User-Agent": UA, "Accept": "application/json"}) - Network accessline 340
with urllib.request.urlopen(req, timeout=timeout) as r: - Network accessline 350
last = "no answer" for host in HOSTS: url = "https://%s.finance.yahoo.com%s" % (host, path) - Network accessline 351
for host in HOSTS: url = "https://%s.finance.yahoo.com%s" % (host, path) for attempt in (0, 1): - Network accessline 352
url = "https://%s.finance.yahoo.com%s" % (host, path)
trader-news/SKILL.md
- Network accessline 37
| `trader/plan.json` | the trade you are planning (trader-exit) | | `trader/portfolio.json` | what you hold (trader-broker records fills there) | | Yahoo Finance headline RSS | `https://feeds.finance.yahoo.com/rss/2.0/headline?s=TSLA®ion - Network accessline 38
| `trader/portfolio.json` | what you hold (trader-broker records fills there) | | Yahoo Finance headline RSS | `https://feeds.finance.yahoo.com/rss/2.0/headline?s=TSLA®ion=US&lang=en-US` | | Yahoo Finance chart endpoint | the last price - Network accessline 39
| Yahoo Finance headline RSS | `https://feeds.finance.yahoo.com/rss/2.0/headline?s=TSLA®ion=US&lang=en-US` |
trader-news/news.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 18
Sources, one request each per ticker: - Yahoo Finance headline RSS: https://feeds.finance.yahoo.com/rss/2.0/headline?s=<TICKER>®ion=US&lang=en-US - Network accessline 19
- Yahoo Finance headline RSS: https://feeds.finance.yahoo.com/rss/2.0/headline?s=<TICKER>®ion=US&lang=en-US - SEC EDGAR filings Atom feed for the company (8-K by default: earnings, - Network accessline 20
https://feeds.finance.yahoo.com/rss/2.0/headline?s=<TICKER>®ion=US&lang=en-US - Network accessline 21
- SEC EDGAR filings Atom feed for the company (8-K by default: earnings, executive changes, deals, restatements): https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=<CIK>&type=8-K&count=10&output=atom - Network accessline 22
executive changes, deals, restatements): https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=<CIK>&type=8-K&count=10&output=atom SEC needs a User-Agent with your name and email (sec_user_agent in - Network accessline 23
https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=<CIK>&type=8-K&count=10&output=atom - Network accessline 28
- The move: Yahoo Finance's chart endpoint (unofficial, can lag), the last price against yesterday's close: https://query2.finance.yahoo.com/v8/finance/chart/<TICKER>?range=1d&interval=5m - Network accessline 30
https://query2.finance.yahoo.com/v8/finance/chart/<TICKER>?range=1d&interval=5m - Network accessline 55
YAHOO = "https://feeds.finance.yahoo.com/rss/2.0/headline?s=%s®ion=US&lang=en-US" - Network accessline 56
CHART = "https://%s.finance.yahoo.com/v8/finance/chart/%s?range=1d&interval=5m" - Network accessline 57
SEC_FEED = ("https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=%s&type=%s" - Network accessline 58
"&dateb=&owner=include&count=%d&output=atom") TICKERS_URL = "https://www.sec.gov/files/company_tickers.json" PLACEHOLDER = "you@example.com" - Network accessline 59
TICKERS_URL = "https://www.sec.gov/files/company_tickers.json" - Network accessline 60
PLACEHOLDER = "you@example.com" BROWSER_UA = "Mozilla/5.0 (compatible; day-trader-skill/2.0; +https://github.com/Jakeschincariol/day-trader-skill)" KEEP_DAYS = 30 - Network accessline 61
BROWSER_UA = "Mozilla/5.0 (compatible; day-trader-skill/2.0; +https://github.com/Jakeschincariol/day-trader-skill)" - Access to secretsline 149
[Credential-related source omitted] - Network accessline 179
self._last = time.time() headers = {"User-Agent": self.sec_ua if sec else BROWSER_UA, "Accept-Encoding": "gzip"} req = urllib.request.Request(url, headers=headers) - Network accessline 180
headers = {"User-Agent": self.sec_ua if sec else BROWSER_UA, "Accept-Encoding": "gzip"} req = urllib.request.Request(url, headers=headers) try: - Network accessline 181
req = urllib.request.Request(url, headers=headers) - Network accessline 182
try: with urllib.request.urlopen(req, timeout=30) as resp: data = resp.read() - Network accessline 183
with urllib.request.urlopen(req, timeout=30) as resp:
trader-pelosi/SKILL.md
- Network accessline 38
- Reads `https://disclosures-clerk.house.gov/public_disc/financial-pdfs/<YEAR>FD.zip` - Network accessline 120
Senate reports live at `https://efdsearch.senate.gov`. Before searching, the - Network accessline 125
1. The user opens `https://efdsearch.senate.gov/search/` in their browser and
trader-pelosi/ptr.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 14
Where the data comes from: - The index: https://disclosures-clerk.house.gov/public_disc/financial-pdfs/<YEAR>FD.zip - Network accessline 15
- The index: https://disclosures-clerk.house.gov/public_disc/financial-pdfs/<YEAR>FD.zip - Network accessline 16
(a ZIP with <YEAR>FD.xml: one <Member> per filing, FilingType P = PTR). - Each PTR: https://disclosures-clerk.house.gov/public_disc/ptr-pdfs/<YEAR>/<DocID>.pdf - Reading a PDF needs `pdftotext` (poppler) if you want rows from this tool. - Network accessline 17
- Each PTR: https://disclosures-clerk.house.gov/public_disc/ptr-pdfs/<YEAR>/<DocID>.pdf - Network accessline 48
INDEX_URL = "https://disclosures-clerk.house.gov/public_disc/financial-pdfs/%d%s.zip" - Network accessline 49
PTR_URL = "https://disclosures-clerk.house.gov/public_disc/ptr-pdfs/%d/%s.pdf" - Network accessline 50
FD_URL = "https://disclosures-clerk.house.gov/public_disc/financial-pdfs/%d/%s.pdf" - Network accessline 51
UA = "day-trader-skill/2.0 (+https://github.com/Jakeschincariol/day-trader-skill)" - Network accessline 82
def download(url, timeout=60): req = urllib.request.Request(url, headers={"User-Agent": UA}) - Network accessline 83
req = urllib.request.Request(url, headers={"User-Agent": UA}) - Network accessline 84
try: with urllib.request.urlopen(req, timeout=timeout) as resp: return resp.read() - Network accessline 85
with urllib.request.urlopen(req, timeout=timeout) as resp:
trader-risk/check.py
- Executable scriptline 1
#!/usr/bin/env python3
trader-scanner/scan.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 82
UA = "Mozilla/5.0 (compatible; day-trader-skill/2.0; +https://github.com/Jakeschincariol/day-trader-skill)" - Network accessline 83
YAHOO_HOSTS = ("https://query2.finance.yahoo.com", "https://query1.finance.yahoo.com") - Network accessline 84
NASDAQ_FILES = ("nasdaqlisted.txt", "otherlisted.txt") NASDAQ_URL = "https://www.nasdaqtrader.com/dynamic/SymDir/" SPARK_MAX = 20 # Yahoo's spark answers 400 above 20 symbols - Network accessline 85
NASDAQ_URL = "https://www.nasdaqtrader.com/dynamic/SymDir/" SPARK_MAX = 20 # Yahoo's spark answers 400 above 20 symbols PAUSE = 0.3 # seconds between requests: be polite to free endpoints - Network accessline 229
def http_get(url, timeout=20): req = urllib.request.Request(url, headers={"User-Agent": UA, "Accept": "*/*"}) - Network accessline 230
req = urllib.request.Request(url, headers={"User-Agent": UA, "Accept": "*/*"}) - Network accessline 231
with urllib.request.urlopen(req, timeout=timeout) as r:
trader-timemachine/timemachine.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 60
Data: https://query2.finance.yahoo.com/v8/finance/chart/<T>?range=60d&interval=5m - Network accessline 81
UA = "Mozilla/5.0 (compatible; day-trader-skill/2.0; +https://github.com/Jakeschincariol/day-trader-skill)" PAUSE = 0.5 # seconds between requests: be polite to free endpoints - Network accessline 97
EPOCH = datetime.datetime(1970, 1, 1) WEEKDAYS = ("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday") NYSE_EARLY_CLOSE = { # 1:00 p.m. ET, from https://www.nyse.com/markets/hours-calendars (read 2026-10-13) - Network accessline 98
WEEKDAYS = ("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday") NYSE_EARLY_CLOSE = { # 1:00 p.m. ET, from https://www.nyse.com/markets/hours-calendars (read 2026-10-13) "2026-11-27": "day after Thanksgiving", - Network accessline 99
NYSE_EARLY_CLOSE = { # 1:00 p.m. ET, from https://www.nyse.com/markets/hours-calendars (read 2026-10-13) - Network accessline 188
def chart_url(sym, host="query2"): return "https://%s.finance.yahoo.com/v8/finance/chart/%s?range=60d&interval=5m" % ( host, urllib.parse.quote(sym.upper().replace(".", "-"))) - Network accessline 189
return "https://%s.finance.yahoo.com/v8/finance/chart/%s?range=60d&interval=5m" % ( - Network accessline 197
def _get(url, timeout=20): req = urllib.request.Request(url, headers={"User-Agent": UA, "Accept": "application/json"}) - Network accessline 198
req = urllib.request.Request(url, headers={"User-Agent": UA, "Accept": "application/json"}) - Network accessline 199
with urllib.request.urlopen(req, timeout=timeout) as r:
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Signal confidence: 136 facts
- Network access in code of the plugin configuration.claude-plugin/marketplace.json:1High confidence
- Network access in code of the plugin configuration.claude-plugin/marketplace.json:2High confidence
- Network access in code of the plugin configuration.claude-plugin/marketplace.json:5High confidence
- Network access in code of the plugin configuration.claude-plugin/marketplace.json:6High confidence
- Network access in code of the plugin configuration.claude-plugin/marketplace.json:7High confidence
- Network access in code of the plugin configuration.claude-plugin/marketplace.json:13High confidence
- Network access in code of the plugin configuration.claude-plugin/marketplace.json:14High confidence
- Network access in code of the plugin configuration.claude-plugin/marketplace.json:15High confidence
- Network access in code of the plugin configuration.claude-plugin/plugin.json:5High confidence
- Network access in code of the plugin configuration.claude-plugin/plugin.json:6High confidence
- Network access in code of the plugin configuration.claude-plugin/plugin.json:7High confidence
- Network access in code of the plugin configuration.claude-plugin/plugin.json:8High confidence
- Network access in code of the plugin configuration.claude-plugin/plugin.json:9High confidence
- Network access in code of the plugin configuration.claude-plugin/plugin.json:10High confidence
- Executable script in code of a file that runstrader-alerts/alerts.py:1High confidence
- Network access in prose of a file that runstrader-alerts/alerts.py:34Low confidence
- Network access in prose of a file that runstrader-alerts/alerts.py:35Low confidence
- Network access in prose of a file that runstrader-alerts/alerts.py:36Low confidence
- Network access in prose of a file that runstrader-alerts/alerts.py:37Low confidence
- Network access in prose of a file that runstrader-alerts/alerts.py:38Low confidence
- Network access in prose of a file that runstrader-alerts/alerts.py:42Low confidence
- Network access in prose of a file that runstrader-alerts/alerts.py:43Low confidence
- Network access in code of a file that runstrader-alerts/alerts.py:60High confidence
- Network access in code of a file that runstrader-alerts/alerts.py:196High confidence
- Network access in code of a file that runstrader-alerts/alerts.py:197High confidence
- Network access in code of a file that runstrader-alerts/alerts.py:200High confidence
- Network access in code of a file that runstrader-alerts/alerts.py:201High confidence
- Network access in code of a file that runstrader-alerts/alerts.py:249High confidence
- Network access in code of a file that runstrader-alerts/alerts.py:255High confidence
- Network access in code of a file that runstrader-alerts/alerts.py:274High confidence
- Network access in code of a file that runstrader-alerts/alerts.py:322High confidence
- Network access in code of a file that runstrader-alerts/alerts.py:323High confidence
- Network access in code of a file that runstrader-alerts/alerts.py:324High confidence
- Network access in prose of the SKILL.mdtrader-analyst/SKILL.md:37Low confidence
- Executable script in code of a file that runstrader-analyst/facts.py:1High confidence
- Network access in prose of a file that runstrader-analyst/facts.py:15Low confidence
- Network access in prose of a file that runstrader-analyst/facts.py:16Low confidence
- Network access in prose of a file that runstrader-analyst/facts.py:17Low confidence
- Network access in prose of a file that runstrader-analyst/facts.py:18Low confidence
- Network access in prose of a file that runstrader-analyst/facts.py:19Low confidence
- Network access in prose of a file that runstrader-analyst/facts.py:20Low confidence
- Network access in code of a file that runstrader-analyst/facts.py:53High confidence
- Network access in code of a file that runstrader-analyst/facts.py:54High confidence
- Network access in code of a file that runstrader-analyst/facts.py:55High confidence
- Network access in code of a file that runstrader-analyst/facts.py:56High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuetrader-analyst/facts.py:80Low confidence
- Network access in code of a file that runstrader-analyst/facts.py:107High confidence
- Network access in code of a file that runstrader-analyst/facts.py:108High confidence
- Network access in code of a file that runstrader-analyst/facts.py:109High confidence
- Network access in code of a file that runstrader-analyst/facts.py:110High confidence
and 86 more
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/marketplace.json | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md trader-alerts/SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md trader-alerts/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md trader-alerts/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md trader-alerts/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md trader-alerts/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.
Explore alternatives and comparisons
Add this badge to your README
It updates every night and links to this page.
[](https://hotskills.dev/skill/jakeschincariol-day-trader-skill/)