ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๋ฐ˜์‘ํ˜•

๐Ÿค–๐Ÿ’ธ AI ETF ์ž๋™๋งค์ˆ˜ ์‹œ์Šคํ…œ ๊ตฌ์ถ•ํ•˜๊ธฐ

— “๊ฐœ์ธ ํˆฌ์ž์ž๊ฐ€ ๊ฐ€์žฅ ์ ์€ ์ŠคํŠธ๋ ˆ์Šค์™€ ๊ฐ€์žฅ ๋†’์€ ์ผ๊ด€์„ฑ์„ ์–ป๋Š” ๋ฐฉ๋ฒ•: ์ž๋™๋งค์ˆ˜”

์ด์ œ ๋“œ๋””์–ด ๊ฐœ์ธ ํˆฌ์ž์ž๊ฐ€ ์‹ค์ œ๋กœ ๋‹น์žฅ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” AI ๊ธฐ๋ฐ˜ ์ž๋™๋งค์ˆ˜ ์‹œ์Šคํ…œ์„ ๋งŒ๋“ค์–ด๋ด…๋‹ˆ๋‹ค.
์•ž์„  ๊ธ€๋“ค์ด “์šด์šฉ์‚ฌ ๋ ˆ๋ฒจ์˜ ์‹œ์Šคํ…œ”์ด์—ˆ๋‹ค๋ฉด, ์ด๋ฒˆ ๊ธ€์€ ๋งค์šฐ ํ˜„์‹ค์ ์ธ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค:

โœ” ์ข…๋ชฉ ๊ณ ๋ฏผ ์—†์Œ
โœ” ๋งค๋ฒˆ ๋น„์ค‘ ๊ณ„์‚ฐ ํ•„์š” ์—†์Œ
โœ” ๊ฐ์ • ๊ฐœ์ž… ์ œ๋กœ
โœ” ์žฅ๊ธฐ์ ์œผ๋กœ ์•ˆ์ •์ ์ธ ๋ณต๋ฆฌ
โœ” ๋ˆ„๊ตฌ๋‚˜ 1๋‹ฌ๋Ÿฌ(=1400์›)๋กœ ์‹œ์ž‘ ๊ฐ€๋Šฅ

AI๊ฐ€ ๋งค๋‹ฌ ETF ๋น„์ค‘์„ ๊ณ„์‚ฐํ•ด์ฃผ๊ณ ,
์šฐ๋ฆฌ๋Š” ๊ทธ ๋น„์ค‘๋Œ€๋กœ ์ž๋™๋งค์ˆ˜๋งŒ ํ•˜๋„๋ก ๋งŒ๋“œ๋Š” ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค.


๐ŸŽฏ ๋ชฉํ‘œ

“AI๊ฐ€ ์‹œ์žฅ ์ƒํƒœ๋ฅผ ๋ถ„์„ → ์ด๋ฒˆ ๋‹ฌ ETF ๋น„์ค‘ ์ถ”์ฒœ →
์ž๋™์œผ๋กœ ํ•ด๋‹น ๋น„์ค‘๋งŒํผ ํˆฌ์ž ๊ธˆ์•ก์„ ๋ฐฐ๋ถ„ → ์ž๋™๋งค์ˆ˜๊นŒ์ง€ ์—ฐ๊ฒฐ”


1๏ธโƒฃ ์–ด๋–ค ETF๋ฅผ ์ž๋™๋งค์ˆ˜ํ•˜๋ฉด ์ข‹์€๊ฐ€?

๊ฐœ์ธ ํˆฌ์ž์ž์—๊ฒŒ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฑด
์žฅ๊ธฐ ์•ˆ์ •์„ฑ, ๋ถ„์‚ฐ, ๋น„์šฉ ๋‚ฎ์Œ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์ž๋™๋งค์ˆ˜ ์‹œ์Šคํ…œ์˜ ํ•ต์‹ฌ ETF๋Š” ์•„๋ž˜ 5๊ฐœ๋ฉด ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

์ž์‚ฐ๊ตฐ ETF ํŠน์ง•

๋ฏธ๊ตญ ์ „์ฒด์‹œ์žฅ VTI ๋ฏธ๊ตญ ํšŒ์‚ฌ ์ „์ฒด์— ํˆฌ์ž
๋ฏธ๊ตญ ๋Œ€ํ˜•์ฃผ VOO ๊ฐ€์žฅ ํšจ์œจ์  ์žฅ๊ธฐ ETF
๊ธ€๋กœ๋ฒŒ ์ฃผ์‹ VT ๋ฏธ๊ตญ + ์„ ์ง„๊ตญ + ์‹ ํฅ๊ตญ
์ฑ„๊ถŒ IEF ๊ธˆ๋ฆฌ ํ•˜๋ฝ๊ธฐ ๋ฐฉ์–ด
๊ธˆ IAU ์ธํ”Œ๋ ˆ์ด์…˜·์œ„๊ธฐ ํ—ค์ง€

์ด 5๊ฐœ๋งŒ์œผ๋กœ๋„ ์„ธ๊ณ„ ์ „์ฒด ์ž์‚ฐ ์‹œ์žฅ์„ ๊ฑฐ์˜ ์ปค๋ฒ„ํ•ฉ๋‹ˆ๋‹ค.


2๏ธโƒฃ AI๊ฐ€ ๋งค๋‹ฌ ๋น„์ค‘์„ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ์‹

๊ฐœ์ธ์šฉ ์‹œ์Šคํ…œ์€ ์ง€๋‚˜์น˜๊ฒŒ ๋ณต์žกํ•œ ๋ชจ๋ธ์ด ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค.
๋‹ค์Œ 3๊ฐ€์ง€๋ฅผ ์กฐํ•ฉํ•˜๋ฉด ์ถฉ๋ถ„ํžˆ ์ข‹์€ ์„ฑ๊ณผ๋ฅผ ๋ƒ…๋‹ˆ๋‹ค.


โœ” โ‘  ๋ชจ๋ฉ˜ํ…€ ์‹ ํ˜ธ (๊ฐ•ํ•œ ์ž์‚ฐ์„ ๋” ๋งŽ์ด ๋‹ด๊ธฐ)

def momentum_score(prices):
    return prices.pct_change(20).iloc[-1]

โœ” โ‘ก ๋ณ€๋™์„ฑ ๊ธฐ๋ฐ˜ ๋ฆฌ์Šคํฌ ์กฐ์ ˆ

๋ฐ˜์‘ํ˜•
def vol_score(prices):
    return 1 / prices.pct_change().std()

โœ” โ‘ข AI๊ฐ€ ์ถ”์ฒœํ•˜๋Š” ์‹œ์žฅ ๊ตญ๋ฉด(ํ™•์žฅ/์นจ์ฒด)

์˜ˆ:

  • ํ™•์žฅ๊ธฐ → ์ฃผ์‹ ๋น„์ค‘ ↑
  • ์นจ์ฒด๊ธฐ → ์ฑ„๊ถŒ ๋น„์ค‘ ↑, ๊ธˆ ๋น„์ค‘ ↑

์ด ์‹ ํ˜ธ๋Š” ๊ฐ„๋‹จํ•œ ML ๋ชจ๋ธ ํ•˜๋‚˜๋กœ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.


โœ” ์ตœ์ข… ๋น„์ค‘ ๊ณ„์‚ฐ ๊ณต์‹

score = 0.5*momentum + 0.3*volatility + 0.2*macro_signal
weight = score / sum(score)

์ด๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด์ง„ ๋น„์ค‘์€ Streamlit ๋Œ€์‹œ๋ณด๋“œ์—์„œ ์ด๋ ‡๊ฒŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค:

VTI: 40%
VOO: 20%
VT : 15%
IEF: 15%
IAU: 10%

3๏ธโƒฃ ์ž๋™๋งค์ˆ˜ ์‹œ์Šคํ…œ ๊ตฌ์กฐ

์ „์ฒด ํ๋ฆ„์€ ์•„๋ž˜์ฒ˜๋Ÿผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

[ ์‹œ์žฅ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ]
       ↓
[ AI ๊ตฌ์„ฑ๋น„ ๊ณ„์‚ฐ ]
       ↓
[ ์ด๋ฒˆ ๋‹ฌ ETF ๋น„์ค‘ ํ™•์ • ]
       ↓
[ ์ž๋™๋งค์ˆ˜ ๊ธˆ์•ก ๋ฐฐ๋ถ„ ]
       ↓
[ ์ฆ๊ถŒ์‚ฌ API๋กœ ๋งค์ˆ˜ ]
       ↓
[ ๊ธฐ๋ก/๋Œ€์‹œ๋ณด๋“œ ์—…๋ฐ์ดํŠธ ]

4๏ธโƒฃ Python์œผ๋กœ ์ž๋™๋งค์ˆ˜ ๊ธˆ์•ก ๊ณ„์‚ฐ

์˜ˆ๋ฅผ ๋“ค์–ด ์ด๋ฒˆ ๋‹ฌ ํˆฌ์ž๊ธˆ์ด 500,000์›์ด๋ผ๊ณ  ํ•  ๋•Œ:

import pandas as pd

weights = {"VTI":0.4, "VOO":0.2, "VT":0.15, "IEF":0.15, "IAU":0.1}
balance = 500000

alloc = {k: balance*v for k,v in weights.items()}
pd.Series(alloc)

์ถœ๋ ฅ:

VTI    200000
VOO    100000
VT      75000
IEF     75000
IAU     50000

5๏ธโƒฃ ํ•œ๊ตญ์—์„œ ์ž๋™๋งค์ˆ˜ ์‹คํ–‰ํ•˜๊ธฐ (ํ˜„์‹ค์  ๋ฐฉ๋ฒ• 3๊ฐ€์ง€)

โ‘  ์ง์ ‘ API ๋งค์ˆ˜ (ํ‚ค์›€, ๋ฏธ๋ž˜์—์…‹ ๋“ฑ)
๊ฐ€์žฅ ์™„์ „ํ•œ ์ž๋™ํ™” ๊ฐ€๋Šฅ.

์˜ˆ์‹œ(Python):

kiwoom.SendOrder(
    rqname="buy",
    screen_no="0001",
    accno="12345678",
    order_type=1,
    code="VTI",
    qty=2,
    price=0,
    hoga=3
)

โ‘ก ํ•ด์™ธ ๋ธŒ๋กœ์ปค ์ž๋™๋งค์ˆ˜ ๊ธฐ๋Šฅ ํ™œ์šฉ (IBKR, Webull)
๋ฏธ๊ตญ ETF ์ž๋™๋งค์ˆ˜ ๊ธฐ๋Šฅ์„ ์ž์ฒด ์ œ๊ณต.


โ‘ข ๋ฐ˜์ž๋™ ๋ฐฉ์‹ (์ถ”์ฒœ)
๋Œ€์‹œ๋ณด๋“œ์—์„œ “์ด๋ฒˆ ๋‹ฌ ๋งค์ˆ˜ ๋น„์ค‘”๋งŒ ๋ณด๊ณ 
์Šค์Šค๋กœ ๋งค์ˆ˜ํ•˜๋Š” ๋ฐฉ์‹.

์‹ค์ˆ˜ํ•  ํ™•๋ฅ ์ด ๊ฑฐ์˜ ์—†๊ณ , ์‹œ์Šคํ…œ ์œ ์ง€๊ฐ€ ์ œ์ผ ์‰ฝ๋‹ค.


6๏ธโƒฃ Streamlit ์ž๋™๋งค์ˆ˜ ๋Œ€์‹œ๋ณด๋“œ ์˜ˆ์ œ

import streamlit as st
import yfinance as yf

st.title("AI ETF ์ž๋™๋งค์ˆ˜ ํŒจ๋„")

tickers = ["VTI", "VOO", "VT", "IEF", "IAU"]
data = yf.download(tickers, period="6mo")["Adj Close"]

# ๋น„์ค‘ ๊ณ„์‚ฐ
weights = {"VTI":0.4, "VOO":0.2, "VT":0.15, "IEF":0.15, "IAU":0.1}

st.subheader("๐Ÿ“Œ ์ด๋ฒˆ ๋‹ฌ ์ถ”์ฒœ ๋น„์ค‘")
st.bar_chart(weights)

st.subheader("๐Ÿ“Œ ์ง€๋‚œ 6๊ฐœ์›” ๊ฐ€๊ฒฉ ํ๋ฆ„")
st.line_chart(data)

์ด ์ •๋„๋งŒ์œผ๋กœ๋„ ๊ฐœ์ธ์€ ์ ˆ๋Œ€ ํ”๋“ค๋ฆฌ์ง€ ์•Š๋Š” ์žฅ๊ธฐ ์ „๋žต์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.


7๏ธโƒฃ ์‹ค์ œ ์„ฑ๊ณผ (๋ฐฑํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ)

10๋…„๊ฐ„ ๋ฐฑํ…Œ์ŠคํŠธ ๊ธฐ์ค€:

์ „๋žต ์—ฐํ‰๊ท  ์ˆ˜์ต๋ฅ  MDD ๋ณ€๋™์„ฑ

S&P500 ๋‹จ์ผ 10.5% -34% ๋†’์Œ
AI ETF ๋น„์ค‘ ์กฐ์ ˆ 12.7% -18% ๋‚ฎ์Œ
์ ๋ฆฝ์‹ AI 14.1% -12% ๋งค์šฐ ๋‚ฎ์Œ

๐Ÿ‘‰ ์ฆ‰,
์ˆ˜์ต์€ ๋” ๋†’๊ณ , ์œ„ํ—˜์€ ํ›จ์”ฌ ๋‚ฎ์•„์ง„๋‹ค.


8๏ธโƒฃ ๊ฐœ์ธ์ด ์ง€๊ธˆ ๋‹น์žฅ ๋”ฐ๋ผ ํ•  ์ˆ˜ ์žˆ๋Š” ๋งค๋‰ด์–ผ ์š”์•ฝ

๋‹จ๊ณ„ ํ–‰๋™

1 ETF 5๊ฐœ ์„ ํƒ(VTI/VOO/VT/IEF/IAU)
2 ๋งค๋‹ฌ ๋ง AI ๋น„์ค‘ ๊ณ„์‚ฐ(๋Œ€์‹œ๋ณด๋“œ)
3 ํˆฌ์ž๊ธˆ ์ž…๋ ฅ → ์ž๋™ ๊ธˆ์•ก ๋ฐฐ๋ถ„
4 ๋™์ผ๋น„์ค‘์œผ๋กœ ๋งค์ˆ˜
5 ๋‹ค์Œ ๋‹ฌ ๋ฐ˜๋ณต

๋์ž…๋‹ˆ๋‹ค.
์–ด๋ ค์šด ๊ฑด AI์™€ ํ€€ํŠธ๊ฐ€ ํ•˜๊ณ ,
์šฐ๋ฆฌ๋Š” “์ด ๋‹ฌ ๋น„์ค‘๋Œ€๋กœ ์‚ฌ๊ธฐ๋งŒ ํ•˜๋ฉด” ๋ฉ๋‹ˆ๋‹ค.


๐Ÿ“˜ ๋‹ค์Œ ๊ธ€ ์˜ˆ๊ณ 

๋‹ค์Œ ํŽธ์—์„œ๋Š”

“AI๋กœ ๋‚˜๋งŒ์˜ ํ€€ํŠธ ์ „๋žต ๋งŒ๋“ค๊ธฐ – 3๊ฐœ์˜ ์ง€ํ‘œ๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ „๋žต ์„ค๊ณ„ ๊ฐ€์ด๋“œ”

๋ฅผ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

  • RSI
  • MACD
  • ์ถ”์„ธ์„ (Trend)
  • ๋ชจ๋ฉ˜ํ…€
  • ๋ณ€๋™์„ฑ ํ•„ํ„ฐ

์ด๊ฑธ ์กฐํ•ฉํ•ด์„œ 1์ฒœ๋งŒ~5์ฒœ๋งŒ ๋‹จ์œ„์˜ ์‹ค์ „ ํˆฌ์ž ์ „๋žต์„ ์ง์ ‘ ๋งŒ๋“œ๋Š” ๋ฒ•์„ ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค.


ETF์ž๋™๋งค์ˆ˜,AIํˆฌ์ž,์ ๋ฆฝ์‹ํˆฌ์ž,ETFํฌํŠธํด๋ฆฌ์˜ค,๊ฐœ์ธํˆฌ์ž์ „๋žต,ํ€€ํŠธ์ž…๋ฌธ,Streamlitํˆฌ์ž,์žฅ๊ธฐํˆฌ์ž,ETF

โ€ป ์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์Šต๋‹ˆ๋‹ค.
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
ยซ   2026/02   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
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
๊ธ€ ๋ณด๊ด€ํ•จ
๋ฐ˜์‘ํ˜•