Open Net Worth
Open Net Worth is an open-source personal AI wealth assistant you run yourself: one ledger for your whole financial life, worked by an AI agent you control.
翻譯準備中
국내주식 1분봉 모의투자(페이퍼 트레이딩) 웹 — 교육·연구용
翻譯準備中
正在載入完整 README。 以下為已儲存的摘錄。
실제 KRX 1분봉 데이터로 돌아가는 국내주식 모의투자(페이퍼 트레이딩) 웹. 모의투자·교육용입니다. 실계좌·실거래 연동은 하지 않으며, 종목 추천·투자 권유가 아닙니다. • 웹: Next.js (App Router, TypeScript) → Vercel Hobby • DB: Turso Free (libSQL) × 2 — krx-market(시세) / trading(계좌·주문·판단) • 수집·배치: /collector Python(uv) + GitHub Actions cron • 분봉 원본: 일자별 parquet → GitHub Release 자산 (Turso minute_prices는 최근 5거래일 롤링 캐시만) 1. Turso DB 2개 생성 + 토큰 발급: 2. 환경변수: .env.example을 .env로 복사해 값 채우기. TURSO_* 토큰은 서버 전용 — NEXT_PUBLIC_ 접두사 금지. Windows에서 turso CLI는 WSL로 사용한다 (~/.turso/turso). 상세 문서는 docs/ 참고 — 데이터 파이프라인 · 체결 엔진檢視完整 README ↗
실제 KRX 1분봉 데이터로 돌아가는 국내주식 모의투자(페이퍼 트레이딩) 웹.
모의투자·교육용입니다. 실계좌·실거래 연동은 하지 않으며, 종목 추천·투자 권유가 아닙니다.
krx-market(시세) / trading(계좌·주문·판단)/collector Python(uv) + GitHub Actions cronminute_prices는 최근 5거래일 롤링 캐시만)Turso DB 2개 생성 + 토큰 발급:
turso db create krx-market
turso db create trading
turso db show --url krx-market # → TURSO_KRX_MARKET_URL
turso db tokens create krx-market # → TURSO_KRX_MARKET_AUTH_TOKEN
# trading도 동일하게
환경변수: .env.example을 .env로 복사해 값 채우기.
TURSO_* 토큰은 서버 전용 — NEXT_PUBLIC_ 접두사 금지.
스키마 적용:
pnpm migrate # .env의 Turso에 적용, env 없으면 로컬 file DB(.data/)에 적용
Windows에서 turso CLI는 WSL로 사용한다 (
~/.turso/turso).
pnpm install
pnpm dev # http://localhost:3000
pnpm test # 단위 테스트 (vitest — 엔진·지표)
pnpm e2e # Playwright e2e (dev 서버 자동 기동, Turso+로컬 parquet 필요)
상세 문서는 docs/ 참고 — ·
cd collector
uv sync # Python 3.12 고정 (.python-version)
# 백필 — 네이버가 제공하는 최근 ~6거래일 분봉 전부 → data/minute/*.parquet
uv run python backfill.py # 전 종목 (~2,700요청, 기본 0.5초 간격 ≈ 25분)
uv run python backfill.py --tickers 005930,000660
uv run python backfill.py --upload # GitHub Release 업로드까지 (gh CLI 필요)
# 일일 배치 — Actions가 평일 16:30 KST에 실행하는 것과 동일 진입점
uv run --env-file ../.env python daily.py
uv run python daily.py --tickers 005930 --skip-upload # 스모크
# 파서 테스트
uv run python test_parse.py
minute-YYYY-MM)에 보관한다. Turso 무료 쓰기 한도(월 1,000만 행) 보호 목적.TURSO_KRX_MARKET_URL, TURSO_KRX_MARKET_AUTH_TOKEN,
TURSO_TRADING_URL, TURSO_TRADING_AUTH_TOKEN(스냅샷·AI 수익률 배치),
TURSO_API_TOKEN(주간 덤프 backup.yml).docs/data-pipeline.md).
지수는 FDR(KS11/KQ11) → 네이버 폴백, 수급은 실패 시 스킵(보조 데이터).KiwoomRestProvider로 교체 예정입니다.배포 완료: https://k-papertrade.vercel.app (Google 로그인)
재배포·환경변수 관리는 CLI로 한다:
vercel deploy --prod # 프로덕션 배포
vercel env ls production # 등록된 환경변수 확인
printf '%s' "새값" | vercel env add APP_PASSWORD production --force
프로덕션 환경변수 — 전부 서버 전용, NEXT_PUBLIC_ 금지:
| 이름 | 비고 |
|---|---|
TURSO_KRX_MARKET_URL / _AUTH_TOKEN | 시세 DB |
TURSO_TRADING_URL / _AUTH_TOKEN | 계좌·주문 DB |
AUTH_SECRET | Auth.js 세션 서명 키 (openssl rand -base64 32) |
AUTH_GOOGLE_ID / AUTH_GOOGLE_SECRET | Google OAuth 클라이언트 |
ALLOWED_EMAILS | 로그인 허용 이메일(쉼표 구분). 비면 아무도 못 들어온다 |
GITHUB_REPO | kwondoyun07/K-PaperTrade |
GITHUB_RELEASE_TOKEN | 저장소가 공개라 지금은 불필요(비공개 복귀 시 필요) |
Google Cloud Console → 사용자 인증 정보 만들기 → OAuth 클라이언트 ID → 웹 애플리케이션
| 항목 | 값 |
|---|---|
| 승인된 자바스크립트 원본 | https://k-papertrade.vercel.app |
| 승인된 리디렉션 URI | https://k-papertrade.vercel.app/api/auth/callback/google |
동의 화면은 외부(External) + 테스트 사용자에 본인 계정만 추가하면 충분하다
(게시 검증 불필요). 발급된 ID·시크릿을 AUTH_GOOGLE_ID/AUTH_GOOGLE_SECRET으로
등록하면 로그인이 켜진다.
AUTH_GOOGLE_ID가 없으면 인증을 생략한다.main(master 역할) · develop — 상시 브랜치develop에서 feature/* 분기 → 완료 시 develop에 머지develop → main PR로 반영/collector) + Turso 스키마 + .env.example
+ 디자인 시안(K-PaperTrade.dc.html) TS 포팅 — 현재 화면은 더미 데이터lib/engine/, 순수 함수) + vitest 18케이스 — docs/engine.mdv1 범위 밖(미구현): VI(변동성완화장치), 동시호가, 공매도, 실거래 연동.