Oracle3
Oracle3: 예측시장 거래 엔진·MCP 서버
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗2026-10-04 AlphaDesk에서 이름을 바꿨다. "알파(초과수익)"가 매수 신호처럼 읽혀, 테마의 물밑 흐름을 따로 보는 리서치 도구라는 성격에 맞게 바꿈. 마크는 U-Sonar, 긴 제목은 Undercurrent Sonar.
개인용 미국(S&P 500)·한국(KOSPI) 주식 투자 의사결정 대시보드. 매크로 시장 체제 판단 → 종목 스크리닝 → AI 서사 분석 → 매수 체크리스트 → 포트폴리오/리스크 추적까지 하나의 파이프라인으로 묶은 개인 프로젝트입니다.
이 문서는 다른 AI 코딩 도구(Codex 등)로 이 프로젝트를 검토·작업할 때 빠르게 맥락을
잡을 수 있도록 작성되었습니다. 페이지별 상세 설명은 docs/PAGES.md를
참고하세요.
GitHub Actions (cron)
├─ daily-analysis.yml 평일 07:30·16:30 KST — US/KR 분석 + 네러티브 + 텔레그램 다이제스트
└─ weekly-watchlist.yml 매주 월 07:00 KST — 워치리스트 스크리닝 + 주간 브리핑
│
▼ (Python 스크립트가 결과를 적재)
Turso (libSQL, HTTP/Hrana v2)
│
▼ (getClient()로 조회)
Next.js 15 (App Router) ── frontend/app/**/page.tsx
│
▼
사용자 (브라우저) — https://u-sonar.vercel.app (예전 alphadesk-eta.vercel.app도 당분간 유지), Vercel에 GitHub 연동 자동배포
"use client")로 fetch를 통해 자체 API 라우트를 호출.frontend/app/api/**/route.ts, 전부 export const dynamic = "force-dynamic". Turso를 직접 쿼리하거나 Yahoo Finance 등 외부 API를 그때그때 호출.src/ 하위 Python 모듈 (시장 체제 감지, 트랩 필터, 스크리닝, ML,
포트폴리오 리스크 등) + scripts/ 하위 실행 엔트리포인트.urllib.request
POST, Next.js 쪽은 @libsql/client(src/lib/db.ts의 getClient()).main 브랜치 push 시 자동 배포 (로컬 .vercel 링크 없음 —
순수 Git 연동 방식).frontend/ Next.js 앱
app/
page.tsx 개요(홈)
briefing/ 주간 브리핑
regime/ 시장 체제
sector/ 섹터 분석
risk/ 리스크 모니터
watchlist/ 워치리스트 (스크리닝 후보 + 내 관심종목)
portfolio/ 포트폴리오 (실거래 기록 + 성과 비교)
workflow/ 매수 체크 (12조건 체크리스트 + 포지션 사이징)
guide/ 사용 가이드
api/ 백엔드 API 라우트 (DB 조회, 외부 시세 등)
src/components/ 공용 컴포넌트 (Navigation, StockTechPanel, MiniPortfolio 등)
src/contexts/ MarketContext (미국/한국 전환 상태)
src/lib/ DB 클라이언트 등 유틸
tailwind.config.ts 디자인 토큰(색상/라운드/폰트) — 전역 테마 소스
app/globals.css CSS 커스텀 프로퍼티 토큰
src/ Python 분석 엔진
analyzers/ 시장 체제, 트랩 필터, 스크리닝, ML 랭킹, 리포트 생성 등
collectors/ 가격/재무 데이터 수집
ml/ LightGBM 기반 지수 방향 예측
portfolio/, risk/ 포트폴리오 추적, VaR/MDD 계산
scripts/ 실행 엔트리포인트 (run_kr_analysis.py, run_watchlist_screen.py 등)
data/ 캐시된 가격/종목 리스트 (일부는 .gitignore 대상)
.github/workflows/ weekly-analysis.yml, weekly-watchlist.yml, performance-tracking.yml
| 메뉴 | 경로 | 한 줄 설명 |
|---|---|---|
| 개요 | / | 종합 판단(GO/CAUTION/STOP) + 체제 점수 + 이번 주 워치리스트 후보 수를 한 화면에 |
| 주간 브리핑 | /briefing | 주간 스크리닝 결과를 읽기 쉬운 문서 형태로 요약 |
| 시장 체제 | /regime | risk_on/neutral/risk_off/crisis 판정과 근거 센서 분해 |
| 섹터 분석 | /sector | 섹터별 상대강도, 경기 사이클(early/mid/late/recession) |
| 리스크 | /risk | 실거래 기반 VaR, 섹터 집중도, 손절선 경보 |
| 워치리스트 | /watchlist | 재무 건전성 필터(Piotroski 등) 통과 종목을 순위 없이 리스트업 + 내가 담은 관심종목(메모·정성체크·네러티브) |
| 포트폴리오 | /portfolio | 실거래 기록 CRUD + 벤치마크 대비 성과 차트 |
| 매수 체크 | /workflow | 매수 전 체크리스트(워치리스트 후보·Piotroski·네러티브 등) + 손실 한도 기반 포지션 사이징 계산기 |
| 가이드 | /guide, /guide/detail | 앱 사용법·판단 기준 설명 (엔드유저용 문서) |
자세한 페이지별 레이아웃·데이터소스·로직은 docs/PAGES.md 참고.
최근에 전체 UI를 "터미널 앰버" 테마로 재작업했습니다:
#0a0a08) + 종이빛 화이트 본문 텍스트 + 티커·순수
숫자만 앰버(#ffb020/#e3a63e)로 강조하는 배색. 토큰은 frontend/app/globals.css
(:root CSS 커스텀 프로퍼티)에 정의.tailwind.config.ts의 borderRadius 스케일을 전부 0px로 낮춰 각진
룩을 전역 적용 (개별 rounded-* 클래스를 일일이 안 고쳐도 됨).tailwind.config.ts의 fontFamily.sans가 모노스페이스 스택을 최우선으로
두고 한글은 Noto Sans KR로 자동 폴백.#ffb020, 버튼·활성탭·오늘픽 배지)와 실제 판단색은
분리되어 있음 — GO/BUY/risk_on/체크리스트 통과 같은 "좋음" 판단은 실제 초록
(#4ade80)을 쓰고, warn(#facc15)/caution(#fb923c)/bad(#f87171) 4단계 시맨틱
컬러가 별도로 존재. 정보성 보조색은 청록(#6fb3b8) 하나로 통일.cd frontend
npm install
npm run dev # http://localhost:3000
frontend/.env.local (Turso URL/토큰, OpenAI API 키 등 — git에 안 잡힘)npx next build (커밋 전 항상 실행 — 과거 recharts 타입 에러가
빌드에서만 잡힌 적 있음)Python 분석 스크립트는 requirements.txt 기준 가상환경에서 scripts/*.py를 직접 실행
(로컬 테스트 시에도 Turso에 직접 씀 — 별도 로컬 DB 없음).
daily-analysis.yml: 평일 US(16:30 KST)/KR(07:30 KST) 장 마감 후 분석 실행 →
네러티브 브리프 생성 → 텔레그램 다이제스트 발송 (24시간 내 동일 내용이면 재발송 안 함)weekly-watchlist.yml: 매주 월요일 워치리스트 스크리닝 + 주간 브리핑 생성src/analyzers/kr_market_regime.py, scripts/run_kr_analysis.py)./workflow)의 포지션 사이징 계산기는 원화 단일 입력을 받아 실시간 환율
(/api/fx/usdkrw)로 자동 환산 — US/KR 시장 전환 시 통화 컨텍스트가 바뀌는 걸 놓치기
쉬운 지점이라 과거에 버그가 여러 번 났던 자리./api/portfolio/performance)는 US·KR 종목이 섞인 계좌일 경우
주간 환율로 원화 환산 후 합산 — 통화를 안 맞추면 수익률이 크게 왜곡됨.