Skip to content

programgarden/programgarden-ls-edu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

13 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Turtle Trading Bot

๐ŸŒฑ ํ”„๋กœ๊ทธ๋žจ๋™์‚ฐ ์ปค๋ฎค๋‹ˆํ‹ฐ

๐ŸŽฅ YouTube ์ฑ„๋„ https://youtube.com/@programgarden
๐Ÿ’ฌ ์นด์นด์˜คํ†ก ๋‹จํ†ก๋ฐฉ https://open.kakao.com/o/gKVObqUh
๐ŸŒ ํ”„๋กœ๊ทธ๋žจ๋™์‚ฐ ์ž๋™ํ™”๋งค๋งค ํ”Œ๋žซํผ https://programgarden.com

YouTube KakaoTalk Website

๋ผ์ด๋ธŒ ๊ฐ•์˜ ยท ์ž๋ฃŒ ยท ์ž๋™ํ™”๋งค๋งค ํ† ๋ก ์€ ์œ„ ์ฑ„๋„์—์„œ ๋งŒ๋‚˜์š”.


LS์ฆ๊ถŒ API๋ฅผ ์ด์šฉํ•œ ํ„ฐํ‹€ ํŠธ๋ ˆ์ด๋”ฉ ์ž๋™๋งค๋งค ๋ด‡์ž…๋‹ˆ๋‹ค.

ํ•ด์™ธ์ฃผ์‹(๋ฏธ๊ตญ NYSE/NASDAQ), ๊ตญ๋‚ด์ฃผ์‹(KRX), ํ•ด์™ธ์„ ๋ฌผ(ํ™์ฝฉ HKEX) 3๊ฐœ ์‹œ์žฅ์„ ๋™์‹œ์— ์ž๋™ ๋งค๋งคํ•˜๋ฉฐ, ๋ˆ์น˜์•ˆ ์ฑ„๋„ ๋ŒํŒŒ ๋งค์ˆ˜ + ATR ๊ธฐ๋ฐ˜ ํŠธ๋ ˆ์ผ๋ง ์Šคํƒ‘ ๋งค๋„ ์ „๋žต์œผ๋กœ 24์‹œ๊ฐ„ ์ž๋™ ์šด์˜๋ฉ๋‹ˆ๋‹ค. ๋ผ์ดํŠธ ํ…Œ๋งˆ ์›น ๋Œ€์‹œ๋ณด๋“œ์™€ ํ…”๋ ˆ๊ทธ๋žจ์œผ๋กœ ์›๊ฒฉ ์ œ์–ดํ•˜๊ณ , 4๊ฐœ ์‹œ๋ฆฌ์ฆˆ(ํ•ด์™ธ์ฃผ์‹ยท๊ตญ๋‚ด์ฃผ์‹ยทํ•ด์™ธ์„ ๋ฌผยท์ฝ”์Šคํ”ผ์ง€์ˆ˜) ๋ˆ„์  ์ˆ˜์ต๋ฅ  ํ†ตํ•ฉ ๋น„๊ต ์ฐจํŠธ๋ฅผ ํ•œ ํ™”๋ฉด์—์„œ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


์‹œ์Šคํ…œ ๊ตฌ์กฐ

graph TB
    subgraph ๋ด‡["3-์‹œ์žฅ ๋ด‡ (24์‹œ๊ฐ„)"]
        SS[ํ•ด์™ธ์ฃผ์‹ ์Šค์ผ€์ค„๋Ÿฌ]
        KS[๊ตญ๋‚ด์ฃผ์‹ ์Šค์ผ€์ค„๋Ÿฌ]
        FS[ํ•ด์™ธ์„ ๋ฌผ ์Šค์ผ€์ค„๋Ÿฌ]
    end

    WEB[์›น ๋Œ€์‹œ๋ณด๋“œ<br/>FastAPI :8000]
    TG[ํ…”๋ ˆ๊ทธ๋žจ ๋ด‡]
    DB[(SQLite<br/>trading.db)]
    LS[LS์ฆ๊ถŒ API]
    YF[yfinance<br/>^KS11]

    SS -->|๋งค๋งค/์Šค๋ƒ…์ƒท| LS
    KS -->|๋งค๋งค/FOCCQ33600 ์‹œ๊ณ„์—ด| LS
    FS -->|๋งค๋งค/์Šค๋ƒ…์ƒท| LS
    SS -->|daily_reports| DB
    KS -->|krx_daily_reports| DB
    FS -->|futures_daily_reports| DB
    TG -->|์•Œ๋ฆผ + ๋ช…๋ น์–ด| ์‚ฌ์šฉ์ž
    WEB -->|ํ†ตํ•ฉ๋น„๊ต ์ฐจํŠธ| YF
    WEB -->|์ƒํƒœ/์„ค์ •/๋งค๋งค๋‚ด์—ญ| DB
    WEB -->|์‹ค์‹œ๊ฐ„ ํ‰๊ฐ€๊ธˆ| LS
    ์‚ฌ์šฉ์ž -->|๋ธŒ๋ผ์šฐ์ €| WEB
Loading

๋งค๋งค ํ๋ฆ„ (3๊ฐœ ์‹œ์žฅ ๊ณตํ†ต)

flowchart LR
    A[์ผ๋ณ„ ์‹ ํ˜ธ ์ฒดํฌ] --> B{๋งค์ˆ˜ ์‹ ํ˜ธ ๊ธฐ๊ฐ„<br/>N์ผ ์ตœ๊ณ ๊ฐ€ ๋ŒํŒŒ?}
    B -->|๋ŒํŒŒ| C[๋งค์ˆ˜/์ง„์ž… ์ฃผ๋ฌธ]
    B -->|๋ฏธ๋ŒํŒŒ| A
    C --> D[์†์ ˆ๊ฐ€ = ํ˜„์žฌ๊ฐ€ โˆ’ ATR ร— ๋ฐฐ์ˆ˜]
    D --> E[๋ณด์œ  ์ค‘ ๊ฐ์‹œ]
    E --> F{๊ฐ€๊ฒฉ ๋ณ€๋™}
    F -->|์‹ ๊ณ ๊ฐ€ ๊ฐฑ์‹ | G[์†์ ˆ๊ฐ€ ์ƒํ–ฅ ์กฐ์ •] --> E
    F -->|์†์ ˆ๊ฐ€ ์ดํ•˜| H[๋งค๋„/์ฒญ์‚ฐ]
    E --> I{์ผ์ผ ์†์‹ค๋ฅ }
    I -->|๊ฒฝ๊ณ  ํ•œ๋„ ์ดˆ๊ณผ| J[๋งˆ์ด๋„ˆ์Šค ์ข…๋ชฉ ์ฒญ์‚ฐ]
    I -->|๋น„์ƒ ํ•œ๋„ ์ดˆ๊ณผ| K[์ „์ข…๋ชฉ ์ฒญ์‚ฐ + ๋‹น์ผ ๋งค๋งค ์ค‘๋‹จ]
Loading

๊ฐ ์‹œ์žฅ๋ณ„ ๊ฑฐ๋ž˜ ์‹œ๊ฐ„ (ํ•œ๊ตญ์‹œ๊ฐ„ KST):

  • ํ•ด์™ธ์ฃผ์‹ NYSE/NASDAQ: ์ •๊ทœ์žฅ 22:30~05:00 (์„œ๋จธํƒ€์ž„ ๊ธฐ์ค€)
  • ๊ตญ๋‚ด์ฃผ์‹ KRX: 09:00~15:30
  • ํ•ด์™ธ์„ ๋ฌผ HKEX: T์„ธ์…˜ 10:1513:00 + 14:0017:30 / T+1์„ธ์…˜(์•ผ๊ฐ„) 18:15~04:00

์›น ๋Œ€์‹œ๋ณด๋“œ

๋ผ์ดํŠธ ํ…Œ๋งˆ ๋‹จ์ผ ํŽ˜์ด์ง€ 5๊ฐœ ํƒญ:

ํƒญ ์„ค๋ช…
๐Ÿ“ˆ ํ•ด์™ธ์ฃผ์‹ LS ์‹ค๊ณ„์ขŒ. ๋ชจ๋“œ(DRY/LIVE) ยท ๊ณ„์ขŒ ยท ๋ณด์œ ์ข…๋ชฉ ยท ์ผ๋ด‰์ฐจํŠธ ยท ์ „๋žต ยท APIํ‚ค ยท ์˜ค๋Š˜ ๋งค๋งค
๐Ÿ‡ฐ๐Ÿ‡ท ๊ตญ๋‚ด์ฃผ์‹ LS ์‹ค๊ณ„์ขŒ. ๋™์ผ ๊ตฌ์„ฑ (KRX ์ข…๋ชฉ ์ฝ”๋“œ ๊ธฐ์ค€)
๐Ÿ“Š ํ•ด์™ธ์„ ๋ฌผ LS ๋ชจ์˜ํˆฌ์ž. ๋™์ผ ๊ตฌ์„ฑ (ํ™์ฝฉ HKEX 6๊ฐœ ์ƒํ’ˆ)
๐Ÿ“‰ ํ†ตํ•ฉ๋น„๊ต 4์‹œ๋ฆฌ์ฆˆ ๋ˆ„์  ์ˆ˜์ต๋ฅ  ์ฐจํŠธ โ€” ํ•ด์™ธ์ฃผ์‹ยท๊ตญ๋‚ด์ฃผ์‹ยทํ•ด์™ธ์„ ๋ฌผยท์ฝ”์Šคํ”ผ์ง€์ˆ˜(^KS11)
๐Ÿ“‹ ๋กœ๊ทธ ์‹œ์Šคํ…œ ๋กœ๊ทธ ์‹ค์‹œ๊ฐ„ ๋ณด๊ธฐ

ํ†ตํ•ฉ๋น„๊ต ์ฐจํŠธ

  • ๊ธฐ๊ฐ„ ์„ ํƒ: 7 / 14 / 30(๊ธฐ๋ณธ) / 60 / 90์ผ
  • ์ผ๋ณ„ ์ˆ˜์ต๋ฅ  ๋ˆ„์  ๊ณฑ์…ˆ ฮ (1 + rแตข) โˆ’ 1 โ†’ ์ž…์ถœ๊ธˆ ์˜ํ–ฅ ์ œ์™ธ๋œ ์ •ํ™•ํ•œ ๋ˆ„์ ์ˆ˜์ต๋ฅ 
  • ๊ตญ๋‚ด์ฃผ์‹: LS FOCCQ33600 TR์˜ TermErnrat ์‹œ๊ณ„์—ด์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ
  • ํ•ด์™ธ์ฃผ์‹/์„ ๋ฌผ: LS API๊ฐ€ ์‹œ๊ณ„์—ด์„ ์•ˆ ์ฃผ๋ฏ€๋กœ ๋ด‡์ด ๋งค์ผ ํ‰๊ฐ€๊ธˆ ์Šค๋ƒ…์ƒท์„ DB์— ๋ˆ„์ 
  • ์ฝ”์Šคํ”ผ์ง€์ˆ˜: yfinance ^KS11 ์ข…๊ฐ€, ์บ์‹œ ์—†์ด ๋งค ์ƒˆ๋กœ๊ณ ์นจ๋งˆ๋‹ค ์ƒˆ๋กœ ์กฐํšŒ

์ผ๋ณ„ ์Šค๋ƒ…์ƒท ๋ˆ„์ 

LS API๋Š” ๊ตญ๋‚ด์ฃผ์‹๋งŒ ์ผ๋ณ„ ์‹œ๊ณ„์—ด(FOCCQ33600)์„ ์ œ๊ณตํ•˜๋ฏ€๋กœ, ํ•ด์™ธ์ฃผ์‹ยทํ•ด์™ธ์„ ๋ฌผ์€ ๋ด‡์ด ์ง์ ‘ ๋งค์ผ ํ‰๊ฐ€๊ธˆ์„ DB์— ๋ˆ„์  ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

์‹œ์žฅ ์ €์žฅ ์‹œ๊ฐ (KST) TR
ํ•ด์™ธ์ฃผ์‹ ๋ด‡ ์‹œ์ž‘ ์‹œ + ๋งค์ผ 16:10 COSOQ00201 ์˜ค๋Š˜ ์Šค๋ƒ…์ƒท
ํ•ด์™ธ์„ ๋ฌผ ๋ด‡ ์‹œ์ž‘ ์‹œ + ๋งค์ผ 18:10 CIDBQ03000 ์˜ค๋Š˜ ์Šค๋ƒ…์ƒท
๊ตญ๋‚ด์ฃผ์‹ ๋ด‡ ์‹œ์ž‘ ์‹œ + ๋งค์ผ 15:40 FOCCQ33600 ์‹œ๊ณ„์—ด ๋ฐฑํ•„

์‹คํ–‰ ๋ฐฉ๋ฒ•

1. ์‚ฌ์ „ ์ค€๋น„

2. ์„ค์น˜

git clone https://github.com/programgarden/programgarden-ls-edu.git
cd programgarden-ls-edu

python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

3. ํ™˜๊ฒฝ ์„ค์ •

cp .env.example .env

.env ํŒŒ์ผ์— LS์ฆ๊ถŒ API ํ‚ค๋ฅผ ์ž…๋ ฅ:

# LS์ฆ๊ถŒ - ํ•ด์™ธ์ฃผ์‹ ์‹ค์ „๊ณ„์ขŒ
LS_APPKEY=your_appkey_here
LS_APPSECRETKEY=your_appsecretkey_here

# LS์ฆ๊ถŒ - ๊ตญ๋‚ด์ฃผ์‹ ์‹ค์ „๊ณ„์ขŒ
APPKEY_KOREA=your_korea_appkey_here
APPSECRET_KOREA=your_korea_appsecretkey_here

# LS์ฆ๊ถŒ - ํ•ด์™ธ์„ ๋ฌผ ๋ชจ์˜ํˆฌ์ž
APPKEY_FUTURE_FAKE=your_futures_paper_appkey_here
APPSECRET_FUTURE_FAKE=your_futures_paper_appsecretkey_here

# LS์ฆ๊ถŒ - ํ•ด์™ธ์„ ๋ฌผ ์‹ค์ „ํˆฌ์ž (์„ ํƒ)
FUTURES_LIVE_APPKEY=
FUTURES_LIVE_APPSECRETKEY=

# ํ…”๋ ˆ๊ทธ๋žจ ๋ด‡ (์„ ํƒ)
TELEGRAM_BOT_TOKEN=your_bot_token_here
TELEGRAM_CHAT_ID=your_chat_id_here

API ํ‚ค๋Š” ์›น ๋Œ€์‹œ๋ณด๋“œ์—์„œ๋„ ์„ค์ • ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค (DB ์ €์žฅ). ์‹œ์ž‘ ์‹œ DB โ†’ config ์ˆœ์„œ๋กœ ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค.

4. ์‹คํ–‰

source venv/bin/activate
python3 main.py

๊ธฐ๋ณธ ํฌํŠธ๊ฐ€ ์‚ฌ์šฉ ์ค‘์ด๋ฉด:

./venv/bin/python -m uvicorn main:app --host 0.0.0.0 --port 8001

data/ ๋””๋ ‰ํ„ฐ๋ฆฌ๋Š” ์ตœ์ดˆ ์‹คํ–‰ ์‹œ ์ž๋™ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

์‹คํ–‰ํ•˜๋ฉด ์›น ๋Œ€์‹œ๋ณด๋“œ(http://localhost:8000)์™€ 3๊ฐœ ๋ด‡(ํ•ด์™ธ์ฃผ์‹ ยท ๊ตญ๋‚ด์ฃผ์‹ ยท ํ•ด์™ธ์„ ๋ฌผ)์ด ํ•จ๊ป˜ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ ๋“œ๋ผ์ด๋Ÿฐ ๋ชจ๋“œ(์‹ค์ œ ์ฃผ๋ฌธ ์—†์ด ์‹œ๋ฎฌ๋ ˆ์ด์…˜)์ž…๋‹ˆ๋‹ค.

๋ฐฑ๊ทธ๋ผ์šด๋“œ ์‹คํ–‰:

nohup python3 main.py > data/bot.log 2>&1 &

5. ํ…Œ์ŠคํŠธ

pytest

ํ•ต์‹ฌ ์ „๋žต ํŒŒ๋ผ๋ฏธํ„ฐ

ํŒŒ๋ผ๋ฏธํ„ฐ ๊ธฐ๋ณธ๊ฐ’ UI ํ‘œ์‹œ๋ช… ์˜๋ฏธ
donchian_period 20 ๋งค์ˆ˜ ์‹ ํ˜ธ ๊ธฐ๊ฐ„ (์ผ) ์ตœ๊ทผ N์ผ ์ค‘ ์ตœ๊ณ ๊ฐ€ ๋ŒํŒŒ ์‹œ ๋งค์ˆ˜/์ง„์ž…
atr_multiplier 3.0 ์†์ ˆ ํญ ๋ฐฐ์ˆ˜ ๊ฐ€๊ฒฉ ๋ณ€๋™ํญ(ATR) ร— ๋ฐฐ์ˆ˜ = ์†์ ˆ ๊ฑฐ๋ฆฌ
max_stocks 5 ์ตœ๋Œ€ ์ข…๋ชฉ/๊ณ„์•ฝ ์ˆ˜ ๋™์‹œ ๋ณด์œ  ํ•œ๋„
capital_ratio 50% ์˜ˆ์ˆ˜๊ธˆ ๋น„์œจ ๋งค๋งค์— ์‚ฌ์šฉํ•  ์˜ˆ์ˆ˜๊ธˆ ๋น„์œจ

๋ชจ๋‘ 3๊ฐœ ์‹œ์žฅ๋ณ„๋กœ ๋…๋ฆฝ ์„ค์ • ๊ฐ€๋Šฅ (donchian_period, krx_donchian_period, futures_donchian_period).

๋ฆฌ์Šคํฌ ํ•œ๋„

์‹œ์žฅ ์ผ์ผ ์†์‹ค ๊ฒฝ๊ณ  ์ผ์ผ ์†์‹ค ๋น„์ƒ
ํ•ด์™ธ์ฃผ์‹ 4% (๋งˆ์ด๋„ˆ์Šค ์ข…๋ชฉ ์ฒญ์‚ฐ) 5% (์ „์ข…๋ชฉ ์ฒญ์‚ฐ + ๋งค๋งค ์ค‘๋‹จ)
๊ตญ๋‚ด์ฃผ์‹ 4% 5%
ํ•ด์™ธ์„ ๋ฌผ 3% (์ฆ๊ฑฐ๊ธˆ ๋Œ€๋น„) 5% + ์ฆ๊ฑฐ๊ธˆ 80% ํ•œ๋„ ์ดˆ๊ณผ ์‹œ ์ง„์ž… ์ฐจ๋‹จ

ํ…”๋ ˆ๊ทธ๋žจ ๋ช…๋ น์–ด

๋ช…๋ น์–ด ์„ค๋ช…
/help ๋ช…๋ น์–ด ๋ชฉ๋ก
/status ๋ณด์œ ์ข…๋ชฉ, ๋ชจ๋“œ, ์ƒํƒœ
/mode dry / /mode live ๋ชจ๋“œ ์ „ํ™˜
/set channel 20 ๋งค์ˆ˜ ์‹ ํ˜ธ ๊ธฐ๊ฐ„ ๋ณ€๊ฒฝ
/set atr 3.0 ์†์ ˆ ํญ ๋ฐฐ์ˆ˜ ๋ณ€๊ฒฝ
/set stocks 5 ์ตœ๋Œ€ ๋ณด์œ  ์ข…๋ชฉ ์ˆ˜
/set ratio 50 ์˜ˆ์ˆ˜๊ธˆ ์‚ฌ์šฉ ๋น„์œจ(%)
/settings ์ „์ฒด ์„ค์ •๊ฐ’ ๋ณด๊ธฐ
/stop / /start ๋งค๋งค ์ค‘๋‹จ / ์žฌ๊ฐœ
/report ์˜ค๋Š˜ ๋งค๋งค ๋ฆฌํฌํŠธ

ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

programgarden-ls-edu/
โ”œโ”€โ”€ main.py                     # ์‹œ์ž‘์  (FastAPI + 3๊ฐœ ๋ด‡ ํ†ตํ•ฉ)
โ”œโ”€โ”€ config.py                   # ํ™˜๊ฒฝ ์„ค์ • (.env + ๊ธฐ๋ณธ๊ฐ’)
โ”œโ”€โ”€ scheduler.py                # ํ•ด์™ธ์ฃผ์‹ ์Šค์ผ€์ค„๋Ÿฌ
โ”œโ”€โ”€ krx_scheduler.py            # ๊ตญ๋‚ด์ฃผ์‹ ์Šค์ผ€์ค„๋Ÿฌ
โ”œโ”€โ”€ futures_scheduler.py        # ํ•ด์™ธ์„ ๋ฌผ ์Šค์ผ€์ค„๋Ÿฌ
โ”œโ”€โ”€ analyzer/
โ”‚   โ”œโ”€โ”€ stock_screener.py       # ํ•ด์™ธ์ฃผ์‹ ์ข…๋ชฉ ์Šคํฌ๋ฆฌ๋‹
โ”‚   โ””โ”€โ”€ trend_analyzer.py       # ๊ธฐ์ˆ ์  ๋ถ„์„
โ”œโ”€โ”€ trader/
โ”‚   โ”œโ”€โ”€ ls_client.py            # ํ•ด์™ธ์ฃผ์‹ API ๋ž˜ํผ
โ”‚   โ”œโ”€โ”€ engine.py / realtime.py # ํ•ด์™ธ์ฃผ์‹ ์—”์ง„ + ์‹ค์‹œ๊ฐ„
โ”‚   โ”œโ”€โ”€ krx_client.py           # ๊ตญ๋‚ด์ฃผ์‹ API ๋ž˜ํผ (NEW)
โ”‚   โ”œโ”€โ”€ krx_engine.py           # ๊ตญ๋‚ด์ฃผ์‹ ๋งค๋งค ์—”์ง„ (NEW)
โ”‚   โ”œโ”€โ”€ futures_client.py       # ํ•ด์™ธ์„ ๋ฌผ API ๋ž˜ํผ
โ”‚   โ””โ”€โ”€ futures_engine.py / futures_realtime.py
โ”œโ”€โ”€ risk/
โ”‚   โ”œโ”€โ”€ risk_manager.py         # ํ•ด์™ธ์ฃผ์‹ ๋ฆฌ์Šคํฌ
โ”‚   โ””โ”€โ”€ futures_risk.py         # ํ•ด์™ธ์„ ๋ฌผ ๋ฆฌ์Šคํฌ
โ”œโ”€โ”€ tgbot/bot.py                # ํ…”๋ ˆ๊ทธ๋žจ ๋ด‡
โ”œโ”€โ”€ web/
โ”‚   โ”œโ”€โ”€ api.py                  # REST API (KRX + ํ†ตํ•ฉ๋น„๊ต + ์ฝ”์Šคํ”ผ ํฌํ•จ)
โ”‚   โ””โ”€โ”€ dashboard.html          # ๋ผ์ดํŠธ ํ…Œ๋งˆ ๋‹จ์ผ HTML (5๊ฐœ ํƒญ)
โ”œโ”€โ”€ database/
โ”‚   โ”œโ”€โ”€ models.py               # DB ์Šคํ‚ค๋งˆ (krx_* ํ…Œ์ด๋ธ” ์ถ”๊ฐ€)
โ”‚   โ””โ”€โ”€ repository.py
โ”œโ”€โ”€ tests/                      # ํ…Œ์ŠคํŠธ ์ฝ”๋“œ
โ”œโ”€โ”€ data/                       # ๋Ÿฐํƒ€์ž„ (DB, ๋กœ๊ทธ) โ€” ์ž๋™ ์ƒ์„ฑ
โ”œโ”€โ”€ .env / .env.example         # API ํ‚ค
โ””โ”€โ”€ requirements.txt

๊ธฐ์ˆ  ์Šคํƒ

ํ•ญ๋ชฉ ๊ธฐ์ˆ 
์ฆ๊ถŒ API programgarden-finance
์›น ๋Œ€์‹œ๋ณด๋“œ FastAPI + uvicorn + lightweight-charts
๋น„๋™๊ธฐ asyncio + aiosqlite
์Šค์ผ€์ค„๋Ÿฌ APScheduler
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค SQLite
๋ฒค์น˜๋งˆํฌ ๋ฐ์ดํ„ฐ yfinance (^KS11 ์ฝ”์Šคํ”ผ์ง€์ˆ˜)
์•Œ๋ฆผ/์ œ์–ด python-telegram-bot

์ฃผ์˜์‚ฌํ•ญ

  • ๋“œ๋ผ์ด๋Ÿฐ ๋ชจ๋“œ๋กœ ๋จผ์ € ์ถฉ๋ถ„ํžˆ ํ…Œ์ŠคํŠธ ํ›„ ์‹ค์ „ ์ „ํ™˜ํ•˜์„ธ์š”.
  • ์‹ค์ „ ๋ชจ๋“œ์—์„œ๋Š” ์‹ค์ œ ์ฃผ๋ฌธ์ด ์ฒด๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ์†์‹ค ์œ„ํ—˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฆฌ์Šคํฌ ๊ด€๋ฆฌ ํ•œ๋„(์ฃผ์‹ 4%/5%, ์„ ๋ฌผ 3%/5%)๊ฐ€ ์ •์ƒ ๋™์ž‘ํ•˜๋Š”์ง€ ๋ฐ˜๋“œ์‹œ ํ™•์ธํ•˜์„ธ์š”.
  • API ํ‚ค๋Š” .env ํŒŒ์ผ์—๋งŒ ์ €์žฅํ•˜๊ณ , ์ ˆ๋Œ€ ์ปค๋ฐ‹ํ•˜์ง€ ๋งˆ์„ธ์š”.
  • ๋ณธ ํ”„๋กœ์ ํŠธ๋Š” ๊ต์œก/์—ฐ๊ตฌ ๋ชฉ์ ์ด๋ฉฐ, ์šด์˜ ์†์ต์— ๋Œ€ํ•œ ์ฑ…์ž„์€ ์‚ฌ์šฉ์ž ๋ณธ์ธ์—๊ฒŒ ์žˆ์Šต๋‹ˆ๋‹ค.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors