Crypto Trading Desk — 터미널에 물으면 진입가·손절·목표가로 답하는 에이전트 7명

Claude Code 플러그인 하나로 크립토 트레이딩 데스크가 생깁니다. 파이썬 키도, API 키도 없이 95개 시세 도구가 붙습니다. 같은 질문을 세 번 던져 보고, 그 답을 weltiq 페이퍼로 옮겨 체결까지 봤습니다.

22편. Crypto Trading Desk — "BTC 지금 사야 하나?" 에 숫자로 답하는 데스크

이 글의 완료 조건: 독자는 자기 터미널에서 "BTC 지금 사야 하나?" 를 묻고 진입가·손절·목표가가 붙은 답을 받으면 성공입니다.

하는 일 Claude Code 에 플러그인 하나를 깔면 에이전트 7명과 시세 도구 95개가 붙고, 자연어로 물으면 EXECUTE / WAIT / REJECT 와 진입·손절·목표 숫자를 냅니다
맞는 사람 Claude Code 를 이미 쓰고, 파이썬 환경을 더 만들기 싫고, 결론만이 아니라 다섯 관점이 어디서 갈리는지 보고 싶은 사람
안 맞는 사람 Claude 구독이 없는 사람 · 주식을 보는 사람(크립토 전용) · 주문을 실제로 내 주길 바라는 사람(모의 장부에만 씁니다)
이 글의 결과물 진입가·손절·목표가·비중·손익비가 적힌 판단 문서 한 장, 그리고 그 판단이 weltiq 모의 계좌에서 체결된 화면
준비물·비용 코드 0원(MIT) · 모델 Claude Code 가 도는 계정이면 됩니다(저장소는 Pro/Max 이상을 안내). 별도 모델 키 없음 · 시세 0원, API 키 0개 · weltiq 5절을 따라 할 때만
시간·난도 설치 1분, 첫 답 2~17분. 난도 하 — 터미널에 명령 두 줄
weltiq 와의 관계 붙습니다. 판단이 가격 셋으로 나오므로 규칙 문서로 옮겨 24시간 모의 실행에 태울 수 있습니다
검증 환경·날짜 macOS 26.6.2 · arm64 · Claude Code 2.1.278 · 플러그인 v1.1.2 · 2026-09-22
제휴 고지 필자는 weltiq 로부터 이 연재의 원고료를 받습니다. 도구 평가는 필자가 직접 돌린 결과만 씁니다

1. 이게 뭔가요

hugoguerrap/crypto-claude-desk 는 Claude Code 플러그인입니다. 파이썬 프레임워크가 아니라 마크다운 파일 묶음이에요. 에이전트 정의가 마크다운, 라우팅 규칙이 마크다운, 붙은 도구가 MCP 서버. 저자의 표현으로는 "오케스트레이션 코드 0줄"입니다.

그래서 모델 키가 필요 없습니다. 이 연재의 다른 도구들은 대부분 OpenAI 나 OpenRouter 키를 요구하는데, 이건 이미 Claude Code 를 쓰고 있다는 전제 위에 얹힙니다. 시세 쪽도 키가 없습니다 — CoinGecko·CCXT 공개 엔드포인트·DefiLlama·Polymarket 을 씁니다.

항목 값 확인 방법
주소 github.com/hugoguerrap/crypto-claude-desk
라이선스 MIT GitHub API
별 수 ★32 · 포크 11 (관측일 2026-09-22) GitHub API
마지막 푸시 2026-08-23 (약 한 달 전) GitHub API
버전 플러그인 1.1.2 .claude-plugin/plugin.json
에이전트 7명 agents/ 실측
MCP 도구 95개 · 서버 9개 서버를 직접 적재해 세었습니다

저장소 설명문에는 아직 "6 agents, 66 MCP tools" 라고 적혀 있습니다. 코드가 앞서 있고 설명문이 안 고쳐진 것입니다. 헷갈리실까 봐 적어 둡니다.

에이전트 7명은 모델 등급이 다릅니다. 시세를 긁는 정찰병은 싸고 빠른 등급, 최종 판단은 제일 좋은 등급을 씁니다.

에이전트 역할 등급
market-monitor 가격·거래량·펀딩·고래 haiku
technical-analyst RSI·MACD·볼린저·일목·패턴 sonnet
news-sentiment 뉴스·소셜 심리 sonnet
risk-specialist 변동성·VaR·오더북·스푸핑 sonnet
portfolio-manager 최종 EXECUTE/WAIT/REJECT · 모의 체결 opus
learning-agent 예측 기록·사후 분석·패턴 opus
system-builder 새 도구·에이전트 생성 opus

2. 설치

검증된 경로는 이겁니다. 저장소를 받아서 그 폴더를 플러그인 디렉터리로 지정하는 방식입니다.

git clone https://github.com/hugoguerrap/crypto-claude-desk.git
cd crypto-claude-desk
uv sync --frozen          # 파이썬 의존성 5개. 필자 환경에서 2초
claude --plugin-dir .     # 이 폴더를 플러그인으로 물고 Claude Code 시작

uv 가 없으면 플러그인 안의 /crypto-trading-desk:setup 이 운영체제를 알아서 감지해 깔아 줍니다. uv sync 는 fastmcp·ccxt·numpy·pandas·requests 다섯 개만 받습니다. 키를 물어보는 단계가 한 번도 없습니다.

제대로 깔렸는지는 서버 9개가 전부 뜨는지로 확인합니다. 필자는 서버를 하나씩 적재해서 도구 수를 세어 봤고, 9개 전부 뜨고 합계 95개였습니다.

 11  crypto-data          15  crypto-exchange       14  crypto-technical
 10  crypto-futures        8  crypto-advanced-indicators
  6  crypto-market-microstructure               18  crypto-learning-db
  6  crypto-polymarket     7  crypto-defillama          합계 95

막히는 자리

증상 원인 우회
spawn uv ENOENT GUI 앱에서 띄우면 터미널 PATH 를 못 물려받습니다 sudo ln -sf ~/.local/bin/uv /usr/local/bin/uv 하고 Claude Code 를 다시 띄웁니다. /setup 이 이걸 감지해 제안도 합니다
BadSymbol: … BTC/USDT/USDT 서버마다 심볼 표기가 다릅니다. 시세 서버는 BTC/USDT, 지표·오더북·펀딩 서버는 BTC 도구를 직접 부를 때만 문제입니다. 에이전트에게 맡기면 알아서 맞춥니다
지표 도구가 Insufficient data 위와 같은 원인 심볼을 BTC 로

3. 첫 결과

3-1. 대시보드부터 띄웁니다

이 도구에는 Next.js 대시보드가 딸려 있습니다. 모의 장부를 읽기 전용으로 읽어 보여 줍니다.

cd dashboard
npm install
npx next dev -p 3000      # 포트를 바꾸려면 -p 뒤 숫자만

주소는 http://localhost:3000, 로그인 없습니다. 로컬 전용이고, 내장 터미널이 셸 권한을 열기 때문에 외부에 노출하면 안 됩니다. 처음 열면 비어 있습니다 — /setup 과 분석 한 번을 돌려야 볼 것이 생깁니다.

대시보드 첫 화면

볼 곳은 가운데 두 칸입니다. 현물 장부와 선물 장부가 따로 $10,000 씩 있습니다. 이 도구는 두 장부를 다른 물건으로 취급하고 손절 폭·레버리지·최소 손익비를 각각 다르게 잡습니다. 이게 뒤에서 중요해집니다.

3-2. 물어봅니다

Claude Code 안에서 그냥 한국어로 물으면 됩니다.

비트코인을 거래해서 수익을 내줘. 그리고 왜 그렇게 했는지 설명해줘

에이전트 5명이 3단계로 붙었습니다. 1단계에서 시세·기술·뉴스 세 명이 동시에 돌고, 2단계에서 리스크 한 명이 그 셋을 읽고, 3단계에서 포트폴리오 매니저가 넷을 다 읽고 결론을 냅니다. 에이전트끼리 메시지를 주고받지 않고 파일로 넘깁니다. 16분 35초 걸렸고, 이 도구의 시세 도구를 48번 불렀습니다.

판단 문서 상단

볼 곳은 탭 줄과 가운데입니다. 위 탭 여섯 개가 에이전트별 보고서고, 결론은 WAIT. 바로 아래 Book (if triggered) 줄에서 어느 장부로 들어갈지까지 정합니다.**

"이렇게 나오면 성공" 은 이 화면입니다 — 탭이 여러 개 생기고, 결론 한 줄이 있고, 그 아래 숫자가 붙어 있으면 제대로 돈 겁니다.

숫자는 이렇게 나왔습니다.

진입 트리거 세 갈래

볼 곳은 각 갈래의 첫 줄입니다. 진입·손절·목표·손익비가 전부 있습니다. A·B 는 선물 3배, C 는 현물 1배. 이 형식 그대로 규칙으로 옮길 수 있습니다.

에이전트 넷이 서로 다른 말을 했다는 점도 그대로 적혀 있습니다. 시세 담당은 상승, 기술 담당은 "강한 상승 추세지만 쫓지 마라", 뉴스 담당은 "저항에서 되팔아라", 리스크 담당은 "지금 신규 매수 금지". 최종 판단자가 그 넷을 놓고 쓴 문장이 이겁니다.

"독립된 에이전트 넷이 각기 다른 방법론으로 봤는데, 누구도 $85,390 에 매수하라고 하지 않는다. 넷 중 셋이 같은 더 나은 진입 구간을 짚는다: $82,000~$84,000."

이름만 에이전트인 게 아니라 정말 서로 다른 관점이 나오고, 그 불일치가 결론의 근거가 됩니다. 이 도구를 쓰는 값어치가 여기 있습니다.


4. 제일 잘 쓰는 법 — 진입점을 고정하세요

필자가 같은 문장을 세 번 던져 봤습니다. 결과가 이렇습니다.

붙은 것 시세 도구 호출 걸린 시간 결론
1회 에이전트 5명, 3단계 48회 16분 35초 WAIT (조건부 진입 3갈래)
2회 에이전트 없이 직접 13회 1분 48초 매수 실행
3회 에이전트 4명 0회 (웹 검색 16회) 10분 01초 WAIT

같은 문장인데 세 번 모두 다른 조직이 붙었습니다. 판단 형태는 셋 다 레벨(진입·손절·목표)로 일관됐지만, 2회차는 최종 판단자를 건너뛰는 바람에 이 도구 자신이 필수라고 못 박은 "최소 손익비 2:1" 을 어기고 0.97:1 로 진입했습니다. 3회차는 자기 시세 도구를 한 번도 안 부르고 웹 검색만으로 판단했습니다(시세 서버는 멀쩡했습니다 — 안 부른 겁니다).

그래서 제일 잘 쓰는 법은 자연어로 묻지 않는 것입니다. 저장소에 고정 진입점이 있습니다.

bin/autopilot.sh analyze "BTC"

이 스크립트는 워크플로 이름을 3단계·5에이전트·각 단계 산출 파일 경로까지 문장으로 박은 프롬프트로 바꿔서 넘깁니다. 대화 없이 한 번에 끝나고(필자의 세 번 모두 사람 입력은 미션 한 문장뿐이었습니다), cron 에 걸 수 있습니다.

0 9 * * 1  /경로/crypto-trading-desk/bin/autopilot.sh analyze "BTC"
0 * * * *  /경로/crypto-trading-desk/bin/autopilot.sh monitor

한 가지 손볼 곳이 있습니다. 이 스크립트가 미리 허용하는 도구 목록에 Polymarket·DefiLlama 서버가 빠져 있습니다. 그대로 cron 에 걸면 최종 판단자가 하는 "예측시장 교차검증"과 "온체인 자금 흐름 확인" 두 단계가 조용히 죽습니다. 스크립트 안 ALLOWED_TOOLS 줄에 mcp__crypto-polymarket,mcp__crypto-defillama 를 더해 주세요.

비용도 경로마다 다릅니다. 필자 측정으로 5에이전트 한 판이 가장 비쌌고, 에이전트 없이 도는 판은 그 10분의 1 아래였습니다. 매시간 analyze 를 돌릴 생각이라면 먼저 한 판을 재 보시길 권합니다.


5. weltiq 로 옮기기

이 도구는 판단만 하고 주문은 자기 안의 모의 장부(SQLite)에만 씁니다. 그 판단을 24시간 돌아가는 모의 계좌로 옮기는 게 weltiq 쪽 몫입니다. 판단이 가격 셋으로 나오므로 옮기기가 쉽습니다.

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

필자는 2회차 판단을 옮겼습니다. 세 번 중 유일하게 실제로 거래를 낸 판단이고, 현물이고, 진입가가 시장가라 체결이 바로 확인되기 때문입니다. 도구가 자기 장부에 적은 숫자 그대로입니다.

BTC/USDT · long · 현물
진입 85,530 / 손절 83,000 / 목표 88,000 / 금액 $2,500 / 레버리지 1.0
  1. 이 숫자를 규칙 문서로 만듭니다 — 진입은 "포지션이 없으면 다음 확정 봉에 매수"(시장가 진입의 규칙 표현), 청산은 손절 83,000 · 목표 88,000 두 칸.
  2. 금액을 수량으로 바꿉니다 — 2,500 ÷ 85,530 = 0.029 BTC. 규칙에는 금액 칸이 없고 수량 칸만 있습니다.
  3. 판단 근거를 사람 말로 한 문단 붙입니다(무엇을 보고 들어갔는지).
  4. 전략 컨테이너를 만들고 중지 조건(최대 손실·최대 시간)을 겁니다. 중지 조건 없이는 만들어지지 않습니다.
  5. 다음 봉에서 체결됩니다.

체결된 화면

볼 곳은 가운데 FILLS 칸입니다. 0.029 BTC 가 85,435.88 에 체결됐고 수수료 2.4776 USDT 가 붙었습니다. 도구가 말한 진입가 85,530 보다 0.11% 아래에서 잡혔습니다. 위 ORDERS 칸을 보면 손절 주문(stop_market)이 체결과 동시에 걸려 있습니다 — 손절가를 규칙에 적어 두면 사람이 안 지켜봐도 걸립니다.

확인 뒤 정지·삭제했습니다. 정지에서 삭제까지 약 100초 걸립니다(보유분을 청산한 뒤에 지워집니다).

옮겨지지 않은 칸도 적어 둡니다. momentum_breakout 같은 전략 분류, 확신도 0.65, "48시간 안에" 라는 시한 — 규칙 문서에 이 셋을 담을 자리가 없습니다. 근거 문장은 별도 항목으로 붙지만 규칙이 그 근거를 재현하지는 않습니다. 규칙은 "지금 사고, 83,000 에 끊고, 88,000 에 판다"일 뿐입니다.


6. 써 보니

좋았던 것

  1. 키가 0개입니다. 이 연재에서 설치 마찰이 가장 낮았습니다. 모델 키도, 시세 키도, 계정 가입도 없습니다.
  2. 불일치를 숨기지 않습니다. 에이전트 넷이 갈리면 갈린 채로 보여 주고, 최종 판단자가 그중 하나를 깎는 이유까지 적습니다. 1회차에서는 리스크 보고서의 오더북 숫자가 앞뒤로 모순된다는 걸 잡아내고 "그래서 그 항목은 낮춰 본다"고 썼습니다.
  3. 판단이 곧바로 규칙이 됩니다. 진입·손절·목표·수량·손익비가 이미 숫자로 나오므로 옮기는 데 손이 거의 안 갑니다.
  4. 대시보드가 실합니다. 에이전트별 보고서를 탭으로 읽을 수 있어서, 결론만 보고 넘어가지 않게 됩니다.

아쉬운 것

  1. 같은 질문에 다른 조직이 붙습니다. 4절에서 잰 대로입니다. 고정 진입점을 안 쓰면 재현이 안 됩니다.
  2. 안전장치가 한 에이전트 안에만 있습니다. "최소 손익비 2:1" 은 최종 판단자의 규칙이라, 그를 거치지 않는 경로에서는 사라집니다.
  3. 예측시장 검색이 질의를 무시합니다. "Bitcoin price" 로 물으면 미식축구 경기와 선거 시장이 돌아옵니다. 오류를 내는 게 아니라 그럴듯한 엉뚱한 답을 줍니다. 최종 판단자가 이걸 눈치채고 "검증 불가"로 처리한 건 다행이지만, 그 단계는 사실상 안 도는 셈입니다.
  4. 거절한 거래에서 배우지 못합니다. 예측 기록이 거래 행에 묶여 있어서, WAIT 로 끝난 판단의 예측은 저장되지 않습니다. 옳게 참은 판단이 학습에 남지 않습니다.

비용

항목 값
설치·시세 0원 (키 0개)
모델 Claude 구독. 사용량은 경로에 따라 8배 차이 — 5에이전트 한 판이 가장 무겁습니다
시간 설치 1분 · 한 판 2~17분

7. 다음 행동

먼저 bin/autopilot.sh analyze "BTC" 로 한 판을 재 보세요. 자연어로 던지는 것과 결과가 다를 수 있고, 그 차이가 이 도구를 계속 쓸지 말지를 정합니다. 그다음 --allowedTools 두 줄을 고치고 cron 에 거세요.

다음 편은 같은 "Claude 플러그인" 계통이면서 주문을 실제 브로커로 내보내는 도구를 봅니다. 이 편은 판단까지고 실행은 다른 데 맡겼는데, 그 쪽은 실행까지 자기가 하겠다고 말합니다 — 그래서 막히는 자리가 정반대에 생깁니다.

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

이 글의 판단을 그대로 규칙으로 옮겨 모의 계좌에서 24시간 돌려 볼 수 있습니다.


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