| name | korea-market |
| description | Korean market quotes (KOSPI / KOSDAQ / SK Hynix / Samsung) with capitulation-reversal detection. Use whenever reading the US memory/storage complex (MU / DRAM / SNDK / WDC / STX / SMH) — Korea is the SOURCE market and leads the US tape; Longbridge does not cover KRX. Triggers: 韩国 / 韩股 / KOSPI / 海力士 / SK Hynix / 三星 / Samsung / 韩国爆仓 / 韩国追保 / 存储板块见底了吗 / 洗盘结束了吗 / capitulation / Korean margin calls / has the flush ended.
|
Korea Market
Korean quotes + a capitulation-reversal test, from the Yahoo Finance chart API. Stdlib only, no third-party deps, goes through _shared/client.py (cache + throttle + output contract).
Why this skill exists
Longbridge does not cover KRX. It returns [] for 000660.KS / 005930.KS.
The tempting workaround — read Korea through the US-listed proxies EWY (Korea ETF) and KORU (3× Korea) — lies to you:
- They are FX-contaminated (a won move shows up as a price move).
- They are frozen while Seoul is still trading — they only reprice during US hours.
The 2026-07-14 proof. Reading the proxies, EWY looked ~flat (−0.13%) — nothing to see. The real Seoul tape that same session:
| Seoul (real) | Proxy said |
|---|
| SK Hynix | low −9.1% intraday → closed +2.9% on 1.55× volume (heaviest of the entire selloff) | EWY "flat" |
That was a textbook capitulation bottom, and the proxy hid it completely. Anyone watching EWY would have missed the exact session they were waiting for.
Rule: when the question is about Korea, read Korea.
Usage
python3 .claude/skills/korea-market/scripts/quote.py --smoke
python3 .claude/skills/korea-market/scripts/quote.py
python3 .claude/skills/korea-market/scripts/quote.py --fresh
python3 .claude/skills/korea-market/scripts/quote.py 000660.KS
python3 .claude/skills/korea-market/scripts/quote.py --range 6mo
Yahoo symbols: KRX stocks are NNNNNN.KS (SK Hynix 000660.KS, Samsung 005930.KS); indices are ^KS11 (KOSPI), ^KQ11 (KOSDAQ).
The exhaustion evidence (the point of this skill)
A capitulation bottom BY DEFINITION prints a new low. Testing for "no new low for two sessions" — the obvious naive rule — skips the exact session you are waiting for. That mistake was made on 2026-07-13 and corrected the next day by the data.
Look for exhaustion instead: heaviest selling into a new low, then buyers taking the other side.
| Condition | Field | Reference |
|---|
| New low — sellers pushed below the prior floor | made_new_low | low < prior low |
| Heavy volume — selling was maximal, not a drift | heavy_volume | rel_volume ≥ 1.3× (20-session avg) |
| Green close — buyers won the session | green_close | close > prev_close |
| Closed strong — decisively, not on a last-minute bell bounce | closed_strong | (close−low)/(high−low) ≥ 0.6 |
A washout on light volume is not capitulation — it is a drift lower with nobody home, which has no natural floor. Volume is what separates "sellers are done" from "buyers left."
These are references, not a rule. You judge.
The script deliberately does not emit a verdict. It reports each measurement next to the reference it is being read against, plus a conditions_cleared tally — and stops there.
Why: collapsing this into a boolean throws away the distinction that actually matters. On 2026-07-14, Samsung cleared 3 of 4 with volume at 1.11× against a 1.3× reference — a near-miss. A hard threshold reads that as an identical outcome to KOSDAQ's 1 of 4 (still red, still no bid). Those are not the same animal, and a script that says so is lying to you.
Read the numbers. Weigh them against the tape. Then decide.
--min-rel-volume / --min-close-position tune the references if a name's normal volume profile warrants it.
- Indices (
^KS11 / ^KQ11) are context, not evidence. Index volume is a poor exhaustion gauge — it dilutes the memory names across ~900 constituents. Weight the individual names much more heavily.
- A single name reversing is not a sector washout. Look for agreement across SK Hynix and Samsung, and confirm on the next session before treating anything as a floor.
Interpretation rules
- Korea leads, the US follows. Read the Seoul close before forming a view on MU / DRAM / SNDK / SMH. Two instances on record: 2026-07-02 (KOSPI −7.9%, sidecar halt) and 2026-07-13 (SK Hynix −15.4%, its biggest one-day drop ever) — the US memory complex followed both times.
- Forced liquidation ≠ informed selling. A margin cascade dumps at market regardless of price or fundamentals, so a big slice of the move carries no information about memory fundamentals. See
journal/lessons.md.
- A leverage flush burns out in days, not weeks — leveraged money self-destructs (a 3× ETF down 24% only needs two more such days to be gone). Do not wait weeks for it. See
stocks/_leveraged-etf-mechanics.md.
- But leverage explains the VIOLENCE, not the DIRECTION. A capitulation bottom in Korea does not un-announce SK Hynix's $51B fab or MU's $250B plan. Do not let a washout signal overwrite a real supply-side signal.
- The margin-call rate is not in this API. Korea's Financial Supervisory Service publishes it with a lag; it must be sourced from news/X.
Output contract
Standard repo envelope — success → {"ok": true, "data": {...}, "meta": {...}}, exit 0; failure → {"ok": false, "error": ..., "hint": ...}, non-zero.
data.symbols[] carries close, change_pct, high, low, volume, rel_volume, recovery_from_low_pct, close_position_in_range, drawdown_from_20d_high_pct, is_index, a conditions_cleared tally, and exhaustion_evidence — where each condition reports its value, the reference it is read against, whether it clears, and why that condition matters.
There is no verdict field, by design. See "These are references, not a rule" above.
Cache TTL 300s; pass --fresh when polling intraday.