Skip to content

khaneun/kitty

Repository files navigation

🐱 Kitty β€” AI λ©€ν‹° μ—μ΄μ „νŠΈ μžλ™ λ§€λ§€ μ‹œμŠ€ν…œ

7개 AI μ—μ΄μ „νŠΈκ°€ ν˜‘λ ₯ν•΄ μ‹œμž₯을 λΆ„μ„ν•˜κ³  자율적으둜 λ§€λ§€ν•©λ‹ˆλ‹€. ν•œκ΅­ 주식(KIS API) + λ―Έκ΅­ 주식(KIS ν•΄μ™Έ) λ™μ‹œ 운영. Anthropic / OpenAI / Gemini 지원.


μ‹œμŠ€ν…œ ꡬ쑰

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  kitty-trader (ν•œκ΅­μ£Όμ‹ 09:00~15:30 KST)             β”‚
β”‚  kitty-night-trader (미ꡭ주식 21:00~06:00 KST)       β”‚
β”‚                                                     β”‚
β”‚  β‘  νˆ¬μžμ„±ν–₯κ΄€λ¦¬μž  β†’  5차원×6단계 μ„±ν–₯ μ§€μΉ¨ 생성       β”‚
β”‚  β‘‘ 섹터뢄석가     β†’  κ±°μ‹œ μ‹œμž₯Β·μ„Ήν„° 뢄석              β”‚
β”‚  β‘’ μ’…λͺ©ν‰κ°€κ°€     β†’  보유 μ’…λͺ© HOLD/SELL νŒλ‹¨         β”‚
β”‚  β‘£ μ’…λͺ©λ°œκ΅΄κ°€     β†’  μ‹ κ·œ 맀수 후보 μ„ μ •              β”‚
β”‚  β‘€ μžμ‚°μš΄μš©κ°€     β†’  μ΅œμ’… μ£Όλ¬Έ 리슀트 κ²°μ •            β”‚
β”‚  β‘₯ λ§€μˆ˜μ‹€ν–‰κ°€     β†’  슀마트 λΆ„ν•  맀수                 β”‚
β”‚  ⑦ 맀도싀행가     β†’  슀마트 λΆ„ν•  맀도                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β”‚  commands/ (IPC)     logs/ (read-only)
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚              kitty-monitor :8080                     β”‚
β”‚  🐱 Kitty ↔ πŸŒ™ Night λ·° μ „ν™˜ | μ„±μ ν‘œΒ·κ΄€λ¦¬Β·μ±„νŒ…     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β”‚
         Telegram Bot  ←→  μ‚¬μš©μž

운영 μ‹œκ°„ν‘œ

μ„œλΉ„μŠ€ μ‹œκ°„ (KST) 사이클 λΉ„κ³ 
kitty-trader 08:50~15:30 5λΆ„ ν•œκ΅­ μ •κ·œμž₯
kitty-night-trader 21:00~06:00 15λΆ„ λ―Έκ΅­ NYSE/NASDAQ, DST μžλ™ λŒ€μ‘
kitty-monitor 24/7 β€” λŒ€μ‹œλ³΄λ“œ ν•­μ‹œ μ ‘κ·Ό

EC2λŠ” 24/7 μƒμ‹œ 가동. 3개 μ»¨ν…Œμ΄λ„ˆ λͺ¨λ‘ restart: unless-stopped.


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

κΈ°λŠ₯ μ„€λͺ…
πŸ€– λ©€ν‹° μ—μ΄μ „νŠΈ 7개 μ „λ¬Έ μ—μ΄μ „νŠΈ λΆ„μ—…Β·ν˜‘λ ₯ (ν•œκ΅­/λ―Έκ΅­ 각각 독립 μ—μ΄μ „νŠΈ μ„ΈνŠΈ)
🎯 투자 μ„±ν–₯ 5차원×6단계 레벨 μžλ™ μ‘°μ • (μž₯ 마감 ν›„ AI κ°±μ‹ )
πŸ“’ 맀맀일지 ν˜„μž¬ λ·°Β·λͺ¨λ“œ κΈ°μ€€ μžλ™ ν•„ν„° β€” Live/Paper 거래 뢄리 ν‘œμ‹œ
πŸ›‘οΈ 손싀 μ΅œμ†Œν™” μ†Œν”„νŠΈ μŠ€νƒ‘(ν•˜λ“œ μ†μ ˆ 50%) + 트레일링 μŠ€νƒ‘ + 손읡비(R:R) 2.5:1 ν•„ν„°
πŸ“‘ 자율 μ’…λͺ© μ„ μ • κ³ μ • watchlist μ—†μŒ. μ‹€μ‹œκ°„ μ‹œμž₯ 데이터 기반
⚑ 슀마트 μ£Όλ¬Έ λΆ„ν•  μ£Όλ¬Έ + μ§€μ •κ°€β†’μ‹œμž₯κ°€ μ „ν™˜ (ν•œκ΅­ 5μ£Ό/λ―Έκ΅­ 10μ£Ό κΈ°μ€€)
πŸ” μžκΈ°κ°œμ„  λˆ„μ  ν”Όλ“œλ°± μ‹œμŠ€ν…œ β€” 반볡 이슈 μžλ™ 탐지 + κ²€μ¦λœ νŒ¨ν„΄ κ°•ν™” β†’ λ§€ 사이클 반영
🌐 AI λ°±μ—”λ“œ Anthropic Claude / OpenAI GPT / Google Gemini
πŸ’¬ Telegram 21개 λͺ…λ Ήμ–΄ 원격 μ œμ–΄ + λͺ¨λ‹ˆν„°λ§
πŸ“Š λŒ€μ‹œλ³΄λ“œ kitty-monitor β€” 🐱/πŸŒ™ λ·° μ „ν™˜, μ„±μ ν‘œΒ·λ§€λ§€μΌμ§€, Agent 관리, μ‹œμŠ€ν…œ(투자λͺ¨λ“œΒ·LLM)
πŸ”€ 투자 λͺ¨λ“œ Paper ↔ Live λŸ°νƒ€μž„ μ „ν™˜, μ»¨ν…Œμ΄λ„ˆ μž¬μ‹œμž‘ ν›„ λͺ¨λ“œ μžλ™ 볡원

ν”„λ‘œμ νŠΈ ꡬ쑰

kitty/                    # ν•œκ΅­μ£Όμ‹ νŠΈλ ˆμ΄λ”
β”œβ”€β”€ agents/               # 7개 μ—μ΄μ „νŠΈ (tendency~sell_executor)
β”œβ”€β”€ broker/kis.py         # KIS κ΅­λ‚΄ API
β”œβ”€β”€ evaluator/            # μ„±κ³Ό 평가 μ—”μ§„
β”œβ”€β”€ feedback/             # ν”Όλ“œλ°± μ €μž₯μ†Œ
β”œβ”€β”€ telegram/bot.py       # Telegram 봇 (21개 λͺ…λ Ήμ–΄)
β”œβ”€β”€ config.py             # Pydantic μ„€μ •
β”œβ”€β”€ main.py               # 메인 루프 (5λΆ„ 사이클)
└── report.py             # 일별 리포트

kitty_night/              # 미ꡭ주식 νŠΈλ ˆμ΄λ” (μ™„μ „ 독립)
β”œβ”€β”€ agents/               # 7개 Night μ—μ΄μ „νŠΈ
β”œβ”€β”€ broker/kis_overseas.py # KIS ν•΄μ™Έ API
β”œβ”€β”€ evaluator/            # Night μ„±κ³Ό 평가
β”œβ”€β”€ telegram/bot.py       # Night Telegram (λ©”μ‹œμ§€ μ „μš©)
β”œβ”€β”€ config.py             # NIGHT_ prefix ν™˜κ²½λ³€μˆ˜
β”œβ”€β”€ main.py               # MarketPhase 기반 루프 (15λΆ„ 사이클)
β”œβ”€β”€ report.py             # Night 일별 리포트
└── market_calendar.py    # NYSE μΊ˜λ¦°λ” + DST 처리

monitor/
β”œβ”€β”€ app.py                # FastAPI λŒ€μ‹œλ³΄λ“œ (🐱/πŸŒ™ λ·° μ „ν™˜)
└── Dockerfile

start.sh                  # EC2 λΆ€νŒ… 슀크립트
docker-compose.yml        # 3개 μ„œλΉ„μŠ€ (kitty + night + monitor)
Dockerfile                # kitty-trader
Dockerfile.night          # kitty-night-trader

λΉ λ₯Έ μ‹œμž‘

μš”κ΅¬μ‚¬ν•­

  • Python 3.11+
  • ν•œκ΅­νˆ¬μžμ¦κΆŒ Open API 계정 (κ΅­λ‚΄ + ν•΄μ™Έ)
  • Telegram Bot Token
  • AI API ν‚€ (Anthropic / OpenAI / Google 쀑 1개)

Docker μ‹€ν–‰

# ν™˜κ²½λ³€μˆ˜ μ„€μ •
cp .env.example .env          # ν•œκ΅­μ£Όμ‹
cp .env.night.example .env.night  # 미ꡭ주식

# 전체 μ‹€ν–‰
docker compose up -d

AWS 배포

# λ‘œμ»¬μ—μ„œ 원클릭 배포
EC2_IP=$(aws ec2 describe-instances --filters "Name=tag:Name,Values=kitty-trader" \
  --query 'Reservations[0].Instances[0].PublicIpAddress' --output text)
ssh -i ~/kitty-key.pem ec2-user@$EC2_IP \
  "cd /home/ec2-user/kitty && git pull origin main && bash start.sh"

상세 배포 μ ˆμ°¨λŠ” deployments.md μ°Έμ‘°.


ν™˜κ²½ μ„€μ •

ν•œκ΅­μ£Όμ‹ (.env)

AI_PROVIDER=openai
AI_MODEL=gpt-4o
TRADING_MODE=paper
KIS_APP_KEY=              # μ‹€μ „
KIS_PAPER_APP_KEY=        # λͺ¨μ˜
TELEGRAM_BOT_TOKEN=
TELEGRAM_CHAT_ID=
MAX_BUY_AMOUNT=1000000    # 원
MAX_POSITION_SIZE=5000000  # 원

미ꡭ주식 (.env.night)

NIGHT_AI_PROVIDER=openai
NIGHT_AI_MODEL=gpt-4o
NIGHT_TRADING_MODE=paper
NIGHT_KIS_APP_KEY=         # ν•΄μ™Έ μ‹€μ „
NIGHT_KIS_PAPER_APP_KEY=   # ν•΄μ™Έ λͺ¨μ˜
OPENAI_API_KEY=
TELEGRAM_BOT_TOKEN=
TELEGRAM_CHAT_ID=

전체 ν‚€ λͺ©λ‘μ€ .env.example / .env.night.example μ°Έμ‘°.


Telegram λͺ…λ Ήμ–΄

λΆ„λ₯˜ λͺ…λ Ήμ–΄ μ„€λͺ…
쑰회 /status /portfolio /balance /analysis /report /dashboard μƒνƒœΒ·μž”κ³ Β·λΆ„μ„Β·λ¦¬ν¬νŠΈ
μ œμ–΄ /pause /resume /cycle /stop μΌμ‹œμ •μ§€Β·μž¬κ°œΒ·μ¦‰μ‹œμ‹€ν–‰
μ„€μ • /setmode <paper|live> /setbuy <κΈˆμ•‘> λͺ¨λ“œΒ·ν•œλ„ μ „ν™˜
μˆ˜λ™ /buy <μ½”λ“œ> <μˆ˜λŸ‰> /sell <μ½”λ“œ> <μˆ˜λŸ‰> μˆ˜λ™ λ§€λ§€
AWS /deploy /restart /shutdown /startall 원격 λ°°ν¬Β·μ œμ–΄

손싀 μ΅œμ†Œν™” μ „λž΅

KittyλŠ” λ‹¨μˆœ μ†μ ˆ κΈ°μ€€ 외에 λ‹€μΈ΅ λ°©μ–΄ ꡬ쑰둜 손싀 폭을 μ œν•œν•©λ‹ˆλ‹€.

단계 트리거 λ™μž‘
β‘  μ†Œν”„νŠΈ μŠ€νƒ‘ ν•˜λ“œ μ†μ ˆ κΈ°μ€€μ˜ 50% 손싀 μ„Ήν„° 약세이면 PARTIAL_SELL μ¦‰μ‹œ μ‹€ν–‰
β‘‘ ν•˜λ“œ μŠ€νƒ‘ μ†μ ˆ μž„κ³„μΉ˜ 초과 PARTIAL_SELL ~50% 무쑰건 μ‹€ν–‰
β‘’ 비상 μŠ€νƒ‘ μ†μ ˆ κΈ°μ€€ 2λ°° 초과 μ „λŸ‰ SELL
β‘£ 트레일링 μŠ€νƒ‘ TP 50% 달성 ν›„ λ°˜λ‚© μ‹œ PARTIAL_SELL둜 수읡 보전
β‘€ κ±°λž˜λŸ‰ μ΄νƒˆ 당일 -1.5%↓ + μ„Ήν„° μ•½μ„Έ μ†μ ˆ 전이라도 PARTIAL_SELL κ³ λ €
β‘₯ 자본보호 λͺ¨λ“œ 포트폴리였 ν•©μ‚° -3% 이상 μ‹ κ·œ 맀수 μ „λ©΄ 쀑단, μ†μ ˆ μš°μ„ 
⑦ 맀수 μ „ μž”κ³  검증 μ£Όλ¬Έ κ°€λŠ₯ κΈˆμ•‘ μ‹€μ‹œκ°„ 확인 μž”κ³  λΆ€μ‘± μ‹œ μˆ˜λŸ‰ μžλ™ μ‘°μ • λ˜λŠ” μŠ€ν‚΅
β‘§ 맀도 μ „ 보유 검증 λ³΄μœ μˆ˜λŸ‰ μ‹€μ‹œκ°„ 확인 초과 맀도 λ°©μ§€ + 쀑볡 맀도 차단

R:R ν•„ν„°: μ‹ κ·œ 맀수 μ’…λͺ©μ€ μ˜ˆμƒ 손읡비(TPΓ·SL) 2.5:1 이상인 κ²½μš°μ—λ§Œ μŠΉμΈν•©λ‹ˆλ‹€.

투자 μ„±ν–₯ 레벨 κ°’ (v2.2.0 κΈ°μ€€)

차원 L1 (곡격) L2 L3 L4 L5 L6 (보수)
읡절 +5% +8% +12% +18% +25% +35%
μ†μ ˆ -1.5% -2.5% -3.5% -5% -7.5% -10%
R:R (L2) 3.2:1

κΈ°λ³Έ 프리셋 aggressive = L2 κΈ°μ€€: 읡절 +8%, μ†μ ˆ -2.5%, R:R 3.2:1


⚠️ μ£Όμ˜μ‚¬ν•­

  • λͺ¨μ˜νˆ¬μž(paper)둜 λ¨Όμ € κ²€μ¦ν•˜μ„Έμš”. 기본값은 paperμž…λ‹ˆλ‹€.
  • .env / .env.night νŒŒμΌμ€ μ ˆλŒ€ Git에 μ»€λ°‹ν•˜μ§€ λ§ˆμ„Έμš”.
  • AI μ—μ΄μ „νŠΈμ˜ νŒλ‹¨μ€ 참고용이며, 투자 μ†μ΅μ˜ μ±…μž„μ€ μ‚¬μš©μžμ—κ²Œ μžˆμŠ΅λ‹ˆλ‹€.

About

kitty

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors