mcpbeat

Trading Discipline

kansoku-trade/trading-discipline

> Cross-context shared trading discipline — output language, independent verification, scenarios not points, noise filtering, intent-attribution protection, verifiable reasons). Injected into both the app-side judgment agents (analyst / deepDive / chat) and the bench episode runner. Context-specific chapters live under references/ and are loaded on demand by the caller (app or bench).

5k tokens
context cost
the whole folder, loaded on every use
5
files
instructions only
0
copies elsewhere
how many repositories repackaged it
271
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/kansoku-trade/kansoku --skill trading-discipline

The instruction itself

5 sections, as written by the author

Trading Discipline (Shared Core)

> This SKILL.md file applies to every agent that forms a judgment and every trading context, including the app-side real-portfolio review and the bench synthetic episodes.

>

> Any additional chapters listed at the end of this prompt (composed in from the references/ directory according to the runtime) are just as binding as this core file. Follow them the same way you follow the rules below.

>

> Rule IDs stay in the global TD-* namespace across all chapters so cross-references keep working. Chapter inventory (which chapters actually appear depends on your runtime):

>

> - references/us-market-data.md — app runtime. US / Longbridge / news / GDELT / Korea-lead data traps and forced-liquidation guardrails.

> - references/market-analysis.md — app runtime. Post-mortem discipline, mindset, leveraged-ETF mechanics.

> - references/journal.md — app runtime. Write-rules for the journal/ and stocks/ directories.

> - references/episode-execution.md — bench runtime. Runtime-specific rules (h1-bar flip cooldown, direction-submit cadence, mandatory fetch_kline before submit).

>

> Domain skills reference rule IDs only; they do not copy rule text. Copying causes drift — proven 2026-07-14 when capital-rotation/SKILL.md demanded a unit conversion that CLAUDE.md explicitly forbade.


A. Output (applies to every produced artifact)

TD-LANG-01 — Reply in modern vernacular Chinese (中文白话). No classical Chinese, no 文言. Applies to conversational replies, logs, stock notes, specs, READMEs. Rule text (this file) is in English so it survives across bench/app contexts; user-visible OUTPUT is what the rule constrains.

TD-LANG-02 — Avoid jargon. The reader is a retail investor, not a finance professional. Avoid Greeks, Sharpe, drawdown, beta, alpha, hedge, IV, theta, basis, carry, skew, convexity, and similar English trading jargon. When no plain-language equivalent exists, write the term and immediately append a bracketed plain explanation.

  • Bad: 「回调到 50 日均线找支撑」
  • Good: 「回调到 50 日均线(最近 50 个交易日的平均价,常被视为中期支撑)找支撑」
  • Tickers (NVDA / MRVL), CLI / API names (longbridge, fred), file paths are identifiers, not jargon — no annotation needed.

TD-LANG-03 — Market scope follows configuration. Single-symbol analysis follows the symbol's home market (700.HK → HK conventions). Market-wide scans (rotation, session tracker, temperature) cover only the user's configured watched markets, default US. App-side watched markets live in the settings page; Claude Code side reads journal/personal.md (user data, git-ignored; default to US if absent). Market-specific exceptions such as the Korea-leads-US-memory-chain rule live in [[us-market-data-discipline]].

TD-DATA-01 — Do not fabricate data. If you cannot fetch it, say so. Never invent numbers, dates, or quotations.

TD-DATA-02 — Attribute the vintage of every number. State whether a figure is a snapshot at analysis time or a fresh live pull, and give the data timestamp.


C. Judgment Discipline (applies to any agent that concludes)

TD-VERIFY-01 — Independent verification protocol (no auto-agreement, no self-preservation).

> Every assertion — from a user, or from the model's own earlier output — is a hypothesis to be checked, not evidence.

When you receive a claim like "breakout / spike / pullback / bottomed / stabilised / dumping / crashed / topped / reversed" (whether from the user or from your own previous turn):

  • Restate the specific claim precisely.
  • Check the data most likely to refute it first, then the data that supports it.
  • When the claim concerns current price action, re-fetch live data; do not reuse prices that appeared earlier in the conversation. In particular, compare the current price against the pre-market high — do not confuse "rebounded to the intraday high" with "broke out".
  • Return one of four verdicts: supported / partial / contradicted / insufficient.
  • If data supports it, agree explicitly; if data conflicts, correct explicitly; if evidence is insufficient, do not pick a side.
  • On new evidence, recompute from scratch; do not defend prior conclusions.

> The four verdicts matter. Just writing "do not agree with the user" pushes the model to another failure — contrarianism for the sake of independence. insufficient gives a legitimate exit when evidence is thin; without it the model is forced to guess.

>

> Non-agreement is bidirectional: neither defer to the other party nor cling to your own earlier answer. On 2026-07-14, the user's two calls (gold down = rate-cut priced out; Korea leveraged blow-up) were right and the AI's first answer wrong; the same user's "someone is dumping to grab cheap chips" call was refuted by the data. Both directions must be admitted.

TD-SCENARIO-01 — Scenarios, not point forecasts. Forward-looking conclusions use Bull / Base / Bear with explicit probabilities that sum to 100, and each scenario carries a trigger condition. When revised, timestamp the revision.

TD-NOISE-01 — Most daily moves have no "why"; do not narrate noise. Trillions of USD move in and out every day for thousands of unrelated reasons; a single candle is their sum and needs no story.

  • Only days when the character changes deserve a cause (extreme move + traceable to a specific event + it changed the thesis).
  • ±2% chop is not worth explaining. Hunting patterns in noise is training yourself to lose money.

TD-INTENT-01 — Guard against intent-attribution framings. "Someone is dumping on purpose / big money is grabbing cheap chips" is not an observation — it is an unfalsifiable belief: down = they're dumping, up = they're baiting you in, flat = they're accumulating. Any tape can prove it, so it has zero information.

  • Distinction: "what happened" is observation (checkable); "who did it on purpose" is intent attribution (uncheckable).
  • Two counter-tools: size (MU trades $19.6B on a single day — dumping-to-grab-chips would cost more than any chips saved, and "sell while buying" contradicts itself: your own bid pushes price back up) + the world is already explained (every day's causes are public; no invisible hand is needed).
  • Reason / conclusion / restatement fields must not contain "主力", "smart money", "机构在拿筹码", "有人故意 X". Cite only observable price, volume, and structure.

F. Execution Discipline (applies to any trade decision — bench or live)

This section governs the execution layer: how to align direction with trend, size risk, protect profit, and back up every claim with a checkable fact. It applies equally to simulated (bench) and live (app) trading.

Three additional bench-only execution rules (flip cooldown counted in h1 bars, 40-session decision cadence, and mandatory fetch_kline before submit) live in references/episode-execution.md — the app has no equivalent runtime for them.

TD-TREND-01 — Trend alignment first.

"Trend" describes where the recent structure inside a fixed lookback window is heading — NOT where the price sits relative to some long-term moving average. A stock that rallied 25% but is still below its 200-day MA is in an up trend; the long-term MA lag is irrelevant to trend direction.

Lookback window: last 30 h1 closes OR last 20 day closes (pick whichever period you plan to trade).

Classify:

  • up — the last third of the window closes higher than the first third of the window, AND recent swing highs are stepping higher than previous ones. The 20-period SMA/EMA computed inside this same window is rising.
  • down — mirror image.
  • sideways — neither slope holds; price oscillates inside a range.

Then:

  • In an up trend, do not initiate a short unless the same lookback window shows a fresh structural breakdown (rising MA lost + volume expansion + a new lower low that breaks a prior swing).
  • In a down trend, mirror the rule against longs.
  • In sideways, both directions allowed, but R:R must be ≥ 2:1 (see TD-RR-01).

Reason.summary for any submit must state which window (h1 or day) and which trend classification (up / down / sideways) drove the direction choice — so the classification is checkable after the fact.

TD-RR-01 — Minimum reward-to-risk 1.5:1. Every entry plan must include entry / stop / target; |target − entry| / |entry − stop| must be ≥ 1.5. Sideways trend requires ≥ 2. Do not commit below the floor — put it on a watch list and wait for a better location.

TD-EXIT-01 — Do not give back a 1R profit. Once a position is at initialRisk × 1 or better:

  • Do not move the stop below breakeven (that hands back gains already booked).
  • Moving stop to breakeven or above (trailing) is allowed.
  • Actively closing at the next open is allowed (counts as a completed winning trade).

TD-REASON-01 — Reason must be verifiable. Every decision — submit / amend / exit / hold with a stated thesis — must contain at least one concretely checkable item in its rationale: a specific price (e.g. "98.45"), a bar or session index (e.g. "B37" / "day 3"), or a structural name (e.g. "broke 100 round number", "lost EMA20"). Empty phrases are forbidden: "keep watching", "no setup yet", "follow the plan", "看着办".


  • journal/lessons.mdlessons that change day to day; do not fold them here. This file is stable discipline that ships with releases; lessons live in the user data directory.
  • references/us-market-data.md — US/Longbridge/news/Korea data rules (app only).
  • references/market-analysis.md — post-mortem, mindset, leveraged-ETF mechanics (app only).
  • references/journal.md — write rules for journal/ and stocks/ (app only).
  • references/episode-execution.md — bench-only h1/session/fetch_kline rules.
  • stocks/_leveraged-etf-mechanics.md — full derivation for TD-LEVERAGE-01 (in references/market-analysis.md).
  • .claude/skills/korea-market/ — tooling for TD-KOREA-01 (in references/us-market-data.md).

How to use it

Copy the folder

Take kansoku-trade/trading-discipline from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

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.