claude-trading-skills 설치부터 실전까지 — 스킬 74개짜리 트레이딩 도구함

74개 스킬과 11개 워크플로로 된 Claude 스킬 묶음입니다. 되먹임 워크플로가 요구하는 '닫힌 매매'를 weltiq 전략 컨테이너이 만들어 줄 수 있는지, 실제로 저널을 물려줘 보고 어디서 막히는지 세어 봤습니다.

5편. tradermonty/claude-trading-skills — 스킬 74개짜리 트레이딩 도구함

이 글의 완료 조건: 독자는 crypto-regime-analyzer 스킬을 직접 돌려 0~100 짜리 크립토 국면 리포트 두 장을 손에 넣으면 성공입니다.

하는 일 시장 국면 점검·스크리너·매매 일지까지 스킬 74개와 워크플로 11개를 담아 둔 Claude 스킬 묶음. 주문은 내지 않습니다
맞는 사람 매매 과정을 문서로 된 절차(점검 → 계획 → 일지 → 복기)로 갖고 싶은 사람
안 맞는 사람 크립토만 하는 사람(라우터·스크리너·복기 스크립트가 미국 주식 전제) · "설치하면 알아서 도는" 것을 기대하는 사람
이 글의 결과물 0~100 국면 점수 리포트 두 장, 그 결론에서 나온 규칙이 weltiq 모의 계좌에서 체결된 화면
준비물·비용 코드 0원(MIT) · 모델 Claude Code 나 웹앱이 도는 계정 · 시세 0원, 키 0개 · weltiq 5절을 따라 할 때만
시간·난도 클론 2.977초, 첫 분석 5분 48.88초(빈 캐시). 난도 하 — 폴더 복사 한 번
weltiq 와의 관계 붙습니다 — 다만 한쪽 방향만. 판단을 규칙으로 옮겨 24시간 모의 실행에 태우는 데까지는 됐고, 되돌려 주는 고리는 닫히지 않았습니다(5절)
검증 환경·날짜 macOS · Python 3.14 · 2026-09-21~22
제휴 고지 필자는 weltiq 로부터 이 연재의 원고료를 받습니다. 도구 평가는 필자가 직접 돌린 결과만 씁니다

1. 이게 뭔가요

tradermonty/claude-trading-skills 는 Claude 스킬 묶음입니다. 파이썬 라이브러리도 MCP 서버도 아니고 SKILL.md 74장과 딸린 스크립트로 된 저장소이며, Claude Code 에 스킬 폴더를 복사하거나 웹앱 Skills 탭에 .skill 파일을 올려 씁니다. 만든 사람이 README 에 적은 목표는 "매수·매도 판단을 AI 에게 넘기는 것이 아니라" 매매 과정을 구조화하는 것입니다.

"이것은 리서치·일지·위험 검토 보조 도구이지 자동매매 시스템이 아닙니다. 주문을 넣지 않고, 시그널 서비스를 제공하지 않으며, 숨은 스케줄 작업을 돌리지 않습니다." — README 원문 (강조는 원문)

항목 값 확인 방법
주소 github.com/tradermonty/claude-trading-skills
라이선스 MIT GitHub API
별 수 ★2,870 · 포크 652 (관측일 2026-09-22) GitHub API
마지막 푸시 2026-09-21 · 열린 이슈 48 · 아카이브 아님 GitHub API
규모 스킬 74 · 워크플로 11 · 웹앱용 .skill 묶음 74 · 49MB ls
지원 파이썬 3.10~3.13 README

뒷부분이 이미 설계돼 있습니다

이 연재의 다른 판단 도구들과 다른 점이 하나 있습니다 — 되먹임 고리의 뒷부분이 이미 설계돼 있습니다. workflows/ 안 YAML 11개 중 trade-memory-loop 는 이렇게 시작합니다.

when_to_run: >-
  Every time a position is closed (full or partial exit). ...
when_not_to_run: >-
  Do not run before a position is closed ...
required_skills: [trader-memory-core, signal-postmortem]

닫힌 매매가 있을 때마다 돌리라는 워크플로인데, 이 도구는 주문을 내지 않습니다. 그 "닫힌 매매"는 지금 사용자가 손으로 적습니다.

비어 있는 것은 이 도구의 결함이 아니라 자리입니다. 그리고 그 자리가 weltiq 쪽 출구와 모양이 같습니다. 5절이 거기에 실행 저널을 흘려 넣어 보고 어디서 막히는지 세어 본 기록입니다.


2. 설치

준비물은 파이썬(이 글은 3.14 에서 돌렸습니다 — 저장소가 밝힌 범위 밖인데 돌아갔습니다)과 0원뿐입니다. 이 글에서 쓴 스킬은 키가 필요 없고 FMP·FINVIZ Elite·Alpaca 는 전부 선택입니다. 검증된 경로는 저장소를 받아 스킬 폴더를 ~/.claude/skills/ 로 복사하는 것 하나, 빌드 단계가 없습니다.

git clone --depth 1 https://github.com/tradermonty/claude-trading-skills
cd claude-trading-skills
cp -r skills/crypto-regime-analyzer ~/.claude/skills/
python3 -m pip install -r skills/crypto-regime-analyzer/requirements.txt

설치

클론 한 번으로 끝입니다. 보실 곳은 가운데 숫자 셋 — 스킬 74, 워크플로 11, 웹앱용 .skill 묶음 74. 맨 아래 49M 이 저장소 전체 크기입니다. 이 글에서 쓴 스킬의 의존성은 requests 한 줄뿐입니다.

클론에 2.977초 걸렸습니다. 스킬마다 필요한 것이 다르고 그게 skills-index.yaml 에 적혀 있어서 74개를 다 깔 필요가 없습니다.

막히는 자리

증상 원인 우회
뭘 깔아야 할지 모르겠다 저장소가 큽니다 README 의 "No API Key Starter Path" 다섯 개부터
파이썬 버전 경고 지원 범위가 3.10~3.13 3.14 에서도 돌았습니다. 저장소가 보증하는 범위는 아닙니다
스킬이 안 잡힌다 ~/.claude/skills/ 를 세션 시작 뒤에 새로 만들었을 때 Claude Code 를 다시 켜세요. 이미 있던 디렉터리에 추가한 경우는 재시작이 필요 없습니다
웹앱 업로드가 안 된다 개인 계정은 코드 실행·파일 생성을 먼저 켜야 합니다 설정 > Capabilities

3. 첫 결과

74개 중 무엇을 쓸지 정해 주는 스킬이 따로 있습니다 — trading-skills-navigator. 제일 작은 예제로 그걸 먼저 돌렸습니다: "비트코인을 거래해서 손실은 −2% 안에서 막고 수익을 내고 싶어. 어느 스킬을 써야 해?"

내비게이터 폴백

비트코인이라고 물었는데 미국 주식 시장 폭 워크플로(market-regime-daily)가 돌아옵니다. 보실 곳은 가운데 status: "fallback" 과 selected_persona: null — 라우터가 이 질문에 맞는 자리를 못 찾고 초보자용 기본값을 내준 것입니다.

이렇게 나오면 아직 성공이 아닙니다. 이 라우터는 크립토 질문을 모릅니다. "crypto bitcoin trading with strict drawdown limit" 로 다시 물어도 같은 폴백이었습니다. 다만 스킬 자신이 "No persona matched; used the universal beginner fallback." 이라고 적고 다시 물어보라 안내한 점은 틀린 답을 자신 있게 내놓는 것보다 낫습니다.

그래서 라우터 대신 카탈로그 전체를 도구 자신에게 보여 주고 고르게 했습니다. 74개의 이름과 스킬 자신이 쓴 description 만 붙이고 "네 설명이 이 요청에 맞는다는 스킬만 골라라"라고 시켰더니 crypto-regime-analyzer 를 짚었습니다.

crypto-regime-analyzer 실행

위쪽이 실행 로그, 아래쪽이 만들어진 리포트입니다. 보실 곳은 두 군데 — 중간의 rate limited (429); backing off 60s... 가 세 번 나오는 대목(그래서 5분 48.88초 걸렸습니다)과, 아래 표의 BTC Dominance Regime | 15% | — | NO DATA 줄입니다.

이렇게 나오면 성공입니다. 0~100 점수와 여섯 부품의 내역이 나오고, 없는 부품을 없다고 적어 줍니다 — 도미넌스는 무료 티어가 현재값만 주기 때문에 31일을 로컬에 쌓아야 켜지고, 그때까지는 가중치를 나머지에 나눠 주고 NO DATA 로 둡니다. 점수를 내는 것은 파이썬이고 그걸 말로 푸는 것이 LLM 입니다. 이 구분이 4절의 주제입니다.

대시보드는 없습니다 — 부르는 물건입니다

대시보드도 웹 UI 도 TUI 도 없고 터미널 출력이 전부입니다. 띄울 서버도 포트도 없고, 보이는 것은 대화창에 돌아오는 글과 스킬이 파일로 떨어뜨리는 리포트뿐입니다. 문서 사이트에 Quality Dashboard 메뉴가 있지만 그건 매매 화면이 아니라 카탈로그 품질 지표 페이지입니다. 그림이 있는 화면은 그 문서 사이트 하나이고 브라우저로 그냥 열립니다.

문서 사이트

https://tradermonty.github.io/claude-trading-skills/ — 74개 스킬을 분류별로 보여 주는 카탈로그입니다. 보실 곳은 오른쪽 아래 "Which Skill Should I Use?" 목록 — 평범한 말로 적혀 있고, 그 말이 그대로 스킬을 부르는 말입니다.

스킬 폴더는 ~/.claude/skills/ 로 통째로 옮기셔야 하고(scripts/ 가 빠지면 점수를 못 냅니다), 부를 때는 스킬 맨 위 description: 의 말을 섞어 묻는 말로 바꾸세요 — "지금 크립토가 risk-on 이야 risk-off 야?" 처럼요. 떴는지는 crypto_regime.json·crypto_regime.md 가 떨어졌는지로 압니다. 파일이 없거나 3초 만에 답이 오면 스크립트가 안 돈 것입니다.

이 글은 스킬 자동 발동에 기대지 않고 고른 스킬의 SKILL.md 를 원문 그대로 실어 보내 돌렸습니다. Claude Code 의 스킬 표시 UI 는 찍지 않았습니다 — 미확인입니다.


4. 제일 잘 쓰는 법 — 스크립트와 LLM 의 경계

이 도구를 제일 잘 쓰는 법은 이 경계를 아는 것입니다. 저장소가 "내비게이터는 결정론적이다 — 파이썬 추천기가 메타데이터를 먹고 SKILL.md 는 그 결과를 말로 풀 뿐이다"라고 적어 뒀고 다른 스킬도 같은 모양이니, 같은 질문을 여러 번 해서 어느 층이 흔들리는지 볼 수 있습니다. crypto-regime-analyzer 를 빈 캐시에서 세 번 돌렸습니다.

1회 (12:16 UTC) 2회 (14:47 UTC) 3회 (16:49 UTC)
합산 점수 81.8 / 100 RISK_ON 81.8 / 100 RISK_ON 81.8 / 100 RISK_ON
BTC 추세 100 100 100
알트 참여 95 95 95
펀딩 55 · 0.0170%/8h 55 · 0.0129%/8h 55 · 0.0102%/8h
낙폭 55 · 31.8% 55 · 31.2% 55 · 31.3%
모멘텀 90 · 85% 90 · 90% 90 · 90%
도미넌스 NO DATA NO DATA NO DATA

밑재료는 계속 움직이는데 점수는 세 번 다 81.8 입니다. 펀딩이 연율 18.6% 에서 11.2% 로 내려갔는데 부품 점수는 55 그대로입니다. 구간으로 끊어 주기 때문이니 결함이 아니라 설계인데, 해상도가 그 정도라는 뜻이라 81.8 이 세 번 나왔다고 "시장이 안 변했다"로 읽으시면 안 됩니다.

그런데 같은 날 같은 미션을 두 번 물었더니 답이 갈렸습니다. 2시간 41분 간격이었고, 그 사이 국면 점수는 81.8 RISK_ON 으로 똑같았습니다.

칸 1차 (21:07) 2차 (23:48)
entry_level 85,350 86,050
retest no (돌파 즉시 매수) yes (밴드 0.25% · 30봉)
stop_loss 83,800 84,600
take_profit 88,200 88,800
quantity_btc 0.116 0.10
계획 손실 기준 "진입가 대비 약 1.82%" "계좌 대비 약 1.65%, 수수료 포함"

제일 큰 변화는 retest 입니다. 2차의 근거는 "가격이 최근 고가에 가까워 즉시 매수는 단기 소진 위험"이었는데, 1차 시점에도 가격은 72시간 고가 바로 아래였습니다. 계획 손실을 재는 자 자체도 바뀌었고, 미션이 물은 것은 2차 쪽입니다 — 1차의 계산은 미션이 묻지 않은 것을 재고 있었습니다.

그래서 실무적으로는 이렇게 쓰세요. 점수는 그대로 받아 쓰고, 숫자로 된 매매 규칙은 한 번 더 물어보세요. 두 답이 같으면 그 규칙은 시장 자료에서 나온 것이고, 갈리면 문장에서 나온 것입니다. LLM 이 들어간 모든 도구가 그런데, 이 도구는 아래층이 결정론이라 그 경계가 눈에 보입니다.

weltiq 와 만나는 자리 — 고정 수량의 함정

1차 규칙을 그대로 weltiq 모의 계좌에 올렸더니 첫 시도가 막혔습니다.

진입 거절

전략 컨테이너가 워밍업을 끝내고 바로 entry_blocked 로 넘어갔습니다. 보실 곳은 "reason": "insufficient_balance" 와 그 아래 시세 — 도구가 정한 고정 수량 0.116 BTC 가 지금 가격에서는 자본 10,000 USDT 로 못 삽니다.

도구는 1차 결정 시점 가격(85,350) 기준으로 0.116 BTC 를 정했고 그때는 9,900 USDT 였습니다. 그런데 실행 시점 가격은 86,026 이고, weltiq 는 주문 직전에 잔고 가드 여유 1% 를 곱해 확인합니다 — 0.116 × 86,026.32 × 1.01 = 10,078.84 > 자본 10,000. 도구의 숫자는 하나도 안 바꾸고 자본만 11,000 으로 올려 다시 올렸더니 들어갔습니다. 고정 수량으로 사이징하는 도구는 결정과 실행 사이에 가격이 벌어지면 그 수량이 자본을 넘습니다. 도구 쪽에 "자본 대비 몇 %"로 말하게 할 방법은 없습니다.

돌려 본 것 한눈에

돌려 본 것 결과
규칙 하나를 모의 계좌에 올리기 1회 막힘 → 자본 11,000 으로 재시도 → 체결 1건 (기록은 5-3)
같은 체결 × 다른 거래소 요율 차이 0 — 현물 기본 요율이 binance·bybit 둘 다 10bp, 메이커 비중 0
중지 조건을 실제로 발동시키기 손실이 그 선까지 가지 않아 미확인
종목 훑기·스크리너 안 돌렸습니다 — 스크리너가 전부 미국 주식용(CANSLIM·VCP·배당), 이번 대상은 비트코인

5. weltiq 로 옮기기 — 통합 실험

이 도구의 결론은 숫자로 된 진입·손절·익절·수량이지 주문이 아닙니다. 그 숫자를 weltiq 의 규칙 문서로 다시 쓰면 되고, 성공 경로는 다섯 단계입니다.

준비 3줄 — weltiq 가입({{CTA_URL}}) → 마이 → 연결 관리에서 키 발급.

  1. 도구가 낸 숫자를 규칙 문서로 — "85,350 위 도달 시 매수 → 손절 83,800 · 목표 88,200".
  2. 판단 근거를 사람 말로 한 문단 붙입니다.
  3. 전략 컨테이너를 만들면서 중지 조건을 겁니다 — 누적 손실 200(자본의 −2%), 6시간 뒤 자동 종료.
  4. 다음 확정 봉에서 체결됩니다. 사람도 도구도 꺼져 있어도 규칙은 지켜집니다.
  5. 실행 기록을 내려받아 도구에게 되돌려 줍니다.

3번은 건너뛸 수 없습니다 — 빼고 던지면 stop_max_loss·stop_after_hours 둘 다 Field required 로 거절합니다. 이 게이트가 "자율의 테두리"입니다. 도구가 스스로 몇 번을 다시 판단하든, 그 결과가 상주 실행으로 가는 문에는 사람이 적은 한도가 필요합니다. (근거를 요구하는 게이트가 하나 더 있는데 이번에 발동시키지 못했습니다 — 미확인.)

5-1. 비어 있는 입력에 저널을 흘려 넣기

1절에서 본 trade-memory-loop 가 이 도구의 제일 값진 부분이고 동시에 제일 못 쓰이는 부분입니다. 입력이 "닫힌 매매"인데 주문을 안 내니까요. 그래서 그 자리에 실행 저널을 그대로 넣어 봤습니다 — 워크플로 YAML 과 SKILL.md 넷을 원문 그대로, 실행 기록 내보내기 응답을 가공 없이 붙이고 "적힌 대로 돌려 줘, 안 맞으면 어느 단계가 왜 안 맞는지 말해 줘"라고 했습니다.

되먹임 워크플로가 멈춘 자리

다섯 단계가 전부 Not run 입니다. 보실 곳은 1단계의 "Precondition not met" 과, 아래쪽 EXECUTABLE RULE 의 숫자가 하나도 안 바뀌었다는 점입니다.

도구가 워크플로 돌리기를 거부했고, 그게 맞습니다 — 포지션이 아직 안 닫혔으니까요.

"Precondition not met. There is no full or partial close. The position remains open, so no closed_thesis_record can be created." "Not run. This requires the closed-trade record from Step 1. The current unrealized loss is not a trade outcome and must not be classified as thesis failure, execution failure, market regime, or randomness." — 도구의 출력 원문 (2026-09-22 01:49 KST)

그리고 시키지도 않은 지적을 하나 더 했습니다.

"The raw export also reveals a control issue: the container-level loss limit is 500 USDT, or 5% of starting capital, which is wider than the requested -2% objective."

이건 weltiq 쪽 설정에 대한 지적이고, 맞는 지적입니다. 앞선 실행의 중지 조건 500(−5%)은 필수 게이트를 채우려 건 것이라 미션의 −2% 와 다른 층인데 저널만 보면 구별이 안 됩니다. 이 글의 전략 컨테이너는 그 지적대로 200(−2%) 으로 걸었습니다.

5-2. 그래서 무엇이 몇 칸 들어갔나

signal-postmortem 에는 LLM 이 읽는 SKILL.md 말고 파이썬 스크립트가 있고, 여기가 진짜 붙는 자리입니다. 체결 기록을 그 스크립트가 먹는 형식으로 바꿔 돌렸더니 Warning: No FMP API key available 뒤에 Outcome distribution: NEUTRAL: 1 이 나왔습니다.

개수 어떤 칸
저널에서 그대로 건너간 것 5 ticker · entry_price · signal_date · source_skill · regime(RISK_ON)
값이 있는데 스크립트가 안 받는 것 3 exit_price · exit_date · realized_returns
아직 값 자체가 없는 것 2 청산가·실현손익 (포지션이 안 닫혔습니다)

세 번째 줄이 이 편의 핵심입니다. 배치 모드에서 이 스크립트는 realized_returns 를 FMP 에서 직접 받아 옵니다. 레코드에 값이 있어도 안 쓰고, 키가 없으면 빈 딕셔너리로 둡니다. 분류는 그 빈 값을 보고 하므로 언제나 NEUTRAL 입니다. 단독 레코딩 모드는 더합니다 — entry_price 를 0.0 으로 고정해 버립니다.

즉 이 되먹임 고리는 "미국 주식을 5일·20일 들고 있다가 FMP 로 수익률을 받는다"는 전제 위에 짜여 있습니다. 분 단위 체결과 실현손익을 가진 기록은 그 모양으로 안 먹습니다. 붙이려면 저장소 쪽에 한 줄 — 레코드가 realized_returns 를 갖고 있으면 그대로 쓰기 — 이 필요합니다.

그래서 붙이는 법은 이렇습니다. 도구에게는 국면 판정과 규칙 숫자만 시키고, 그 규칙이 비용과 체결이 있는 세계에서 무슨 일을 하는지는 실행 쪽에 맡기세요. 기록은 signal-postmortem 말고 열린 논지(open thesis) 쪽으로 돌려주시면 됩니다 — 거긴 닫힌 매매를 요구하지 않습니다.

5-3. 고리는 여기서 한 칸 비었습니다

도구의 규칙 원문을 숫자 하나 안 바꾸고 문서로 옮겨 전략 컨테이너에 걸었더니 체결까지 갔습니다.

weltiq 전략 컨테이너

보실 곳은 셋 — ORDERS 의 price_above_85350(도구가 정한 진입선이 그대로 신호 이름이 됐습니다), FILLS 의 체결가 86052.42438150 과 수수료 9.98208123 USDT, 맨 아래 실행 로그의 규칙 문서 지문입니다.

체결 1건, buy 0.116 BTC. 예상가 86,043.82 → 체결가 86,052.42438150(슬리피지 8.60), 수수료 9.98208123 USDT(taker 10bp). 보호 손절 주문(stop_market 0.116 @ 83,800)도 접수됐고, 포지션 보유 중이라 실현손익은 0 입니다.

그 기록을 가공 없이 되돌려 주고 다시 판단받았더니 고치기를 거부하고 규칙을 그대로 돌려줬습니다. time_exit_bars 칸을 열어 주고 "이 엔진은 N봉 뒤 청산을 받는다"고 알려 줬는데도 none 이었습니다 — 포지션이 안 닫혔으니 안 바꾸겠다는 이유였고, "안 바꿈"도 결정이며 그 결정이 자기 워크플로 문서와 일치합니다.

그러면 닫힌 매매는 얼마나 기다려야 나올까요. 두 규칙을 각각 과거 봉으로 리플레이해 봤습니다.

규칙 구간 봉 수 진입 닫힌 매매
2차 (86,050 돌파+리테스트) 최근 24시간 1,428 1 0
〃 최근 7일 10,068 1 0
〃 최근 14일 20,148 1 0
1차 (85,350 돌파) 최근 14일 20,148 1 0
〃 최근 30일 43,188 1 0

30일치 1분봉을 돌려도 닫힌 매매가 0건입니다. 진입은 한 번 되고 손절선(83,800·84,600)에도 익절선(88,200·88,800)에도 닿지 않습니다. 상주 실행도 같은 상태였습니다.

이게 이 편에서 얻은 제일 단단한 숫자입니다. "되먹임 입력이 비어 있다"는 말은 이만큼 비어 있다는 뜻입니다. 채워 줘야 하는 것은 "체결"이 아니라 "닫힌 매매" 고, 실행기를 붙인다고 그게 바로 생기지 않습니다. 자기 되먹임 워크플로를 가진 도구가 시간 청산 칸이 없는 자기 규칙 때문에 그 워크플로를 못 돌리는 구조입니다. 그래서 이 글에서 확인된 것은 여기까지입니다 — 판단 → 규칙 → 체결까지는 갔고, 체결 → 되먹임은 서 있습니다.


6. 써 보니

좋았던 것

아쉬웠던 것

비용

항목 값
코드·시세 0원 (MIT · 키 0개)
모델 Claude Code 나 웹앱이 도는 계정
시간 클론 2.977초 · 첫 분석 5분 48.88초(빈 캐시, 이후 같은 날은 즉시)

7. 다음 행동

먼저 crypto-regime-analyzer 하나만 깔아 "지금 크립토가 risk-on 이야 risk-off 야?"를 물어보세요. 리포트 두 장이 파일로 떨어지면 성공이고, 그다음은 같은 질문을 한 번 더 던져 숫자 규칙이 흔들리는지 보는 것입니다.

6편은 jesse(★8.6k)입니다. 이 편이 "판단은 하고 실행은 안 한다"였다면 jesse 는 반대쪽 — 백테스트 엔진이 본체이고, 결정 지점을 차트에서 눈으로 검사하는 UI 와 몬테카를로로 실력과 운을 갈라 보는 기능이 있습니다.

weltiq 준비 — 3줄 1. 가입: {{CTA_URL}} 2. 마이 → 연결 관리에서 API 키 발급 3. claude mcp add weltiq --header "Authorization: Bearer <키>" https://weltiq.ai/mcp

이 글의 규칙을 그대로 옮겨 24시간 돌려 볼 수 있습니다.


이 글의 모든 명령·출력·숫자는 2026-09-21~22 에 실제로 돌려서 얻었습니다. 오간 돈은 없고 전부 모의이며 어떤 매매 의견도 아닙니다. 여기 적지 않은 시행착오·원문 로그·결함 목록은 검증 기록에 있습니다.