SEAN TEAM
Work · AI TRADING SYSTEM --:-- 서울 · 공개 데모 · 읽기 전용 · 주문 기능 꺼짐

자동매매에서
가장 위험한 스위치를
꺼 둔 채로.

StockAgent

AI 는 사자고 말할 수 있습니다.주문을 낼지는 코드가 정합니다.기본값은 내지 않는 쪽입니다.

ABOUT · WHAT IT DOES

StockAgent 는 업비트 시세를 읽어 RSI14 와 5·20 이동평균, 변동률로 스냅샷을 만들고, AI 에게 사기·팔기·기다리기 중 하나를 신뢰도와 근거와 함께 답하게 합니다. 그 답은 리스크 레이어를 지나야 주문이 되고, 레이어는 금액을 줄이거나 막을 수만 있습니다. 판단과 체결은 SQLite 에 남아 재시작해도 이어집니다. 기본값은 모의매매이고, 실거래는 설정 두 개를 모두 바꿔야 열립니다.

이 사이트의 데모는 GitHub Pages 용으로 내보낸 정적 빌드입니다. 계좌 조회·AI 호출·주문이 모두 꺼져 있고, 시세는 내보낸 시점의 업비트 종가 스냅샷, 계좌 숫자는 데모 값입니다.

01 — Public demo

268개 코인을 읽지만, 주문은 하나도 내지 않습니다.

StockAgent 공개 데모의 코인 마켓 화면 — 맨 위에 DEMO · READ ONLY 와 AI mock 배지, 업비트 KRW 마켓 268개 목록과 미니 차트, 아래에 KRW-BTC 1시간 차트와 호가 스냅샷, 맨 아래 PUBLIC DEMO · orders disabled
  1. 맨 위 배지 “DEMO · READ ONLY”화면 맨 위 배지가 먼저 말합니다. AI 는 mock, 봇은 멈춘 상태입니다.
  2. 업비트 KRW 마켓 268개미니 차트는 내보낸 시점의 업비트 종가 스냅샷으로 그립니다.
  3. 주문은 꺼져 있음 (orders disabled)호가와 계좌는 데모 값입니다. 계좌 조회와 주문 요청은 읽기 전용 오류로 돌아옵니다.
02 — One cycle

읽고, 묻고, 깎고, 기록합니다.

매매 루프는 기본 10분마다 한 번 돕니다. 공개 데모는 그 루프가 멈춘 상태를 그대로 보여 줍니다.

  1. ① Market data

    업비트에서 읽고 지표를 셉니다

    캔들·현재가·잔고를 가져와 RSI14, 5·20 이동평균, 변동률을 계산합니다. 데모 화면은 내보낸 시점의 업비트 종가를 268개 마켓 분량으로 씁니다.

  2. ② Decision

    AI 는 정해진 모양으로만 답합니다

    설정한 AI 가 BUY·SELL·HOLD 와 0~1 신뢰도, 근거를 돌려줍니다. 데모에서는 키 없이 도는 mock 제공자가 HOLD 를 내고, 실행된 주문은 0건입니다.

  3. ③ Risk

    리스크 레이어는 빼기만 합니다

    신뢰도 0.6 미만은 관망입니다. 주문 금액은 1회 한도 10,000원에 신뢰도를 곱한 값까지이고, 업비트 최소 5,000원에 못 미치면 올려 맞추지 않고 거절합니다. 그날 실현 손실이 30,000원에 닿으면 매매를 멈춥니다.

  4. ④ Order

    모의 모드에선 기록만 남습니다

    DRY_RUN 이 켜져 있으면 주문은 체결 없이 기록만 됩니다. 수동 주문 창도 같은 규칙을 따르고, 데모에서는 주문 요청 자체가 읽기 전용 오류로 돌아옵니다.

코인 마켓 화면 — 현재가·구간 변동률·RSI14·스프레드, 전체 코인 목록, 코인별 1시간 미니 차트
AI DECISIONS 패널 — DEMO KRW-BTC HOLD, 주문 none, 그 아래 EXECUTED ORDERS 0건과 배포 시점 스냅샷이라는 안내
TRADING LOGIC 패널 — 시세 수집, AI 판단, 리스크 필터, 주문 실행 네 단계와 최소 신뢰도 0.60, 주문당 최대 10,000원, 최소 주문 5,000원, 일일 손실 한도 30,000원
MANUAL MARKET ORDER 패널 — DRY RUN · PAPER ORDER 표시와 실거래 확인 칸의 Paper order, 모의 모드에서는 실제 업비트 주문을 내지 않는다는 안내

하나의 루프, 네 개의 창.

대시보드는 루프가 남긴 것을 보여 줄 뿐, 스스로 주문하지 않습니다. 아래 계좌 숫자는 전부 데모 값입니다.

트리맵데모 값 계좌 지도 — 현금 39.0%, BTC 30.7%, ETH 30.2% 칸과 거래 모드 모의매매, AI 엔진 mock 표시. 숫자는 데모 값 계좌 지도현금과 코인을 보유 비중만큼의 칸으로 나누고, 평단 대비 손익을 색으로 칠합니다.
SQLiteCSV AI 판단 기록 표 — KRW-BTC·KRW-SOL HOLD, 주문 none | demo, 그 아래 최근 거래 DB 는 거래 없음 판단 기록AI 판단마다 가격·RSI·신뢰도·주문 결과가 한 줄로 남고, CSV 로 내려받을 수 있습니다.
RSS LATEST CRYPTO NEWS 목록 — Google 업비트와 Google Crypto 두 피드의 기사 제목 코인 뉴스Google 뉴스 RSS 를 코인·업비트 두 갈래로 모아 60초마다 갱신합니다.
데모 값DRY RUN MY COINS 표와 ALLOCATION 도넛, 아래 DRY RUN · PAPER ORDER 수동 주문 창. 숫자는 데모 값 코인 포트폴리오보유 코인의 평가·평단·손익·비중을 표와 도넛으로 보여 줍니다. 아래 수동 주문 창은 모의 주문만 받습니다.

주문 앞에 DRY_RUN=trueALLOW_LIVE_TRADING=falseAI_PROVIDER=mock신뢰도 0.61회 10,000원최소 5,000원하루 손실 30,000원출금 권한 키 거절 잠금이 걸려 있습니다.

실거래는 DRY_RUN 과 ALLOW_LIVE_TRADING 두 설정을 모두 바꿔야 열리고, 업비트 주문 직전에 한 번 더 확인합니다.

01

기본값이 안전한 쪽

DRY_RUN 은 켜진 채, ALLOW_LIVE_TRADING 은 꺼진 채로 시작합니다. DRY_RUN 만 끄면 시작할 때 설정 검사에서 멈추고, 업비트 주문 함수는 호출 직전에 잠금을 다시 확인합니다.

02

모델은 제안만 합니다

AI 의 답은 행동·신뢰도·근거 세 칸뿐입니다. 금액은 리스크 레이어가 정하고, 레이어는 줄이거나 막을 수만 있습니다.

03

공개 빌드는 데모만

정적 내보내기는 계좌 대신 데모 값을 씁니다. access_key·secret_key·주문 uuid 같은 필드가 하나라도 섞이거나 data_mode 가 demo 가 아니면 내보내기가 실패합니다.

04

출금 권한 키는 받지 않습니다

멀티유저 모드에서 키를 등록하면 업비트에 출금 가능 여부부터 묻고, 출금이 되는 키는 저장하지 않습니다. 시크릿은 Fernet 으로 암호화해 둡니다.

05

모델은 바꿀 수 있게

Claude·OpenAI·Gemini 가 하나의 인터페이스 뒤에 있습니다. 한 제공자가 쿼터나 인증 오류를 내면 잠시 건너뛰고 다음으로 넘어가며, mock 은 키 없이 전체 흐름을 돌립니다.

06

믿기 전에 재생합니다

백테스트 CLI 가 업비트 캔들을 규칙 모드나 AI 모드로 재생해 수익률·MDD·승률·거래 수를 냅니다. 규칙 모드는 AI 비용 없이 돕니다.

03 — Counted from the repo · 2026-09-25
13,994줄의 Python · 테스트와 일회성 스크립트 제외
78개의 테스트 함수 · 11개 모듈
268개 업비트 KRW 마켓 · 데모 스냅샷
3개의 AI 제공자 · 키 없는 mock 별도
79번의 커밋 · 자동 스냅샷 커밋 1,660개 제외 · 7월 3~12일
ROLE
단독 개발 — 매매 루프 · 리스크 · 웹 대시보드
SERVER
Python · Flask · Waitress
AI
Claude · OpenAI · Gemini · mock — 설정 한 줄로 교체
EXCHANGE
업비트 현물 · 한국투자증권 KIS(키가 없으면 페이퍼 브로커)
STORAGE
SQLite — 멀티유저 저장소는 DATABASE_URL 이 있으면 PostgreSQL
TESTS
pytest 11개 모듈 · 백테스트 CLI
PUBLIC DEMO
GitHub Pages 용 정적 내보내기 · 2026-07-18 스냅샷
STATUS
MULTIUSER BUILD · DRY RUN DEFAULT
WHY

만들면서 스스로에게
물은 것들.

왜 공개 데모에서는 주문이 안 되나요?

공개 페이지에 주문 기능을 두면, 누구나 누를 수 있는 버튼이 생깁니다. 그래서 정적 내보내기는 계좌 조회·AI 실행·주문 요청을 모두 읽기 전용 오류로 돌려보내고, 계좌 숫자는 데모 값으로 채웁니다. 시세만 내보낸 시점의 업비트 스냅샷입니다. 화면 위 DEMO · READ ONLY 배지가 그 사실을 먼저 알립니다.

AI 가 틀리면 어떻게 되나요?

AI 는 신뢰도와 근거를 함께 내야 하고, 0.6 미만이면 관망으로 바뀝니다. 금액은 1회 한도에 신뢰도를 곱한 값을 넘지 않고, 하루 실현 손실이 30,000원에 닿으면 그날 매매를 멈춥니다. 틀린 판단이 커질 수 있는 길을 숫자로 좁혀 둔 것입니다.

실거래는 어떻게 켜나요?

DRY_RUN=false 와 ALLOW_LIVE_TRADING=true 를 둘 다 적어야 합니다. DRY_RUN 만 끄면 시작할 때 설정 검사에서 멈추고, 업비트 주문 함수도 호출 직전에 두 번째 잠금을 확인합니다. 원금 손실 위험과 소액 검증 권고는 README 맨 위에 적혀 있습니다.

숫자는 어떻게 셌나요?

저장소의 커밋 1,739개 중 1,660개는 시세 스냅샷을 자동으로 올린 커밋입니다. 그걸 빼면 79개가 남고, 기간은 7월 3일부터 12일까지입니다. 코드 줄 수는 테스트와 일회성 수정 스크립트를 뺀 Python 42개 파일에서 셌습니다.

여러 사람이 쓰면요?

multiuser 패키지가 계정·세션·사용자별 매매 엔진·암호화 금고를 더합니다. 사용자는 자기 업비트 키를 등록하고, 출금 권한이 있는 키는 저장 단계에서 거절됩니다. 자동매매는 사용자마다 꺼짐, 모의매매는 켜짐으로 시작합니다. MULTIUSER.md 는 공개 운영 전에 자본시장법 자문이 필요하다고 먼저 적어 둡니다.

숫자는 보여 주고,주문은 막아 둡니다.

프로젝트 전체 보기 →