ํฐ์คํ ๋ฆฌ ๋ทฐ
๐ AI ํํธ ํธ๋ ์ด๋ฉ ์ค์ ์ด์ฉ ์๋๋ฆฌ์ค
— ๋ฐฑํ ์คํธ → ๋ชจ๋ธ ๊ฒฐ์ → ๋ฆฌ์คํฌ ์ฒดํฌ → ์ฃผ๋ฌธ ์คํ → ๋ชจ๋ํฐ๋ง๊น์ง, ์ค์ ์ด์ฉ์ฌ์ ํ๋ก์ธ์ค๋ฅผ ๊ทธ๋๋ก ๋ฐ๋ผ๊ฐ๋ค
์ง๋ ๊ธ์์๋ ๊ฐํํ์ต ๊ธฐ๋ฐ์ ์๊ธฐ์งํํ ํธ๋ ์ด๋ฉ AI๊น์ง ๋ง๋ค์์ต๋๋ค.
์ด์ ๋ ์ด ๋ชจ๋ธ์ด ์ค์ ์์ฅ์์ ์ด๋ป๊ฒ ๋์ํ๋์ง,
๊ทธ๋ฆฌ๊ณ ์ด์ฉ์ฌ๊ฐ ์ค์ ๋ก ์ด๋ป๊ฒ ์ด ์์คํ
์ ๊ตด๋ฆฌ๋์ง๋ฅผ ์์ ํ ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค.
๋งํ์๋ฉด ์ด๋ฒ ๊ธ์,
“์ค์ ํํธ ํค์งํ๋์์ ์ผํ๋ ๋งค๋์ ์ ํ๋ฃจ๋ฅผ AI๋ก ๊ทธ๋๋ก ์ฌํํ ๊ธ”
์ด๋ผ๊ณ ์๊ฐํ์๋ฉด ๋ฉ๋๋ค.
๐ 1๏ธโฃ ํ๋ฃจ ์์ – ์ ์ผ ๋ฐ์ดํฐ ์์ง & Pre-Market ์ฒดํฌ
์ด์ฉ์ฌ๋ ์์ฅ์ด ์ด๊ธฐ ์ ์ ์ ์ผ ๋ฐ์ดํฐ๋ฅผ ๋จผ์ ์ ๋ฆฌํฉ๋๋ค.
AI๋ ๋๊ฐ์ต๋๋ค.
โ ์ ์ผ ๋ฐ์ดํฐ ์์ง
prices = yf.download(tickers, period="60d")["Adj Close"]
returns = prices.pct_change().dropna()
โ ์งํ ์ ๋ฐ์ดํธ
- ๋ณ๋์ฑ(VIX)
- ๊ธ๋ฆฌ(๋ฏธ๊ตญ 10๋ ๋ฌผ)
- ์์ฅ ์ง์(S&P500, ๋์ค๋ฅ, KOSPI)
- ์์์ฌ ๊ฐ๊ฒฉ(WTI, ๊ธ)
โ ์ ์ผ ์ฃผ๋ฌธ ์คํ ๊ฒฐ๊ณผ ๋ฐ์
- fill ์ฌ๋ถ
- ์คํ์์ต
- ์ฌ๋ฆฌํผ์ง ๊ณ์ฐ
trade_log = pd.read_sql("trade_log", engine)
portfolio = pd.read_sql("portfolio", engine)
์ค๊ฑฐ๋ ๋ฐ์ดํฐ๋ ๊ฐํํ์ต ๋ชจ๋ธ์ ๋ค์ ํ์ต ์์ฌ๊ฐ ๋ฉ๋๋ค.
๐ง 2๏ธโฃ ์ ๋ต ๊ฒฐ์ ๋จ๊ณ – AI ๋ชจ๋ธ๋ค์ "ํฉ์"
ํํธ ํ๋์์๋ ํ๋์ ๋ชจ๋ธ์ด ์๋๋ผ,
์ฌ๋ฌ ์ ๋ต ๋ชจ๋ธ๋ค์ด ์๋ก ์๊ฒฌ์ ๋ด๊ณ → ํฉ์์ ์ ์ฐพ๋ ๋ฐฉ์์ผ๋ก ์ด์ฉํฉ๋๋ค.
AI ์์คํ ๋ ์ด๋ ๊ฒ ๊ตฌ์ฑํ ์ ์์ต๋๋ค:
๋ชจ๋ธ ์ญํ
| ๐ Transformer ์์ธก ๋ชจ๋ธ | ๋จ๊ธฐ ๋ฐฉํฅ์ฑ ์์ธก |
| ๐ AutoML ์ต์ ํ ๋ชจ๋ธ | ์์ฅ ๊ตญ๋ฉด๋ณ ์์ฐ๋ฐฐ๋ถ |
| ๐ RL ํธ๋ ์ด๋ฉ ๋ชจ๋ธ | ํ๋(๋งค์/๋งค๋) ๊ฒฐ์ |
| ๐ ๋ฆฌ์คํฌ ๋งค๋์ | ๋น์ค ์กฐ์ |
โ ์ ๋ต ์ ํธ ์ทจํฉ
signal_ml = ml_predict(prices)
signal_rl = rl_agent.act(current_state)
signal_macro = macro_model.predict_cycle()
โ ์ ํธ ๊ฐ์ค ํ๊ท
final_signal = (
0.4 * signal_ml +
0.4 * signal_rl +
0.2 * signal_macro
)
“๋จ๊ธฐ → ์ค๊ธฐ → ๊ฑฐ์”๋ฅผ ๊ท ํ ์๊ฒ ๋ฐ์ํ ํ์ด๋ธ๋ฆฌ๋ ์ ๋ต์ด ์์ฑ๋ฉ๋๋ค.
๐ก 3๏ธโฃ ๋ฆฌ์คํฌ ๊ด๋ฆฌ – VaR/CVaR ๊ธฐ๋ฐ ์๋ ๋น์ค ์กฐ์
์ ๋ต์ด ์๋ฌด๋ฆฌ ์ข์๋ ๋ฆฌ์คํฌ๋ฅผ ํต์ ํ์ง ๋ชปํ๋ฉด ์ด์ฉ ์คํจ์
๋๋ค.
๋ฆฌ์คํฌ ๋งค๋์ ๋ ์ต์ข
์ ํธ๋ฅผ ๋ฐ์ ‘์ง๊ธ ๊ณต๊ฒฉํด์ผ ํ ์ง, ๋ฐฉ์ดํด์ผ ํ ์ง’๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
โ ์: CVaR ๊ธฐ์ค ๋น์ค ์ถ์
var, cvar = calc_var(returns), calc_cvar(returns)
risk_score = var + 0.5 * cvar
if risk_score > 0.05:
leverage = 0.5
elif risk_score > 0.03:
leverage = 0.7
else:
leverage = 1.0
position_size = final_signal * leverage
์์น์ฅ์๋ ๋ ๋ฒ๋ฆฌ์ง ๊ณผ๋ค ๋ฐฉ์ง,
ํ๋ฝ์ฅ์๋ ๋น์ค ์ถ์ ํ ํ๊ธ ํ๋ณด.
๐ 4๏ธโฃ ์ฃผ๋ฌธ ์์ฑ – ํฌํธํด๋ฆฌ์ค ๋ฆฌ๋ฐธ๋ฐ์ฑ
์ ํธ์ ๋ฆฌ์คํฌ ์ค์ฝ์ด๊ฐ ๊ฒฐ์ ๋๋ฉด AI๋ ์ฃผ๋ฌธ์ ์์ฑํฉ๋๋ค.
โ ํ์ฌ vs ๋ชฉํ ๋น์ค ๋น๊ต
current_alloc = portfolio_to_weights(portfolio)
target_alloc = position_size_to_weights(position_size)
diff = target_alloc - current_alloc
โ ์ฐจ์ด๊ฐ ์ผ์ ๊ธฐ์ค์ ์ด๊ณผํ๋ฉด ์ฃผ๋ฌธ ์์ฑ
(๋ถํ์ํ ๊ณผ๋ํ ๋งค๋งค ๋ฐฉ์ง)
orders = diff[abs(diff) > 0.02]
์:
AAPL +4.2% → ๋งค์
TSLA -3.7% → ๋งค๋
GLD +2.5% → ๋งค์
๐ต 5๏ธโฃ ์ฃผ๋ฌธ ์คํ – Slippage + Market Impact ๋ฐ์
์ค์ ์์๋ ์ฒด๊ฒฐ๊ฐ๋ ์์ธกํ ๊ฐ๊ฒฉ = ์ค์ ์ฒด๊ฒฐ ๊ฐ๊ฒฉ์ด ์๋๋๋ค.
๊ทธ๋์ ๋ค์ ์์๋ฅผ ์๋ ๋ฐ์ํด์ผ ํฉ๋๋ค.
โ ์ฌ๋ฆฌํผ์ง(Slippage)
โ ์์ฅ ์ถฉ๊ฒฉ ๋น์ฉ(Impact)
โ ์ ๋์ฑ(Volume Constraint)
executed_price = round_price(
midprice * (1 + slip_rate * side)
)
์ด๋ ๊ฒ ์ฒด๊ฒฐ๋ ๊ฐ๊ฒฉ์ผ๋ก ์ต์ข ํฌํธํด๋ฆฌ์ค๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค.
๐ 6๏ธโฃ ์ค์๊ฐ ๋ชจ๋ํฐ๋ง – Streamlit ๋์๋ณด๋
์ด์ ์ฐ๋ฆฌ๊ฐ ๋ง๋ ํตํฉ ๋์๋ณด๋๊ฐ ์ด๋ฆฝ๋๋ค.
- ์ค์๊ฐ PnL
- ๋ฆฌ์คํฌ ์งํ
- ๋ชจ๋ธ ๋ฒ์
- ์ฃผ๋ฌธ ๋ก๊ทธ
- ์์ฅ ๋ณ๋์ฑ ์ํ
- ์์ฐ๋ฐฐ๋ถ ์ฐจํธ
ํฌํธํด๋ฆฌ์ค ์ ์ฒด๊ฐ “ํ๋์ ์ด์์๋ AI”์ฒ๋ผ ์์ง์ ๋๋ค.
๐ 7๏ธโฃ ์ฅ ๋ง๊ฐ ํ – ๋ฐฑํ ์คํธ & ํ์ต ๋ฃจํ
์์ฅ์ด ๋ซํ ํ AI๋ ๋ค์ ์์ ์ ํฉ๋๋ค.
โ 1) ์ผ์ผ ๋ฐฑํ ์คํธ
์๋ก์ด ์ ๋ต ์ฑ๋ฅ ํ๊ฐ
โ 2) ๊ฐํํ์ต ์ ๋ฐ์ดํธ
์ค๊ฑฐ๋ ๋ก๊ทธ๋ฅผ ๊ฒฝํ์ผ๋ก ์ฌํ์ต
agent.remember(state, action, reward, next_state, done)
agent.train()
โ 3) ์ ๋ฐ์ดํฐ ๊ธฐ๋ฐ AutoML ์ฌํ๋
์ต์ ์ ์ ๋ต ํ๋ผ๋ฏธํฐ ๊ฐฑ์
โ 4) MLflow๋ก ์ฑ๋ฅ ํ๊ฐ ํ
๐ ์๋ “์น๊ฒฉ or ํ๊ธฐ”
๐งฌ 8๏ธโฃ ์ ์ฒด ๋ฃจํ ๊ตฌ์กฐ – ์์ ์์จ ์ด์ฉ
[ Pre-market ]
↓
[ AI ์ ๋ต๊ฒฐ์ ]
↓
[ ๋ฆฌ์คํฌ ๋งค๋์ ]
↓
[ ์ฃผ๋ฌธ ์์ฑ ]
↓
[ ์ฃผ๋ฌธ ์คํ ]
↓
[ ์ค์๊ฐ ๋ชจ๋ํฐ๋ง ]
↓
[ ์ฅ ๋ง๊ฐ ]
↓
[ ๊ฐํํ์ต → AutoML → ๋ชจ๋ธ ์น๊ฒฉ ]
↓
[ ๋ค์๋ ๋ค์ ์์ ]
์ธ๊ฐ์ด ํ๋ ๊ฑด ๋จ ํ๋.
๋์๋ณด๋ ํ์ธ๋ฟ์ด๋ค.
AI๊ฐ ์ ์ฒด ๊ฑฐ๋ ์ํ๊ณ๋ฅผ ์๋์ผ๋ก ๊ตด๋ฆฐ๋ค.
๐ง ๋ค์ ๊ธ ์๊ณ
๋ค์ ํธ์์๋ **“๊ฐ์ธ ํฌ์์๋ฅผ ์ํ AI ํํธ ์ ๋ต ์ ์ฉ๋ฒ – ์์ก, ETF, ์ ๋ฆฝ์๊น์ง”**๋ฅผ ๋ค๋ฃน๋๋ค.
์ฌ๊ธฐ๊น์ง๋ ๊ธฐ๊ด๊ธ ์์คํ
์ด์์ง๋ง,
๋ค์ ๊ธ์ ์ผ๋ฐ ํฌ์์๋ ๋ฐ๋ก ์ ์ฉ ๊ฐ๋ฅํ ํ์ค์ ์ธ AI ํ์ฉ๋ฒ์ ์ ๋ถ ๊ณต๊ฐํฉ๋๋ค.
AIํธ๋ ์ด๋ฉ,๊ฐํํ์ต,ํํธ์ด์ฉ,๋ฐฑํ ์คํธ,๋ฆฌ์คํฌ๊ด๋ฆฌ,Streamlit,MLflow,์๋๋งค๋งค,ํฌํธํด๋ฆฌ์ค๊ด๋ฆฌ,ํธ๋ ์ด๋ฉ์ ๋ต
'์ฃผ์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
- Total
- Today
- Yesterday
- ์น๊ฐ๋ฐ
- ai์ฒ ํ
- NestJS
- Prisma
- JAX
- Python
- fastapi
- rag
- ๋ฅ๋ฌ๋
- PostgreSQL
- llm
- Redis
- kotlin
- seo ์ต์ ํ 10๊ฐ
- JWT
- ํ๋ก ํธ์๋๊ฐ๋ฐ
- Express
- REACT
- SEO์ต์ ํ
- ๊ฐ๋ฐ๋ธ๋ก๊ทธ
- ์ฟ ๋ฒ๋คํฐ์ค
- flax
- Next.js
- ๋ฐฑ์๋๊ฐ๋ฐ
- ์๋ฐ๋ฉด์
- CI/CD
- nextJS
- node.js
- Docker
- DevOps
| ์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
