Day Trader Skill: Python으로 숫자들을 계산하고, 주문은 사람의 2번 승인이 필요한 (미국 주식 전용) Claude용 트레이딩 스킬

핵심 요약

  • Day Trader skill은 미국 주식 데이 트레이딩(Day Trading)의 한 거래를 차트 검색부터 주문까지 11개의 Claude 스킬로 나눈 묶음입니다. 패턴 판정, 확률, 주문 수량 같은 매매 수치는 LLM이 아니라 표준 라이브러리만 쓰는 Python 도구가 계산합니다.
  • 주문 전에 Time Machine 스킬이 그날 남은 장을 해당 종목의 최근 60일 치 5분봉으로 1만 번 다시 만들어 보고, 같은 규칙이 과거에 실제로 낸 결과도 함께 보여줍니다.
  • 주문은 리스크 검사 통과, 채팅에서의 명시적인 "yes", Claude 클라이언트의 Allow once 승인을 모두 거쳐야 나가며, 기본값은 모의 투자(Paper Trading) 계좌입니다.
  • 저자가 직접 든 테슬라(TSLA) 예시에서도 Time Machine의 판정은 "Close to a coin flip"이었고, 프로젝트는 이 도구가 수익을 보장하지 않는다고 분명히 적고 있습니다.
  • 데이터는 무료이지만 비공식인 Yahoo Finance 엔드포인트에서 가져오고, 거래 대상은 미국 상장 주식과 상장지수펀드(ETF)뿐이라 국내 주식에는 쓸 수 없습니다.

:warning: 본 게시물은 Claude 스킬과 Python 도구로 데이 트레이딩의 각 단계를 계산하고 주문 전에 사람의 승인을 받도록 만든 프로젝트를 소개하는 글로, PyTorchKR은 이번 글을 통해 인공지능 기술이 금융 분야에서 어떻게 활용될 수 있는지 가능성과 그 방법에 대한 소개를 하는 것을 목적으로 합니다. 즉, 어떠한 경우에도 PyTorchKR 및 이 게시물은 투자를 권유, 제안, 또는 추천하려는 목적으로 작성한 것이 아님을 알려드리며, 투자에 대한 조언을 구성하지 않습니다.

Day Trader skill 소개

LLM에게 주식 매매를 맡기는 오픈소스 프로젝트는 이미 여럿 있습니다. 그중 상당수는 모델이 뉴스와 차트를 읽고 매수와 매도를 직접 고르게 합니다. 이런 방식에서는 손절 가격이나 승률 같은 숫자도 모델이 문장으로 직접 내놓을 수 있고, 그 숫자를 다시 계산해 볼 방법이 마땅치 않습니다. 한 번의 데이 트레이딩에는 종목 찾기, 진입 시점, 손절과 목표가, 수량, 계좌 한도 확인, 주문까지 여러 단계가 있고, 각 단계의 실수는 바로 손실로 이어집니다. 이번에 소개하는 Day Trader skill은 이 단계들을 11개의 Claude 스킬로 나누고, 각 단계의 계산을 결정론적인 Python 스크립트에 맡긴 데이 트레이딩용 스킬 묶음입니다.

Day Trader skill에서 Claude는 매매를 결정하지 않습니다. Claude는 사용자의 요청에 맞는 스크립트를 실행하고 그 출력과 뉴스, 공시를 읽어 전달하는 역할을 맡고, 차트 패턴 판정과 시뮬레이션 확률, 주문 수량과 한도 검사는 모두 스크립트가 계산합니다. 검색된 차트 중 어느 종목을 고를지도 사용자가 정합니다. 각 스킬은 프로젝트 안의 trader/ 폴더에 JSON 파일을 남기고 다음 스킬이 그 파일을 읽는 구조라서, 중간 결과를 사람이 직접 열어 확인할 수 있습니다. 주문을 낼 수 있는 스킬은 하나뿐이고, 그 스킬도 사용자의 명시적 승인 없이는 주문을 보내지 않도록 설계되어 있습니다.

Day Trader skill은 개인 개발자 Jake Schincariol이 공개한 프로젝트로, 저자는 OpusJake라는 이름으로 AI 에이전트 맞춤 제작과 교육을 하고 있습니다. 같은 저자가 먼저 공개한 Trader skill이 투자자의 13F 공시 포트폴리오 따라하기, 종목 스크리너, 리밸런싱처럼 포트폴리오를 다루는 스킬이라면, Day Trader skill은 그 후속작인 "Trader skill v2"로 하루 안에 사고파는 매매만 다룹니다. 도구는 Python 3.8 이상에서 추가 패키지 설치 없이 동작하며, 데이터는 Yahoo Finance 차트, Nasdaq Trader의 종목 목록, 미국 증권거래위원회(SEC)의 공시 시스템 EDGAR, 미국 하원 사무처(House Clerk)의 공시처럼 무료 공개 자료만 읽습니다.

Day Trader skill과 기존 AI 트레이딩 프로젝트 비교

PyTorchKR에서 소개한 AI 트레이딩 프로젝트들과 비교하면, Day Trader skill은 판단을 내리는 주체가 모델이 아니라는 점이 가장 큰 차이입니다. 아래 표는 각 프로젝트의 소개 글을 기준으로 정리한 것입니다:

항목 Day Trader skill AI-Trader Vibe-Trading Finance Skills
매매 판단 Python 스크립트의 고정 규칙 LLM이 자율적으로 결정 자연어 요청을 LLM 에이전트가 전략으로 변환 에이전트가 분석과 리서치를 수행
수치 계산 표준 라이브러리 Python LLM + MCP 도구 호출 백테스트 엔진 yfinance 기반 분석 스킬
주문 리스크 검사 + 채팅 승인 + 클라이언트 승인 사람 개입 없이 실행 트레이딩 플랫폼용 지표 내보내기 소개 글 기준 다루지 않음
대상 시장 미국 주식, ETF 나스닥 100 중국 A주, 홍콩, 미국, 암호화폐 등 yfinance 데이터, Hyperliquid 등

Day Trader skill은 LLM이 똑똑하게 매매하도록 만드는 프로젝트가 아니라, LLM이 숫자를 지어내지 못하게 막는 쪽에 가깝습니다. Time Machine 스킬의 규칙은 "The verdict line and the lines under it are printed by the tool. Repeat them, do not rewrite them." 라고 Claude에게 출력을 고쳐 쓰지 말라고 지시합니다. 반대로 시장을 해석하는 능력이나 새로운 전략을 만드는 기능은 없으므로, 그런 기능이 필요하면 위 표의 다른 프로젝트가 더 맞습니다.

Day Trader skill을 사용하면 좋을 사용자

Claude Code나 Claude Desktop을 이미 쓰고 있고, 미국 주식 데이 트레이딩의 규칙 기반 절차를 모의 계좌에서 직접 따라가 보고 싶은 사용자에게 적합합니다. 스킬마다 하나씩인 Python 스크립트 11개와 테스트 315개가 저장소에 함께 있고 외부 의존성이 없어서, 백분위나 손익비 계산이 어떻게 이루어지는지 코드로 읽어 보려는 개발자에게도 학습 자료가 됩니다. LLM 에이전트에 실제 금전 거래 권한을 줄 때 어떤 안전장치를 둘 수 있는지 참고하려는 사람에게도 쓸모가 있습니다.

반면 국내 주식을 거래하거나, 검증된 수익 전략을 찾는 사용자에게는 Day Trader skill이 적절한 선택지가 아닙니다. 리스크 검사는 미국 주식과 ETF 티커가 아닌 종목을 차단하고, 브로커 연동은 Alpaca와 Interactive Brokers만 다룹니다. 진입은 매수(Long) 방향만 지원하고 신호도 장 초반 구간 돌파와 사용자가 지정한 가격 돌파 두 가지뿐이며, 저자의 예시 자체가 장 초반 구간 돌파 신호에 뚜렷한 우위가 없다는 결과를 보여 줍니다.

Day Trader skill의 11개 스킬과 거래 흐름

Day Trader skill의 스킬은 한 번의 거래를 따라 순서대로 이어지는 8개와, 포지션을 감시하거나 일정에 따라 도는 3개로 나뉩니다. 저장소가 제시하는 흐름은 다음과 같습니다:

scanner -> news -> entry -> exit -> timemachine -> budget -> risk -> broker   (one trade)
alerts: stop, target, flat by the close                                       (while it is open)
news / analyst / pelosi                                                        (on a schedule)

각 스킬의 역할은 다음과 같습니다:

명령 역할 하는 일
/trader-scanner 차트 검색 약 5,900개 미국 상장 종목에서 장 시작 구간 돌파, 깃발형, 과매도 반등 같은 패턴 탐색
/trader-news 뉴스 감시 Yahoo 헤드라인과 SEC 8-K 공시를 읽고 실적, 인수합병, 거래정지 등으로 분류
/trader-entry 진입 시점 봉이 완성될 때마다 확인하다가 장 초반 구간 고점(또는 지정 가격) 위에서 처음 마감한 봉에서 진입 신호
/trader-exit 청산 계획 진입 전에 손절가, 목표가, 장 마감 전 정리 시각을 정해 trader/plan.json에 기록
/trader-timemachine Time Machine 남은 장을 1만 번 재현하고 과거 같은 신호의 실제 결과를 함께 출력
/trader-budget 수량 계산 계좌 금액과 거래당 최대 손실로 주식 수를 정하고 손절, 익절이 붙은 브래킷 주문 작성
/trader-risk 리스크 검사 한도와 규칙을 어긴 주문을 PASS 또는 BLOCK으로 판정
/trader-broker 주문 실행 주문서를 보여 주고 승인을 기록한 뒤 브로커 MCP 도구로 주문
/trader-alerts 가격 알림 손절가, 목표가, 정리 시각 도달 시 알림
/trader-analyst 실적 분석 SEC의 XBRL 재무 데이터로 분기 실적과 성장률 요약
/trader-pelosi 의원 거래 추적 미국 하원의원의 주식 거래 공시(PTR)를 읽어 표로 정리 (공시는 거래 후 최대 45일 뒤에 올라옴)

저자는 2026년 10월 19일 월요일 TSLA의 실제 데이터로 이 흐름 전체를 예시로 보여 줍니다. 오전 10시 15분 기준으로 장 시작 15분 구간은 354.47~362.18이었고, 10시 10분 봉이 364.18에 마감하며 고점을 넘었습니다. 청산 계획은 구간 중간값인 358.32를 손절가로, 위험 폭 5.86의 1배인 370.04를 목표가로 정했습니다(기본값은 2배인 2R). 수량 계산 스킬은 5,000달러 계좌와 거래당 최대 손실 50달러 설정에서 최대 손실, 포지션 상한, 주문 상한, 현금 네 가지 한도 중 가장 작은 값인 8주(50 / 5.86을 내림)를 주문 수량으로 정했고, 손절가에서 체결되면 손실은 46.88달러입니다.

이 예시의 수치는 저장소의 오프라인 테스트가 그대로 재현합니다. 테스트는 실제 데이터에서 잘라 낸 고정 파일(Fixture)로 돌아가며, python3 -m unittest discover -s tests 를 실행하면 315개 테스트가 네트워크 없이 모두 통과합니다.

Day Trader skill의 Time Machine 시뮬레이션

Time Machine은 주문 직전에 "오늘 남은 장이 이 종목의 최근 장들처럼 흘러간다면, 이 계획은 목표가와 손절가 중 어디에 먼저 닿는가"를 묻는 스킬입니다. 이 스킬은 결과를 두 가지로 계산합니다: 하나는 과거 봉을 무작위로 다시 뽑아 만든 1만 개의 가상 경로이고, 다른 하나는 같은 규칙을 과거 거래일에 그대로 적용한 실제 기록입니다.

가상 경로는 다음 방식으로 만듭니다. 먼저 해당 날짜 이전 60일 치 5분봉 중 오전 9시 30분부터 오후 4시까지 78개 봉이 모두 있는 거래일만 남기고, 각 봉을 직전 종가 대비 시가, 고가, 저가, 종가 비율로 바꿉니다. 그 다음 진입가에서 출발해 남은 봉마다 같은 시간대(앞뒤 2개 봉 범위)의 과거 봉 하나를 무작위로 골라 현재 가격에 맞춰 이어 붙입니다. 한 봉이 손절가와 목표가를 모두 건드리면 손절로 처리하는데, timemachine.py는 이를 보수적인 판정이라고 설명합니다. 난수 시드(Seed) 기본값은 19라서 같은 계획과 같은 데이터, 같은 시드면 어느 컴퓨터에서나 같은 숫자가 나옵니다.

위 TSLA 예시를 저장소의 고정 파일로 다시 실행하면 README와 같은 결과가 나옵니다:

  target first   29.4 %
  stop first     25.5 %
  neither        45.1 %   still open at 4:00 PM
  green          51.7 %   target first, or above the entry at 4:00 PM

  Price at 4:00 PM: median 364.36, 90 % of replays between 355.54 and 373.54.
  Average R: +0.034 (R = the 5.86 risk: +1R at the target, -1R at the stop).

History: the same rule (15-min opening range, stop at the opening-range midpoint, 1R target) on each of those 59 real sessions fired 33 times: 13 target, 15 stop, 5 neither. Average R -0.062.

Close to a coin flip: target first 29.4 % vs stop first 25.5 %.

1만 번의 재현 중 목표가에 먼저 닿은 비율은 29.4%, 손절가에 먼저 닿은 비율은 25.5%였고, 45.1%는 장 마감까지 어느 쪽에도 닿지 않았습니다. 같은 규칙을 과거 59거래일에 적용하면 신호가 33번 나왔고, 목표가 13번, 손절 15번, 미도달 5번으로 평균 손익은 위험 폭 대비 -0.062배(R)였습니다. 판정 문구는 어느 한쪽에 닿은 재현만 놓고 목표가가 먼저 온 비율을 손익분기 승률(1R이면 50%, 2R이면 33%)과 비교해 정해집니다. 이 예시는 53.6%로 50%와 5%p 안쪽이라 "Close to a coin flip"으로 나왔습니다.

이 결과를 읽을 때 알아 둘 한계가 있습니다. 가상 경로는 같은 시간대의 과거 봉을 서로 독립적으로 뽑아 이어 붙이므로, 변동성이 몰리는 날이나 추세가 이어지는 날의 성질은 반영되지 않습니다. 과거 기록도 33번의 신호에서 나온 결과라 승률을 단정하기에는 표본이 작습니다. 프로젝트도 Time Machine이 예측이 아닌 시뮬레이션이며, 실적 발표나 거래정지처럼 지난 60일에 없던 일은 반영할 수 없다고 밝히고 있습니다.

Day Trader skill의 주문 안전장치

Day Trader skill에서 주문으로 이어질 수 있는 스킬은 /trader-broker 하나입니다. 이 스킬의 주문은 세 가지 조건을 모두 통과해야 나갑니다: /trader-risk의 오늘자 PASS 판정, 그 주문 하나에 대해 사용자가 채팅에 입력한 "yes", 그리고 Claude 클라이언트의 Allow once 승인 창에서의 허용입니다.

리스크 검사는 손절가가 없는 주문, 손절가에서의 손실이 거래당 한도를 넘는 주문, 손익비가 최소값에 못 미치는 주문, 하루 손실 한도와 거래 횟수를 넘는 주문, 진입 허용 시간 밖의 주문을 차단합니다. 예제 설정의 기본값은 5,000달러 계좌, 거래당 최대 손실 50달러, 하루 최대 손실 150달러, 하루 3회 거래, 오전 9시 45분부터 오후 3시 30분까지 진입 허용입니다. 앞의 TSLA 예시에서 8주는 PASS지만 9주로 바꾸면 손절 시 손실이 52.74달러가 되어 BLOCK됩니다. 이 손실액은 손절가에 정확히 체결된다는 가정의 값이며, 급변동이나 갭에서는 손절 주문이 훨씬 불리한 가격에 체결될 수 있습니다. 반대로 이미 보유한 주식을 파는 청산 주문은 하루 한도나 시간 제한으로 막지 않는데, 언제든 포지션에서 빠져나올 수 있어야 하기 때문입니다.

채팅 승인은 ticket.py가 검사합니다. 답변이 "yes"나 "y"로 시작해야 하고, "yes to all"처럼 여러 주문을 묶거나 다른 종목명, 다른 수량을 적은 답은 기록하지 않습니다. 다만 ticket.py는 브로커와 직접 통신하지 않고 승인을 기록만 합니다. 실제 주문은 Claude가 Alpaca MCP 서버의 place_stock_order 도구를 호출해 보내므로, 앞의 두 단계는 Claude가 스킬 지침을 따른다는 전제 위에 있습니다. 그래서 Alpaca 연동에서는 사용자가 직접 설정하는 마지막 단계, 즉 주문 도구의 권한을 "Needs approval"로 두는 설정이 LLM의 판단과 무관하게 동작하는 유일한 차단 장치입니다. Interactive Brokers 커넥터는 Claude가 주문 지시를 초안으로만 보내고 최종 승인은 사용자의 IBKR 계정에서 받는다고 안내하므로, 이 경우에는 증권사 쪽 승인이 한 단계 더 있습니다. 프로젝트도 이 권한을 "Always allow"로 바꾸지 말라고 거듭 안내하고, Claude Code에서는 .claude/settings.json의 ask 목록에 주문 도구를 넣도록 권합니다.

이 밖에도 프로젝트는 모의 투자를 기본값으로 두고, 옵션과 신용, 공매도, 레버리지는 설정에서 켜지 않는 한 차단합니다. 브로커 API 키는 환경 변수나 Claude Desktop 설정 파일에만 두고 채팅에는 절대 입력하지 않도록 안내합니다. 미국 금융산업규제기구(FINRA)는 2026년 6월 4일부터 패턴 데이 트레이더(PDT) 지정 기준과 25,000달러 최소 자산 요건을 새 일중 증거금(Intraday Margin) 기준으로 대체했습니다(Regulatory Notice 26-10). 다만 증권사는 2027년 10월 20일까지 단계적으로 적용할 수 있으므로, 기존 규정을 유지하는 증권사를 쓴다면 pdt_guard 를 켜서 데이 트레이딩 횟수를 세도록 할 수 있습니다.

Day Trader skill 설치와 사용

Claude Code에서는 플러그인 마켓플레이스로 설치할 수 있습니다. 저장소 이름과 플러그인 식별자는 프로젝트 이름과 달리 day-trader-skill 이므로, 아래 명령에서는 그 이름을 그대로 씁니다:

/plugin marketplace add Jakeschincariol/day-trader-skill
/plugin install day-trader-skill@day-trader-skill

플러그인으로 설치하면 스킬 이름 앞에 네임스페이스가 붙어 /day-trader-skill:trader-scanner 처럼 호출합니다. 짧은 /trader-scanner 형태로 쓰려면 폴더를 직접 복사합니다:

git clone https://github.com/Jakeschincariol/day-trader-skill.git
cp -r day-trader-skill/trader-* ~/.claude/skills/

Claude 채팅에 저장소 URL과 install skill 을 붙여 넣는 방법도 있고, Claude Code 없이 SKILL.md 하나를 대화 첫머리에 붙여 넣으면 Python 도구 없이 절차만 따르는 방식으로도 쓸 수 있습니다. SEC 데이터를 읽는 뉴스, 실적 분석 스킬은 요청자 정보가 필요하므로 trader/config.json 의 sec_user_agent 또는 SEC_USER_AGENT 환경 변수에 이름과 이메일을 적어야 합니다.

각 도구는 Claude 없이 명령줄에서도 실행할 수 있습니다. 아래는 저장소가 제시하는 예시 중 일부입니다:

python3 trader-scanner/scan.py universe                                # ~5,900 US stocks, Nasdaq Trader
python3 trader-scanner/scan.py orb --at 10:15                          # opening-range breakouts so far
python3 trader-entry/entry.py check TSLA --setup orb                   # waiting / triggered / expired
python3 trader-exit/exit.py plan --stop or-mid --target 1R --write     # -> trader/plan.json
python3 trader-timemachine/timemachine.py run --write                  # 10,000 replays + the history
python3 trader-budget/size.py --write                                  # -> trader/orders.json
python3 trader-risk/check.py                                           # PASS / BLOCK per order
python3 trader-broker/ticket.py show                                   # the tickets, READY or not

데이터는 무료 비공식 엔드포인트에서 오므로 지연되거나 형식이 바뀌거나 요청이 제한될 수 있고, 진입 판단은 틱이 아니라 1분봉과 5분봉 단위로 이루어집니다. 프로젝트는 실제로 행동하기 전에 중요한 값은 증권사 화면과 대조하라고 안내합니다.

Day Trader skill의 라이선스

Day Trader skill은 MIT 라이선스로 공개되어 있어 개인 및 상업적 목적으로 자유롭게 사용할 수 있습니다.

:github: Day Trader skill 프로젝트 GitHub 저장소

더 읽어보기




이 글은 GPT 모델로 정리한 초안을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 댓글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:에서 이런 글들을 계속 정리하고 있습니다. 회원 가입으로 주요 글들을 이메일:love_letter:로, 텔레그램(Telegram)이나 Slack/Discord/Teams/Dooray/GoogleChat 등으로 새 글 알림을 받아보세요! :smiley:

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck: