ํผ๋๋ก ๋์๊ฐ๊ธฐ
Dev.toBackend
์๋ฌธ ์ฝ๊ธฐ
Mean-Reversion ์ ๋ต ๊ธฐ๋ฐ์ ๊ฒฌ๊ณ ํ Python ํธ๋ ์ด๋ฉ ๋ด ์ํคํ ์ฒ ์ค๊ณ
๐ The Jediโs Guide to Building a Python StockโMarket Trading Bot
AI ์์ฝ
Context
์ด๊ธฐ ์ค๊ณ์ ํ๋์ฝ๋ฉ๋ ์ค์ ๊ฐ๊ณผ ์์ธ ์ฒ๋ฆฌ ๋ถ์ฌ๋ก ์ธํ ์์คํ ๋ถ์์ ์ฑ ๋ฐ์. API ์๋ต ๊ตฌ์กฐ ๋ณํ๋ ๋คํธ์ํฌ ์ฅ์ ์ ์ ์ฒด ๋ฃจํ๊ฐ ์ค๋จ๋๋ Single Point of Failure ๋ฌธ์ ๋ ธ์ถ.
Technical Solution
- Mean-Reversion ์ ๋ต ๊ตฌํ์ ์ํด 20-day Moving Average ๊ธฐ๋ฐ์ Z-Score ๊ณ์ฐ ๋ก์ง ๋์
- API ์๋ต ๋ฐ์ดํฐ์ ์ ์ฐํ ์ฒ๋ฆฌ๋ฅผ ์ํด Pandas DataFrame ๊ธฐ๋ฐ์ ๋ฐ์ดํฐ ๊ตฌ์กฐํ ์ ์ฉ
- ํ๊ฒฝ ๋ณ์(os.getenv) ํ์ฉ์ ํตํ API Key ๊ด๋ฆฌ๋ก ๋ณด์์ฑ ๊ฐํ ๋ฐ ์ค์ ๋ถ๋ฆฌ
- ๋ชจ๋ํ ํจ์ ์ค๊ณ๋ก ๋ฐ์ดํฐ ์์ง, ์ ํธ ๊ณ์ฐ, ์ฃผ๋ฌธ ์คํ ๋ก์ง์ ๋ถ๋ฆฌํ์ฌ ๋จ์ ํ ์คํธ ๋ฐ ๊ต์ฒด ์ฉ์ด์ฑ ํ๋ณด
- Logging ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋์ ์ ํตํ ์ค์๊ฐ ์์คํ ์ํ ๋ชจ๋ํฐ๋ง ๋ฐ ๋๋ฒ๊น ํจ์จ์ฑ ์ฆ๋
- Alpaca Paper Trading API ์ฐ๋์ ํตํด ์ค์ ์์ฐ ๋ฆฌ์คํฌ ์๋ ๊ฒ์ฆ ํ๊ฒฝ ๊ตฌ์ถ
์ค์ฒ ํฌ์ธํธ
- ์ธ๋ถ API ์ฐ๋ ์ JSON ๊ตฌ์กฐ ๋ณ๊ฒฝ์ ๋์ํ๋ ๋ฐ์ดํฐ ์ ํจ์ฑ ๊ฒ์ฆ ๋ก์ง ํฌํจ ์ฌ๋ถ ํ์ธ - ๋ฏผ๊ฐ ์ ๋ณด(API Key)์ ํ๋์ฝ๋ฉ ์ ๊ฑฐ ๋ฐ ํ๊ฒฝ ๋ณ์ ๊ด๋ฆฌ ์ฒด๊ณ ์ ์ฉ - ๋น์ฆ๋์ค ๋ก์ง(์ ๋ต)๊ณผ ์ธํ๋ผ ๋ก์ง(API ํต์ )์ ์๊ฒฉํ ๊ด์ฌ์ฌ ๋ถ๋ฆฌ(Separation of Concerns) ์ค์ฒ - ๋คํธ์ํฌ ์ฅ์ ๋ฐ API Rate Limit ๋์์ ์ํ Exception Handling ๋ฐ Retry ์ ๋ต ์๋ฆฝ