
trader-entry
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.
- Installs
- 92
- Last 24h
- +16
- Trending rank
- #6733
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/jakeschincariol/day-trader-skill --skill trader-entry- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads trader-entry automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
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).
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.json
python3 "${CLAUDE_SKILL_DIR}/entry.py" check TSLA --setup level --level 371.20
python3 "${CLAUDE_SKILL_DIR}/entry.py" check TSLA --interval 1m --min-volume-x 1.5
python3 "${CLAUDE_SKILL_DIR}/entry.py" watch TSLA --until 15:30 # one line per closed bar, stops on the trigger
python3 "${CLAUDE_SKILL_DIR}/entry.py" watchlist # every hit in trader/watchlist.json
Other flags: --or-minutes N (default 15), --json, --offline FILE (a
saved Yahoo chart JSON, .json or .json.gz, or a folder of
<TICKER>.json), --now "2026-10-19 10:15" (New York time) to replay a day.
watch with --now or --offline runs on a simulated clock and replays the
day bar by bar without waiting.
What it reads and writes
| file | what |
|---|---|
trader/watchlist.json | the scanner's hits (hits[].symbol), for watchlist |
trader/config.json | no_entries_before (09:45) and no_entries_after (15:30), New York time. Optional |
| Yahoo chart API | today's bars, range=1d&interval=5m (or 1m): free, unofficial, can lag |
trader/entry.json | with check --write, or when watch triggers: symbol, setup, status, time, bar, price, level, opening range |
The rule
- Opening range (orb). The high and low of the first 15 minutes: the 9:30, 9:35 and 9:40 five-minute bars, or fifteen 1-minute bars. The level to beat is the range high.
- Level. A price you give, like a 20-day high from
/trader-scanner. - The trigger is the first completed bar after the range that CLOSES above the level. A wick above is not a trigger. A close exactly at the level is not above it.
- The time is that bar's close time (the 10:10 bar closes at 10:15 AM). The price is its close, to the cent.
- Only closed bars count. A bar is closed when the clock passes its start plus 5 (or 1) minutes and Yahoo has caught up to that moment (it waits a minute at most). Yahoo's live tick, like 10:49:45, is never a bar.
- Volume, if you want it.
--min-volume-x 1.5also needs the trigger bar's volume at 1.5 times the range bars' average. The 9:30 bar holds the opening auction, so 1.0 is already strict. - Time limits. No entries before 9:45 or after 15:30 (config). On a 1:00 p.m. early close the cutoff moves up with the close, to 12:30.
- What it says. Waiting (and how far the last close is from the level), triggered, expired, or no data. Before 9:30: not open yet. Before 9:45: the range is still forming. Weekends and NYSE holidays: the market is closed.
Steps
- Get the symbol from the user, or run
entry.py watchlistafter/trader-scanner. Check/trader-newsfor it first. - Run
entry.py check SYMBOL. Tell the user the status in one line: waiting and how far, triggered at what time and price, or expired. - To wait for it, Claude can run
entry.py watch SYMBOL --until 15:30in the background, orentry.py check SYMBOL --writeon a/loopevery 5 minutes.watchwakes just after each bar closes, prints one line per bar, and exits 0 on the trigger (it writestrader/entry.json) or 1 when the setup expires. Keep the computer awake while it watches: a sleeping laptop pauses it, and it catches up, late, when it wakes. - When it triggers, say the time and the price, and that nothing was placed. If the trigger is more than a bar old, say that too: a late entry is a different trade.
- Hand off to
/trader-exitto set the stop and the target BEFORE anything is bought.
Example: the reel
TSLA, Monday 2026-10-19, 5-minute bars. The opening range is 354.47 to 362.18. At 10:12 the 10:10 bar is still open, so it waits:
WAITING last close $361.68 (10:05 bar), $0.50 under the range high $362.18 (-0.14%).
The 10:10 bar is still forming ($364.18 so far, closes 10:15 AM); it does not count until it closes.
At 10:15 the bar has closed:
TSLA Mon 2026-10-19 10:15 ET opening-range breakout (15-minute range) on 5-minute bars (Yahoo, free, can lag)
Opening range 9:30-9:45: high $362.18, low $354.47 (3 of 3 bars).
TRIGGERED 10:15 AM at $364.18: the 10:10 bar (bar 8) closed above the range high $362.18 (+0.55%).
This is the moment to get in, if you take the trade. Nothing was placed.
Next: set the stop and target BEFORE you buy: /trader-exit (exit.py plan --from trader/entry.json).
With --min-volume-x 1 the 10:10 bar is too thin (0.60x the range's volume)
and the trigger moves to 10:35 AM at 365.75 (the 10:30 bar, 7.98x).
Rules
- Bar by bar, on free Yahoo 1-minute or 5-minute bars. They are unofficial and can lag. Say so when a minute matters.
- A signal is information, not an order, and not a promise. Nothing here promises winning trades or money.
- Long side only. v2 plans longs only. If the user wants a short, say that.
- One trigger per setup per day: the first close above. Later closes do not reset it.
- Never call an entry early because a bar looks like it will close above.
What it never does
It never places an order, never sizes a position, never sets the stop (that
is /trader-exit), never moves the level after the fact, and never counts a
bar that has not closed. It never runs /trader-broker from a background
watch: nobody is there to say yes.
Safety
- Education and tooling, not financial advice. A PASS is a rules check, not a recommendation.
- Paper trading by default (
"paper": true). Going live is the user's own decision, in their own config. - Nothing in this pack places an order except trader-broker, and only when all three hold: trader-risk passed that exact order today, the user typed an explicit yes for that one order in the chat, and the user clicked Allow once on Claude's own card because the order tool is set to "Needs approval" (Customize > Connectors > tool permissions). Never set an order tool to "Always allow".
- No options, margin, short selling or leverage unless the config allows it and the user confirms.
- Broker keys live in environment variables or the Claude Desktop config, never in the chat.
FAQ
What does the trader-entry skill do?
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.
How do I install trader-entry?
Run npx skills add https://github.com/jakeschincariol/day-trader-skill --skill trader-entry in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/trader-entry/ (personal) or .claude/skills/trader-entry/ (project).
Which AI agents can use trader-entry?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is trader-entry safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains trader-entry?
It is published by jakeschincariol in jakeschincariol/day-trader-skill. It has 92 recorded installs.
More from jakeschincariol/day-trader-skill
trader-timemachine
jakeschincariol/day-trader-skill
Open the skill to read its SKILL.md instructions.
trader-scanner
jakeschincariol/day-trader-skill
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.
trader-risk
jakeschincariol/day-trader-skill
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,
trader-exit
jakeschincariol/day-trader-skill
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.
trader-budget
jakeschincariol/day-trader-skill
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 placestockorder. 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.
trader-analyst
jakeschincariol/day-trader-skill
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.
Popular other skills
hyperframes-cli
heygen-com/hyperframes
The HyperFrames CLI by job - scaffold, check, look at frames, edit the timeline, preview, render locally or in the cloud, publish, project history - plus reading its JSON and recovering from build or render failures.
triage
mattpocock/skills
Move issues and external PRs through a state machine of triage roles, categorise, verify, grill if needed, and write agent-ready briefs.
ask-matt
mattpocock/skills
Ask which skill or flow fits your situation. A router over the skills in this repo.
to-questionnaire
mattpocock/skills
Turn a decision you can't fully answer into a questionnaire for someone else to fill in.
loop-me
mattpocock/skills
Grill me about specs for the workflows I want to build, within this workspace.