Skip to content

Artsyork/ZeroKey-Quant

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

15 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“ˆ ZeroKey Quant

개인용 ν€€νŠΈ 뢄석 λŒ€μ‹œλ³΄λ“œ. λ―Έκ΅­Β·ν•œκ΅­ μ£Όμ‹μ˜ 기술적 μ§€ν‘œλ₯Ό μžλ™μœΌλ‘œ κ³„μ‚°ν•˜κ³ , 맀수/맀도/관망 μ‹œκ·Έλ„κ³Ό λͺ©ν‘œκ°€λ₯Ό μ œμ‹œν•©λ‹ˆλ‹€. 별도 κ΅¬λ…λ£Œ 없이 무료 데이터 μ†ŒμŠ€λ§ŒμœΌλ‘œ λ™μž‘ν•©λ‹ˆλ‹€.

Python Flask License


ZeroKey Quant Demo

✨ μ£Όμš” κΈ°λŠ₯

μ’…λͺ© 뢄석

κΈ°λŠ₯ μ„€λͺ…
기술 μ§€ν‘œ RSI Β· ADX Β· EMA(12/26/50) Β· SMA(200) Β· Bollinger Bands Β· ATR Β· OBV Β· 역사적 변동성(HV)
λ§€λ§€ μ‹œκ·Έλ„ EMA 골든/λ°λ“œν¬λ‘œμŠ€ + ADX >25 + OBV λ°©ν–₯ + RSI 볡합 쑰건 + 관망 일수 μžλ™ μ œμ‹œ
λͺ©ν‘œκ°€ / μ†μ ˆκ°€ ATR 기반 μžλ™ 계산 (R:R λΉ„μœ¨ 포함)
5일 변동 μ˜ˆμƒ λ²”μœ„ 역사적 변동성 Β±1Οƒ
μ„±κ³Ό μ§€ν‘œ μ—°ν™˜μ‚° 수읡λ₯  Β· 변동성 Β· 샀프 Β· μ†Œλ₯΄ν‹°λ…Έ Β· 칼마 λΉ„μœ¨ Β· MDD
μ• λ„λ¦¬μŠ€νŠΈ μ»¨μ„Όμ„œμŠ€ λ―Έκ΅­ 주식 ν•œμ • (Finviz 집계)
보유 ν˜„ν™© 평균 λ§€μž…κ°€ Β· 평가손읡 Β· 수읡λ₯  계산 (localStorage μ €μž₯)

발꡴ μŠ€μΊλ„ˆ

μŠ€μΊλ„ˆ 쑰건
πŸ’Ž μ†Œν˜•μ£Ό 보석 μ‹œμ΄ $300M–$2B Β· λΆ„κΈ° 맀좜 μ„±μž₯ >25% Β· μ• λ„λ¦¬μŠ€νŠΈ 맀수 μΆ”μ²œ
πŸ” λ‚΄λΆ€μž 맀수 졜근 μž„μ›/λŒ€μ£Όμ£Ό 맀수 거래
πŸš€ ν˜μ‹ μ£Ό AIΒ·λ°”μ΄μ˜€Β·μ—λ„ˆμ§€μ „ν™˜Β·λΈ”λ‘μ²΄μΈΒ·λ‘œλ΄‡ ν…Œλ§ˆ νλ ˆμ΄μ…˜

AI 뢄석

  • Gemini 1.5 Flash 기반 기술적 뢄석 μ½”λ©˜νŠΈ (맀수 κ·Όκ±° / 리슀크 / μ’…ν•© νŒλ‹¨)
  • 일일 μ‚¬μš©λŸ‰ μ‹€μ‹œκ°„ ν‘œμ‹œ (무료 ν‹°μ–΄ 1,500회/일)

기타

  • 가격 μ•Œλ¦Ό (λͺ©ν‘œκ°€Β·μ†μ ˆκ°€ 도달 μ‹œ λΈŒλΌμš°μ € μ•Œλ¦Ό, 2λΆ„λ§ˆλ‹€ 폴링)
  • ν•œκ΅­ 주식 μ™„μ „ 지원 (넀이버 금육, KRW ν‘œμ‹œ, μ’…λͺ©λͺ… μžλ™ 쑰회)
  • 닀크 ν…Œλ§ˆ UI (Navy + Glass λ””μžμΈ μ‹œμŠ€ν…œ)
  • λžœλ”© νŽ˜μ΄μ§€ μ˜¨λ³΄λ”© (졜초 λ°©λ¬Έ μ‹œ Gemini API ν‚€ μ„€μ • μ•ˆλ‚΄)
  • μ‚¬μ΄λ“œλ°” μ„€μ •(βš™) λ²„νŠΌμœΌλ‘œ API ν‚€ μƒνƒœ 확인 및 μž¬μ„€μ •
  • μŠ€μΊλ„ˆ κ²°κ³Όμ—μ„œ μ’…λͺ© μ¦‰μ‹œ μΆ”κ°€
  • 전체 μ’…λͺ© 일괄 μƒˆλ‘œκ³ μΉ¨

πŸš€ μ„€μΉ˜ 및 μ‹€ν–‰

Python 3.10 이상과 인터넷 연결이 ν•„μš”ν•©λ‹ˆλ‹€.


🍎 Mac

1. Python μ„€μΉ˜ 확인

터미널을 μ—΄κ³  μ•„λž˜ λͺ…λ Ήμ–΄λ₯Ό μž…λ ₯ν•©λ‹ˆλ‹€.

python3 --version

버전이 좜λ ₯되면 이미 μ„€μΉ˜λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. μ„€μΉ˜κ°€ μ•ˆ λ˜μ–΄ μžˆλ‹€λ©΄ python.org μ—μ„œ λ‹€μš΄λ‘œλ“œν•˜μ„Έμš”.

2. μ €μž₯μ†Œ 클둠

git clone https://github.com/Artsyork/ZeroKey-Quant.git
cd ZeroKey-Quant

3. μ˜μ‘΄μ„± μ„€μΉ˜

pip3 install flask yfinance pandas numpy plotly requests pytz

4. μ‹€ν–‰

python3 main.py

λΈŒλΌμš°μ €κ°€ μžλ™μœΌλ‘œ http://localhost:5001 을 μ—½λ‹ˆλ‹€. μ’…λ£Œν•˜λ €λ©΄ ν„°λ―Έλ„μ—μ„œ Ctrl+C λ₯Ό λˆ„λ₯΄μ„Έμš”.


πŸͺŸ Windows

1. Python μ„€μΉ˜

python.org μ—μ„œ Python 3.10 이상을 λ‹€μš΄λ‘œλ“œν•©λ‹ˆλ‹€.

⚠️ μ„€μΉ˜ 쀑 "Add Python to PATH" μ˜΅μ…˜μ„ λ°˜λ“œμ‹œ μ²΄ν¬ν•˜μ„Έμš”.

2. μ €μž₯μ†Œ λ‹€μš΄λ‘œλ“œ

git이 μ„€μΉ˜λ˜μ–΄ μžˆλ‹€λ©΄:

git clone https://github.com/Artsyork/ZeroKey-Quant.git
cd ZeroKey-Quant

git이 μ—†λ‹€λ©΄ GitHub νŽ˜μ΄μ§€μ—μ„œ Code β†’ Download ZIP 으둜 λ‹€μš΄λ‘œλ“œ ν›„ 압좕을 ν•΄μ œν•©λ‹ˆλ‹€.

3. μ˜μ‘΄μ„± μ„€μΉ˜

λ‹€μš΄λ‘œλ“œν•œ ν΄λ”μ—μ„œ μ£Όμ†Œμ°½μ— cmd λ₯Ό μž…λ ₯ν•΄ λͺ…λ Ή ν”„λ‘¬ν”„νŠΈλ₯Ό μ—΄κ³ :

pip install flask yfinance pandas numpy plotly requests pytz

4. μ‹€ν–‰

python main.py

λΈŒλΌμš°μ €κ°€ μžλ™μœΌλ‘œ http://localhost:5001 을 μ—½λ‹ˆλ‹€. μ’…λ£Œν•˜λ €λ©΄ λͺ…λ Ή ν”„λ‘¬ν”„νŠΈ 창을 λ‹«κ±°λ‚˜ Ctrl+C λ₯Ό λˆ„λ₯΄μ„Έμš”.


πŸ€– AI 뢄석 κΈ°λŠ₯ μ„€μ • (선택)

Google AI Studio μ—μ„œ 무료 API ν‚€λ₯Ό λ°œκΈ‰ν•œ ν›„ λžœλ”© νŽ˜μ΄μ§€μ—μ„œ μž…λ ₯ν•˜κ±°λ‚˜, ν™˜κ²½λ³€μˆ˜λ‘œ μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Mac

export GEMINI_API_KEY="your-api-key-here"
python3 main.py

Windows

set GEMINI_API_KEY=your-api-key-here
python main.py

πŸ“– μ‚¬μš© μ„€λͺ…μ„œ

μ’…λͺ© 검색

μ‚¬μ΄λ“œλ°” 검색창에 티컀λ₯Ό μž…λ ₯ν•˜κ³  μΆ”κ°€ λ²„νŠΌμ„ λˆ„λ¦…λ‹ˆλ‹€.

λ―Έκ΅­ 주식:  AAPL   TSLA   NVDA   MSFT   AMZN
ν•œκ΅­ 주식:  005930 (μ‚Όμ„±μ „μž)   035420 (NAVER)   000660 (SKν•˜μ΄λ‹‰μŠ€)

ν•œκ΅­ 주식은 6자리 숫자 μ½”λ“œλ₯Ό μž…λ ₯ν•©λ‹ˆλ‹€. .KS / .KQ 접미사도 μ§€μ›ν•©λ‹ˆλ‹€.


μ‹œκ·Έλ„ 읽기

뢄석 ν™”λ©΄ 상단에 BUY / SELL / WAIT λ°°μ§€κ°€ ν‘œμ‹œλ©λ‹ˆλ‹€.

λ°°μ§€ 쑰건 의미
β–² BUY EMA12 > EMA26 AND ADX > 25 AND OBV↑ AND RSI < 70 4개 쑰건 λ™μ‹œ μΆ©μ‘±, 맀수 κ²€ν† 
β–Ό SELL EMA12 < EMA26 AND ADX > 25 AND OBV↓ AND RSI > 30 4개 쑰건 λ™μ‹œ μΆ©μ‘±, 맀도 κ²€ν† 
⏸ WAIT μœ„ 쑰건 λ―ΈμΆ©μ‘± ADXΒ·RSI μƒνƒœμ— λ”°λ₯Έ 관망 κΈ°κ°„ μ œμ‹œ

μ˜ˆμ‹œ β€” NVDA BUY μ‹œκ·Έλ„

β–² 맀수 μ‹œκ·Έλ„
μ§„μž…κ°€:  $118.50  (ν˜„μž¬κ°€ βˆ’ 0.5Γ—ATR)
λͺ©ν‘œκ°€:  $127.20  (+7.3%)
μ†μ ˆκ°€:  $113.80  (-4.0%)
R:R λΉ„μœ¨: 1.8

맀수 / 맀도 μ‹œλ‚˜λ¦¬μ˜€ μΉ΄λ“œ

ATR(Average True Range) 기반으둜 μ§„μž…κ°€Β·λͺ©ν‘œκ°€Β·μ†μ ˆκ°€λ₯Ό μžλ™ κ³„μ‚°ν•©λ‹ˆλ‹€.

맀수 μ‹œλ‚˜λ¦¬μ˜€
  μ§„μž…κ°€ (close βˆ’ 0.5Γ—ATR) : $118.50
  λͺ©ν‘œκ°€ (close + 2.0Γ—ATR) : $127.20  +7.3%
  μ†μ ˆκ°€ (close βˆ’ 1.0Γ—ATR) : $113.80  -4.0%
  R:R                       : 1.8

맀도(숏) μ‹œλ‚˜λ¦¬μ˜€
  μ§„μž…κ°€ (close + 0.5Γ—ATR) : $121.50
  λͺ©ν‘œκ°€ (close βˆ’ 2.0Γ—ATR) : $112.80  -6.1%
  μ†μ ˆκ°€ (close + 1.0Γ—ATR) : $126.20  +4.0%
  R:R                       : 1.5

가격 μ•Œλ¦Ό μ„€μ •

뢄석 ν™”λ©΄ ν•˜λ‹¨ μ•Œλ¦Ό μ„€μ • μ—μ„œ λͺ©ν‘œκ°€Β·μ†μ ˆκ°€λ₯Ό μž…λ ₯ν•˜λ©΄, ν•΄λ‹Ή 가격 도달 μ‹œ λΈŒλΌμš°μ € μ•Œλ¦Όμ„ 받을 수 μžˆμŠ΅λ‹ˆλ‹€.

λͺ©ν‘œκ°€ μ•Œλ¦Ό:  $130.00  β†’ 가격 돌파 μ‹œ "NVDA λͺ©ν‘œκ°€ 도달!" μ•Œλ¦Ό
μ†μ ˆκ°€ μ•Œλ¦Ό:  $110.00  β†’ 가격 ν•˜λ½ μ‹œ "NVDA μ†μ ˆκ°€ 도달!" μ•Œλ¦Ό

μ•Œλ¦Όμ€ 2λΆ„λ§ˆλ‹€ 가격을 ν΄λ§ν•©λ‹ˆλ‹€. λΈŒλΌμš°μ € μ•Œλ¦Ό κΆŒν•œμ„ ν—ˆμš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.


AI 뢄석 μš”μ²­

GEMINI_API_KEY μ„€μ • ν›„, μ’…λͺ© 뢄석 ν™”λ©΄μ˜ πŸ€– AI μ‹œκ·Έλ„ 뢄석 μΉ΄λ“œμ—μ„œ 뢄석 μš”μ²­ λ²„νŠΌμ„ ν΄λ¦­ν•©λ‹ˆλ‹€.

μ˜ˆμ‹œ 좜λ ₯

μ’…ν•© νŒλ‹¨
  EMA κ³¨λ“ ν¬λ‘œμŠ€μ™€ κ°•ν•œ ADX(32)κ°€ μƒμŠΉ μΆ”μ„Έλ₯Ό μ§€μ§€ν•˜λ‚˜,
  RSI 68둜 단기 κ³Όμ—΄ κ°€λŠ₯성이 μžˆμ–΄ 눌림λͺ© μ§„μž…μ„ ꢌμž₯ν•©λ‹ˆλ‹€.

πŸ“ˆ 맀수 κ·Όκ±°              πŸ“‰ 리슀크 μš”μΈ
  Β· EMA12 > EMA26         Β· RSI 68, 과맀수 κ·Όμ ‘
  Β· ADX 32 (κ°•ν•œ μΆ”μ„Έ)    Β· κ±°λž˜λŸ‰ κ°μ†Œ μΆ”μ„Έ
  Β· OBV 지속 μƒμŠΉ         Β· μ„Ήν„° μ „λ°˜ μ‘°μ • κ°€λŠ₯

신뒰도: 쀑간   투자 κΈ°κ°„: 쀑기(1-3κ°œμ›”)

πŸ— μ•„ν‚€ν…μ²˜

zerokey-quant/
β”œβ”€β”€ main.py            # Flask μ„œλ²„ (λ°±μ—”λ“œ 전체)
β”œβ”€β”€ dashboard.html     # 단일 νŽ˜μ΄μ§€ ν”„λ‘ νŠΈμ—”λ“œ
β”œβ”€β”€ ai_usage.json      # AI 일일 μ‚¬μš©λŸ‰ 좔적 (λŸ°νƒ€μž„ 생성, git μ œμ™Έ)
β”œβ”€β”€ ticker_history.json          # 개인 쑰회 기둝 (git μ œμ™Έ)
β”œβ”€β”€ ticker_history.example.json  # ν˜•μ‹ μ˜ˆμ‹œ
└── .gitignore

λ°±μ—”λ“œ ꡬ쑰 (main.py)

main.py
β”œβ”€β”€ 데이터 μˆ˜μ§‘
β”‚   β”œβ”€β”€ fetch_naver()          # 넀이버 금육 β†’ ν•œκ΅­ 주식 OHLCV
β”‚   β”œβ”€β”€ _fetch_yfinance()      # Yahoo Finance β†’ λ―Έκ΅­ 주식 OHLCV
β”‚   └── fetch_analyst()        # Finviz β†’ μ• λ„λ¦¬μŠ€νŠΈ μ»¨μ„Όμ„œμŠ€
β”‚
β”œβ”€β”€ μ§€ν‘œ 계산
β”‚   β”œβ”€β”€ _rsi()  _atr()  _ema() # κ°œλ³„ μ§€ν‘œ ν•¨μˆ˜
β”‚   β”œβ”€β”€ _adx()  _bb()          # ADX, Bollinger Bands
β”‚   β”œβ”€β”€ _obv()  _hv()          # OBV, 역사적 변동성
β”‚   └── build()                # μœ„ μ§€ν‘œλ₯Ό DataFrame에 ν•©μ‚°
β”‚
β”œβ”€β”€ μ‹œκ·Έλ„ / μΆ”μ²œ
β”‚   └── recommend()            # BUY/SELL/WAIT νŒμ • + λͺ©ν‘œκ°€ + μ„±κ³Όμ§€ν‘œ(μƒ€ν”„Β·μ†Œλ₯΄ν‹°λ…ΈΒ·μΉΌλ§ˆΒ·MDD)
β”‚
β”œβ”€β”€ 차트
β”‚   └── make_chart()           # Plotly 4-subplot 차트 생성
β”‚
β”œβ”€β”€ AI 뢄석
β”‚   β”œβ”€β”€ ai_analyze()           # Gemini API 호좜
β”‚   └── _get_usage()           # 일일 μ‚¬μš©λŸ‰ 관리
β”‚
└── Flask 라우트
    β”œβ”€β”€ GET /                  # dashboard.html μ„œλΉ™
    β”œβ”€β”€ GET /api/analyze       # μ’…λͺ© 전체 뢄석
    β”œβ”€β”€ GET /api/price         # λΉ λ₯Έ 가격 쑰회 (μ•Œλ¦Ό 폴링)
    β”œβ”€β”€ GET /api/ai-analysis   # AI μ‹œκ·Έλ„ 뢄석
    β”œβ”€β”€ GET /api/ai-usage      # AI μ‚¬μš©λŸ‰ 쑰회
    β”œβ”€β”€ GET /api/scan/smallcap # μ†Œν˜•μ£Ό μŠ€μΊλ„ˆ
    β”œβ”€β”€ GET /api/scan/insider  # λ‚΄λΆ€μž 맀수 μŠ€μΊλ„ˆ
    └── GET /api/scan/disruptive # ν˜μ‹ μ£Ό μŠ€μΊλ„ˆ

ν”„λ‘ νŠΈμ—”λ“œ ꡬ쑰 (dashboard.html)

단일 HTML 파일둜 κ΅¬μ„±λ©λ‹ˆλ‹€. μ™ΈλΆ€ ν”„λ ˆμž„μ›Œν¬ 없이 Vanilla JS둜 μž‘μ„±λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

dashboard.html
β”œβ”€β”€ CSS           인라인 λ””μžμΈ μ‹œμŠ€ν…œ (CSS λ³€μˆ˜, 닀크 ν…Œλ§ˆ)
β”œβ”€β”€ HTML          λžœλ”© νŽ˜μ΄μ§€ + μ‚¬μ΄λ“œλ°” + 뢄석 νŒ¨λ„ + 발꡴ νƒ­
└── JavaScript
    β”œβ”€β”€ fetchTicker()        /api/analyze 호좜 β†’ μΊμ‹œ μ €μž₯ (μž¬μ‹œλ„ 2회)
    β”œβ”€β”€ showAnalysis()       μΊμ‹œ 데이터 β†’ ν™”λ©΄ λ Œλ”λ§
    β”œβ”€β”€ renderSidebar()      μ’…λͺ© λͺ©λ‘ + μ‹œκ·Έλ„ dot + 손읡 ν‘œμ‹œ
    β”œβ”€β”€ Plotly 차트          μ„œλ²„ λ°˜ν™˜ JSON β†’ 차트 λ Œλ”λ§
    β”œβ”€β”€ μ•Œλ¦Ό μ‹œμŠ€ν…œ          2λΆ„ 폴링 + Web Notifications API
    β”œβ”€β”€ 보유 ν˜„ν™©            localStorage μ €μž₯/뢈러였기
    β”œβ”€β”€ requestAiAnalysis()  AI 뢄석 μš”μ²­ 및 κ²°κ³Ό ν‘œμ‹œ
    β”œβ”€β”€ loadUsagePill()      AI 일일 μ‚¬μš©λŸ‰ 쑰회 및 μ§„ν–‰λ°” ν‘œμ‹œ
    β”œβ”€β”€ runScan()            3μ’… μŠ€μΊλ„ˆ μ‹€ν–‰ 및 κ²°κ³Ό λ Œλ”λ§
    └── lpSaveKey() / lpEnter() / lpShow()  λžœλ”© νŽ˜μ΄μ§€ μ œμ–΄

데이터 흐름

λΈŒλΌμš°μ € β†’ GET /api/analyze?ticker=NVDA
              β”‚
              β–Ό
         build(ticker)
              β”œβ”€ yfinance / 넀이버 금육  β†’  OHLCV DataFrame
              β”œβ”€ μ§€ν‘œ 계산 (RSI, ADX …)
              └─ μ‹œκ·Έλ„ νŒμ • (BUY/SELL/WAIT)
              β”‚
         make_chart()  β†’  Plotly JSON
         recommend()   β†’  μ‹œκ·Έλ„ dict
         fetch_analyst() β†’  μ»¨μ„Όμ„œμŠ€ dict
              β”‚
              β–Ό
         JSON 응닡 β†’ λΈŒλΌμš°μ € λ Œλ”λ§

데이터 μ†ŒμŠ€

μ†ŒμŠ€ μš©λ„ μ œν•œ
넀이버 금육 ν•œκ΅­ 주식 OHLCV (졜근 300일) 무료, 비곡식
Yahoo Finance (yfinance) λ―Έκ΅­ 주식 OHLCV (1λ…„) 무료, 비곡식, ~2,000회/μ‹œκ°„
Finviz λ―Έκ΅­ 주식 μ• λ„λ¦¬μŠ€νŠΈ μ»¨μ„Όμ„œμŠ€, μŠ€μΊλ„ˆ 무료, 비곡식
Gemini 1.5 Flash AI 뢄석 무료 1,500회/일 (API ν‚€ ν•„μš”)

⚠️ λ©΄μ±…μ‘°ν•­

  • 이 λ„κ΅¬λŠ” 개인 ν•™μŠ΅ 및 비상업적 μ‚¬μš© λͺ©μ μœΌλ‘œ μ œμž‘λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
  • μ œκ³΅λ˜λŠ” μ‹œκ·Έλ„κ³Ό 뢄석은 투자 κΆŒμœ κ°€ μ•„λ‹™λ‹ˆλ‹€. 투자 κ²°μ •μ˜ μ±…μž„μ€ λ³ΈμΈμ—κ²Œ μžˆμŠ΅λ‹ˆλ‹€.
  • Naver Finance, Yahoo Finance, Finviz λ°μ΄ν„°λŠ” 비곡식 λ°©μ‹μœΌλ‘œ μ‘°νšŒλ©λ‹ˆλ‹€. 각 μ„œλΉ„μŠ€μ˜ μ΄μš©μ•½κ΄€μ„ μ€€μˆ˜ν•  μ±…μž„μ€ μ‚¬μš©μžμ—κ²Œ μžˆμŠ΅λ‹ˆλ‹€.

πŸ“„ λΌμ΄μ„ μŠ€

MIT License

About

Zero API keys required. Local quant dashboard with BUY/SELL/WAIT signals, scanners, and optional AI analysis for US & Korean stocks.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors