kansoku-trade/intraday-signal
> Short-term multi-timeframe (5m/15m/1h) technical read for a single symbol — pulls K-line across three timeframes, reads MACD + swing structure, writes a direction call (long/short/neutral) with an explicit anchor price, a 2–4 scenario forward read, a range-bound playbook (long tactic + short tactic; a neutral call carries a numeric low/high zone instead of an entry plan and is scored on whether the zone held), an entry/stop/target plan with dual-basis R/R (T1 + T2) for directional calls only, position sizing with a nominal cap from the live broker account, an event-risk gate (earnings / FOMC / CPI), and market/sector alignment + relvol volume checks — MACD divergence/背驰, candle patterns like Pin Bar, and 123 structures are auto-detected and drawn server-side — then renders it via the `chart` skill (type `intraday`, POST preview → PATCH prediction) and logs a journal entry. US-only, single-symbol, short horizon (intraday to a few sessions) — a companion to `market-session-tracker`, not a replacement. Pin Bar、入场点、盈亏比、short-term call, intraday prediction, entry point, risk reward ratio, multi-timeframe MACD.
npx skills add https://github.com/kansoku-trade/kansoku --skill intraday-signal
Single-symbol, short-horizon technical read across 5 分钟 / 15 分钟 / 1 小时—
produces an explicit long/short call anchored to a price, a probability-weighted
forward read, and a concrete entry/stop/target plan, backed by server-side
auto-detected K-line signals (MACD divergence/背驰, candle patterns such as
Pin Bar, 123 structures). Ends by rendering an interactive dashboard and
writing a journal entry.
> Scope: one symbol per run. For a cross-section "where is money moving"
> question use capital-rotation; for live tracking of a watchlist across a
> session use market-session-tracker; this skill is the deep single-symbol
> drill-down when the user wants a concrete short-term trade read.
capital-rotation)market-session-tracker)sepa-strategy)If ambiguous (e.g. a company name with multiple listings), ask back rather than guessing.
The chart server pulls the three timeframes of K-line itself (5m/15m/1h × 1000
bars) — no manual longbridge kline calls needed. Multi-source grounding is
tiered so runs stay fast — pull the "always" tier every run, judge the rest by
the day's tape:
journal/lessons.md — the distilledlesson list from past post-mortems. Every rule there was paid for with a real
loss; the read you're about to write must not repeat one. If a lesson applies
to today's setup, say so explicitly in the report(如"止损已避开 1000 关口
扎堆区,参照 lessons 2026-07-06").
twitter-reader — X is the fastest tape on breakingnews and sentiment; on an intraday horizon its lead time over aggregated feeds
is exactly the window that matters. Search the symbol, read the last few hours.
X sentiment is an _input_, not a conclusion — form the price-structure read in
Step 3 independently, then reconcile; don't go hunting the chart for evidence
of whatever narrative X planted. **If the twitter-reader skill is not
available in the current session, don't silently skip it: write "X 未查"
into the report/context.sources_used, and treat the 催化日/平静日 call as
provisional(longbridge-news 有延迟,"还没看到新闻"不等于"没有新闻").**
longbridge finance-calendar report --symbol <SYM>.US --format json(下一个
财报日;若返回为空再退回 news / X / IR 并注明未确认)and
`longbridge finance-calendar macrodata --market US --star 3 --start <today>
--end <horizon-end> --format json`(横跨持仓周期的重要宏观发布,带前值/预测;
时间为 ET——CPI/非农 8:30, 多数数据 10:00, FOMC 决议 14:00 + 记者会 14:30). Any
hard event inside the trade horizon must appear in the scenarios — a stop
cannot protect you through a gap(跳空开盘直接越过止损价,实际亏损可远大于计划).
longbridge quote SPY.US QQQ.US <sector-ETF>.US(如半导体 SMH、软件 IGV).
State whether the intended direction is with or against today's index/sector
tape; trading against it is allowed but must be justified in one line.
GET /api/symbols/<SYM>/relvol(服务端已算好的相对成交量——当前量相对同时段常态量的倍数)+ `longbridge capital <SYM>.US
--format json`(triple-bucket flow). Breakouts and reversals without volume
are suspects, not signals; cite relvol when calling any breakout real.
longbridge-news on the symbol — official/aggregated headlines.It lags X by minutes to hours, so treat it as confirmation and source-anchoring
for what X surfaced, not as the breaking-news feed; its item timestamps are
publish times, not event times. The chart server also auto-attaches raw
headlines to the sidebar's news list, but that's unclassified — the AI must
still read and tag them for context.
python3 .claude/skills/options-levels/scripts/levels.py <SYM> — 现价附近
最近两个到期日的高持仓行权价(磁铁位/止损扎堆区)+ 全链 put/call 比。
上方高持仓 call 位 ≈ 上行磁铁与压力,下方高持仓 put 位 ≈ 支撑墙;这些
价位直接约束 Step 4 的止损与目标摆放(见 entry plan 规则)。CBOE 不覆盖
的标的(无期权)注明"期权 N/A"即可。
trump-truth-monitor(policy-sensitive days), sec-edgar (filing/insider leads), gdelt / fred
(macro event days).
context.sources_used (Step 4).via longbridge positions --format json if they hold this symbol, and account
size via longbridge portfolio --format json (needed for position sizing in
Step 4 — never ask the user, read the broker).
Check the chart server is up (curl -s http://localhost:5199/api/health; if
down: pnpm start at the repo root in the background), then POST a preview (no
prediction):
curl -s -X POST http://localhost:5199/api/charts \
-H 'Content-Type: application/json' \
-d '{"type":"intraday","symbol":"<SYM>.US","name":"..."}'
Only add a "position": {"shares": N, "cost": X} field when `longbridge
positions` shows a real holding in this symbol — never a placeholder; a
fabricated position renders a bogus 持仓视角 card on the dashboard.
The response's data.technicals gives, per timeframe: the latest DIF/DEA/HIST,
the session VWAP(last_vwap,当日成交量加权均价——日内机构衡量贵贱的基准线,
m5/m15 有值), the last ~6 swing highs/lows, the most recent 金叉/死叉
(last_cross), any
auto-detected divergence_candidates / beichi_candidates, and pattern_123 —
auto-detected 123 reversal structures (①extreme → ②reaction pivot → ③higher-low /
lower-high), each with status (forming = trigger not yet broken, confirmed =
close broke the ② trigger), trigger, and invalidation prices. A forming
pattern_123 is a ready-made entry setup: entry at the ② trigger break, stop
beyond ① (all confirmed pivots only — the chart itself also draws these
automatically, in both preview and final render).
The response also carries meta.day_context(日线背景与日内参照位,服务端自动算):
daily_trend(up/down/range,日线收盘对 MA20/MA50 的位置)、daily_ma20/daily_ma50、
high_20d/low_20d(近 20 个交易日高低)、prev_day(昨日高/低/收)、
pre_market(今日盘前高低)、opening_range(开盘前 30 分钟区间)、vwap。
meta 还带 options_levels(期权墙——服务端拉 CBOE 自动算,与 Step 2 的
options-levels 脚本同源同口径,preview 里有值时 Step 2 的脚本调用可省)和
event_risk(下次财报日 + 近 3 天重要宏观发布——同样可替代 Step 2 的
finance-calendar 调用);两者都会渲染到页面(期权墙画线 + 事件风险卡)。
先读 day_context 再读三个周期——1 小时的"趋势"可能只是日线大区间里的一段震荡;
h1 方向与 daily_trend 相反时必须在报告里写明这是逆日线的判断。这些参照位
也画在图上("日内参照位"图层)。
Read these numbers — don't guess MACD direction from eyeballing candles.
MACD 是滞后的确认指标,不是方向的来源:方向来自结构(摆动点、123、
关键参照位的攻守),MACD/背离只用来确认或否决,一根还没被结构支持的
背离候选不构成入场理由. Note the
auto-detector can't confirm a pivot on the last 1-2 bars (needs bars on both sides);
for very recent action, read last_dif/last_dea/last_hist directly and reason
about it yourself (e.g. a sharp reversal-and-close-on-the-low bar is a real signal
even before any swing/divergence algorithm can confirm it — see the MU 2026-07-01
session for an example: the auto-divergence check didn't catch the final-hour
blow-off because the session's last bar can't be a confirmed pivot yet).
First, classify the day from Step 2's pull (消息面权重定级):
or tariff news touching the name, a major industry headline, or any story that
already visibly moved the price. News leads, technicals follow: technical
levels are demoted to "where does it land after the shock" rather than
direction; every scenario's probability must state how the news shifted it;
if the news points against the technical read, cap the technical-side scenario
at ≤40% or call neutral.
not override a clean structure read.
State which regime was applied in conclusion.summary. Then, using the
timeframe data + Step 3's numbers, decide:
long / short / neutral, anchored to a specifictimeframe + time + price (never a bare directional call with no anchor).
Timeframe roles(周期分工): 日线定背景(day_context.daily_trend +
关键参照位——顺日线的短线判断成功率天然更高,逆日线要单独说明理由),
h1 定趋势方向, m15 定结构与入场, m5 只做触发与微调。
位置参照(必做): 方向判断必须对照 VWAP 与日内参照位说话——价格在
VWAP 上方还是下方、离昨高/昨低/盘前高低/开盘区间哪条最近、是攻还是守。
"突破"类情景的 trigger 应指向具体参照位(如"放量站上昨高"),而不是
凭感觉画的价位。The anchor lives on m15 by default — anchor.timeframe also sets
the dashboard's default tab. Anchor on m5 only for a pure scalp call, on h1
only for a swing-level statement. Align anchor.time to a bar boundary of its
timeframe (m15 → :00/:15/:30/:45).
凑数硬编一个 5% 的情景), probabilities summing to ~100%, each with a path
(what the K-line likely does) and a trigger (what confirms it). Reuse the
3-scenario discipline from market-session-tracker (Bull/Base/Bear-style).
range_bound_plan with an explicit tactic for both directions (long_tactic
and short_tactic) — never describe only one side of a two-sided range.
**For a neutral call the playbook additionally MUST carry numeric low /
high(箱体下沿/上沿,low < high,须包住锚点价)** — 观望 = 预判价格守在
这个区间内。这两个数是观望判断的事后对账依据:服务端会按"收盘价离开区间 =
破位(判错)/ 守满一个交易时段 = 守住(判对)"记入记分板,没有它们观望就
是一个说错零成本的空话。
entry, stop, target1_pct, target2_pct — **only forlong / short calls. A neutral call submits NO entry_plan**: 观望就是
现在没有可执行的入场/止损/目标,两侧的条件应对全部写进 range_bound_plan
(见上一条),不要一边喊观望一边给价位。Steps 5–6 below (position size,
trade management) likewise apply only to directional calls.
(swing point 外沿、123 结构的 ①、区间边界), never a bare round number or
arbitrary %. Name the structure in stop_note.
against three crowded zones: 整数关口(±0.5%)、当日/昨日高低点(±0.3%)、
Step 2 期权高持仓价位(±0.5%). A stop inside any of them is where sweeps
happen(2026-07-06 三笔止损全灭于 1000 关口上方)— either push it beyond
the zone with extra cushion (smaller size for the wider stop), or switch
to a confirmation entry(等反抽失败再进). State in stop_note which
zones were checked and cleared.
T2-based (long: risk = entry−stop, reward = target−entry; short
mirrored). Report both. **One unified rule(全仓库同一口径): T1-based
R/R < 1:1 → the plan is rejected, rework the entry or pass; 1:1–2:1 →
allowed, but the report must explicitly say 赔率偏薄(the chart sidebar
flags < 2:1 in red for the same reason — that's a warning, not the
rejection line).** If only the T2 口径 reaches 2:1, say so explicitly
(远目标是有条件的,不许拿它化妆头条盈亏比).
FOMC/CPI-class release within the horizon. An exception must state the gap
risk in one line(跳空可越过止损,最大亏损≠1R).
flagged: spreads wide, size thin, stop execution unreliable. Also note the
9:30–10:00 ET window is fake-breakout-prone — a breakout entry there needs
relvol confirmation.
longbridge portfolio pull: riskbudget = 1% of account value by default (0.5% on a 催化日 or counter-tape
trade); shares = floor(budget / |entry − stop|). **Nominal cap(名义上限):
the position's nominal value(shares × entry)must not exceed 30% of account
value** — a tight stop makes the risk formula spit out huge share counts
(止损贴得越近算出的股数越多,极端时名义金额会超过账户本身,等于隐性加杠杆);
when the risk-based size breaks the cap, cut shares to the cap and say so.
Report 股数、名义金额、占账户 %。A plan without a size is not a plan —
this is what separates an opinion from a trade.
entry_plan.note / the report: at T1 take half off and move the stop to
breakeven(推保本); time stop — ~6 bars of the anchor timeframe
(m5 锚点 ≈30min、m15 锚点 ≈1.5h、h1 锚点 ≈6h——波段级判断不该被日内级的
时间止损误杀), if the trade hasn't moved by then the thesis is stale, exit
flat; stopped out = stay out, no revenge re-entry unless a _new_ structure
signal forms.
加 / 减 / 持 / 清 call on the live position, reconciled against cost basis —
not just a fresh-entry plan alongside an ignored holding.
candle patterns, and 123 structures server-side; cite those markers in the
report rather than re-labeling them. The only signal worth adding by hand is
an other-type note for something the detectors cannot see yet — e.g. a
last-bar blow-off whose pivot the swing algorithm can't confirm (the MU
2026-07-01 final hour) — anchored to a specific timeframe + time +
price.
context — besides prediction, write the context payload (seechart skill's context schema): tag every news/sentiment item pulled in
Step 2 with source + tag + a one-line note, list what was actually
pulled in sources_used, and write the conclusion card (stance /
summary / action). generated_at = now, ISO timestamp.
PATCH the same chart with BOTH prediction and context filled in, in one
call (see chart skill's prediction / context schemas for the full shapes):
curl -s -X PATCH http://localhost:5199/api/charts/ \
'Content-Type: application/json' \
-d '{
"prediction": { "direction": "short", "anchor": {"timeframe":"m15","time":"2026-07-06T14:15:00Z","price":61.10}, "scenarios": [ ... ] },
"context": {
"generated_at": "2026-07-06T14:30:00Z",
"conclusion": { "stance": "short", "summary": "一句话综合判断", "action": "现在该做什么" },
"news": [ { "time": "2026-07-06T13:10:00Z", "source": "longbridge", "tag": "catalyst", "title": "...", "note": "AI 一句话解读" } ],
"sources_used": ["longbridge-news", "twitter-reader"]
}
}' < id-from-step-3 > -H
Include position in the Step-3 POST (from the optional longbridge positions
pull) if the user holds this symbol — the dashboard renders a 持仓视角 card.
Present in this order (mirrors the user's original ask):
other 补充备注一并说明;量能 relvol 佐证)data.url(形如http://localhost:5199/symbol/<SYM>?analysis=<id>——标的驾驶舱页面钉在本次
分析上,含本次预测/情景/入场/信号,分析完立即打开就是看它;旧的
http://localhost:5199/charts/<id> 链接依然有效,会自动跳转到这里),辅链接是
去掉 ?analysis= 参数的驾驶舱主页 http://localhost:5199/symbol/<SYM>
(聚合活数据 + 历史分析,永远跟随最新一次分析),附在后面
10. 免责声明:仅供参考,不构成投资建议
Write journal/YYYY-MM-DD-<symbol>-intraday.md (US session date). Same-day
re-run on the same symbol appends a new timestamped section — never overwrite.
The cockpit's 历史 tab (GET /api/symbols/:sym/analyses, rendered on
/symbol/<SYM>) now lists past analyses for this symbol with a mechanical
outcome judgment (hit_target / hit_stop / open, computed server-side from
post-anchor bars) — that's a quick mechanical scoreboard, not a substitute for
the journal's narrative record.
Calibration loop(对账): every run, before writing the journal entry,
pull GET /api/overview/stats(或该标的的 GET /api/symbols/:sym/analyses)
and copy the mechanical scoreboard into the entry — one line: 总次数、命中率、
目标/止损/守区间/破区间的分布(观望判断按守住/破位计入,说错不再是零成本)、
**平均盈亏倍数 avg_r(每笔平均赚/亏多少个止损单位——命中率 40% 但赢 2 亏 1
长期是赚的,命中率 70% 但赢小亏大照样亏,光看命中率会骗人)**.
The scoreboard is machine-judged, so this step is a copy, not an audit — no
counting discipline required. Scenario-probability calibration(标了 60% 的
情景实际兑现了几成)stays qualitative: when the scoreboard shows a losing
streak or the stated probabilities feel systematically over-confident, say so
in that day's entry — probabilities that never get compared against outcomes
degrade into rhetoric.
Lesson distillation(教训沉淀): whenever a post-mortem (收盘复盘或单笔
对账) produces an actionable lesson — a rule that would have changed an entry,
a stop, or a probability — append it to journal/lessons.md as one dated line
(合并同类条目并加注重复次数; lessons already absorbed into skill rules move
to the file's 已固化 section, never deleted). A lesson that only lives in a
dated journal file is a lesson the next run will not see.
neutral call without numeric low/high in range_bound_plan(没有区间的观望事后无法对账,等于零成本喊话)longbridge portfoliostop_notejournal/lessons.md, or repeating a mistake already recorded there without addressing itlongbridge finance-calendar report --symbol answers it in one calllongbridge option quote(本账户无期权行情权限,必报 no quote access)— per-strike data comes from options-levelsday_context — a direction call that never says where price sits vs VWAP / 昨日高低 / 盘前区间, or an h1-counter-daily call without naming itmarket-session-tracker read for the same symbol without reconciling — this is a narrower, single-symbol lens, not an overridecontext.news item without a sourcelongbridge-news alone without having checked X — longbridge lags; "no headline yet" there doesn't mean no newsconclusion.action that contradicts the prediction's direction without explaining whytrump-truth-monitor / sec-edgar / gdelt / fred) on every run — tiering exists to keep runs fast; judge by the day's tapechart — renders type intraday; this skill is chart's primary caller for that typelongbridge-kline — same data the chart server pulls; call directly only for in-chat analysislongbridge-capital-flow — optional grounding context (distribution check)options-levels — always-tier: per-strike open-interest levels(磁铁位/止损扎堆区)+ put/call ratios from the CBOE delayed chaintwitter-reader — always-tier, checked first (fastest tape on breaking news/sentiment)longbridge-news — always-tier grounding context (lagging official headlines; confirmation + source anchor)trump-truth-monitor — on-demand grounding context (policy-sensitive days)sec-edgar — on-demand grounding context (filing/insider leads)gdelt / fred — on-demand grounding context (macro event days)market-session-tracker — broader live multi-symbol session monitoring; this skill is the single-symbol short-term drill-downsepa-strategy — the weeks/months-horizon counterpart for swing entriesTake kansoku-trade/intraday-signal from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.