К основному содержанию
скилл CX Codex

drawdown-circuit-breaker — скилл для Claude Code: стоп-кран

Скилл читает журнал сделок trader-memory-core и решает, можно ли сегодня открывать новые позиции: дневной лимит убытка, серия лоссов, недельная и месячная просадка.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add tradermonty/claude-trading-skills --skill drawdown-circuit-breaker -a claude-code
Открыть на GitHub

Что делает drawdown-circuit-breaker

Скилл считает реализованный P&L по файлам th_*.yaml в каталоге состояния и сравнивает его с порогами. По умолчанию дневной убыток 2.0% от счёта даёт HALTED до следующего буднего дня по ET, два закрытых убыточных тезиса подряд включают COOLDOWN на 24 часа после последнего выхода, недельная просадка 5.0% останавливает торговлю до понедельника, месячная 8.0% — до первого числа следующего месяца. Границы дня, недели и месяца считаются по America/New_York.

Запускается одной командой: python3 skills/drawdown-circuit-breaker/scripts/check_circuit_breaker.py --state-dir state/theses --account-size 100000 --output-dir reports/. На выходе JSON circuit_breaker_decision_YYYY-MM-DD_HHMMSS.json и markdown-отчёт, если не передан --json-only. Пороги переопределяются флагами вроде --max-daily-loss-pct 1.5 или JSON-конфигом, причём аргументы CLI перебивают файл. Для детерминированной проверки есть --as-of.

Нужны Python 3.9+ и локальные YAML-файлы тезисов. Ключи API и сеть не требуются. Если два валидных файла делят один thesis_id, вся группа дубликатов выпадает из расчёта P&L и серии убытков, а решение приходит PARTIAL + HALTED — вот на чём это ломается чаще всего. Пустой каталог состояния даёт TRADING_ALLOWED с data_quality: EMPTY_STATE, чтобы новичка не блокировала пустая история. Скилл только рекомендует и ведёт запись: брокерских блокировок и отклонения заявок он не делает, управление открытыми позициями остаётся за человеком.

Какие задачи решает

  • проверить, не превышен ли дневной лимит убытка, перед входом в сделку
  • узнать, активен ли кулдаун после серии убыточных закрытий
  • посчитать реализованный P&L за неделю и месяц по журналу тезисов
  • поставить гейт перед генерацией кандидатов в swing-сделках
  • найти дубликаты thesis_id, из-за которых расчёт просадки неполный

Примеры запросов агенту

  • Проверь circuit breaker по state/theses и скажи, можно ли сегодня брать новый риск
  • Прогони drawdown-circuit-breaker с --account-size 100000 и покажи активные правила
  • Пересчитай решение на --as-of 2026-07-02T12:00:00-04:00 и объясни, что сработало

Как установить drawdown-circuit-breaker

1Через Skills CLI (Vercel)

npx skills add tradermonty/claude-trading-skills --skill drawdown-circuit-breaker -a claude-code

2Вручную: положить файлы

~/.claude/skills/drawdown-circuit-breaker/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/drawdown-circuit-breaker/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Из того же набора73

trade-performance-coach Разбирает закрытые сделки, частичные выходы и месячные сводки по правилам, риску и качеству исполнения. Нужен для пост-трейд разбора. CX Codex +1 2 900установок parabolic-short-trade-planner Скилл ищет акции США с признаками истощения параболического роста и собирает условные предрыночные планы шорта. Ордера не отправляет — только JSON и Markdown для ручной проверки. CX Codex +1 3 000установок crypto-regime-analyzer Считает композитный балл 0–100 по шести компонентам крипторынка и выдаёт рекомендацию по позе. Без ключей API. CX Codex +1 2 700установок weekly-performance-digest Считает недельную статистику по закрытым торговым тезисам trader-memory-core: винрейт, R-кратность, матожидание и MAE/MFE. Выдаёт отчёт в Markdown и JSON без внешних API. CX Codex +1 2 700установок pre-trade-discipline-gate Проверяет чек-лист перед ручным входом в сделку и блокирует входы без плана, с превышением риска или в период отката. CX Codex +1 2 700установок stockbee-momentum-burst-screener Находит акции США под краткосрочные импульсные сетапы Pradeep Bonde по дневному пробою, объёму и сужению базы. Пригодится трейдерам для отбора бумаг на свинги от 3 до 5 дней. CX Codex +1 2 700установок stockbee-20pct-study Скилл собирает базу акций США с дневными движениями от 20%, классифицирует катализаторы и рассчитывает исходы на дистанции для исследования паттернов. CX Codex +1 2 600установок stockbee-exhaustion-hammer-screener Скилл ищет среди акций США паттерны Stockbee с истощением продаж и молотом. Нужен для отбора кандидатов перед ручной проверкой сделки. CX Codex +1 2 600установок

Похожие

strategy-framework agiprolabs Задаёт единый шаблон описания торговой стратегии: правила входа и выхода, размер позиции, риск-лимиты и критерии оценки. Пригодится, когда идея есть, а записать её нечем. CX Codex +1 500установок trader-risk ruvnet Скилл оценивает VaR и CVaR портфеля через движок neural-trader, а также отслеживает лимиты просадок и статус защитных механизмов. CX Codex +1 731установок risk-management agiprolabs Скилл задаёт правила риск-менеджмента для криптоторговли: лимиты просадки, дневные и недельные стопы, ограничения концентрации и автоматические стоп-краны. CX Codex +1 631установок risk-management-trading omer-metin Скилл для расчёта размера позиции, стоп-лоссов и просадки. Пригодится, когда агент помогает с торговой стратегией или портфелем. CX Codex +1 393установок trading-plan-generator jamesrochabrun Скилл формирует торговые планы с правилами управления риском, точками входа и выхода, а также расчётом позиций. Пригодится трейдерам на акциях, опционах или крипте. CX Codex +1 1 100установок risk-manager Seth Hobson Субагент оценивает риск портфеля, размер позиций и сделки в R-мультипликаторах. Подходит для контроля лимитов, хеджирования и стоп-лоссов. CX Codex 550установок

Рядом в теме «Финансы и бизнес»

Всё по теме «Финансы и бизнес» →

Вопросы о drawdown-circuit-breaker

Как установить drawdown-circuit-breaker в Claude?

Выполните npx skills add tradermonty/claude-trading-skills --skill drawdown-circuit-breaker -a claude-code. Скилл встанет в ~/.claude/skills/drawdown-circuit-breaker/SKILL.md.

Что делает drawdown-circuit-breaker?

Читает реализованный P&L и исходы закрытых тезисов из trader-memory-core, проверяет дневной лимит убытка, кулдаун после серии лоссов и недельную с месячной просадку. На выходе — JSON с рекомендацией TRADING_ALLOWED, COOLDOWN или HALTED.

Что нужно для работы скилла?

Python 3.9+, локальные YAML-файлы тезисов (обычно в state/theses/) и размер счёта в долларах. Ключи API и доступ в сеть не нужны.

Исходный текст

SKILL.md · MIT
---
name: drawdown-circuit-breaker
description: Evaluate account-level drawdown circuit breaker rules from trader-memory-core state and decide whether new trade risk is allowed today. Uses realized P&L, losing-streak cooldowns, and weekly/monthly drawdown limits without any external API.
---

# Drawdown Circuit Breaker

## Overview

Evaluate whether the trader should take new trade risk today based on account-level realized P&L and recent terminal trade outcomes. This skill reads trader-memory-core thesis YAML files only. It produces a `circuit_breaker_decision` artifact that complements the market-side `exposure_decision` from exposure-coach.

The circuit breaker is a recommendation and recordkeeping tool. It does not replace human judgment, and it does not enforce broker-side blocks or automated order rejection.

## When to Use

- Before screening or sizing any new swing trade candidate
- After a losing trade or partial trim to check whether a cooldown is active
- During daily planning when trader-memory-core contains recent closed or partially closed positions
- As a workflow gate before swing-opportunity-daily proceeds to candidate generation
- When reviewing whether daily, weekly, or monthly loss limits have been breached

## Prerequisites

- Python 3.9+
- Local trader-memory-core thesis YAML files, usually under `state/theses/`
- Account size in dollars
- No API keys or network access required

## Workflow

### Step 1: Read Trader Memory State

Point the script at the thesis state directory:

```bash
python3 skills/drawdown-circuit-breaker/scripts/check_circuit_breaker.py \
  --state-dir state/theses \
  --account-size 100000 \
  --output-dir reports/
```

The script scans every `th_*.yaml` file and reads realized P&L from each thesis `status_history[]` ledger entry. It does not use `_index.json` for P&L, because the index is a lightweight lookup file and does not contain the required realized-P&L ledger.

After validating each file, the script groups valid theses by the case-sensitive, whitespace-trimmed `thesis_id`. If two or more valid files share an ID, it excludes the entire duplicate group from P&L and losing-streak calculations, reports every actual source path, and returns `PARTIAL` + `HALTED` until the duplicate state is repaired and the decision is rerun. `metrics.theses_scanned` counts only accepted theses with unique IDs.

If the state directory is missing or is an empty directory, the skill returns `TRADING_ALLOWED` with `data_quality: EMPTY_STATE` so a new user is not blocked by the absence of history. If the configured state path exists but is not a directory, the skill fails closed as incomplete state data.

If state exists but a thesis, ledger event, or terminal result must be skipped or conflicts with another recorded value, the skill fails closed with `data_quality: PARTIAL`, `recommendation: HALTED`, and an `incomplete_state_data` rule. Repair the warnings and rerun before taking new risk. The one recoverable exception is a finite terminal `outcome.pnl_dollars` fallback for a legacy thesis with no realized-P&L ledger entry; it remains visible as `PARTIAL` but does not by itself override the calculated recommendation. For `ACTIVE`, `PARTIALLY_CLOSED`, `CLOSED`, and `INVALIDATED` theses, each history event must be an object with a recognized `status` and parseable `at`, and the last history status must match the thesis status. `ACTIVE` and `PARTIALLY_CLOSED` theses must also carry entry actuals; `PARTIALLY_CLOSED` must carry a position. Malformed, stale, or skeletal lifecycle history disqualifies terminal fallback and halts. Ledger-shaped events whose `realized_pnl` is missing, untyped, or non-finite also halt instead of being coerced.

### Step 2: Evaluate Circuit Breaker Rules

The default rules are:

| Rule | Default | Triggered State | Release |
|------|---------|-----------------|---------|
| Max daily loss | 2.0% of account | HALTED | Next ET weekday |
| Losing streak cooldown | 2 terminal losing theses | COOLDOWN | 24 hours after latest loss exit |
| Weekly drawdown halt | 5.0% of account | HALTED | Next Monday ET |
| Monthly drawdown halt | 8.0% of account | HALTED | First day of next month ET |

Day, week, and month boundaries use `America/New_York`. Date-only producer
timestamps from `trader-memory-core` are counted on the named ET date. Set
`--as-of` for deterministic evaluation; date-only `--as-of` values cover the
full ET day, while timestamp values exclude future events after that time:

```bash
python3 skills/drawdown-circuit-breaker/scripts/check_circuit_breaker.py \
  --state-dir state/theses \
  --account-size 100000 \
  --as-of 2026-07-02T12:00:00-04:00 \
  --output-dir reports/
```

### Step 3: Override Thresholds When Needed

Override individual thresholds on the CLI:

```bash
python3 skills/drawdown-circuit-breaker/scripts/check_circuit_breaker.py \
  --account-size 100000 \
  --max-daily-loss-pct 1.5 \
  --losing-streak-n 3 \
  --cooldown-hours 48 \
  --weekly-drawdown-pct 4 \
  --monthly-drawdown-pct 6
```

Or provide a JSON config file:

```json
{
  "max_daily_loss_pct": 1.5,
  "losing_streak_n": 3,
  "cooldown_hours": 48,
  "weekly_drawdown_pct": 4.0,
  "monthly_drawdown_pct": 6.0
}
```

CLI arguments override config-file values.

### Step 4: Interpret the Decision

Use the generated decision as a gate for new trade risk:

| Recommendation | Meaning |
|----------------|---------|
| TRADING_ALLOWED | No circuit breaker rule is active; new trade risk may proceed through the rest of the workflow |
| COOLDOWN | Do not open new positions; continue managing existing positions and review the recent losses |
| HALTED | Stop new entries because a drawdown limit is active or account-state data is incomplete; repair/rerun any data warnings before proceeding |

Existing position management remains a human decision. The circuit breaker is designed to prevent new risk escalation after realized damage, not to force liquidation.

Time-based rules carry an ISO 8601 `active_until`. The non-time-based `incomplete_state_data` rule uses `active_until: null`; its Markdown report says the halt lasts until the state is repaired and the decision is rerun.

## Output Format

The script writes `circuit_breaker_decision_YYYY-MM-DD_HHMMSS.json` and, unless `--json-only` is set, a matching markdown report.

```json
{
  "schema_version": "1.0",
  "generated_at": "2026-07-02T16:00:00+00:00",
  "as_of_date": "2026-07-02",
  "recommendation": "COOLDOWN",
  "triggered_rules": [
    {
      "rule": "losing_streak_cooldown",
      "threshold": 2,
      "observed": 2,
      "active_until": "2026-07-02T15:30:00-04:00",
      "detail": "2 consecutive losing closes; last loss exit 2026-07-01T15:30:00-04:00."
    }
  ],
  "metrics": {
    "realized_pnl_today": 0.0,
    "realized_pnl_wtd": -250.0,
    "realized_pnl_mtd": -250.0,
    "consecutive_losses": 2,
    "last_loss_exit_at": "2026-07-01T15:30:00-04:00",
    "theses_scanned": 12
  },
  "account_size": 100000.0,
  "config": {
    "max_daily_loss_pct": 2.0,
    "losing_streak_n": 2,
    "cooldown_hours": 24.0,
    "weekly_drawdown_pct": 5.0,
    "monthly_drawdown_pct": 8.0
  },
  "data_quality": "OK",
  "warnings": [],
  "rationale": "Recent losing closes triggered a cooldown. Avoid new entries until the cooldown expires."
}
```

## Exchange Calendar Contract

Install `requirements.txt` before running the checker. Daily, weekly, and
monthly halt dates use actual XNYS sessions. `active_until` remains compatible:
the halt ends at 00:00 America/New_York on the next eligible session date, not
at that session's opening bell. Use `--as-of` for deterministic evaluation.

## Resources

- `scripts/check_circuit_breaker.py` - Main CLI and rule engine
- `references/circuit_breaker_framework.md` - Rule definitions, defaults, and data-source notes
- `skills/trader-memory-core/schemas/thesis.schema.json` - Source schema for thesis state

## Key Principles

1. **Realized damage only** - Use recorded realized P&L, not unrealized P&L or thesis-level cumulative fields for daily calculations.
2. **Survival first** - A circuit breaker exists to prevent escalation after losses.
3. **Advisory, not automatic execution** - The output informs the workflow gate; it does not place, cancel, or block broker orders.
4. **Fail closed on incomplete state** - Empty state allows a new user to begin, but malformed, discarded, conflicting, or non-finite risk data returns `PARTIAL` + `HALTED` without crashing. A finite legacy outcome fallback is reported as recoverable `PARTIAL` and remains non-blocking.

© tradermonty · MIT · tradermonty/claude-trading-skills

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой