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.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证관심종목 · 실시간 캔들 차트 · 기술적 분석 대시보드 (라이트 테마)
翻译准备中
正在加载完整 README。 以下为已保存的摘录。
글로벌 지수 전광판 · 환율/원자재/금리 · 공포 & 탐욕 지수 · 매크로 D-Day를 한눈에 보는 스마트 홈과, 관심종목 · 실시간 차트 · AI 목표주가 분석 · 재무 가치분석 · 추천 종목 스크리너 · 글로벌 매크로 일정/뉴스를 보는 종목 분석 화면, 채권 · 기술적 분석 · 가치 분석 등 투자 개념을 익히는 주식 공부 화면으로 구성된 라이트 테마 대시보드입니다. 모듈이 로 분리돼 있어 file://이 아닌 로컬 서버로 열어야 합니다. 차트 · 분석 데이터: 공공데이터포털 + 토스증권 실시간 배포본(공유용 웹앱)의 국내 종목 차트와 기술적 분석은 공공데이터포털 금융위원회_주식시세정보 로 이루어집니다. 공공데이터는 누구에게나 다시 보여 줄 수 있어서, 사이트를 여는 모든 방문자가 같은 실제 데이터를 봅니다. 토스증권 Open API를 연결하면 그 위에 실시간 주가 · 오늘 봉 · 실제 1분봉이 더해집니다(각자 본인 키).查看完整 README ↗
🔗 배포 주소: https://nowjay.github.io/quant-stock-dashboard/ (모바일 대응)
글로벌 지수 전광판 · 환율/원자재/금리 · 공포 & 탐욕 지수 · 매크로 D-Day를 한눈에 보는 스마트 홈과, 관심종목 · 실시간 차트 · AI 목표주가 분석 · 재무 가치분석 · 추천 종목 스크리너 · 글로벌 매크로 일정/뉴스를 보는 종목 분석 화면, 채권 · 기술적 분석 · 가치 분석 등 투자 개념을 익히는 주식 공부 화면으로 구성된 라이트 테마 대시보드입니다.
python3 -m http.server 8777 # 프로젝트 폴더에서 실행 후 http://localhost:8777
모듈이
<script src>로 분리돼 있어file://이 아닌 로컬 서버로 열어야 합니다.
배포본(공유용 웹앱)의 국내 종목 차트와 기술적 분석은 공공데이터포털 금융위원회_주식시세정보 로 이루어집니다. 공공데이터는 누구에게나 다시 보여 줄 수 있어서, 사이트를 여는 모든 방문자가 같은 실제 데이터를 봅니다. 토스증권 Open API를 연결하면 그 위에 실시간 주가 · 오늘 봉 · 실제 1분봉이 더해집니다(각자 본인 키).
| 방문자 | 국내 종목 차트 · 분석 | 현재가 | 분봉 |
|---|---|---|---|
| 토스 미연결 (기본) | 공공데이터 일봉 2년치 (수정주가) | 공공데이터 전 영업일 종가 · 공공데이터 표시 | 제공하지 않음 (1분/5분 버튼 비활성) |
| 토스 연결 | 공공데이터 일봉 + 그 이후 거래일은 토스 일봉 | 토스 실시간 체결 | 토스 실제 1분봉 |
기준가 = 종가 − 대비와 전일 종가 비교).금융위원회_증권상품시세정보를 따로 신청하지 않은 경우)은 아래 번들 데이터로 대신합니다.금융위원회_주식시세정보 검색 → 오픈API 활용신청 (자동 승인).
ETF도 공공데이터로 보려면 금융위원회_증권상품시세정보도 신청합니다(같은 키 사용).gh secret set DATA_GO_KR_KEY -R nowjay/quant-stock-dashboard
pages → Run workflow (첫 실행은 2년치 약 520일을 받느라 10~20분 걸리고, 이후에는 새 날짜만 받습니다).env에 DATA_GO_KR_KEY=…를 넣고 python3 tools/build_krx.py 실행 후 로컬 서버로 엽니다.개발 계정의 호출 한도는 하루 1만 건입니다. 날짜당 12건만 쓰므로(첫 수집 약 1,000건, 이후 배포마다 1020건) 충분합니다.
GitHub Actions (pages.yml) ── 공공데이터 API ──▶ .cache/krx/<날짜>.json (actions/cache, 새 날짜만 추가)
└─ tools/build_krx.py ─▶ assets/data/krx/quotes.json · d/<코드>.json (종목당 약 20KB)
└─ 사이트 전체와 함께 GitHub Pages 에 배포
브라우저 ── 종목을 열 때 d/<코드>.json 만 받음 ── (토스 연결 시) 이후 거래일 · 실시간 체결 · 1분봉을 토스 프록시에서
종목별 일봉 파일(수천 개)은 커밋하지 않습니다. 매일 새로 쓰면 저장소가 1년에 수 GB씩 불어나기 때문에,
GitHub Pages 소스를 GitHub Actions로 두고 배포할 때마다 만듭니다. pages 워크플로는 main 푸시 · build-data 수집 직후 · 평일 예약 · 수동 실행 때 돕니다.
배포가 잘못될 때의 동작 (python3 tools/verify_krx.py 로 검증):
| 상황 | 결과 |
|---|---|
| 공공데이터 API를 부르지 못함 (시간 초과 · 키 문제 · 일일 한도) | 이미 받아 둔 날짜(.cache/krx)로 일봉을 만들어 배포하고 실행에 경고를 남깁니다. 기준일이 일주일 넘게 묵으면 오류로 표시합니다 |
| API도 안 되고 받아 둔 날짜도 없음 | 빌드를 실패시켜 배포하지 않습니다 — 국내 일봉이 빠진 사이트를 올리지 않고 직전 배포를 그대로 둡니다 |
서비스키(DATA_GO_KR_KEY)가 없음 | 공공데이터를 건너뛰고 번들 데이터만으로 배포합니다 |
| 실행 하나가 멈춤 | 다음 실행이 들어오면 멈춘 실행을 취소하고 이어받습니다 (concurrency.cancel-in-progress: true) |
실제 사이트가 오래된 것 같으면 gh run list --workflow pages 에서 끝나지 않은 실행이 있는지,
https://<사이트>/assets/data/krx/quotes.json 의 basDt가 최근 영업일인지 확인하세요.
| 항목 | 출처 | 성격 |
|---|---|---|
| 국내 전종목 · ETF 마스터 | 네이버 금융 | 실제 (KOSPI 2,484 · KOSDAQ 1,821 · ETF 1,175) |
| 미국 종목 마스터 | Wikipedia S&P 500 / NASDAQ-100 | 실제 |
| 미국 주요 ETF 마스터 | SOXL · TQQQ · QQQ · SPY · SCHD 등 73종 (tools/build_us.py의 US_ETFS) | 목록 고정, 시세는 nasdaq ETF 스크리너 수집 시 반영 |
| 국내 종목 일봉 · 현재가 (배포본) | 공공데이터포털 금융위원회_주식시세정보 (tools/build_krx.py) | 실제 — KOSPI · KOSDAQ 전 종목 2년치, 수정주가, 전 영업일 종가 · 공공데이터 일봉 배지 |
| 국내 ETF 일봉 · 현재가 | 금융위원회_증권상품시세정보 (활용신청 시) / 없으면 네이버 금융 | 실제 |
| 국내 종목 현재가·등락률 (공공데이터가 없을 때) | 네이버 금융 | 실제 (수집 시점 종가) |
| 대표 종목 일봉 (공공데이터가 없을 때 · 미국) | 네이버 금융 / Yahoo Finance | 실제 (2년치) |
| 그 외 종목의 과거 경로 | 시뮬레이션 | 최근 종가는 실제, 경로만 생성 → 화면에 시뮬레이션 경로 배지. 가상의 경로이므로 투자 의견 · 목표가 · 신호는 내지 않습니다(판단 보류) |
| 분봉(1·5분) | 토스증권 1분봉 | 토스 연결 시에만 실제. 공공데이터 종가 모드에서는 제공하지 않음 (모의 시세 데모에서는 일봉 파생 시뮬레이션) |
| 토스증권 연결 시 현재가 · 실시간 체결 · 일봉 | 토스증권 Open API (로컬 프록시 경유) | 실제 — 국내 종목은 공공데이터 마지막 거래일 이후 봉만 토스 일봉으로 이어 붙임(공공데이터 + 토스 실시간 배지), 공공데이터가 없는 종목은 일봉 400개로 대체(토스증권 일봉) |
| USD/KRW 환율 | frankfurter.dev → open.er-api.com | 실제, 10분마다 갱신 |
| FOMC 일정 | federalreserve.gov | 실제 확정 |
| 미국 CPI · PPI · 고용보고서 | bls.gov 발표 캘린더 (수집 시) / 발표 패턴 규칙 | 확정 / 예상 |
| 금통위 · 한국 물가 · 수출입 · PCE · GDP · ISM | 발표 패턴 규칙 | 예상 배지 표기 |
| 옵션 만기 · FOMC 의사록 | 거래소 규정 · 회의 3주 뒤 | 규칙 |
| 빅테크·대형주 실적 발표일 | nasdaq.com (수집 시) / 과거 발표 요일 패턴 | 확정 / 예상 |
데이터는 tools/build_*.py로 언제든 재수집할 수 있습니다.
python3 tools/build_markets.py # 홈 대시보드: 지수 · 환율 · 원자재 · 금리 · 공포/탐욕 · 심리지수 · 예상치
python3 tools/build_dataset.py # 국내 전종목 + 대표 일봉
python3 tools/build_us.py # 미국 종목 보강 + 대표 일봉
python3 tools/build_events.py # FOMC · BLS 지표 발표일 · 실적 발표일 · 컨센서스
python3 tools/build_news.py # 증시 뉴스 스냅샷 (실시간 피드 실패 시 대체)
python3 tools/build_fundamentals.py # 재무 · 가치분석 (약 15분, 종목 코드를 넘기면 그 종목만 갱신해 병합)
python3 tools/build_krx.py # 공공데이터 일봉 (.env 의 DATA_GO_KR_KEY 필요 · 결과는 커밋하지 않음 — 배포 때 자동 생성)
GitHub Actions(build-data)가 평일 한국장 중 3회 · 장 마감 직후(15:45) markets를, 매일 06:40 KST에
markets events news를, 매주 월요일 07:20 KST에 fundamentals를 예약 실행해 assets/data/를 갱신합니다.
상단 홈 | 종목 분석 | 주식 공부 전환의 첫 화면입니다(마지막으로 본 화면을 기억). 관심종목 사이드바는 그대로 두어,
종목을 누르면 바로 종목 분석 화면으로 넘어갑니다.
장중 / 프리마켓 / 장 마감 상태. 가로 스크롤(데스크톱은 화살표 버튼)
그래프 기간(1개월 · 3개월 · 6개월 · 1년) 버튼으로 모든 지수와 아래 환율 · 원자재 · 금리 카드의 미니 그래프를 한꺼번에 바꾸고, 그 기간의 변동(금리는 bp)을 표시합니다. 기준금리 카드는 변경이 드물어 3년 이력으로 고정
(선 색은 기간의 방향, 카드의 등락 숫자는 전일 대비 그대로). 고른 기간은 브라우저에 저장되며, 카드를 눌러 여는 추세 팝업도 같은 기간으로 시작합니다.D-2 태그로 강조하고 직전 발표치 → 시장 예상치를 비교(▲▼). 실적은 전년 동기 EPS → 예상 EPS. 핵심 이벤트 초 단위 카운트다운CNBC 시세 서버는 일부 비표준 브라우저(예: 데스크톱 앱 내장 브라우저)의 요청을 거부합니다. 이때는 수집 스냅샷과
수집 기준시각을 표시합니다. 일반 Chrome · Safari · Edge에서는 30초마다 갱신됩니다.
상단 홈 | 종목 분석 | 주식 공부 의 세 번째 화면입니다. 주식 투자 기초 지식이 조금 있는 성인을 대상으로, 8개 단원 · 88개 주제를 담았습니다.
| 단원 | 주제 |
|---|---|
| ① 주식 시장 기초 | 주식 · 증권시장 · 지수 · 시가총액 · 주문과 체결 · 가격제한폭 · 배당 · 증자/감자 · 세금 · 공시 |
| ② 채권과 금리 | 채권 · 국채 · 가격과 금리 · 만기수익률 · 듀레이션 · 수익률 곡선 · 신용등급 · 기준금리 · 금리와 주가 |
| ③ 기술적 분석 | 캔들 · 추세 · 지지/저항 · 거래량 · 이동평균 · 골든크로스 · 볼린저 밴드 · RSI · MACD · 스토캐스틱 · 다이버전스 · ADX · OBV/MFI · ATR · 피봇 · 피보나치 · 차트 패턴 · 백테스트 |
| ④ 가치 분석 | 재무제표 · 매출/이익 · EPS/BPS · PER · PBR · ROE · EV/EBITDA · PEG · 현금흐름 · 재무 건전성 · DCF · S-RIM · 해자 · 성장주/가치주 · 컨센서스 |
| ⑤ 거시경제 · 시장 읽기 | 경기 순환 · 물가 · 고용 · GDP/PMI · 환율 · 원자재 · 유동성 · 공포/탐욕 지수 · 수급 · 만기일 |
| ⑥ 투자 전략 · 위험 관리 | 위험과 수익 · 복리 · 손실의 수학 · 분산 · 자산배분 · 적립식 · 손절/손익비 · 포지션 크기 · 레버리지 · 베타/샤프 · 투자 스타일 |
| ⑦ 투자 상품 | ETF · 레버리지/인버스 · 선물옵션 · 공매도 · 전환사채 · 공모주 · 리츠 · 절세 계좌 |
| ⑧ 투자 심리 · 실수 줄이기 | 심리 편향 · 흔한 실수 · 투자 원칙 · 사기 예방 |
QT.Indicators)로
실제 계산해 그립니다. 그림 위에 마우스를 올리거나 누르면 값을 읽을 수 있습니다. 채권 가격 · 복리 · 손실 회복 · 레버리지 ETF도 계산 그림골든크로스, per, 국채)퀴즈 풀기는 전체 또는 단원별로 10문제를 무작위 출제하고 틀린 주제를 다시 안내localStorage)종목 분석 화면에서 직접 보기 버튼으로 차트 · 가치분석 · 매크로 탭으로 이동하고, 반대로 분석 화면의
용어 설명 ? 상자에서 주식 공부에서 자세히 보기로 해당 주제를 엽니다…/#learn/rsi 처럼 주제를 바로 열 수 있고, 브라우저 뒤로 가기로 이전 주제 · 목차에 돌아옵니다assets/learn/*.js)은 이 화면을 처음 열 때만 내려받아 홈 화면 로딩에 영향을 주지 않습니다tools/verify_learn.js)node tools/verify_learn.js # 실패하면 종료 코드 1
assets/core의 실제 계산과
같은지 확인하고, 본문 예시를 앱 함수에 그대로 넣어 같은 값이 나오는지 비교합니다FACTS 표를 함께 고칩니다− [140봉] + 확대/축소(가운데는 기본 보기), 전체화면 버튼 — Fullscreen API, 지원하지 않는 브라우저(아이폰 사파리)는 화면 가득 채우기⌘/Ctrl + 휠 · 트랙패드 핀치로 커서 위치 기준 확대(세로 휠은 페이지 스크롤), 트랙패드 좌우 스와이프 · Shift + 휠로 이동+ − 0(초기화) ← → F(전체화면) Esc2026.09.21 ~ 09.25, 월봉은 2026년 9월처럼 봉이 묶은 기간을 표시합니다. 분봉 시각은 보는 사람의 현지 시각입니다.최신 봉을 보여 주고, 헤더 가격 아래에는 2026.09.28 (월) 종가 기준처럼 기준일을 적습니다.국내 종목은 286,500원, 미국 종목은 $335.92 로 통화를 명시합니다.
미국 종목은 현재 환율로 환산한 ≈ 459,800원 · $1 = 1,369원을 함께 보여줍니다(환율 출처·기준일은 툴팁).
연결 우선순위는 WebSocket → REST 1초 폴링 → 공공데이터 종가입니다. 연결하지 않았거나 실패하면 값을 만들어내지 않고
공공데이터 종가를 그대로 보여 줍니다(상단 공공데이터, 차트 우상단 종가 기준 · 09.25).
assets/feed/kis.js — 한국투자증권 KIS 실시간 체결가(H0STCNT0) 파서, PINGPONG 응답, 지수 백오프 재연결(최대 5회)assets/feed/toss.js — 토스증권 Open API (로컬 프록시 경유 WebSocket 체결, 끊기면 REST 1초 폴링으로 메움)assets/feed/mock.js — 랜덤워크 모의 시세 (설정에서 모의 시세 (데모)를 직접 고를 때만)assets/feed/index.js — 위 셋을 고르고 폴백하는 파사드. 15초간 체결이 없으면 워치독이 재연결차트 우상단에 🟢 실시간 수신 중 · 14:03:21 배지로 상태와 마지막 수신 시각을 표시합니다.
⚠️ 브라우저에서 증권사 API를 직접 호출하면 CORS로 차단되고, HTTPS 페이지에서는
ws://도 차단됩니다. 실거래 연동에는 토큰을 보관하고wss://로 중계하는 프록시 서버가 필요합니다. 토스증권용은tools/toss_proxy.py로 들어 있습니다.
토스증권 API는 브라우저에서 바로 부를 수 없습니다(REST 응답에 CORS 헤더가 없고, 웹소켓 handshake에
Authorization 헤더가 필요하며, client_secret을 페이지에 둘 수 없음). 그래서 이 PC에서만 도는
로컬 프록시가 토큰을 발급·보관하고 시세만 중계합니다.
브라우저 ── http://127.0.0.1:8778/api/v1/... ──▶ toss_proxy.py ──▶ https://openapi.tossinvest.com
브라우저 ── ws://127.0.0.1:8778/ws ────────────▶ toss_proxy.py ──▶ wss://openapi-ws.tossinvest.com/ws/v1
client_id · client_secret 발급403).
집 인터넷은 공인 IP가 바뀔 수 있으니 403이 나면 먼저 확인하세요..env 작성 — cp .env.example .env 후 TOSS_CLIENT_ID · TOSS_CLIENT_SECRET 입력 (.env는 gitignore)python3 -m venv .venv && .venv/bin/pip install aiohttp certifi # 처음 한 번
.venv/bin/python tools/toss_proxy.py
연결 확인 완료 — 삼성전자(005930) 현재가 …원이 보이면 키와 허용 IP가 모두 정상입니다.토스증권 Open API → 프록시 주소 http://127.0.0.1:8778 → 연결하기동작
trade:kr / trade:us 체결을 구독합니다.curl http://127.0.0.1:8778/health프록시 안전장치
127.0.0.1에만 바인딩하고, localhost 페이지의 요청·웹소켓만 받습니다(다른 사이트가 몰래 붙지 못함).TOSS_ALLOWED_ORIGINS)하거나 리버스 프록시를 거쳐 들어온 요청은 접속 키(TOSS_PROXY_KEY) 없이는 거부합니다.token-revoked가 됩니다.토스증권 데이터 이용 정책상 API로 받은 정보는 본인 매매 목적으로만 쓸 수 있고 제3자 배포가 금지됩니다. 토스 데이터는 브라우저에서 실시간으로만 받고
assets/data/나 배포본에 저장하지 않습니다.
휴대폰이나 다른 PC(다른 IP)에서도 토스 실시간 데이터를 보려면, 고정 IP 서버에서 프록시를 24시간 돌리고
배포본(https://nowjay.github.io/...)에서 그 서버로 접속합니다. 핫스팟처럼 IP가 자주 바뀌는 문제도 함께 사라집니다.
휴대폰·PC 브라우저 ──https + 접속 키──▶ Caddy(HTTPS) ──▶ toss_proxy.py ──▶ 토스증권
└───────── 고정 IP 서버 ─────────┘
curl -fsSLO https://raw.githubusercontent.com/nowjay/quant-stock-dashboard/main/tools/server/setup.sh
sudo bash setup.sh
client_id·secret을 물어보고(서버의 /opt/toss-proxy/.env에만 저장), 접속 키를 만들어 HTTPS까지 설정합니다.
도메인은 가입이 필요 없는 <서버IP>.sslip.io를 기본으로 씁니다.토스증권 Open API → 프록시 주소 · 접속 키.sudo bash setup.sh를 다시 실행 (.env·도메인 유지). 로그: sudo journalctl -u toss-proxy -f사이트는 누구나 함께 볼 수 있고, 토스 실시간 시세는 각자 자기 토스증권 키로 받습니다. 토스 약관상 한 사람의 API 데이터를 여러 사람에게 보여줄 수 없기 때문입니다. 친구에게는 안내 페이지만 보내면 됩니다 — 위 설치 과정을 자기 계좌·서버로 따라 하게 되어 있습니다.
안내 페이지: https://nowjay.github.io/quant-stock-dashboard/toss-guide.html (설정창의 설정 방법 보기에서도 열림)
키 없이 들어온 방문자에게는 공공데이터(금융위원회) 일봉 · 전 영업일 종가로 된 차트와 분석이 보입니다.
우측 패널 글로벌 매크로 탭은 개별 종목이 아니라 증시 전체에 영향을 주는 일정과 뉴스를 모아 보여 줍니다.
모든 시각은 실제 발표 순간으로 계산해 한국시간으로 표기하며, 미국 발표는 서머타임을 반영합니다.
금리 · 물가 · 고용·경기 · 만기 · 실적 필터와 중요도(●●●) 표시일정의 출처와 상태 (tools/build_events.py → assets/data/events.json, assets/core/events.js)
| 상태 | 뜻 | 출처 |
|---|---|---|
| 확정 | 기관 · 회사가 공지한 날짜 | FOMC(federalreserve.gov 수집) · CPI/PPI/고용(bls.gov) · PCE/GDP(bea.gov) · 금통위(한국은행) · 실적(nasdaq.com 의 회사 공지일, 회사 IR) |
| 규칙 | 제도로 정해지는 날짜 | 파생 만기, FOMC 의사록(회의 3주 뒤) |
| 예상 | 과거 발표 패턴으로 추정 | 한국 물가 · 수출입 · ISM, 다음 해 일정이 나오기 전의 지표, 회사가 아직 공지하지 않은 실적 발표일 |
build_events.py 의 OFFICIAL_MACRO 에 적어 두고 수집이 비면 그 값으로 채웁니다. 기관이 다음 해 일정을 발표하면 이 표에 추가해야 합니다
(비어 있으면 '예상'으로 표시되며, 추정은 공휴일 등으로 하루MANUAL_EARNINGS 에 추가합니다. 대만 · 유럽 기업은 현지 발표 시각으로 표시합니다.금리/물가 · 실적 · 증시동향으로 자동 분류한 카드. 탭이 열려 있는 동안 5분마다 갱신브라우저는 언론사 RSS를 직접 읽을 수 없어(CORS) 중계가 필요합니다. 기본값은 rss2json 공개 API이며, 설정(톱니) → 뉴스 피드에서 자체 프록시(
https://my-server/rss?url={url})로 바꾸거나 끌 수 있습니다. 연결에 실패하면tools/build_news.py로 수집한assets/data/news.json스냅샷을 표시합니다.
assets/core/search.js 가 한글명 · 영문명 · 종목코드 · 초성을 모두 인덱싱합니다.
ㅅㅅㅈㅈ → 삼성전자, ㅋㅋㅇㅂㅋ → 카카오뱅크005930, AAPL, hynix 모두 매칭↑↓ 이동, Enter 선택, Esc 닫기관심종목 추가 버튼취소 · 연결하기 는 항상 화면 아래에 고정 (100dvh 기준이라 주소창에 잘리지 않음)? 는 누르는 영역만 확대AI 분석 · 가치분석 · 매크로 탭은 스크롤해도 상단에 붙어 있음한눈에 보기 카드가 현재 상태를 쉬운 문장으로 요약하고, 상황별 대응 포인트(지지선·손절선 기준),
6개 항목 체크리스트, 이 종목의 과거 데이터로 검증한 신호 신뢰도를 함께 보여 줍니다. 지표 이름 옆 ?를 누르면 용어 설명이 나옵니다.
국면 인식 종합 점수 (assets/core/scoring.js) — 지표를 추세·모멘텀·거래량으로 묶어 −100~+100으로 합산합니다.
ADX로 추세장/횡보장을 판단해, 추세장에서는 추세 지표 비중을 높이고 과매수 신호는 '과열 경고' 정도로만 반영합니다
(예전 방식은 이동평균 6개를 따로 세고, 강한 상승 중에도 RSI 70 이상을 무조건 매도로 셌습니다).
신호 가감 — 캔들 · 추세추종 (assets/core/candles.js · Scoring.signals) — 위 세 그룹은 '지금 상태'를 재므로, 방금 일어난 일은
따로 더합니다. 종합 점수 = 지표 점수 + 캔들(최대 ±10) + 추세추종(최대 ±10). 신호가 없는 날은 지표 점수 그대로입니다.
| 그룹 | 신호 | 세기 |
|---|---|---|
| 캔들 | 연속 봉 — 음봉(양봉)이 3개 이상 이어지고 종가도 그 방향으로 움직임 | 3개 0.6 · 4개 이상 0.8. 20일선 위의 연속 음봉 · 20일선 아래의 연속 양봉(흐름이 바뀌는 자리)은 그대로, 반대 자리는 절반 |
| 꼬리 — 꼬리가 봉 길이의 절반 이상이고 반대쪽 꼬리의 2배 이상 (봉 길이 0.7 ATR 이상) | 위꼬리 −, 아래꼬리 +. 상승 뒤 위꼬리(유성형) · 하락 뒤 아래꼬리(망치형) 0.8, 그 밖 0.5. 하락 뒤 위꼬리(역망치형) · 상승 뒤 아래꼬리(교수형)는 제외 | |
| 몸통 — 장악형, 장대봉(몸통 1.5 ATR 이상 · 봉 길이의 70% 이상) | 장악형 0.8 · 장대봉 0.5 | |
| 추세추종 | 20·50일선 골든 · 데드크로스 | 당일 0.6 → 20봉에 걸쳐 0 |
| 50·200일선 크로스 | 당일 0.6 → 60봉에 걸쳐 0 | |
| 종가의 20일 채널 돌파 (직전 20봉 고가 위 · 저가 아래) | 당일 0.6 → 10봉에 걸쳐 0 |
캔들은 연속 봉(지금 상태) + 꼬리 · 몸통(최근 3봉을 1 · 0.6 · 0.3 비중으로)의 합, 추세추종은 세 항목의 합이며 각각 ±1로 제한한 뒤 10점을 곱합니다.
추세추종은 횡보장에서 속임수가 잦아 ADX에 따라 0.5(ADX 15 이하)~1배(35 이상)로 줄입니다. '상승 뒤 / 하락 뒤'는 직전 5봉 동안
종가가 1 ATR 이상 움직였는지로 판단합니다(종목마다 변동폭이 달라 % 대신 ATR 배수). 게이지 아래 막대와 지표 리포트의
캔들 · 추세추종 신호 줄에 실제로 더한 점수와 근거가 된 신호를 표시합니다. 방향은 통상적인 해석을 따른 것으로,
아래 검증에서 수익률을 가른다는 증거는 없었습니다 — 그래서 가감 폭을 작게 묶어 두었습니다.
시장(종합 지수) 반영 (Scoring.marketAt) — 위 지표는 모두 그 종목의 일봉에서 나오므로 시장 전체가 무너지는 날은 알 수 없습니다.
그래서 소속 지수가 당일 −2% 이하이거나 3거래일 누적 −3% 이하이면 '시장 급락'으로 보고 종합 점수를 +54(매수)로 제한합니다
(강력 매수를 내지 않음). 매수 이하 등급은 그대로이고, 매도로 내리지도 않습니다 — 아래 검증에서 하락 예측이 아니라 변동폭 경고였기 때문입니다.
| 종목 | 기준 지수 |
|---|---|
| 코스피 · 코스닥 종목 | 코스피 · 코스닥 |
| 미국 종목 | 나스닥 종합 (S&P 500 편입 종목은 S&P 500) |
| ETF | 적용하지 않음 (인버스 · 채권 · 해외 지수형은 상장 시장과 따로 움직임) |
지수는 assets/data/markets.json의 1년 일봉 + CNBC 실시간(30초)입니다. 화면의 '지금' 의견은 종목 일봉이 하루 이틀 늦어도
가장 최근 지수로 판단하고, 백테스트의 과거 봉은 그 날짜까지의 지수만 씁니다. 게이지 아래에 지수 등락(당일 · 3일)을 항상 표시하고,
등급을 낮췄을 때는 종목 자체 점수와 함께 보여 줍니다. 종합 매수 신호 · 스크리너에도 같은 기준이 적용됩니다(아래).
tools/verify_ta.js)node tools/verify_ta.js # 계산 검증 — 지표를 참조 구현과 전 구간 비교, 피봇 · 마감 시각 · 품질 · 확률 · 신뢰도 판정 · 시장 반영 · 포지션 판단 · 캔들 판정 · 신호 가감
node tools/verify_ta.js --report # + 과거 데이터로 실제 적중률 측정 (등급별 수익률 · 도달확률 보정 · 신뢰도 판정 분포 · 시장 급락 상태별 성적 · 손절/익절선 도달 · 캔들/추세추종 신호별 수익률)
node tools/verify_import.js # 잔고 가져오기 — 구분자 · 열 제목 찾기 · 간단 입력 · 엑셀/HTML/EUC-KR 파일 (가짜 잔고로 검증)
python3 tools/verify_krx.py # 공공데이터 수집기 — 정상 수집 · API 실패 시 받아 둔 날짜로 만들기 (네트워크 없이 가짜 응답으로 검증)
2026-10 측정(국내 시가총액 상위 150 + 번들 미국 종목, 약 1년): 지표 계산은 참조 구현과 일치합니다. 종합 점수 등급은 10거래일 뒤 수익률과 통계적으로 유의한 관계가 없었습니다 — 등급은 '현재 추세 상태'의 요약이지 수익 예측이 아닙니다. 도달확률은 표시값과 실제의 차이가 단기 기준 약 5%p 안팎입니다(중장기는 상승장 영향으로 실제가 더 높음).
시장 반영의 근거(같은 리포트 ④, 국내 시가총액 상위 200종목 · 지수 일봉이 있는 약 1년): 종목 자체 점수가 강력 매수인 날의 다음 거래일에 −5% 이하로 빠진 비율이 **시장 급락 상태 20.0% · 그 밖 9.4%**였습니다(+5% 이상도 18.3% · 12.5%로 함께 늘어남). 10거래일 뒤 평균 수익률은 급락 상태 쪽이 오히려 높았습니다(3.9% · 2.4%) — 방향이 아니라 변동폭이 커진다는 뜻이라, 강력 매수만 거두고 매도로 내리지는 않습니다. 미국 종목은 급락 상태 표본이 36건뿐이라 같은 효과를 확인하지 못했습니다 — 국내와 같은 기준을 그대로 적용한 것입니다. 측정 구간은 코스피가 약 두 배 오르며 하루 −2% 이하인 날이 6일에 한 번꼴이던 시기라, 다른 장세에서는 수치가 달라질 수 있습니다.
캔들 · 추세추종 신호(같은 리포트 ⑥, 국내 시가총액 상위 200 + 번들 종목 · 약 6만 6천 봉): 연속 음봉 · 위꼬리 · 아래꼬리 · 장악형 · 장대봉, 골든 · 데드크로스, 20일 채널 돌파 가운데 이후 1 · 5 · 10거래일 수익률을 통계적으로 유의하게 가른 신호는 없었습니다(같은 날 종목 평균 대비, 날짜별로 묶은 t — 87개 비교 가운데 |t| 2 이상은 4개로 우연히 나올 만한 수이고 방향도 엇갈림). 신호 가감이 0이 아닌 날은 86%, 그 때문에 등급이 바뀐 날은 9%였고, 가감 전후로 등급별 수익률(리포트 ①)은 사실상 같았습니다. 즉 이 신호들은 등급을 '더 잘 맞게' 만든 것이 아니라 차트에서 방금 일어난 일을 등급에 드러내는 역할입니다.
평단가 기준 손절 2 ATR · 익절 3 ATR(리포트 ⑤, 국내 종목을 아무 날 종가에 사서 그 가격을 평단가로 둔 경우): 20거래일 안에 손절선 먼저 39.2% · 익절선 먼저 39.8% · 둘 다 안 닿음 21.0%, 60거래일이면 98%가 어느 한 선에 닿았습니다. 먼저 닿은 선에서 판 평균 손익은 20거래일 +1.8% · 60거래일 +2.5%로, 선 없이 그냥 보유한 +5.0% · +15.6%보다 낮았습니다 — 오르는 장에서는 익절선이 수익을 일찍 끊기 때문입니다. 이 규칙은 수익을 늘리는 장치가 아니라 한 번의 손실 · 이익 폭을 미리 정해 두는 장치이고, 강력 매수인 날에 산 경우에도 손절선에 먼저 닿는 비율이 더 높았습니다(20거래일 47.9% 대 41.8%).
AI 목표주가는 단기(12주) · 중장기(13개월)로 나누어 보수적(Bear) · 기본(Base) · 공격적(Bull) 3개 시나리오와
현재가 대비 상승 여력(%)을 보여 줍니다. 산정 방식(assets/core/targets.js, 항상 일봉 기준):
Base·Bull은 항상 현재가 위이며, 현재가 아래 목표는 추세가 뚜렷하게 약할 때 Bear 시나리오에서만 나옵니다. 각 시나리오에는 근거 레벨과 변동성 기준 도달 확률을 함께 표시하고, 차트에 단기/중장기 목표가와 손절가 가이드선을 그립니다.
목표주가 산정 근거 카드는 ① 기술적 분석 이유(20일선 돌파·MA 박스·52주 위치·파동) ② 보조지표 상태(RSI · MACD · 스토캐스틱 · 볼린저 %B · 거래량) ③ 리스크 및 손절가(단기/중장기 손절가, 1·2차 지지선, 과열·매물대·변동성·임박한 매크로/실적 이벤트)를 문장으로 설명합니다. 국내 종목은 증권사 컨센서스 목표주가와도 비교합니다.
우측 패널 가치분석 탭입니다. 재무 데이터는 assets/data/fundamentals.json에서 읽고, 주가에 따라 바뀌는 값
(PER · PBR · 배당수익률 · EV/EBITDA · 적정가 괴리율)은 현재가(실시간 시세 포함)로 다시 계산합니다(assets/core/fundamentals.js).
종합 매수 신호 — 아래 점수를 등급 배지 · 0~100 눈금 · 항목별 막대로 표시. AI 분석 탭 게이지 아래에도 한 줄 요약(누르면 이 탭)
AI 가치분석 요약 — 예: "PER 12.9배로 WICS 반도체와반도체장비 평균(9.1배) 대비 41% 높은 고평가 상태입니다. 선행 PER은 6.0배로… 최근 3년 영업이익률이 2.5% → 10.9% → 13.1%로 3년 연속 상승 중(우수)입니다."
① 밸류에이션 — PER(업종 대비) · 선행 PER · PBR · ROE · EV/EBITDA(과거 5년 중앙값 대비) · 배당수익률 · PEG · FCF 수익률
② 실적 추이 — 연간(3개년 + 컨센서스 추정) / 분기(최근 4~5분기) 매출액 막대 + 영업이익 · 순이익 꺾은선, 전년(동기) 대비 증감 표
③ 재무 건전성 — 부채비율 30 · 이자보상배율 30 · 유보율 20 · 유동비율 20점으로 0~100점과 매우 안정 ~ 위험 등급, 5개년 추이.
금융업은 부채비율 · 이자보상배율을 제외
④ 적정주가 · 본질가치 — 방법별 범위를 한 눈금에 그린 차트와 가중평균 적정주가
| 방법 | 계산 | 가중치 |
|---|---|---|
| PER 밴드 | 과거 5년 연말 PER의 20% · 중앙 · 80% 분위 × 기준 EPS(선행 EPS, 이익 급변 구간은 최근 4분기 EPS와의 기하평균) | 35% |
| S-RIM | BPS × [1 + (기대 ROE − Ke) × ω / (1 + Ke − ω)], ω = 0.8 · 0.9 · 1.0. 기대 ROE = 3년 가중 ROE · 최근 4분기 ROE · 선행 ROE 평균 | 30% |
| PBR 밴드 | 과거 5년 연말 PBR 분위 × BPS | 20% |
| DCF | 최근 3년 FCF(영업현금흐름 − 설비투자) 가중평균, 5년간 매출 성장률(최대 20%) → 영구성장률로 수렴, Ke로 할인 | 15% |
요구수익률 Ke = 무위험 금리(국내 3.0% · 미국 4.2%) + β × 위험프리미엄(5.5% · 5.0%), 7~13%로 제한. 적자(PER), 들쭉날쭉한 현금흐름(DCF), 자본 대비 이익이 과도한 기업(S-RIM, ROE 35%↑ 또는 PBR 6배↑)은 해당 방법을 제외하고 가중치를 재배분합니다. 증권사 컨센서스 목표가는 참고로만 함께 표시합니다. 과거 배수 × 최근 4분기 EPS · BPS로 그린 PER · PBR 밴드 차트도 제공합니다.
가치 체크리스트 — 흑자 · ROE 10% · 이익률 개선 · 영업이익 증가 · 부채비율 · 이자보상배율 · FCF · 업종 PER · 배당
assets/core/signal.js — 기술 50% + 재무 50%.
| 구분 | 항목 (각 25점) |
|---|---|
| 기술 점수 | 이동평균선 방향(20일선 위 · 20일선 상승 · 20>50일선 · 50>200일선 · 200일선 위) · RSI(구간 + 상승 전환 가점) · MACD(시그널선 위 · 히스토그램 증가 · 0선 위 · 최근 골든크로스) · 피봇 저항 돌파(R2 25 · R1 21 · P 14 · S1 7). 여기에 캔들 · 추세추종 신호 가감 −10~+10(위 '신호 가감'과 같은 신호 — 그쪽 점수의 절반)을 더해 0~100으로 제한 |
| 재무 점수 | 업종 대비 PER · 업종 대비 PBR · ROE(10% 이상 18점, 15% 이상 22점, 20% 이상 25점) · 최근 분기 영업이익 전년 동기 대비(흑자전환 포함). 재무 건전성 45점 미만이면 5점, 30점 미만이면 10점 감점 |
80점 이상 강력 매수 · 6579 매수 · 4564 중립 · 30~44 매도 · 30 미만 강력 매도 (기술 · 재무 점수 단독에도 같은 기준).
소속 지수가 급락 중(당일 −2% 이하 · 3거래일 −3% 이하, 위 '시장 반영')이면 기술 점수와 종합 점수를 각각 79점(매수)으로 제한합니다.
강력 매수만 거두는 것이라 79점 이하인 점수는 달라지지 않습니다(종합은 기술 항목 합계로 계산한 뒤 제한). 재무 점수는 매수 시점이 아니라
기업 가치를 보는 값이라 그대로 둡니다. 가치분석 탭에는 깎인 점수(시장 급락 상한 −N, 기술 96→79)를, 스크리너에는 강력 매수에서 내려온 종목 수를 표시합니다.
사이드바 관심종목 · 시가총액 상위 탭 위의 추천 종목만 보기 토글을 켜면 조건에 맞는 종목만 점수 순 카드로 보여 줍니다.
강력 매수만 / 매수 이상 전체, 분석 기준 기술적 / 재무 가치 / 종합#PER저평가 #RSI과매도 #골든크로스발생 등) ·
상승 여력(재무 · 종합 기준은 적정주가, 기술 기준은 중장기 기술적 목표가)시가총액 상위 탭에서는 시장 필터(코스피 · 코스닥 · ETF · 미국) 안의 분석 가능한 전 종목을 훑습니다미국 종목은 nasdaq.com이 최근 4분기만 제공해 최근 분기 전년 동기 비교가 불가능하므로, 영업이익 증감을 최근 회계연도 기준으로 대신합니다(화면에 기준 표기).
index.html 화면 마크업
assets/css/app.css 라이트 테마 토큰 · 레이아웃
assets/core/market-data.js 종목 마스터 · 시세 · 봉 집계 · 틱 반영
assets/core/indicators.js SMA/EMA/볼린저/RSI/MACD/Stoch/CCI/Williams/ATR/ADX/OBV/MFI
assets/core/analysis.js 종합 분석 조립 · 크로스 · 피봇 · 전망 문장 · 분석 신뢰도(데이터 품질)
assets/core/candles.js 캔들 분석 — 연속 음봉 · 양봉, 긴 꼬리, 장악형, 장대봉 판정과 캔들 점수
assets/core/scoring.js 국면(ADX) 인식 종합 점수 · 추세/모멘텀/거래량 그룹 · 캔들/추세추종 신호 가감 · 시장(소속 지수) 급락 반영
assets/core/position.js 평단가 기준 포지션 판단 (ATR 배수 손절선 · 익절선 · 추가 매수 조건)
assets/core/holdings.js 증권사 잔고 읽기 (붙여 넣은 글 · CSV · 엑셀 → 종목별 평단가)
assets/importer.js 잔고 가져오기 창 (미리보기 · 종목 찾기 · 이상값 확인)
assets/core/patterns.js 크로스 · 다이버전스 · 캔들(candles.js) · 박스권 돌파 감지
assets/core/backtest.js 종목별 신호 신뢰도 · 목표가 적중률 백테스트
assets/core/targets.js 파동 기반 목표주가(Bear/Base/Bull) · 손절가 · 산정 근거
assets/core/fundamentals.js 재무 · 가치분석 (밸류에이션 · 성장성 · 건전성 · PER/PBR 밴드 · S-RIM · DCF · 재무 점수)
assets/core/signal.js 종합 매수 신호 (기술 50 + 재무 50) · 스크리너 종목 평가 캐시
assets/core/search.js 초성 포함 검색 인덱스
assets/core/events.js 매크로 일정 · 실적 시즌 캘린더 (확정·규칙·예상, 한국시간)
assets/core/news.js 증시 뉴스 피드 (RSS 중계 · 스냅샷 · 카테고리 분류)
assets/core/fx.js USD/KRW 환율
assets/core/markets.js 홈 시장 데이터 (스냅샷 + CNBC 실시간 · 거래 시간 · 예상치/직전치) · 종목의 소속 지수
assets/home.js 홈 대시보드 (전광판 · 지표 위젯 · 공포/탐욕 게이지 · D-Day · 추세 팝업)
assets/value.js 가치분석 탭 (종합 신호 · 요약 · 밸류에이션 · 실적 차트 · 건전성 · 적정주가 · 밴드 차트)
assets/screener.js 사이드바 '추천 종목만 보기' 스크리너
assets/learn.js 주식 공부 화면 (목차 · 검색 · 본문 · 확인 문제 · 퀴즈 · 학습 진행 · #learn/<주제> 주소)
assets/learn/chapters.js 주식 공부 단원 목록 · 주제 저장소
assets/learn/data-*.js 주식 공부 학습 내용 (단원별 주제 · 계산식 · 예시 · 확인 문제)
assets/learn/figs.js 주식 공부 그림 (예시 주가를 실제 지표로 계산해 그리는 인라인 SVG)
tools/build_fundamentals.py 재무 · 가치분석 수집 (네이버 금융 · WiseReport · nasdaq.com)
assets/feed/{kis,toss,mock,index}.js 실시간 피드 어댑터와 파사드
tools/build_markets.py 홈 대시보드 데이터 수집 (지수 · 공포/탐욕 · 심리지수 · 기준금리 · 예상치 · EPS)
tools/toss_proxy.py 토스증권 Open API 프록시 (토큰 보관 · REST/웹소켓 중계 · 접속 키)
tools/server/setup.sh 클라우드 서버에 프록시 + HTTPS(Caddy) 설치
assets/data/*.json 수집된 종목·시세·일봉·일정 데이터
assets/data/krx/ 공공데이터 일봉 (배포 때 생성 · 커밋하지 않음)
tools/build_krx.py 공공데이터포털 금융위원회_주식시세정보 수집 · 수정주가 계산
tools/build_*.py 데이터 수집 스크립트
tools/verify_ta.js 기술적 분석 검증 (지표 참조 구현 비교 · 과거 데이터 적중률 리포트)
tools/verify_import.js 잔고 가져오기 검증 (구분자 · 열 찾기 · 엑셀/HTML/EUC-KR)
tools/verify_krx.py 공공데이터 수집기 검증 (API 실패 · 캐시만으로 만들기 · 키 없음)
tools/verify_learn.js 주식 공부 학습 내용 검증 (숫자 예시 재계산 · 앱 계산과 일치 · 그림 · 제도 수치)
.github/workflows/pages.yml 공공데이터 일봉 생성 + GitHub Pages 배포
.github/workflows/build-data.yml 시세 · 일정 · 뉴스 · 재무 스냅샷 수집 후 커밋
legacy/terminal-dark.html 초기 다크 터미널 버전
우상단 톱니 → 실시간 시세 연결에서 데이터 소스(공공데이터 종가 / 토스 / KIS / 모의 데모), 프록시 주소, WebSocket 주소와
뉴스 피드 수신 방식을 설정합니다(브라우저 localStorage 저장). 로컬 개발에서는 config.local.js(gitignore)로도 지정할 수 있습니다.
토스증권 키는 브라우저가 아니라 .env에 둡니다.
모든 지표·전망·목표가는 과거 가격의 수학적 계산 결과이며 투자 자문이 아닙니다. 주식 공부의 내용은 학습용 일반 정보이며, 세율 · 거래 제도는 기준 시점 이후 바뀔 수 있습니다. 투자 판단과 책임은 이용자 본인에게 있습니다.
| 국내 컨센서스 목표주가 | 네이버 금융 | 실제 |
| 국내 재무 · 가치분석 | 네이버 금융(연간 3개년+추정 · 최근 5분기) · WiseReport(TTM EPS/BPS · WICS 업종 PER · 5개년 PER/PBR/EV·EBITDA · 부채비율 · 유보율 · 이자보상배율 · 현금흐름 · 컨센서스) | 실제, 시총 상위 105종목 + 일봉 수집 종목, 주 1회 |
| 미국 재무 · 가치분석 | nasdaq.com (연간 4개년 · 최근 4분기 손익/재무상태/현금흐름 · EPS 컨센서스 · 1년 목표가) | 실제, 대표 종목 + 대형주. 업종 PER/PBR은 수집 종목 중앙값 |
| 증시 뉴스 | 연합뉴스 · 한국경제 · 매일경제 RSS | 실시간(중계) 또는 스냅샷 |
| 홈 · 지수 · 선물 · 환율 · 원자재 · 국채금리 | CNBC 시세 API (브라우저에서 30초마다) / 수집 스냅샷 | 실제 — 상품에 따라 10~15분 지연, 실패 시 스냅샷 |
| 홈 · 코스피200 선물 · 등락 종목 수 · 투자자별 순매수 | 네이버 금융 (수집 시) | 실제, 수집 시점 값 |
| 홈 · 공포 & 탐욕 지수 | CNN Business (수집 시) | 실제, 세부 지표 7개 · 1년 이력 |
| 홈 · 국장 심리지수 | 코스피·코스닥 일봉 + 원/달러로 자체 계산 | 계산값 (아래 설명) |
| 홈 · 한국/미국 기준금리 | 한국은행 · federalreserve.gov 변경 이력 | 실제 |
| 홈 · 지표 예상치 · 직전치 | ForexFactory 이번 주 캘린더 · BLS 공개 API · 한국은행 ECOS | 예상치는 발표 주간에만 (그 전에는 발표 주간 공개) |
| 홈 · 실적 EPS 컨센서스 | nasdaq.com 실적 캘린더 | 발표 5주 전부터 |
내 포지션 — 평단가 기준 판단 (assets/core/position.js) — AI 분석 탭 맨 위 카드에 보유 종목의 평단가(수량은 선택)를 넣으면
그 가격을 기준으로 손절선 · 익절선을 긋고 매도 · 보유 · 추가 매수를 판단합니다. 종합 의견 등급은 바꾸지 않고 나란히 보여 줍니다.
| 판단 | 조건 |
|---|---|
| 매도 · 손절 | 현재가 ≤ 평단가 − 2 ATR |
| 매도 · 익절 | 현재가 ≥ 평단가 + 3 ATR |
| 추가 매수 가능 | 두 선 사이이고 ① 종합 의견이 매수 이상 ② 시장 급락이 아님 ③ 익절선까지 남은 폭 ≥ 손절선까지 남은 폭 |
| 보유 | 두 선 사이이고 위 셋 중 하나라도 미충족 (충족 여부를 항목별로 표시) |
ATR(14)은 하루 평균 변동폭이라 종목마다 폭이 달라집니다(하루 6% 움직이는 종목은 손절 약 −12%, 2% 종목은 약 −4%). 배수는 카드에서 0.5 단위로
조정하며 모든 종목에 공통입니다. ATR은 매수한 날이 아니라 지금 값이라 변동성이 달라지면 두 선도 움직입니다.
카드에는 평단 대비 수익률(%, ATR 단위) · 평가손익 · 각 선까지 남은 거리 · 차트 기준 손절가에서 팔 때의 평단 대비 손익을 함께 표시하고,
차트(목표·손절 칩)에 평단 · 평단 손절 · 평단 익절 선을 보라색으로 그립니다. 평단가는 브라우저(localStorage qt.pos.v1)에만 저장됩니다.
분석 신뢰도가 낮은 종목(시뮬레이션 경로 · 거래정지)은 변동폭을 믿을 수 없어 판단하지 않습니다.
잔고 가져오기 (assets/core/holdings.js · assets/importer.js) — 내 포지션 카드의 잔고 가져오기 버튼. 계좌 조회 API가 없는 증권사
(미래에셋증권 등)의 평단가를 여러 종목 한 번에 넣습니다. 붙여 넣은 글과 파일은 브라우저 안에서만 읽고 어디에도 보내지 않습니다.
| 방법 | 내용 |
|---|---|
| 붙여 넣기 | 증권사 잔고 화면의 표를 열 제목 줄까지 복사해 그대로. 열 순서 · 이름이 달라도 종목명(또는 종목코드)과 평균단가(매입단가 · 평단가 등) 열을 제목으로 찾습니다. 평균단가 열이 없으면 매입금액 ÷ 보유수량 |
| 직접 입력 | 열 제목 없이 한 줄에 종목 평단가 수량 (수량 생략 가능). 예: HPSP 65,000 10 |
| 파일 | CSV · TXT(탭/쉼표/세미콜론, UTF-8 · UTF-16 · EUC-KR) · 엑셀 .xlsx(첫 시트) · 표로 저장된 .xls. 창에 끌어다 놓아도 됩니다. 구형 바이너리 .xls는 .xlsx/CSV로 다시 저장해야 합니다 |
읽은 결과를 먼저 표로 보여 주고 체크한 종목만 저장합니다. 같은 종목이 여러 줄이면(현금 · 신용, 여러 계좌) 수량 가중평균으로 합치고,
합계 줄은 건너뜁니다. 평단가가 현재가와 20배 넘게 차이 나면(통화 · 액면분할 불일치 가능) 기본으로 체크를 풀어 둡니다.
종목 마스터에서 찾지 못한 줄(예: 한글로 적힌 해외 종목명)은 따로 알려 줍니다 — 종목코드 · 티커로 적으면 찾습니다.
옵션: 관심종목에도 추가(기본 켬) · 여기에 없는 기존 평단가는 지우기(기본 끔 — 켜면 잔고와 똑같이 맞춥니다).
증권사별 실제 내보내기 파일로 맞춘 것이 아니라 열 제목으로 찾는 범용 방식이라, 읽지 못하는 형식이 있으면 표를 복사해 붙여 넣는 쪽이 가장 확실합니다.
추가 지표 — ADX·DMI(추세 세기), OBV(누적 거래량 흐름), MFI(거래량 반영 RSI)
최근 기술적 신호 (assets/core/patterns.js) — 골든/데드크로스, MACD 교차, RSI 다이버전스, 캔들(연속 음봉 · 양봉, 긴 위꼬리 · 아래꼬리,
장악형, 장대봉, 도지 — 점수에 들어가는 것과 같은 판정), 20일 박스권 돌파/이탈(거래량 동반 여부), 거래량 급증.
주요 신호는 차트에 화살표로 표시(신호 토글)
시간대별 추세 비교 — 일·주·월봉을 따로 분석해 방향이 일치하는지 보여 줍니다
백테스트 (assets/core/backtest.js) — 같은 계산을 과거 각 날짜에 적용해(미래 데이터 미사용)
비슷한 신호 뒤 10거래일 수익률, 과거 목표가의 실제 도달률·손절선 선도달률을 종목별로 표시합니다.
매일 뽑은 표본은 10거래일 구간이 서로 겹치므로 겹치지 않는 표본 수로 오차를 계산하고, 아무 날이나 샀을 때(기저)와
통계적으로 유의하게(95%) 다를 때만 '잘 맞았다 / 안 맞았다'고 표시합니다. 그 밖에는 '우연 범위'로 표시합니다.
분석 신뢰도 (Analysis.quality) — 예측력이 아니라 지표를 계산한 데이터의 품질입니다.
시뮬레이션 경로 · 거래정지/무거래 · 일봉 60개 미만이면 낮음으로 보고 투자 의견 · 목표가를 내지 않으며(판단 보류)
스크리너의 기술 점수에서도 뺍니다. 200일선이 없거나 하루 ±30%를 넘는 급변이 있으면 보통으로 주의 문구를 붙입니다.
피봇(지지선 · 저항선) — 끝난 봉의 고가·저가·종가로 다음 봉의 선을 만듭니다. 종가 데이터(공공데이터 · 번들)는 마지막 거래일이 기준이고, 실시간 체결로 오늘 봉이 움직이는 중에만 전날이 기준입니다. 카드 제목 옆에 기준일을 표시합니다. 목표가 후보의 주간 · 월간 피봇은 직전에 끝난 달력 주 · 월 기준입니다.
진행 중인 봉 — 장중의 오늘 봉(주봉 · 월봉은 이번 주 · 달)은 거래량이 다 차지 않았으므로 거래량 점수 · 거래량 비교, 종가가 정해져야 성립하는 캔들 패턴 · 박스권 돌파는 끝난 봉까지만 계산합니다.