English | ไธญๆ | ๆฅๆฌ่ช | ํ๊ตญ์ด | ุงูุนุฑุจูุฉ | Espaรฑol
ํ ๋ฒ์ ๋ช ๋ น์ผ๋ก ์์ด์ ํธ์ ์ข ํฉ์ ์ธ ํธ๋ ์ด๋ฉ ์ญ๋์ ๋ํ์ธ์
์น์ฌ์ดํธ ย ยทย ๋ฌธ์ ย ยทย ๋ด์ค ย ยทย ๊ธฐ๋ฅ ย ยทย ์๋์ฐ ๊ณ์ ย ยทย ๋ฐ๋ชจ ย ยทย ๋น ๋ฅธ ์์ ย ยทย ์์ ย ยทย API / MCP ย ยทย ๋ก๋๋งต ย ยทย ๊ธฐ์ฌํ๊ธฐ
โ ๏ธ ๋ณด์ ๊ฒฝ๊ณ : X ๊ณ์ VibeTrading_HKU, Virtuals ํ๋ก์ ํธ101845, ํ ํฐ ์ปจํธ๋ํธ0x640BDBF77b6447E8b7DB7894cED84BD1c40571f4๋ ๋ชจ๋ Vibe-Trading ๊ณต์๊ณผ ๋ฌด๊ดํฉ๋๋ค. Vibe-Trading์ ์ด๋ ํ ํ ํฐ์ด๋ ๋ฐ์ฝ์ธ๋ ๋ฐํํ๊ฑฐ๋ ๊ณต์์ ์ผ๋ก ์ง์งํ ์ ์ด ์์ต๋๋ค. ํด๋น ํ ํฐ์ ๊ตฌ๋งคํ๊ฑฐ๋ ์ง๊ฐ์ ์ฐ๊ฒฐํ๊ฑฐ๋ ์ด๋ ํ ์๋ช ๋ ํ์ง ๋ง์ธ์. ์์ธํ ๋ณด๊ธฐ.
- 2026-08-25 ๐ก๏ธ ๋ผ์ด๋ธ ๊ฒ์ดํธ์ fail-open ๋ ๊ฑด ์ฐจ๋จ; purged CV๊ฐ ํ
์คํธ ๋ธ๋ก ์ฌ์ด ํ๋ จ ๋ฐ์ดํฐ๋ฅผ ์ง์ฐ๋ ๋ฌธ์ ์์ : Alpaca ์์ด ์์ ์ต์คํฌ์ ๋ก ๊ธฐ๋ก๋์ด(
qty๋ ์ ๋๊ฐ, ๋ฐฉํฅ์side) ํ์๋กmax_total_exposure_usd๊ฐ ๋์จํด์ก๋ค โ ์ด์ TAP JSON๊ณผ ์ง์ SDK ๋ ๊ฒฝ๋ก ๋ชจ๋ ์๋์ ๋ถํธ๊ฐ ๋ถ๋๋ค (#1209); OKX/Futu๋ ๊ฑฐ๋ถ๋ API ํธ์ถ์ "๋น ์ฅ๋ถ,status: ok"๋ก ๋ญ๊ฐ ์์ ๊ฒ์ดํธ๊ฐ ๋น ์ฅ๋ถ์ ๋๊ณ ํ๋๋ฅผ ํ๊ฐํ๋ค โ ์ด์ ๋ช ์์ ์ค๋ฅ ๋ดํฌ๋ฅผ ๋ฐํํ๊ณ ๊ฒ์ดํธ๋ fail-closed ํ๋ค (#1212). ๋ ๋ค #1207 ๊ฐ์ฌ ๋ก๋๋งต์ Phase 0. ์์ : ์กฐํฉํ purged CV๊ฐ ๋น์ฐ์ ํ ์คํธ ๋ธ๋ก์ ํ ๊ตฌ๊ฐ์ผ๋ก ์ทจ๊ธํด ๊ทธ ์ฌ์ด ํ๋ จ ๊ด์ธก์น๋ฅผ ์ ๋ถ purgeํ๋ค; ์ด์ ์ธ๊ทธ๋จผํธ๋ณ๋ก purgeํ๊ณ ํ๋ จ ๋ฐ์ดํฐ๊ฐ ๋น fold๋ ์์ธ๋ฅผ ๋์ง๋ค (#1204); ์ ์ฉ๋ฆฌ์คํฌ ํจ์๋ NaN/inf ์ ๋ ฅ์ ๊ฑฐ๋ถํ๋ฉฐ NaN ์ ์๋ "ํ์ ์ง๋" ํ์ ์ ๋ฐํํ์ง ์๋๋ค (#1215, #1214 ๋ซ์). ์ ๊ท: swarm ์์ปค ์ฌ์๋๊ฐ ์ํ ์๋ equal-jitter ๋ฐฑ์คํ๋ก ๋ฐ๋์๋ค (#1210, #1208์ ํฅํด);vibe-trading --swarm-retry <run_id>//swarm retry๋ก ์คํจํ ์คํ์ ๋ค์ ๋๋ฆฌ๊ณ--resume์ผ๋ก ์๋ฃ๋ ํ์คํฌ๋ฅผ ์ ์งํ๋ค (#1194). @he-yufengใ@santhrealใ@Robin1987Chinaใ@pengpengyi92ใ@SiMinus ๋๋ค๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค! - 2026-08-24 ๐ IBKR ๊ณต์ MCP๊ฐ "๋๊ตฌ ๋ชฉ๋ก๋ง ๋ณด์ด๋" ์ํ์์ ์ค์ ๋ก ์ฐ์ด๋ ์ฝ๊ธฐ ์ ์ฉ ํฌํธํด๋ฆฌ์ค ์์ค๋ก; ์ค์ผ์ค๋ง์๋ ํผ์์๋ ์คํํ ์ ์๋ ์์ด์ ํธ ๋๊ตฌ ์ถ๊ฐ: #1178์ด URL์ ๊ณ ์ณค์ง๋ง IBKR ๊ฒ์ดํธ์จ์ด๋ ๋ก๊ทธ์ธ ์ ์ FastMCP ๊ธฐ๋ณธ OAuth ํด๋ผ์ด์ธํธ ๋ฑ๋ก์ ๊ฑฐ๋ถํ์ต๋๋ค. IBKR ์ ์ฉ OAuth ํ๋ก๋ฐ์ด๋ โ ๋ธ๋ผ์ฐ์ ํ ํค๋,
token_endpoint_auth_method: none, ๊ณ ์ ์ฝ๋ฐฑ ํฌํธ, ๋ง๋ฃ ๋ฑ๋ก ๋ณต๊ตฌ๋ฅผ MCP ํธ์คํธ๊ฐapi.ibkr.com์ผ ๋๋ง ์ ์ฉ โ ๊ฐ ์ธ์ฆ์ ์๋ฃํ๊ณ (#1186), ์ค๊ณ์ข๋ก ๊ฒ์ฆ๋get_account_summary/get_account_positions๋๊ตฌ๊ฐ ๋ฒ์ฉ ๊ณ์ข/ํฌ์ง์ ์ฝ๊ธฐ๋ฅผ ์ง์ํ๊ฒ ๋์ดibkr-live-official-mcp-readonly๊ฐ/portfolio์ ์ ํจํ ์์ค๊ฐ ๋์์ต๋๋ค(#1190, #1126 ์ข ๋ฃ). ์ ๊ท: ์์ด์ ํธ์๊ฒ ๋ณด์ด๋ ์ค์ผ์ค๋ง ๋๊ตฌ๋scheduled_researchํ๋๋ฟ โpropose_create/propose_cancel์ ํ์ฌ ์ฌ์ฉ ์ค์ธ ํ๋ฉด์์ ํ์ธํ๊ธฐ ์ ๊น์ง ์์ ์ ์ฅ์๋ฅผ ๊ฑด๋๋ฆฌ์ง ์์ต๋๋ค(Web ํ์ธ ์นด๋, CLIy/N, IM์์๋ ์ ํํconfirm/็กฎ่ฎค์ผ๋ก ๋ต์ฅ). ์ ๋ฌ ๋์์ ์ด์์๊ฐ ๊ตฌ์ฑํ ๋ถํฌ๋ช ์ฐธ์กฐ๋ก ์์ chat/user id๋ฅผ ์ ๋ ๋ ธ์ถํ์ง ์์ผ๋ฉฐ,end_at์ด ์ง๋ ์์ ์ ๋ง๋ฃ๋์ด ๋ค์ ์คํ๋์ง ์์ต๋๋ค(#1187). ์์ : comps์ 3๋ ์ฌ๋ฌด์ ํ ๋ชจ๋ธ์ด ์ฐ์ ์ ๋ค์ด๊ฐ๋ ๋ชจ๋ ์ ๊ตฌ์์ ๋น์ ํ ์ ๋ ฅ์ ๊ฑฐ๋ถํฉ๋๋ค โ ์ด์ ์๋ NaN ๋์ข ์ ์ฒด ์งํ๊ฐ ๋ฐฐ์ ๋ถํฌ์ ํฌํจ๋์ด ์ค์๊ฐ์ NaN์ผ๋ก ๋๊ณ ๊ฐ๊ณ ,abs(nan) > tolerance๋False๋ผ์ NaN ๋์ฐจ๋์กฐํ๊ฐ ํ๋ ๊ฒ์ฌ๋ฅผ ํต๊ณผํ์ต๋๋ค(#1184, #1183 ์ข ๋ฃ);get_market_data๋ ์๋ชป๋ ํธ์ถ๋ก ๋ก๋ ํด๋ฐฑ ์ฒด์ธ์ ์๋ชจํ๊ธฐ ์ ์ codes/๋ ์ง/source/interval์ ๊ฒ์ฆํ๊ณ , source ์ด๊ฑฐํ์ด ๋ฑ๋ก๋ 6๊ฐ ๋ก๋๋ฅผ ์กฐ์ฉํ ๊ฑฐ๋ถํ๋ ๋ฌธ์ ๋ ์ฌ๋ผ์ก์ต๋๋ค(#1185); Feishu QR ๋ก๊ทธ์ธ์ ๋ฑ ํ ๋ฒ๋ง ๋ด๋ ค์ค๋ ์ฑ ์๊ฒฉ ์ฆ๋ช ์ ์์์ ์ผ๋ก, ์์ ์ ์ ์ฉ ๊ถํ์ผ๋ก ์ ์ฅํฉ๋๋ค(#1188); risk-analysis ์คํฌ ๋ฌธ์์ ์ญ์ฌ์ VaR ์์ํต๊ณ๋ ๊ณต์์ด ์ฝ๋์ ์ผ์นํ๊ฒ ๋์์ต๋๋ค(#1189). @sykuangใ@goatyycใ@AirHua-byteใ@Robin1987Chinaใ@cgycoreyใ@youngjincho02-arch ๋๋ค๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค! - 2026-08-23 ๐ IBKR MCP ์๋๊ฐ ์๋ชป๋ URL์ ๊ฐ๋ฆฌํค๋ ๋ฌธ์ ์, LLM ์ด๋ํฐ ํ๋๋ฅผ ๋ซ์ผ๋ฉด ์ ๋ถ ๋ซํ๋ ๋ฌธ์ : ๊ณต์ IBKR ์ฝ๊ธฐ ์ ์ฉ MCP ํ๋กํ ์๋, README,
SKILL.md๋ชจ๋https://api.ibkr.com/v1/api/mcp๋ฅผ ๊ฐ๋ฆฌ์ผฐ์ง๋ง, IBKR ์์ฒด AI ์ฐ๋ ํ์ด์ง๊ฐ ๊ณต๊ฐํ ์๋ํฌ์ธํธ๋https://api.ibkr.com/v1/api/mcp-public์ ๋๋ค. ์๋, README 6์ข ,SKILL.md๊ฐ ์ด์ ๋ชจ๋ ์ด ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํต๋๋ค.agent.json์ ์์ URL์ด ๋จ์ ์๋ค๋ฉดvibe-trading connector configure ibkr-live-official-mcp-readonly --yes๋ฅผ ๋ค์ ์คํํ์ธ์. IBKR ๊ฒ์ดํธ์จ์ด๊ฐ OAuth ํด๋ผ์ด์ธํธ ๋ฑ๋ก์ ๊ฑฐ๋ถํ๋ ๋จ๊ณ๋ #1126์์ ๊ณ์ ์ถ์ ํฉ๋๋ค (#1178). ์์ :ChatLLM.close()๊ฐ LangChain์ ํ๋ก์ธ์ค ์ ์ญ ์บ์ HTTPX ํด๋ผ์ด์ธํธ๊น์ง ๋ซ์, ์ ๋ชฉ ์์ฑ์ด๋ ์ด๋ฏธ์ง ์ธ์ ํธ์ถ์ด ํ ๋ฒ ๋๋๋ฉด ์ดํ ๋ชจ๋ ์์ฒญ์ด ์ฌ์์ ์ ๊น์ง "client has been closed"๋ก ์คํจํ์ต๋๋ค. ์ด์ Vibe-Trading์ด ์ง์ ๋ง๋ ์ ์ก ๊ณ์ธต๋ง ๋ซ์ต๋๋ค (#1182); ์๋ต ์คํธ๋ฆฌ๋ฐ ๋์ค ์๋น์ค๊ฐ ์ฌ์์๋๋ฉด ์ถ๋ ฅ๋ ํ ์คํธ๊ฐ ์ฌ๋ผ์ง๊ณ attempt๊ฐ ์์ํ running ์ํ๋ก ๋จ์์ต๋๋ค. ์ด์ ๋ถ๋ถ ์๋ต์ ์ฒดํฌํฌ์ธํธ๋ก ์ ์ฅํ๊ณ ๋ค์ ์์ ์ ๋ช ์์ ์ธ interrupted ๋ํ ๊ธฐ๋ก์ผ๋ก ๋ณต์ํฉ๋๋ค (#1180). ์ ๊ท: ์น ์ฑํ ์์ ํ์ผ ์ ํ, ๋๋๊ทธ ์ค ๋๋กญ, ํด๋ฆฝ๋ณด๋ ๋ถ์ฌ๋ฃ๊ธฐ๋ก ํ ํด์ ์ต๋ 5๊ฐ ํ์ผ์ ์ฒจ๋ถํ ์ ์์ต๋๋ค (#1179). @c020627, @AirHua-byte ๋ ๊ฐ์ฌํฉ๋๋ค!
์ด์ ๋ด์ค
-
2026-08-22 ๐ผ ํฌํธํด๋ฆฌ์ค ํ์ด์ง: ์ฌ๋ฌ ๋ธ๋ก์ปค์ ๋ณด์ ์ข ๋ชฉ์ ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ํ๋์: ์ฝ๊ธฐ ์ ์ฉ ์ปค๋ฅํฐ ํ๋กํ(
account.read+positions.read๋ฅผ ๊ฐ์ง ์ฐ๊ฒฐ ์ธ์คํด์ค; IBKR ๊ณต์ MCP ํ๋กํ์ ์์ง ๋์ ์๋)์ ๊ณ ๋ฅด๋ฉด ์/portfolioํ์ด์ง๊ฐ ์ด๋ฅผ ๋ถ๋ณ ์ค๋ ์ท์ผ๋ก ์ง๊ณํฉ๋๋ค โ ๋ณด์ ์ข ๋ชฉ๋ง๋ค ์ถ์ฒ ํ๊ธฐ, USD/CNY ํ๊ฐ, CSV ๋ด๋ณด๋ด๊ธฐ, ํ์คํ ๋ฆฌ ์ฐจํธ ํฌํจ. ์๋ก ๊ณ ์นจ์ ์คํจํ ์์ค๋ ์ค๋ฅ๋ก ๋ณด๊ณ ๋๊ณ ํฉ๊ณ์์ ์ ์ธ๋๋ฉฐ โ ์ง๋ ์บ์๋ก ๋์ฒดํ์ง ์๊ณ โ ์ค๋ ์ท์ ๋ถ์์ ์ผ๋ก ํ์๋ฉ๋๋ค.portfolio_summary๋๊ตฌ๋ ๊ธฐ์กดportfolio_risk_xray์ ๊ทธ๋๋ก ๋๊ธธ ์ ์๋risk_xray_args๋ฅผ ๋ฐํํ๊ณ ,vibe-trading portfolio show|refresh|sources๋ ๊ฐ์ ์ค๋ ์ท์ ํฐ๋ฏธ๋์ ์ถ๋ ฅํฉ๋๋ค. ์ง์ ์์ฑํ ์ฝ๊ธฐ ์ ์ฉ ์ปค๋ฅํฐ ํ๋ฌ๊ทธ์ธ์~/.vibe-trading/connectors/์ ๋ก๋๋ค(์ฐ๊ธฐ ๋ฅ๋ ฅ์ ์ ์ธํ ๋งค๋ํ์คํธ๋ ๊ฑฐ๋ถ, ๋น๋ฐ๊ฐ์[keyring]extra๋ฅผ ํตํด OS ํค์ฒด์ธ์ผ๋ก). ์ด ๊ฒฝ๋ก์์๋ ์ด๋ค ๊ฒ๋ ์ฃผ๋ฌธ์ ๋ผ ์ ์์ต๋๋ค(#1072, #1171์ ํฅํด). ์์ : Alpha Zoo ํฉํฐ 13๊ฐ๊ฐ ์์ต๋ฅ ๊ณ์ฐ ์ ์ ๊ฒฐ์ธก ์ข ๊ฐ๋ฅผ ์์ผ๋ก ์ฑ์ ๋ฐ์ดํฐ ๊ฒฐ์ธก์ ์ ํํ "0% ์์ต๋ฅ "๋ก ๋ง๋ค์์ต๋๋ค โ ์ด์ ๊ฒฐ์ธก์NaN์ผ๋ก ๋จ์ต๋๋ค(#1172). ๊ฐ์ http/sse ์๋ฒ์ ์๋ก ๋ฌด๊ดํ MCP ํด๋ผ์ด์ธํธ๊ฐ ํ๋์ ํด๋ฐฑ ์ฐ๊ตฌ ๋ชฉํ ์ธ์ ์ ๊ณต์ ํ์ต๋๋ค(#1173). ๋ฉ๋ชจ๋ฆฌ GC์ ์์ถ์ด ์ค๋๋ FTS ํ๊ณผ ๊ณ ์ relation ์ฌ์ด๋์นด๋ฅผ ๋จ๊ฒผ์ต๋๋ค(#1174).cancel_run()์ด ์คํธ๋ฆฌ๋ฐ ์ค์ธ swarm worker์ ๋ฟ์ง ์์์ต๋๋ค โ ์ด์ ์คํธ๋ฆผ์ ์ค๋จํ๊ณ ๊ทธ ํด์ ๋๊ตฌ ํธ์ถ์ ๊ฑด๋๋ฐ๋ฉฐ ์ทจ์๋จ ํ์คํฌ๋ก ๊ธฐ๋ก๋ฉ๋๋ค(#1175). MCPget_research_reports๊ฐbeginTime/endTime์ ๋ฒ๋ ธ์ต๋๋ค(#1176).get_options_chain์ด ๋ค๋ฅธ ์ฃผ๊ธฐ์ ๋ง๊ธฐ์ok: true์ ๋ค๋ฅธ ๋ ์ง์ ๊ณ์ฝ์ ๋๋ ค์คฌ์ต๋๋ค(#1177). ๊ธฐ์ฌํด ์ฃผ์ @goatyyc, @Shizoqua, @cgycorey์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. -
2026-08-21 โฑ๏ธ ์์ํ ๋ฉ์ถฐ ์๋ ์คํ:
bashํ์์์์ด shell๋ง ์ข ๋ฃํ๊ณ ํ์ดํ ํธ๋ค์ ์ฅ ์์ ํ๋ก์ธ์ค๋ ์ด์๋จ์, ์คํ์ 20๋ถ ๋๊ฒ "์คํ ์ค"์ด์์ต๋๋ค. ์ด์ ์ ์ฉ ํ๋ก์ธ์ค ๊ทธ๋ฃน์์ ์์ํด ํธ๋ฆฌ ์ ์ฒด๋ฅผ ์ข ๋ฃํ๊ณ , ์ ์ฒด ๊ฐ์์๊ฐ ์ง์ ์๋ ์คํ์ ๋๋ด๋ฉฐ, ์์ถ๋ ๋ชจ๋ธ ์์ ์ ๊ฒ์ฆ ๊ธฐ๋ก์ ๋ฒ๋ฆฌ์ง ์์ต๋๋ค(#1169). ์์ : Tencent์ ๋ค๋ ํ์คํ ๋ฆฌ๊ฐ 500๋ด์์ ์กฐ์ฉํ ์๋ ธ์ต๋๋ค(#1154). ์ ๊ท: swarm ์คํ์ ์คํจํ ํ์ ๊ทธ๋ํ๋ง ์ฌ์ํฉ๋๋ค(#1158, #1157 ์ข ๋ฃ). Market Watch๋ ๊ฐ ๋ชจ๋ํฐ์ ์ต์ ํ์ ์ ๋ชฉ๋ก์ ํ์ํฉ๋๋ค(#1156, #943 ์ข ๋ฃ).quantlib๋ ํ ์คํธ๋ 286๊ฐ ํจ์์ ๋๋ฌํ์ต๋๋ค(#1159โ#1168). ๊ธฐ์ฌํด ์ฃผ์ @wiliao, @cgycorey, @he-yufeng, @BigFishEmily, @santhreal, @SiMinus, @alinv0์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. -
2026-08-20 ๐ v0.1.14 ๋ฆด๋ฆฌ์ค๏ผ๋ฆด๋ฆฌ์ค ๋ ธํธ,
pip install -U vibe-trading-ai): 0.1.13 ์ดํ 272๊ฐ ์ปค๋ฐ, 74๊ฐ ๋ณํฉ PR. ์ฃผ์ธ๊ณต์ ๋๋ ๋ฐฑํ ์คํธ๊ฐ CSV ๋๋ฏธ๊ฐ ์๋๋ผ ์ฝ์ ์ ์๋ ๊ฒฐ๊ณผ๋ฌผ์ด ๋์๋ค๋ ์ ์ ๋๋ค. Run Detail์ ํญ ๋ค ๊ฐ๊ฐ ์ถ๊ฐ๋์ต๋๋ค โ ํฉํฐ ๋ฆฌ์์น(ํ๊ท ์ ์ด ์๋ ์ผ๋ณ IC ์๊ณ์ด, IC ํต๊ณ, ๋ถ์ ๊ทธ๋ฃน ์์ฐ๊ณก์ , ๊ทธ๋ฆฌ๊ณ ์ง๊ธ๊น์ง ์ด๋์๋ ์๋ IC ์๊ดํ๋ ฌ), ํฌ์ง์ ๊ตฌ์กฐ(๋ ์ง ์ฌ๋ผ์ด๋๊ฐ ๋ฌ๋ฆฐ ๋น์ค ํ์ด/ํธ๋ฆฌ๋งต, ์ ์ข ๋ณ ์์ต์คํฌ์ ๋ง๋, ๋น์ค ๋ณํ ์์ญ ์ฐจํธ โ ํ์ด๋ ์ด์ก ๊ตฌ์ฑ์ด๊ณ ๋ง๋๋ ์์ก์ด๋ผ, ๊ฐ์ ์ ์ข ์ ๋กฑ/์ ์์ ๋ง๋์์ 0์ผ๋ก ์์๋์ง๋ง ํ์ด์์๋ ๋ ๋ค๋ฆฌ๊ฐ ๋ชจ๋ ๋ณด์ ๋๋ค), ํฐ์ด์ํธ(์๋ณ ์์ต๋ฅ ํํธ๋งต, ์ฐ๊ฐ ๋ง๋, ์์ฐ๊ณก์ ์์ ํ์ํ ์์ 5๊ฐ ๋ํญ), ๊ทธ๋ฆฌ๊ณ KPIยท๋ฒค์น๋งํฌ ๋๋น ์์ฐ์ถ์ดยท๋กค๋ง ์คํยท์ ์ฒด ์ฒด๊ฒฐ ์์ฅ์ ๋ด์ ๋ํํ ๋ฆฌ์์น ๋์๋ณด๋. ๋ค ๊ฐ์ง ๋ชจ๋ ์คํ์ด ์ด๋ฏธ ๊ธฐ๋กํ๋ artifact๋ฅผ ์ฝ์ ๋ฟ, ์ ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ์ ์์ต๋๋ค. ์ Options Lab ํ์ด์ง๋ ๋ง๊ธฐ ์์ต๋, ํ๋ฌผรIV ์๋๋ฆฌ์ค ํ๋ ฌ, ํฌํธํด๋ฆฌ์ค ๊ทธ๋ฆญ์ค, ์ค์๊ฐ ์ต์ ์ฒด์ธ์ MCP ๋๊ตฌ์ ๋์ผํ, ํ ์คํธ๋ก ๊ณ ์ ๋ ์์ง์ผ๋ก ๊ณ์ฐํฉ๋๋ค. ์ค์น: Intel Mac์์ ๋ค์pip install vibe-trading-ai๊ฐ ๋ฉ๋๋ค โsmartmoneyconcepts๊ฐllvmlite๋ฅผ ๋์ด์ค๋๋ฐ, ํ์๋ 0.46๋ถํฐ macOS x86_64 wheel์ ๋ด์ง ์์ Intel ์ค์น๊ฐ ๋งค๋ฒ CMake๊ฐ ํ์ํ ์์ค ๋น๋๋ก ๋ฐ๋์์ต๋๋ค. ์ด์ ์ ํํ[smc]extra๋ก ์ฎ๊ฒผ๊ณ ๋ก์<3.14์ํ๋ ์์ด์ต๋๋ค(#1035). ์ ๊ท: Alpha Zoo์ SDM ์ ์ฅ์๋ฅผ ์์ฐ๋ฅด๋ ๊ทผ๊ฑฐ ๊ฒ์ดํธ ์ ๋ต ํ์(์ ์ฌ ๊ฒฝ๋ก, ์ฝ๋ ์์ ์ ๊ณ์ฐ๋๋ ์ ์ ๋fresh/aging/stale, ์ค๋๋ ํ์ ๊ธฐ๋ณธ ์ถ์ฒ์์ fail-closed๋ก ์ ์ธ), ๋ฆฌ์ค๊ฐ ๊ฑธ๋ฆฐ outbox๋ก ์ค์ค๋ก ์ ๋ฌํ๋ ์์ฝ ๋ฆฌ์์น์ Market Watch ๋ชฉ๋ก์ฉ์ผ๋ก ์ ์ฅ๋๋ ํ์ , ์ฝ๊ธฐ ์ ์ฉ Futu ์๋ํฌ์ธํธ 7์ข , ๋ฐฑํ ์คํธ ์์ฅ์ผ๋ก์์ ๋ฒ ํธ๋จ(HOSE), ์คํ๋ผ์ธ USD-M ๊ณ์ข ๋์ฌ, Novita AIยทGitHub Copilot ํ๋ก๋ฐ์ด๋, ํธ์คํ ํ MetaTrader 5 ๋ฐ์ดํฐ ์์ค, ์คํ์ธ์ดยท๋ ์ผ์ด ๋ก์ผ์ผ, ๊ทธ๋ฆฌ๊ณ 74๊ฐ๋ก ๋์ด๋ MCP ๋๊ตฌ. ์ ํ์ฑ: ํ ์คํธ ์ค์ํธ๊ฐ ์๋๋ฐ์ค๋ฅผ ๋ฒ์ด๋ ์ค์ ์ค์ ๋ฃจํธ์ ์ฐ๋ ์ผ์ด ์์ด์ก์ต๋๋ค โ ์ด์ ์๋ ์ ์ฒด ์คํ ๋๋ง๋ค ํด์ ์ฒด์ธ ์ค๊ณ์ข ๊ฐ์ฌ ์์ฅ์ ๊ฐ์งorder_rejected๊ฐ ๋ง๋ถ์์ต๋๋ค.build_registry()๋ ๋น ์ง ๋๊ตฌ ๋ชฉ๋ก์ ์กฐ์ฉํ ๋ฐํํ์ง ์์ต๋๋ค.xirr๋ ์ฅ๊ธฐ ํ ์ธ ์ธ๋ํ๋ก๋ฅผ ๊ฒฌ๋๊ณ , DCF๋ ๋น์ ํ ์ ๋ ฅ์ ์์ ์ฃผ๊ฐ ๋์ ๊ฑฐ๋ถ๋ก ์๋ตํฉ๋๋ค..VN์ข ๋ชฉ์ด A์ฃผ ๊ท์น์ผ๋ก ์ฒด๊ฒฐ๋์ง ์์ผ๋ฉฐ, ๋ฐฑํ ์คํธ ์์นด์ด๋ธ๊ฐ ๋ ์คํ์ ์ฐ์ถ๋ฌผ์ ์์ง ์์ต๋๋ค. ๋ํ ์ผ๋ จ์ grounding ์์ ์ผ๋ก ๋ ์ง, ์์ ๋ชฉ๋ก, ์์จ ์์ ์ ํญ๋ฑ ์์, ํธ๊ฐ๋ก ์ค๋ ๋ ์ฃผ๋ฌธ ๋ผ์ธ์์ ๋น๋กฏ๋ ์ค๊ฑฐ๋ถ๊ฐ ์ ๋ฆฌ๋์ต๋๋ค. @Shizoqua, @shadowinlife, @pengpengyi92, @cgycorey, @ofeksh-tr, @lorenzozanee, @AndyLongest, @zzz607, @wiliao, @jay79-boop, @Robin1987China, @Echoandelementwebsites, @zhiwuyazhe-fjr, @x-lambda, @sykuang, @straun-repo, @nstavros, @ngoanpv, @miguelangelo78, @lukiod, @jax-novita, @honginp, @he-yufeng, @fixXxerTech, @er-s-an, @daviddaco1, @birdxs, @QCYTSN, @549236606-oss, @1psconstructor ๋๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค. -
2026-08-19 ๐ ๋ฉ์ถ ์คํ, ์์ ๋ง๋ค ์๋ ์ฐ๊ฒฐ, ์ค์น๋์ง ์๋ Intel Mac: provider๊ฐ ์กฐ์ฉํด์ง๋ฉด ์คํ์ด ๋ฌดํ์ ๋ฉ์ท์ต๋๋ค. ์
VIBE_TRADING_LLM_TIMEOUT_SECONDS(๊ธฐ๋ณธ 300s)๊ฐ ํธ์ถ์ ์ ํํ๊ณ , tool-call ๋งํฌ์ ์ด ์ต์ข ๋ต๋ณ์ผ๋ก ๋๊ฐ๋ ์ผ๋ ์์ต๋๋ค(#1105). swarm์ ์์ ๋ง๋ค ํ๋ง๋ HTTP ์ฐ๊ฒฐ์ ํ๋์ฉ ๋์ํ์ต๋๋ค(#1145, #1141 ์ข ๋ฃ). ๊ทธ ๋ฐ์ ์์ :vibe-trading show <run_id>ํฌ๋์(#1147, #1146 ์ข ๋ฃ), ์งํ ์ค์ธ ์ ๋ฌ ๋ฎ์ด์ฐ๊ธฐ(#1140), ๋ฐฑํ ์คํธ ๊ฒ์ฆ ์ฆ๊ฑฐ ์ ์ค(#1139), MCP ํ์ด์ง(#1137, #1138), ์์ธก ์์ฅ ๋น์ ํ๊ฐ(#1136). ์ ๊ท: ํธํฌ ์ฝ๊ธฐ ์ ์ฉ ์๋ํฌ์ธํธ 7๊ฐ(#1135), ์ถ๋ก ๋ ์ ๋ต ์ด๋ฆ์ ๋ช ์์ Inferred์นฉ(#1134). ์ค์น:smartmoneyconcepts๊ฐ[smc]extra๋ก ๋ฐ๋์์ต๋๋ค โ ํจ๊ป ๋ธ๋ ค์ค๋llvmlite๋ macOS x86_64 wheel์ ์ ๊ณตํ์ง ์์ Intel Mac ์ค์น๊ฐ ๋งค๋ฒ cmake ์์ค ๋น๋๊ฐ ๋์ต๋๋ค(#1035).<3.14์ํ๋ ํจ๊ป ์ฌ๋ผ์ง๋๋ค. ๊ธฐ์ฌํด ์ฃผ์ @wiliao, @cgycorey, @Shizoqua, @Echoandelementwebsites, @549236606-oss, @fixXxerTech์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. -
2026-08-18 ๐ถ ์ ํํ ๋ฆฌํฌํธ๊ฐ ๋ ์ด์ ๊ฑฐ๋ถ๋์ง ์๊ณ , ๋ฐฑํ ์คํธ๊ฐ ๋ ธ์ด์ฆ๋ฅผ ๋งค๋งคํ์ง ์์ต๋๋ค:
\b๋ ์ ๋์ฝ๋๋ฅผ ์ธ์ํ๋ฏ๋กๆ๋ ๋จ์ด ๋ฌธ์๋ก ์ทจ๊ธ๋๊ณ , ๋ฐ๋ผ์(2026-07-14ๆไฝ)์๋ '์ผ' ๋ค์ ๊ฒฝ๊ณ๊ฐ ์์ต๋๋ค. ๋ ์ง๊ฐ ๋ง์คํน์ ๋น ์ ธ๋๊ฐ2026,7,14๊ฐ ๊ฐ๊ฒฉ์ผ๋ก OHLC ๊ฒ์ฆ์ ๋ค์ด๊ฐ๊ณ , ๊ด์ธก๋ ์ด๋ค ๋ฒ์๋ ์ด ๊ฐ๋ค์ ๋ด์ ์ ์์์ต๋๋ค(#1132, #1122 ์ข ๋ฃ). ๊ฐ์ ๊ณ์ด์ ๊ฑฐ๋ถ ๋ค ๊ฐ์ง๋ ํจ๊ป ๊ณ ์ณค์ต๋๋ค: ํ์ดํ ํ์ ๊ฑฐ๋์ผ(08-10(ไธ)), ๋ฒ์๋ก ์ ์ ๊ฐ๊ฒฉ๋์์ ํํ๋ง ๋ง์คํน๋์ด-20์ด ๋จ๋ ๋ฌธ์ , GTC ์ฃผ๋ฌธ ์ค(100 @ $3.50)์ด ๊ด์ธก ํธ๊ฐ ๋ ๊ฐ๋ก ์ฝํ๋ ๋ฌธ์ , ๋ฆฌํฌํธ ํ์ ๋ ์ง ์ ์ด ์ด๋ค ์ฆ๊ฑฐ ํ๊ณผ๋ ์ผ์นํ์ง ์๋ ๋ฌธ์ . ๋ฐฑํ ์คํธ:position_adjustment="hold"๋ ์์ฒญ๋ ๋น์ค ๋ณ๊ฒฝ์ ์กฐ์ฉํ ๋ฒ๋ ธ๊ณ ,"rebalance"์๋ ๋๋ฆฌํํธ ํ์ฉ ๋ฒ์๊ฐ ์์ ์์์ต๋๋ค. ์ค์ธก ๊ฒฐ๊ณผ ์ผ๊ฐ 0.01% ๋ณ๋๋ง์ผ๋ก 30๊ฐ ๋ด ์ค 19๊ฐ์์ ํฌ์ง์ ์ ๋ค์ ๋ง์ท๊ณ , ์์ฒดrebalance_freq๋ฅผ ๊ฐ์ง ์ ๋ต๋ ๋งค ๋ด ๊ฑฐ๋ํ ์ ์ ๋๋ค. ๋ฒ๋ ค์ง ์์ฒญ์ ์ด์ ๋ณด๊ณ ๋๋ฉฐ, ์rebalance_tolerance๋ ์ค๋ฌด์๋ค์ด ๋งํ๋ "๋น์ค์ด X ์ด์ ์์ง์ด๋ฉด ๋ฆฌ๋ฐธ๋ฐ์ฑ"์ ํ์ฉ ๋ฒ์์ ๋๋ค. ๊ธฐ๋ณธ๊ฐ0.0์ด๋ผ ๊ธฐ์กด ์คํ ๊ฒฐ๊ณผ๋ ๊ทธ๋๋ก์ ๋๋ค. ๋ํ ์ฐ์ ์ค๋ฆฝ alpha101 ์ํ 19๊ฐ๊ฐ SP500 ๋ฒค์น๋ง๋ค ๊ฑด๋๋ฐ์ด์ก๋๋ฐ, ํจ๋์ ์นํฐ ํ๊ทธ๊ฐ ์์๊ธฐ ๋๋ฌธ์ด๋ฉฐ ๊ทธ ์ ๋ณด๋ ๊ตฌ์ฑ์ข ๋ชฉ์ ๊ฐ์ ธ์ค๋ ํ์ ์ด๋ฏธ ์์์ต๋๋ค. ์ ๊ธฐ๋ฅ: Market Watch ๋ชจ๋ํฐ๋ ์คํ์ด ๋๋๋ฉด ๋ธ๋ฆฌํ์ IM ์ฑ๋๋ก ๋ณด๋ผ ์ ์์ต๋๋ค. ์์ ์์๋ฐ์ค๋ฅผ ๊ฑฐ์น๋ฏ๋ก ์ฌ์์์ผ๋ก ์ ์ค๋์ง ์๊ณ , ๋์ ์ค์์ผ๋ก ์ค๋ณต ๋ฐ์ก๋์ง๋ ์์ต๋๋ค(#942). ๋ ์ผ์ด๊ฐ 7๋ฒ์งธ UI ์ธ์ด๊ฐ ๋์ต๋๋ค(#1117).run_dcf๋ ๋น์ ํ ์ ๋ ฅ์ ๋ํด ๊ทธ๋ด๋ฏํ ์์ ์ฃผ๊ฐ๋ฅผ ๋ฐํํ๋ ๋์ ๊ฑฐ๋ถํฉ๋๋ค(#1121, #1120 ์ข ๋ฃ). MCPget_market_data์๋ต์ ์์ฒด docstring์ด ์ฝ์ํ_provenance๋ฅผ ๋ด์ต๋๋ค(#1131). ์ํฌํธ์ ์คํจํ ๋๊ตฌ ๋ชจ๋์ ์ด๋ฆ์ด ๋๋ฌ๋๋ฉฐ ๋ ์ง์คํธ๋ฆฌ๊ฐ ์กฐ์ฉํ ์ค์ด๋ค์ง ์์ต๋๋ค(#1129, #1124 ์ข ๋ฃ). ์คํ๋ผ์ธ USD-M ๊ณ์ ๋์ฌ๋ ์ถ๊ฐ๋์ด ์ฐ๊ฒฐ์ ์ด์ง ์๊ณ ๋ก์ปฌ ๋ฆฌ์คํฌ ์ํ์ ๊ฑฐ๋์ ๊ด์ธก์น๋ฅผ ๋น๊ตํฉ๋๋ค(#1106). ๊ทธ ๋ฐ์:backtest.runner๋ฅผ ์ํฌํธํด๋ ๋ ์ด์.env๊ฐ ํ๋ก์ธ์ค์ ๋ก๋๋์ง ์์ต๋๋ค.agent/.env๊ฐ ์๋ ๋จธ์ ์์๋ ์ด๊ฒ ๋๋ฌธ์ ๋ก์ปฌ ์ ์ฒด ํ ์คํธ๋ฅผ ์ ๋ขฐํ ์ ์์์ต๋๋ค(#1123). @Robin1987China, @newgo, @er-s-an, @Shizoqua, @1psconstructor, @honginp, @cgycorey, @alinv0, @jelech ๋ ๊ฐ์ฌํฉ๋๋ค! -
2026-08-17 ๐ ํ ์คํธ ์ค์ํธ๊ฐ ์ค์ ์ค์ ๋ฃจํธ(๋ผ์ด๋ธ ๊ฐ์ฌ ์์ฅ ํฌํจ)์ ์ฐ์ง ์๊ฒ ๋์์ต๋๋ค: ํ๋ก์ ํธ ์์ฒด ์ค์ํธ๋ฅผ ์คํํ๋ฉด
~/.vibe-trading/live/audit.jsonl์ ์กฐ์๋order_rejected๋ ์ฝ๋๊ฐ ์ถ๊ฐ๋์ต๋๋ค. ์ด ํ์ผ์ ์ถ๊ฐ ์ ์ฉ ํด์ ์ฒด์ธ ์์ฅ์ด๋ฉฐ, ํญ๋ชฉ์ ๋ง๋ค์ด๋ผ ์ ์๋ค๋ ์ ์ด ๊ทธ ๊ฐ์น์ ์ ๋ถ์ ๋๋ค. Windows์์๋ ์์๋ ์ฒด์ธ ํ์ผ๊น์ง ๋จ์์ต๋๋ค.conftest.py์๋ ์ค์ ๋ฃจํธ ์๋๋ฐ์ค๊ฐ ์ ํ ์์ด์, ์ํฌํธ ์์ ์Path.home() / ".vibe-trading"๋ฅผ ๊ณ ์ ํ๋ ๋ชจ๋ ๋ชจ๋์ด ์ด๋ ํ๋ซํผ์์๋ ์ค์ ํ์ ํด์ํ์ต๋๋ค. Windows๊ฐ ๋ ๋๋นด๋ ์ด์ ๋ ๊ฑฐ๊ธฐ์Path.home()์ด%USERPROFILE%๋ฅผ ์ฝ๊ณ$HOME์ ๋ฌด์ํด, ์ค์ํธ๊ฐ ์จ์จ ๊ฒฉ๋ฆฌ ๋ฐฉ์์ด ๋ฌดํจ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด์ ํ์ ์์ง ์ ์ ๋ฆฌ๋๋ ์ ๋๊ณ , ์๋๋ฐ์ค๋ ๋ ธ๋ธ๋ฅผ ํ๋๋ง ์์ ํด ํ ์คํธ๋ณ ๊ฒฉ๋ฆฌ๊ฐ ๊ณ์ ์ฐ์ ํ๋ฉฐ, ์ธ์ ์ข ๋ฃ ์ ๋ฆฌ๋๋ ์ ์ค์น ์ฌ๋ถ๊ฐ ์๋๋ผ ์ค์ ์์ฅ์ด ๋ฐ์ดํธ ๋จ์๋ก ๋์ผํ์ง ๊ฒ์ฆํฉ๋๋ค (#1118, #1116 ์ข ๋ฃ). ๊ทธ ๋ฐ์๋:xirr์money_weighted_return์ด ์ฝ 51๋ ์ ๋๋ ๊ธฐ๊ฐ์์ZeroDivisionError๋ฅผ ๋์ก์ต๋๋ค โ ํ ์ธ ๊ณ์๊ฐ 0์ผ๋ก ์ธ๋ํ๋กํ๊ธฐ ๋๋ฌธ์ด๋ฉฐ, ์ด๋ ๋ฐ๋ก XIRR์ด ์กด์ฌํ๋ ์ด์ ์ธ ์ฅ๊ธฐยท๋ถ๊ท์น ํ๊ธํ๋ฆ์ ๋๋ค (#1119); ํ์ฑ ์คํ์ผ๋ก ์์นด์ด๋ธ๋ ๋ฐฑํ ์คํธ๊ฐ ์ด์ ์คํ์ ์ฐ์ถ๋ฌผ๊ณผ ๋ณํฉ๋ผ ํ ๋ฆฌํฌํธ๊ฐ ์๋ก ๋ค๋ฅธ ๋ ๋ฐฑํ ์คํธ๋ฅผ ์ค๋ช ํ ์ ์์๊ณ ,/runs/{id}๋ ๋จ์ ํ์ผ์ ์๊ธฐ ์ฐ์ถ๋ฌผ๋ก ๋์ดํ์ต๋๋ค (#1094). @lorenzozanee, @straun-repo, @pengpengyi92 ๋๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค! -
2026-08-16 ๐ง Anthropic ์คํ์ด ๋ณต๊ตฌ ๊ฒฝ๋ก์์ ์ฃฝ์ง ์๊ฒ ๋๊ณ , ์ฌ๋ณผ ๊ฒ์์ด ๋น ๊ฒฐ๊ณผ๋ฅผ ์ ์์ผ๋ก ๋ณด๊ณ ํ์ง ์๊ฒ ๋์์ต๋๋ค: ๋ณต๊ตฌ ๊ฒฝ๋ก๊ฐ ์ค๊ฐ์ ์ถ๊ฐํ
system๋ฉ์์ง๋ Anthropic API๊ฐ ๊ฑฐ๋ถํด ์คํ ์ ์ฒด๊ฐ ์ค๋จ๋์ง๋ง, ์ด์ ๋ณต๊ตฌ ์ง์๋ ์ธ๋ผ์ธ<system>ํ๊ทธ๊ฐ ๋ถ์ ์ฌ์ฉ์ ๋ฉ์์ง๋ก ์ ๋ฌ๋ฉ๋๋ค (#1112, #1109 ์ข ๋ฃ).search_symbol์ ํฐ์ปค+์ด๋ฆ ์ฟผ๋ฆฌ์ ํ๋ณด 0๊ฐ๋ฅผ ๋ฐํํ๋ฉด์ ๋ ์์ค ๋ชจ๋ok๋ฅผ ๋ณด๊ณ ํด identity๊ฐ ์ ๊ธฐ์ง ์๊ณ ๋ชจ๋ ๋ฐ์ดํฐ ๋๊ตฌ๊ฐ ๊ฑฐ๋ถ๋์ต๋๋ค. Yahoo ๊ฒฝ๋ก๋ ์ด์ ์ด ์ฟผ๋ฆฌ ํํ๋ฅผskipped๋ก ํ์ํฉ๋๋ค (#1114, #1108 ์ข ๋ฃ). ๊ทธ ๋ฐ์๋:LANGCHAIN_REASONING_EFFORT๊ฐ ๋ชจ๋ธ ํ์ฉ ๋ชฉ๋ก์ ํตํด Anthropic ๋ธ๋์น์ ๋ฐ์๋๊ณ (#1115), Tencent ๋ก๋๋ certifi CA ๋ฒ๋ค๋กCERTIFICATE_VERIFY_FAILED์์ ๋ณต๊ตฌํ๋ฉฐ (#1113),revenue - cogs์ด์ด์ต ํด๋ฐฑ์ด ์ฃฝ์ ์ฝ๋์์ ๋ฒ์ด๋๊ณ (#1111), swarm worker๊ฐ ๊ณต์ ํฌํผ๋ก ์๋ผ๋ด์ด ํ์ ์์ด์ ํธ๊ฐ ํญ์ ์๋ฆผ ํ์๋ฅผ ๋ณด๊ฒ ๋ฉ๋๋ค (#1110). @lorenzozanee, @straun-repo, @x-lambda, @cgycorey, @Shizoqua ๋๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค! -
2026-08-15 ๐ก๏ธ ๋ ์์ ํ ๋ฐ์คํฌํฑ ์ ๋ฐ์ดํธ, ์์ ์ ์ธ Windows ํจํค์ง, Run Detail ํฉํฐ ๋ฆฌ์์น: ํด๋ฉด updater ๊ฒฝ๊ณ๋ ์ฌ์๋ ๊ฐ๋ฅํ ์ ๋ฆฌ๋ฅผ ์ํด ์์ ํ๋ก์ธ์ค ์ฆ๊ฑฐ๋ฅผ ๋ณด์กดํ๊ณ , HTTP health ๋์ TCP listener๋ก ํฌํธ ์์กด์ ํ์ธํ๋ฉฐ, recovery journal์ ์์์ ์ผ๋ก ์์ฝํ๊ณ , Authenticode์ ํด์๋ฅผ ๋์ผํ staged bytes์ ๋ฌถ์ด ์คํ ์ง์ ์ ๋ค์ ๊ฒ์ฆํฉ๋๋ค(#1101). Windows ํจํค์ง์ ์ ํ๊ณผ ์ฒดํฌ์ฌ ๊ฒ์ฆ์ด ์ ์ฉ๋ Electron ๋ค์ด๋ก๋๋ฅผ ์ง์ ์ํํ๊ณ , ๋ถ์์ ํ ๊ธฐ์กด installer๋ฅผ ์คํํ์ง ์๊ณ ๊ณ ์ ๋ GTK asset์ 7-Zip์ผ๋ก ๋ฐ์ดํฐ์ฒ๋ผ ์ถ์ถํฉ๋๋ค. ๋ค์ดํฐ๋ธ Windows CI๋ ์ข ๋ฃ ์ฝ๋, timeout, runtime ์กฐ๋ฆฝ, NSIS, ํจํค์ง ํ ์์์ ๊ฒ์ฆํฉ๋๋ค(#1104, #1093 ํด๊ฒฐ). Run Detail์๋ IC ์๊ณ์ดยทํต๊ณ, quantile equity, IC ์๊ด๊ด๊ณ๋ฅผ ์ถ๊ฐํ๊ณ artifact ํ์๊ณผ JSON ์์น๋ฅผ ๊ฒฝ๊ณ ์์ ์ ์งํฉ๋๋ค(#1099, #1100 ํด๊ฒฐ). ๋ฒ์ฉ hash lock๋ Linux, macOS ARM64, Windows์์ ๋ค์ดํฐ๋ธ ๊ฒ์ฆ์ ๋ง์ณค์ต๋๋ค(#1102, #1089 ํด๊ฒฐ). @QCYTSN ๋๊ณผ @shadowinlife ๋๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
-
2026-08-14 โ๏ธ ์๋ฌด ์ผ๋ ํ์ง ์๋ ์ถ๋ก ์ค์ , ๊ทธ๋ฆฌ๊ณ ์์ง ๋ณต๊ตฌํ ์ ์๋๋ฐ ๋ฉ์ถ๋ ์คํ:
LANGCHAIN_REASONING_EFFORT๋ ๊ฑฐ์ ๋ชจ๋ ํ๋ก๋ฐ์ด๋์์ ์กฐ์ฉํ ๋ฌดํจ์์ต๋๋ค โ ์ง์ ์ฐ๊ฒฐ๋ OpenAI๋ง ์ด ๊ฐ์ ๋ฐ์๊ธฐ์ DeepSeek์high๋ฅผ ์ค์ ํด๋ ์๋ฌด๊ฒ๋ ๋ฐ๋์ง ์์๊ณ , ๊ทธ ์ฌ์ค์ด ์ด๋์๋ ํ์๋์ง ์์์ต๋๋ค. ์ด์ ์ด ๊ฐ์ ๊ฐ ์ด๋ํฐ ๊ณ ์ ํ๋๋ฅผ ํตํด ๋ ์ ์ก ๊ฒฝ๋ก ๋ชจ๋์ ์ ๋ฌ๋ฉ๋๋ค: ๊ธฐ๋ณธ์ Chat Completions,LANGCHAIN_USE_RESPONSES_API=true์ด๋ฉด Responses API์ ๋๋ค. ์ต์์reasoning_effort๋ฅผ ๋ฐ๋ ํ๋ก๋ฐ์ด๋๋ "OpenAI ํ์์ ๋งํ๋ ๋ชจ๋ ๊ฒ"์ด ์๋๋ผ ๊ฒ์ฆ๋ ํ์ฉ ๋ชฉ๋ก์ ๋๋ค โ ์์ฒญ ๋ณธ๋ฌธ์ ์๊ฒฉํ ๊ฒ์ฆํ๋ ์๋ํฌ์ธํธ๋ ์ ์ ์๋ ํค๋ฅผ ๊ฑฐ๋ถํ๊ณ ํธ์ถ ์์ฒด๋ฅผ ์คํจ์ํค๋ฏ๋ก, ์๋ชป ์ถ์ธกํ ๋๊ฐ๋ ์๋ํ์ง ์๋ ์ค์ ์ด ์๋๋ผ ๋ชจ๋ ์์ฒญ์ ๋๋ค (#1025). grounding ๊ฒ์ดํธ๋ ๊ฒฐ์ ๋ก ์ ์ฝ๊ธฐ ์ ์ฉ ๋ณต๊ตฌ๊ฐ ์์ง ๊ฐ๋ฅํ ์ํ์์ "ํ์ธ ํ ๊ณ์"์ ๋๋ ค์ฃผ์ง ์์ต๋๋ค: ํด๊ฒฐ๋์ง ์์ ์ข ๋ชฉ์ ์์ฒด ์ ํ ์์ฐ์ผ๋กsearch_symbolโget_market_data๋ฅผ ์งํํ๋ฉฐ, ๋ฐ๋ณต ์์ฐ์ ์์งํ ๋ค fail-closed ๋์ง ์์ต๋๋ค (#1092, #1081 ์ข ๋ฃ). ์ ๊ท: Options Lab ํ์ด์ง โ ๋ฉํฐ๋ ๊ทธ ๋ง๊ธฐ ์์ต ๋ค์ด์ด๊ทธ๋จ, ํ๋ฌผ ร IV ์๋๋ฆฌ์ค ๋งคํธ๋ฆญ์ค, ํฌํธํด๋ฆฌ์ค ๊ทธ๋ฆญ์ค, ๋ผ์ด๋ธ ์ต์ ์ฒด์ธ. ๊ณ์ฐ์ ๊ธฐ์กด payoff ๋๊ตฌ์quantlib์ด ๋ด๋นํ๋ฉฐ ์์์ ๋ค์ ๊ตฌํํ์ง ์์์ต๋๋ค (#1096). ๋ฐฑํ ์คํธ tearsheet ํญ โ ์๋ณ ์์ต๋ฅ ํํธ๋งต, ์ฐ๋๋ณ ์์ต๋ฅ , ์์ N๊ฐ ๋๋ก๋ค์ด ๊ตฌ๊ฐ (#1091). tickerall์ด 25๋ฒ์งธ ๋ง์ผ ๋ฐ์ดํฐ ์์ค๋ก โ ํธ์คํ ํ MetaTrader 5 ์ธํ/๊ท๊ธ์ ๋ฐ๋ฅผ ์ด๋ค OS์์๋ ๋ก์ปฌ ํฐ๋ฏธ๋ ์์ด ์ฌ์ฉํ๋ฉฐ, ๋ช ์์ ์ผ๋ก ์ง์ ํ ๋๋ง ๋์ํ๋ฏ๋ก ๋ธ๋ก์ปค ํค๊ฐ ์กฐ์ฉํ ํด๋ฐฑ ๋์์ด ๋๋ ์ผ์ด ์๊ณ , ์๋ฆฐ ํ์คํ ๋ฆฌ ๊ตฌ๊ฐ์ ์งง์ ์๋ฆฌ์ฆ๋ฅผ ์กฐ์ฉํ ๋ฐํํ๋ ๋์ ์ค๋ฅ๊ฐ ๋ฉ๋๋ค (#968, #897 ์ข ๋ฃ). ๊ทธ๋ฆฌ๊ณ Novita AI์ GitHub Copilot์ด ๋ด์ฅ ํ๋ก๋ฐ์ด๋๋ก ์ถ๊ฐ๋์์ต๋๋ค (#1059, #990). eToro๋ ์ํ ์ ํ๋ณ ์์ฐ๊ตฐ ํ์์ ์ง์ํ๊ณ , ์นดํผ ํธ๋ ์ด๋ฉ์ ๋ฐ๋ชจ ๊ณ์ ์ ๋ช ํํ ์ด์ ์ ํจ๊ป ๊ฑฐ๋ถํฉ๋๋ค (#1070). Thanks @cgycorey, @Shizoqua, @shadowinlife, @miguelangelo78, @jax-novita, @sykuang, ๋ฐ @ofeksh-tr. -
2026-08-13 ๐ฏ ๋ฐฑํ ์คํธ ๋ฆฌํฌํธ๊ฐ ์ค์ ์ฒด๊ฒฐ๋ ํฌ์ง์ ์ ํ์:
positions.csv์๋ ์ตํฐ๋ง์ด์ ์ ๋ชฉํ ๋น์ค์ด ๋ด๊ฒจ ์์ด, ๋จ์ฃผ ๋ฐ์ฌ๋ฆผยท์์๋ฃยท์ฃผ๋ฌธ ์ฐจ๋จ์ผ๋ก ํฌํธํด๋ฆฌ์ค๊ฐ 20% ๊ทผ์ฒ์ธ๋ฐ๋ ๋ฆฌํฌํธ๋ 80% ์ต์คํฌ์ ๋ฅผ ์ฃผ์ฅํ ์ ์์์ต๋๋ค. ๊ฐ์ ๋ชฉํ๊ฐ์ด ํฌ์ ๋น์ค ์งํ์ ๋ฆฌ์คํฌ X-๋ ์ด์๋ ์ ๋ฌ๋์์ต๋๋ค. ์ด์ ์ฒด๊ฒฐ ์ค์ ์positions.csv, ์์ฒญ๊ฐ์target_positions.csv์ ๊ธฐ๋ก๋ฉ๋๋ค(#1082). Run Detail์ ๋ฆฌ์์น ๋์๋ณด๋(?view=dashboard)๊ฐ ์ถ๊ฐ๋๊ณ (#1084), ์คํ์ธ์ด๊ฐ ์ฌ์ฏ ๋ฒ์งธ UI ์ธ์ด๊ฐ ๋์์ต๋๋ค(#1087). ๊ทธ ์ธ:get_research_reports๊ฐ ๋ชจ๋ A์ฃผ ์ข ๋ชฉ์ HTTP 400์ ๋ฐํํ๋ ๋ฌธ์ (#1077), IBKR ์์ธ์์ ์์ฒญํ ๋ฑ๊ธ๊ณผ ์ค์ ์ ์ฉ๋ ๋ฑ๊ธ์ ๋ถ๋ฆฌ(#1075),.env.partial์์์ ๊ธฐ๋ก(#1086), Docker ์ํฌํ๋ก์ action์ ์ปค๋ฐ์ผ๋ก ๊ณ ์ ํ๊ณ ์ฑ๋ SDK๋ฅผ ํด์ ๋ฝ์ผ๋ก ์ค์น(#1088), grounding ๊ฒ์ดํธ๊ฐ ์ง์ง/์ ํญ ๊ตฌ๊ฐ๊ณผ ์ฌ์ ์ต๊ณ ๊ฐ๋ฅผ ๊ด์ธก ๊ฐ๊ฒฉ์ผ๋ก ์ฝ์ง ์๋๋ก ์์ (#1060). Thanks @AndyLongest, @daviddaco1, @zzz607, @jay79-boop, @lukiod, @birdxs, @wiliao. -
2026-08-12 ๐ ํด๋ฐฑ ์์ค๊ฐ ๋ฐ๋์ด๋ A์ฃผ ๊ฑฐ๋๋์ด ์กฐ์ฉํ 100๋ฐฐ ํ์ง ์์ต๋๋ค: A์ฃผ ํด๋ฐฑ ์ฒด์ธ์ ๋ค์ฏ ๋ฐ์ดํฐ ์์ค๋ ๊ฑฐ๋๋์ board lot(ๆ) ๋จ์๋ก ๋ฐํํ์ง๋ง BaoStock๋ง ์ฃผ์ ์๋ก ๋ฐํํ๊ณ , ์ค์ ์๋ตํ ์์ค์ provenance์๋ ๋จ์๊ฐ ์์ด์ ํ ๋ฒ์ ํด๋ฐฑ์ด ๋ชจ๋ ๊ฑฐ๋๋ ๊ธฐ๋ฐ ์ ํธ๋ฅผ 100๋ฐฐ ๋ฐ๊ฟ ์ ์์์ต๋๋ค. ์ด์ loader๋ ์์ฅ๋ณ ๊ฑฐ๋๋ ๋จ์๋ฅผ ์ ์ธํ๊ณ provenance๋ ์ข ๋ชฉ๋ณ ์ค์ ์ ๊ณต ์์ค์ ๋จ์๋ฅผ ๋ ธ์ถํฉ๋๋ค. BaoStock์ loader ๊ฒฝ๊ณ์์ ์ฃผ์ ์๋ฅผ board lot์ผ๋ก ๋ณํํ๋ฉฐ, cache v4๊ฐ ์์ ์ ์บ์์ ์ฌ์ฌ์ฉ์ ๋ง๊ณ , ์ค๋ฐ์ดํฐ ๊ต์ฐจ ์์ค ํ๊ท ํ ์คํธ๋ ๋์ผํ ํ์ ๊ฑฐ๋์ผ ๊ฐ์ด 1% ์ด๋ด๋ก ์ผ์นํ๋๋ก ์๊ตฌํฉ๋๋ค(#1065, #1067, #1062 ์ข ๋ฃ). ์ด๋ฒ 10 PR ์ ํ์ฑ ํจ์ค์๋ eToro์ ์์ ํ runtime status์ 5๊ฐ ์ธ์ด SDK ์ฐ๊ฒฐ UI(#1051), scheduled-run DELETE์ ์ค์ ๋ก ๋น 204 ์๋ต(#1068), CLI์ Alpaca direct-SDK account payload ๋ ๋๋ง(#1073), ์ค์ ๋ชจ๋ธ ์์ฑ์๊ฐ ๊ณต์ ํ๋ credential ๊ฒฝ๊ณ์์์ Ollama
/v1์ ๊ทํ(#1074), Docker Codex OAuth stdin EOF์ ๋ํ ์คํ ๊ฐ๋ฅํ TTY ์๋ด(#1054, #1050 ์ข ๋ฃ), Markdown ์์ ๋ชฉ๋ก์1.์ ๊ทผ๊ฑฐ ์๋ ์ซ์ ์ฃผ์ฅ์ผ๋ก ์ฝ์ง ์๋ ์์ (#1063),GE๊ฐ์ ๋ ๊ธ์ ๋ฉ๋ชจ๋ฆฌ ๊ฒ์์ FTS5 ์ฌ์ฉ ์ฌ๋ถ์ ๋ฌด๊ดํ๊ฒ ์ผ์น์ํค๋ ์์ (#1071), ๊ทธ๋ฆฌ๊ณ ์ ๋ก ๋ณ๋์ฑ ์ ๋ฝํ ์ต์ ์ ํ ์ธ๋ ์ ๋ ๋ด์ฌ๊ฐ์น๋ก ํ๊ฐํด ํ์ฌ ๋ฐฉํฅ๊ณผ ํ-์ฝ ํจ๋ฆฌํฐ๋ฅผ ๋ณต์ํ๋ ์์ (#1066)๋ ํฌํจ๋ฉ๋๋ค. @shadowinlife, @ofeksh-tr, @zhiwuyazhe-fjr, @zzz607, @pengpengyi92, @Shizoqua์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. -
2026-08-11 ๐ง ์ปดํฉ์ ์ด ๋ํ ๋ด์ฉ์ ๋ฒ๋ฆฌ์ง ์๊ณ , swarm ์ฌ์๋๊ฐ ์์ ์ run์ ๋ ์ด์ ์ญ์ ํ์ง ๋ชปํฉ๋๋ค: ์๋ ์ปดํฉ์ ์ ์์ฝ ์ ์ ์ง๋ ฌํ๋ ์ด๋ ฅ์ 80,000์์์ ๊ฐ์ ๋ก ์๋๊ณ , ๊ทธ ์ง์ ๋ค์ ๋ด์ฉ์ ์์ฝ ํธ์ถ์๋ ๋ณด์กด๋ ๊ผฌ๋ฆฌ์๋ ๋๋ฌํ์ง ๋ชปํ ์ฑ ์ค๋ฅ ์์ด ์ฌ๋ผ์ก์ต๋๋ค. ์ด๋ ํจ์ ์์ฒด๊ฐ ์ฝ์ํ ใ์ ๋ณด ์์ค 0ใ์ ์ด๊ฒผ๊ณ , ์ ๋จ ์ง์ ์ด ๊ฐ์ฒด ์ค๊ฐ์ ๋์ฌ ์์ฝ๊ธฐ์๋ ์๋ชป๋ JSON์ด ์ ๋ฌ๋๊ธฐ๋ ํ์ต๋๋ค. ์ด์ ์ด๋ ฅ์ ๋ฉ์์ง ๊ฒฝ๊ณ์์ ๋ฌถ๊ณ ๊ธฐ์กด ๋ฐ๋ณต ํ ํ๋ฆฟ์ผ๋ก ์ฒญํฌ๋ณ ์ ๊ธฐ๋ฅผ ์ํํฉ๋๋ค. ํ๋์ ๋ฉ์์ง๊ฐ ํ ์ฒญํฌ์ ๋ค์ด๊ฐ์ง ์์ ๋งํผ ํฌ๋ฉด ์๋ผ๋ด๋ ๋์ ๋ผ๋ฒจ์ด ๋ถ์ ์กฐ๊ฐ์ผ๋ก ๋๋๋ฉฐ, ๋ชจ๋ธ์ด ๋น ์๋ต์ ๋ณด๋ด๋ ๊ทธ๋๊น์ง ์์ธ ์์ฝ์ ์ง์ฐ์ง ์์ต๋๋ค(#1055 ์ข ๋ฃ). ์ ์ฌ์๋ ์ ์ฐ์ถ๋ฌผ ์ ๋ฆฌ๋
run_dir/artifacts/<agent_id>์shutil.rmtree๋ฅผ ์คํํ๋๋ฐ,agent_id๋ ๊ฒ์ฆ๋์ง ์์ preset์์ ์ค๊ณ ์ฌ์ฉ์ preset์~/.vibe-trading/swarm/presets/์์ ๋ก๋๋๋ฏ๋ก id๊ฐ..์ด๋ฉด ์คํ ๋๋ ํฐ๋ฆฌ ์์ฒด๋ก ํด์๋์ต๋๋ค. ์ด์ ๋ ์์ ํ ๋จ์ผ ์ธ๊ทธ๋จผํธ์ด๋ฉฐ ํด์ ๊ฒฐ๊ณผ๊ฐ ํด๋น ์คํ์ artifacts ๋๋ ํฐ๋ฆฌ ์์ ์์ ๋๋ง ํ์ฉํฉ๋๋ค. ๋ํtechnical_indicatorsRSI๋ docstring์ด ์๋ ์ฃผ์ฅํ Wilder-EWM ๊ท์ฝ์ผ๋ก ์ด๋ํด ๋จ์ rolling mean์ด ๊ฐ์ 30/70 ๊ฒฝ๊ณ ๋๋จธ๋ก ์ฎ๊ธธ ์ ์๋ ๋ฌธ์ ๋ฅผ ๋ฐ๋ก์ก์์ต๋๋ค(#1056).excess_return์ ์์ ๋ benchmark total์์ ๋ค์ ๋์ถํด ํ๋์ metrics dict ์์์ ๋ ํ๋๊ฐ ์๋ก ๋ชจ์๋์ง ์๊ฒ ํ์ต๋๋ค(#1058). swarm ์ฐ์ถ๋ฌผ ๊ฒ์ฆ์ok/successํค๊ฐ ์๋ ์์ tool envelope๋ฅผ ๋ถ์์ธ ๊ฒ์ฒ๋ผ ๋๊ธฐ๋ ๊ฒฝ์ฐ๋ฅผ ๊ฑฐ๋ถํ๊ณ (#1052), ์ฌ์๋๋ worker๋ ์คํจํ ์๋์report.md๋ฅผ ๋ฌผ๋ ค๋ฐ์ง ์์ผ๋ฉฐ(#1053), worker prompt๋ agent ๋ถ๋ณ ๋ธ๋ก์ด ํ๋์ ์บ์ ๋์ prefix๋ฅผ ์ด๋ฃจ๋๋ก ์ ๋ ฌ๋ฉ๋๋ค(#1057). @Shizoqua์ @Echoandelementwebsites์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. -
2026-08-10 ๐ v0.1.13 ๋ฆด๋ฆฌ์ค๏ผ๋ฆด๋ฆฌ์ค ๋ ธํธ,
pip install -U vibe-trading-ai): 0.1.12 ์ดํ 408๊ฐ ์ปค๋ฐ, 162๊ฐ ๋ณํฉ PR๋ก ์ง๊ธ๊น์ง ๊ฐ์ฅ ํฐ ๋ฆด๋ฆฌ์ค์ ๋๋ค. ์ฃผ์ธ๊ณต์ ์ ๊ธฐ๋ฅ์ด ์๋๋ผ ์์ ์ ๋๋ค: identity ๊ฒ์ดํธ๊ฐ ์ด๋ฏธ ์ฆ๊ฑฐ๋ฅผ ํ๋ณดํ ๋ต๋ณ์ ๋ ์ด์ ๊ฑฐ๋ถํ์ง ์์ต๋๋ค. ์ด์ ์๋ ํ์์ด ์จ์ ํ ์ง๋ฌธ๋ ์ค์ ๋๊ตฌ ํธ์ถ์ ๋ช ๋ถ์ ์ด ๋ค *"์ข ๋ชฉ ๋์ผ์ฑ ๋๋ ๊ฐ๊ฒฉ ๊ทผ๊ฑฐ๋ฅผ ์์ ํ๊ฒ ํ์ธํ ์ ์์ต๋๋ค"*๋ฅผ ๋ฐํํ์ต๋๋ค. ์์ธ์.SS์.SH๋ฅผ ์๋ก ๋ค๋ฅธ ์ข ๋ชฉ์ผ๋ก ์ทจ๊ธํด ๋ชจ๋ ์ํ์ด ํฐ์ปค๊ฐ ์๊ตฌ์ ์ผ๋ก ambiguous์๋ ์ , ์คํจํ ๋ณด์กฐ ์กฐํ๊ฐ ์ด๋ฏธ ์ ๊ธด identity๋ฅผ ๊ฐ๋ฑ์ํฌ ์ ์์๋ ์ , ๋ชจ๋ CJK ์ง์์ ๋ํ Yahoo์ HTTP 400์ "์ฌ๊ธฐ์ ์์ฅ๋์ง ์์"์ด ์๋๋ผ ๋ฐ์ดํฐ ์์ค ์คํจ๋ก ๊ธฐ๋กํ ์ , ๋๊ตฌ๋ณ ํ๋์ฝ๋ฉ ํ์ฉ ๋ชฉ๋ก์ด ๋ฌธ์ํ๋ 17๊ฐ์ง ์ธ์ ํ๊ธฐ ์ค 11๊ฐ์ง๋ฅผ ๋ง์ ์ , ํ์ค์ผ ๋ต๋ณ์ด ASCII ๋ก๋ ์ด๋ฆ ๋์้ ่ยทๅ ์ ์ผ๋ค๋ ์ด์ ๋ก ๊ฑฐ๋ถ๋ ์ , ๊ทธ๋ฆฌ๊ณ ์ฒ ๋จ์ ๊ตฌ๋ถ์๊ฐยฅ1,309.22๋ฅผ ์๋ผ1์ด ๊ด์ธก ๊ตฌ๊ฐ๊ณผ ๋น๊ต๋ ์ ์ ๋๋ค. ๊ฐ๋ ์ ์ง๋ฌธ๊ณผ ๋น๊ต ๋ฆฌํฌํธ๋ ๋ ์ด์ ๋ง๋ค๋ฅธ ๊ธธ์ ๋น ์ง์ง ์์ต๋๋ค. ๊ธฐ๋ก๋ OHLC ๊ทผ๊ฑฐ๋ฅผ ๋ฒ์ด๋ ํธ๊ฐ๋ ์ฌ์ ํ ๊ฑฐ๋ถ๋ฉ๋๋ค. ์ ๊ท:src/quantlibโ 17๊ฐ ๋ชจ๋ 249๊ฐ ํ ์คํธ๋ ํจ์(์ต์ , ์ฑ๊ถ, ์ ์ฉ, ๊ณ๋๊ฒฝ์ , VaR/CVaR/EVT, ์ฑ๊ณผ์์ธ ๋ถํด, ์ด๋ฒคํธ ์คํฐ๋, purged CV)๋ฅผ ์ฝ๊ธฐ ์ ์ฉquantlib_call๋ก CLIยทWeb UIยทREST APIยทMCP์์ ํธ์ถํ ์ ์์ด, skill์ด markdown์ ์์์ ํ๋ ๋์ importํฉ๋๋ค. ๋ฐธ๋ฅ์์ด์ ์์ง(run_dcf/run_comps/ 3-ํ ์ฐ๋)์ ์ ์ผํ ๊ท์น์ ์ ๋ ฅ์ด ๋น ์ง๋ฉด ์กฐ์ฉํ ๊ธฐ๋ณธ๊ฐ์ ์ฑ์ฐ๋ ๋์ ๋ชจ๋ธ์ ์คํ ๋ถ๊ฐ๋ก ๋ง๋ ๋ค๋ ๊ฒ์ ๋๋ค. ์ํฐํฐ + ๋ถ๊ท์น ํ๊ธํ๋ฆ ์ถ(XIRR / MOIC / DPI / TVPI,cashflow_performance๋ฅผ ํตํ TWR / Modified Dietz)์ ๋ฐ ์์ง๊ณผ ์๋์ ์ผ๋ก ํํํ๊ฒ ์ ์ง๋ฉ๋๋ค. ๋ชจ๋ ์คํ์ ๊ฑฐ๋ฒ๋์ค๊ฐ ๋ค์ด๊ฐ์ต๋๋ค โ ํ๋กฌํํธยทskillยท๋๊ตฌ ๋ ์ง์คํธ๋ฆฌยทํจํค์ง ๋ฒ์ ์ ๋ํ ํด์ manifest์, ์๊ธฐ ํด์๋ฅผ ๋ค์ ๊ณ์ฐํ ์์ ์กฐ์ฐจ ๋ค์ ๋ ์ฝ๋์์ ์กํ๋ ํด์ ์ฒด์ธ + fsync ๊ฐ์ฌ ์์ฅ์ ๋๋ค. ๋ฌด๋ฃ ๊ณต๊ฐ ์์ค ๊ธฐ๋ฐ ์ฝ๊ธฐ ์ ์ฉ ๋ฐ์ดํฐ ๋๊ตฌ 4์ข (๋ถ๊ธฐ ๋๋น ํฌ์ง์ ์ฐจ์ด๋ฅผ ๋ด์ SEC 13F, CSI300 ์ถ์ข ETF๊ฐ ๋ถ๊ธฐ ์์ 10๊ฐ๊ฐ ์๋๋ผ ์์์ฐ์ 98.66%์ ํด๋นํ๋ 342๊ฐ ์ข ๋ชฉ์ผ๋ก ํด์๋๋ ETF ๋ฃฉ์ค๋ฃจ, ๋ผ๋ฒจ์ด ๋ถ์ ๋ด์ฌํ๋ฅ ๋ก ์ ๊ณต๋๋ ์์ธก์์ฅ, ์ถ์ฒ์ ๊ณ ์ ๋ ์ฃผ์ฅ๋ง ๋ฝ๋ arXiv/OpenAlex)๋ ์ถ๊ฐ๋์ต๋๋ค. ์ฌ๊ธฐ์ 6๊ฐ ๊ธฐ๊ด ๋ฆฌ์์น ์ปค๋งจ๋(/comps/dcf/attrib/memo/earnings/screen), ๋ ๋ฆฝ skill์ด ๋ investor lenses, ๋ฐ๋ก ์์ฝ ๊ฐ๋ฅํ ๋ฆฌ์์น playbook 5์ข , ์ฒดํฌ์ฌ ๊ณ ์ Windows ํจํค์ง๊ณผsafeStorage๋ฅผ ๊ฐ์ถ ๋ฐ์คํฌํฑ Electron ์ ธ, 13๋ฒ์งธ ๋ธ๋ก์ปค ์ปค๋ฅํฐ eToro, 9๋ฒ์งธ ๋ฐฑํ ์คํธ ์์ง ํ๊ตญ(KRX), OpenBB Workspace ๋ธ๋ฆฌ์ง, ์บ๋๋ค ์ฃผ์ ์๋ํฌ์๋ ์ง์, ๊ทธ๋ฆฌ๊ณsentimentยทtechnical_indicatorsยทoptions_payoffยทorderbook_depthยทModelScopeยทvibe-trading update๊ฐ ํฌํจ๋ฉ๋๋ค. ์ ํ์ฑ: SEC ๋ณด๊ณ ๊ธฐ๊ฐ์(start, end)๊ตฌ๊ฐ์ผ๋ก ์๋ณํฉ๋๋ค โ ์ฐ๊ฐ ์กฐํ๊ฐ ๋จ์ผ ๋ถ๊ธฐ๋ฅผ ๋ฐํํด 4.2๋ฐฐ ๊ณผ์ํ๊ฐ์์ต๋๋ค. tushare A์ฃผ ๊ฐ๊ฒฉ์ ์์ ์ฃผ๊ฐ๋ก ๋ฐ๋์๊ณ , ๋ฐฐ๋น๋ฝ์ ๊ฐ๋ก์ง๋ฅด๋ ์์ ์์ต๋ฅ ์ ์ต๋ 47%p ์ด๊ธ๋ฌ์ต๋๋ค.bar_returns๋ ๊ฑฐ๋์ ์ง๋ฅผ 0% ๋ณ๋์ผ๋ก ๊ธฐ๋กํ์ง ์์ผ๋ฉฐ, ์ฐ์จํ๋ 24๊ฐ ๋ฐ์ดํฐ ์์ค๋ฅผ ๋ชจ๋ ํฌ๊ดํฉ๋๋ค. ์์ฑ๋ ์ฝ๋๊ฐ ๋ธ๋ก์ปค ๊ณ์ธต์ importํ๊ฑฐ๋ ์ด๋ฆ์ ๋ฐ๊พผ ๋ฐ์ธ๋ฉ์ผ๋กsocket/subprocess์ ๋ฟ์ ์ ์๋ ์๋๋ฐ์ค ๊ตฌ๋ฉ๋ ๋ง์์ต๋๋ค. ํตํ๊ฐ ์์ธ ํฌ๋ก์ค๋ง์ผ ์ปดํฌ์งํธ ๋ฐฑํ ์คํธ๋ ํ๋์ ์์ฐ๊ณก์ ์ผ๋ก ํฉ์ฐํ์ง ์๊ณ ๊ฑฐ๋ถํฉ๋๋ค. @santhreal, @shadowinlife, @Robin1987China, @he-yufeng, @QCYTSN, @Shizoqua, @honginp, @cgycorey, @wiliao, @ngoanpv, @x-lambda, @ofeksh-tr, @00EVA, @zwrong, @yrk111222, @su322, @hhj123123, @dineeshd, @sambazhu, @ddy4633, @tyj147454413-cmd, @y85998607, @JungHoonGhae, @shugaoye, @TSENGCHIENFENG, @darkknight4563, @MuggleJinx, @klmtseng, @ebujinovch, @g0rdonL, @AmirF194, @Echoandelementwebsites, @yagnikpipaliya, @dvirarad, @1anter ๋๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค. -
2026-08-09 ๐ช ์์ ํ Windows ํจํค์ง, ์บ๋๋ค ์์ฅ, ModelScope, MCP์ Alpha Zoo: Windows ๋ฐ์คํฌํฑ ํจํค์ง์ checksum์ผ๋ก ๊ณ ์ ํ ์๋ฒ ๋๋ Python 3.12 runtime๊ณผ x64 NSIS review/signing ๊ฒฝ๋ก๋ฅผ ์กฐ๋ฆฝํ๊ณ , ํ์ฉ ๋ชฉ๋ก์ credential์ Electron
safeStorage์ ๋ณด๊ดํฉ๋๋ค. renderer๋ ๋น๋ฐ๊ฐ์ ์ค์ ํ๊ฑฐ๋ ์ง์ธ ์ ์์ง๋ง ์ฝ์ ์ ์๊ณ , ํ๋ฌธ ์ค์ ์ ํ ๋ฒ๋ง ์ด์ ๋๋ฉฐ, ๋ณตํธํ ๊ฐ์ ์์ backend์๋ง ์ ๋ฌ๋ฉ๋๋ค. ์๋ช ๋์ง ์์ review build์ ์๋ช build๋ ์๋ชป๋ ์๋ช ์ํ์์ fail closedํ๊ณ , ์ด PR์์๋ installer artifact๋ฅผ ๋ฐฐํฌํ์ง ์์์ต๋๋ค(#1015). ์บ๋๋ค ์ฃผ์์ ์ด์ end-to-end๋ก ๋์ํฉ๋๋ค..TO/.Vsymbol์ CAD๋ก ๋ถ๋ฅํ๊ณ Yahoo โ yfinance โ local fallback์ผ๋ก ๊ฐ์ ธ์ค๋ฉฐ, ์บ๋๋ค ์ ์ฉ GlobalEquity rule๋ก ์ฒด๊ฒฐํ๊ณXIC.TO๋ฅผ benchmark๋ก ์ฌ์ฉํ๋ฉฐ, ํผํฉ ํตํ ํฉ์ฐ์ ๊ฑฐ๋ถํฉ๋๋ค. strict USD-M ๊ณผ๊ฑฐ backtest๋position_adjustment=rebalance๋ฅผ opt-inํด ์ฆ๊ฐ ํฌ์ง์ ์ ๋ฐ์์ collateral, funding, fee, ์คํ P&L, ์ฒญ์ฐ ๋์, ๋ถ๋ณ ์ฒด๊ฒฐ ์ฆ๊ฑฐ๋ฅผ ์ผ๊ด๋๊ฒ ์ ์งํฉ๋๋ค(#1024, #1019, #952 ์ข ๋ฃ). ModelScope๋ ๊ณต์ OpenAI-compatible hosted-inference endpoint๋ฅผ ํตํด ๋ด์ฅ provider์ ํฉ๋ฅํ๊ณ ๊ธฐ๋ณธ๊ฐ์Qwen/Qwen3.5-27B์ ๋๋ค(#1011). ์vibe-trading update๋ wheel install๊ณผ editable/source checkout์ ๊ตฌ๋ถํ๊ณ , ํ์ธํ ์ ํํ release๋ฅผ ์ค์นํ ๋ค ์ process์ metadata๋ก ๊ฒ์ฆํ๋ฉฐ downgradeํ์ง ์์ต๋๋ค(#1020).alpha_zoo์ ์ ํ๋alpha_bench๋ MCP(์ด 64 tools)์ ๋ ธ์ถ๋์ด ๊ธฐ๊ฐยท๊ฒฐ๊ณผ ์ยท์ถ๋ ฅ ๊ฒฝ๋ก๋ฅผ ์ ํํ๊ณ report๋ฅผ ์์ ํ๊ฒ ์์ฑํฉ๋๋ค(#979). ๊ฒ์ฆ๋ Python/frontend lock ๊ฐฑ์ ์ผ๋ก grouped dependencies,postcss,akshare๋ ์ ๋ฐ์ดํธํ์ต๋๋ค(#1021, #1023, #1026, #1027). ๊ธฐ์ฌํด ์ฃผ์ @QCYTSN, @wiliao, @honginp, @yrk111222, @zwrong, @cgycorey์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. -
2026-08-08 ๐งฑ ๋ฐ์คํฌํฑ ์ ธ, eToro, ์์์ ๋ฆฌ๋ฐธ๋ฐ์ฑ, ์ ๋ขฐ์ฑ ๊ฐํ: ์์ค ๊ธฐ๋ฐ Electron ํธ์คํธ๊ฐ ๊ธฐ์กด ๋ฐฑ์๋ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ด๋ฆฌํ๋ฉฐ ๋ฌด์์ loopback ํฌํธ, ์คํ๋ณ ๋น๋ฐ๊ฐ, 5๊ฐ ์ธ์ด์ ์์ ๋ณต๊ตฌ, ์์ ํ๋ก์ธ์ค ์ ๋ฆฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. eToro๋ demo/real ๊ฒฝ๋ก๊ฐ ๋ถ๋ฆฌ๋ ์ปค๋ฅํฐ๋ก ํฉ๋ฅํ๊ณ , ์ค๊ณ์ข์์ ์ํ์ ๋๋ฆฌ๋ ์์ ์ ๊ณ์ mandate์ ๊ฐ์ฌ ๊ฒ์ดํธ๋ฅผ ํต๊ณผํ๋ฉฐ, API ๊ธฐ๋ฅ ์๋ํฌ์ธํธ์๋ ์ธ์ฆ๊ณผ CSP๊ฐ ์ ์ฉ๋ฉ๋๋ค(#923, #989, #961). ๋ฐฑํ ์คํธ์๋ ๋ถ๋ณ ์ฒด๊ฒฐ ์ฆ๊ฑฐ๋ฅผ ๋จ๊ธฐ๋ opt-in ๋์ผ ๋ฐฉํฅ ์์์ ๋ฆฌ๋ฐธ๋ฐ์ฑ์ด ์ถ๊ฐ๋์ต๋๋ค. Shadow๋ ์์์ FX ํฉ์ฐ ์์ด ๊ฒฐ์ ํตํ๋ณ๋ก ์์ฅ์ ๋๋๊ณ ์ค์ ๋ runtime root๋ฅผ ๋ฐ๋ฅด๋ฉฐ, ์งํ๋ ์ํ๋งํ์ง ์์ ์ฐ์ ์ด๋ ฅ์ ์ฌ์ฉํ๊ณ , ์์ equity์ drawdown๊ณผ ํฌ์ง์ ์์ด ํ์ฐํ cross account์ ์ฒญ์ฐ ๊ฒฝ๊ณ๋ ๋ฐ๋ก์ก์์ต๋๋ค(#951, #997, #1017, #1005, #958, #959). OpenAI Codex OAuth๋ ๋ ๋ฆฝ๋ ๋๊ธฐํ credential store์ 1ํ 401 ๋ณต๊ตฌ๋ฅผ ์ฌ์ฉํ๊ณ , proxy ๋นํ์ฑํ๋ ๋๊ธฐยท๋น๋๊ธฐ client ๋ชจ๋์ ์ ์ฉ๋ฉ๋๋ค. sandbox run์ ์ ๊ท run root๋ฅผ ์ ์งํ๊ณ , ์์ฝ ๋ฆฌ์์น๋ ์์ record๋ฅผ ๊ฒฉ๋ฆฌํ๋ฉฐ interval timezone ๊ฒ์ฆ์ ์์ ํ๊ณ , ์๋ฌธ์
4h์์ฒญ์ ์ค์ 4์๊ฐ ๋ด์ ๋ฐํํฉ๋๋ค(#1014, #995, #1012, #1003, #1004, #1013). QQ ๋ต์ฅ์ ์๋ณธ message ID๋ฅผ ์ ์งํ๊ณ , ๊ธด model slug๋ ์จ์ ํ ์ฝํ๋ฉฐ, agent๋ ์ฆ๊ฑฐ๊ฐ ์ถฉ๋ถํ๋ฉด ์กฐ์ฌ๋ฅผ ๋ฉ์ถฅ๋๋ค(#1008, #1006, #1010). ๊ธฐ์ฌํด ์ฃผ์ @QCYTSN, @Shizoqua, @ngoanpv, @hhj123123, @su322, @Robin1987China, @shadowinlife, @dineeshd, @honginp, @santhreal, @00EVA, @x-lambda, @ofeksh-tr์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. -
2026-08-07 ๐ก๏ธ ์คํ ๊ฑฐ๋ถ ๊ฐ์, ์๋๋ฐ์ค ๊ตฌ๋ฉ ์ฐจ๋จ, QVeris์ MCP ๋ ธ์ถ: ๊ทธ๋ผ์ด๋ฉ ๊ฒ์ดํธ๊ฐ ์ ์ด์ ๊ฐ๊ฒฉ์ด ์๋ ์ซ์ ๋๋ฌธ์ ํ์์ด ์จ์ ํ ๋ต๋ณ์ ๊ฑฐ๋ถํ์ง ์์ต๋๋ค โ ํ์ ๋ ์ ์, ์งํ ๊ฐ, ์ด๋ํ๊ท ๊ธฐ๊ฐ,
8/5๊ฐ์ ์ฐ๋ ์๋ ๋ ์ง, ๋ฐฑ๋ถ์จ ๊ตฌ๊ฐ, ๊ทธ๋ฆฌ๊ณ ๋งค๋งค ๊ณํ ์์ฒด์ ํธ๋ฆฌ๊ฑฐ ์์ค(์ข ๊ฐ โฅ6.45๋ ์กฐ๊ฑด์ด์ง ํธ๊ฐ๊ฐ ์๋๋๋ค). ๋ฐ๋ฉด ๊ธฐ๋ก๋ OHLC ์ฆ๊ฑฐ๋ฅผ ๋ฒ์ด๋ ํธ๊ฐ๋ ์ฌ์ ํ ๊ฑฐ๋ถ๋๋ฉฐ,08-05๋ก ์ ํ ๊ฐ๊ฒฉํ๋ ์ด์ ์์ ์ ์ฆ๊ฑฐ์ ๋งค์นญ๋ฉ๋๋ค(#1001, #983). ์๋๋ฐ์ค: ์์ฑ๋ ์ ๋ต ์ฝ๋๋ ๋ธ๋ก์ปค ๊ณ์ธต์ importํ ์ ์๊ณ , ์ด๋ฆ์ ๋ฐ๊พผ ๋ฐ์ธ๋ฉ์ผ๋กsocket/subprocess/os.system/ctypes์ ๋๋ฌํ ์๋ ์์ต๋๋ค. ๋ ๋ค ์ด์ ์๋ ํต๊ณผํ์ต๋๋ค. ์ ๋ต์ด ์จ์ผ ํsrc.quantlib๋ ๊ทธ๋๋ก import๋ฉ๋๋ค. QVeris discovery/inspect/execute๊ฐ MCP ํ๋ฉด์ ํฉ๋ฅํ๊ณ (62๊ฐ ๋๊ตฌ), ๋น์ฉ ๊ฒฌ์ ์ ํธ์ถ์์ ์ ๊ณ ๊ฐ ์๋๋ผ ๋ง์ผํ๋ ์ด์ค์์ ์กฐํํฉ๋๋ค(#976, closes #964, thanks @shadowinlife). ๊ทธ ๋ฐ์ ํ์ฝฉ ์์ธ ํด๋ฐฑ ๋ผ์ฐํ ์์ ๊ณผ Tencent ํ์ฝฉ ์์ค ์ถ๊ฐ, yfinance ์ํธํํ๋ฅผ ํฌ๋ฆฝํ ์์ง์ผ๋ก ๋ผ์ฐํ , ๋ฉ๋ชจ๋ฆฌ ํญ๋ชฉ์ ๊ธฐ๋ก๊ณผ ๋ณต๊ตฌ์.mdํ์ฅ์ ๋ถ์ฌ, MCP์ list/dict ์ธ์๊ฐ JSON ๋ฌธ์์ด ํด๋ผ์ด์ธํธ๋ฅผ ํ์ฉ, ์คํ ์์ธ์ Portfolio Studio ์ฐ์ถ๋ฌผ ํ์(#1000, #970, #984, #993, #980, #982, #966, #973, thanks @he-yufeng, @ngoanpv, @sambazhu). -
2026-08-06 ๐งฎ ํ ์คํธ๋ ๊ธ์ต์ํ ๋ ์ด์ด + ๋ฐธ๋ฅ์์ด์ ์์ง + ๋น์ ๊ธฐ ํ๊ธํ๋ฆ + ์ฐ๊ฒฐ๋ ๊ฑฐ๋ฒ๋์ค:
src/quantlib๋ skills์ markdown์ ํฉ์ด์ ธ ์๋ ์์์ ๊ฐ๊ฐ ํ๋์ ํ ์คํธ๋ ๊ตฌํ์ผ๋ก ๊ต์ฒดํ์ต๋๋ค โ ์ต์ , ์ฑ๊ถ, ํฌ๋ ๋ง, ๊ณ๋๊ฒฝ์ , VaR/CVaR/EVT, ์ฑ๊ณผ ์์ธ๋ถ์, ์ด๋ฒคํธ ์คํฐ๋, ๋ค์ค๊ฒ์ ์ ์ด, purged ๊ต์ฐจ๊ฒ์ฆ โ ์ฝ 250๊ฐ ํจ์๋ฅผ ์ ์ฝ๊ธฐ ์ ์ฉ ๋๊ตฌquantlib_call์ ํตํด CLIยทWeb UIยทREST APIยทMCP์์ ๋ชจ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ฐธ๋ฅ์์ด์ ์์ง(run_dcf/run_comps/3๋ ์ฌ๋ฌด์ ํ ์ฐ๋)์ ์ ๋ ฅ์ด ๋น ์ง๋ฉด ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ฑ์ฐ๋ ๋์ ์คํ ๋ถ๊ฐ๋ก ํ์ ํฉ๋๋ค. ์ ์ํฐํฐ + ํ๊ธํ๋ฆ ๊ธฐ๋ฐ์ NAV, ์บํผํธ ์ฝ, ์ฟ ํฐ์ ๋ฐ์๋ค์ด๋ฉฐ(cashflow_performance๊ฐ XIRR/MOIC/DPI/TVPI์ TWR/Modified Dietz๋ฅผ,orderbook_depth๊ฐ ์ํธํํ L2 ์ํฉํธ ๋น์ฉ์ ์ ๊ณต), ๋งค ์คํ์ ํด์ manifest๋ฅผ ๊ธฐ๋กํ๊ณ ๊ฐ์ฌ ์์ฅ์ ํด์ ์ฒด์ธ์ผ๋ก ๋ณ์กฐ๋ฅผ ํ์งํฉ๋๋ค. 30๊ฐ swarm ํ๋ฆฌ์ ์ ๋ถ๋ฅผ ๋๊ตฌ๊ฐ ์ค์ ๊ณ์ฐํ ์ ์๋ ๋ฒ์์ ๋์กฐํด ์ฌ์ ๊ฒํ๊ณ , ๊ณ์ฐํ ์ ์๋ ์ฐ์ถ๋ฌผ์ ์ซ์๋ฅผ ์ง์ด๋ด๋ ๋์ ๊ทธ ์ฌ์ค์ ๋ช ์ํฉ๋๋ค. -
2026-08-05 ๐ญ ๊ธฐ๊ด ๋ณด์ , ETF ๋ฃฉ์ค๋ฃจ, ์์ธก ์์ฅ, ๋ ผ๋ฌธ ๊ฒ์: ๋ฌด๋ฃ ๊ณต๊ฐ ๋ฐ์ดํฐ๋ง ์ฐ๋ ์ฝ๊ธฐ ์ ์ฉ ๋๊ตฌ 4๊ฐ โ SEC 13F ๋ณด์ (๋ถ๊ธฐ ๋๋น ์ฆ๊ฐ ํฌํจ), ์์ฅ์ ๊ฐ๋ก์ง๋ฅด๋ ETF ๊ตฌ์ฑ์ข ๋ชฉ(CSI300 ์ถ์ข ETF๋ ๋ถ๊ธฐ ๊ณต์ ์์ 10๊ฐ๊ฐ ์๋๋ผ 342๊ฐ ์ข ๋ชฉยท์์์ฐ์ 98.7%๋ฅผ ๋ฐํ), ์ด๋ฒคํธ ๊ณ์ฝ์ ๋จ์๊ฐ ํ์๋ ๋ด์ฌํ๋ฅ ๋ก ์ ๊ณต, arXiv/OpenAlex ๊ฒ์์ ์๋ฌธ์ ์๋ ๊ฐ์ ์ถ๋ก ํ์ง ์๊ณ ์ถ์ฒ์ ์์์ผ๋ก ํ์ํฉ๋๋ค. ์ฌ๊ธฐ์ ์์ฝ ๋ฆฌ์์น ํ ํ๋ฆฟ 5๊ฐ, ๊ธฐ๊ด ๋ฆฌ์์น ๋ช ๋ น 6๊ฐ(
/comps/dcf/attrib/memo/earnings/screen), ๋ ๋ฆฝ skill์ด ๋ investor lenses, ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ์ซ์๋ฅผ ๋ง๋ค์ด๋ธ ๋๊ตฌ๊น์ง ์ถ์ ํ๋ agent core๊ฐ ๋ํด์ง๋๋ค. -
2026-08-04 ๐ง ์ ํ์ฑ ์์ : ํ๋๋ฉํธ, A์ฃผ ๊ฐ๊ฒฉ, ๊ณผ๋ํ ๋๊ตฌ ๊ฒฐ๊ณผ: SEC ๋ณด๊ณ ๊ธฐ๊ฐ์ ์ด์
(start, end)๊ตฌ๊ฐ์ผ๋ก ์๋ณํฉ๋๋ค. 10-Q๋ ๋์ผํ ์ข ๋ฃ์ผ๊ณผ ๋์ผํ ํ๊ณ ๋ถ๊ธฐ ์๋์ ์ค์ ๋ถ๊ธฐ์ ์ฐ์ด ์ดํ ํ๋ ์์ ํจ๊ป ์ ์ถํ๋ฏ๋ก,period="annual"์ AAPL FY2018~2020์ ๋ํด ๋จ์ผ ๋ถ๊ธฐ๋ฅผ ๋ฐํํ๊ณ (4.2๋ฐฐ ๊ณผ์ ๊ณ์), ๋ถ๊ธฐ ์๊ณ์ด์ ํ๊ณ 4๋ถ๊ธฐ ์๋ฆฌ์๋ ๋ชจ๋ ์ฐ๊ฐ ์์น๊ฐ ๋ค์ด ์์์ต๋๋ค.get_fundamentals("AAPL.US")๋ ๋ ์ด์ok:true์ ์ ๋ถ null์ธ ํจ๋์ ๋ฐํํ์ง ์์ต๋๋ค. Tushare A์ฃผ ๊ฐ๊ฒฉ์ ํฉํฐ ๋ฒค์น์ ๋ฐฑํ ์คํธ ์์ชฝ์์ ๊ธฐ์ ํ์ ์กฐ์ ์ด ์ ์ฉ๋๋ฉฐ(๋ฐฐ๋น๋ฝ์ผ์ ๊ฐ๋ก์ง๋ฅด๋ ์์ ์ข ๊ฐ ์์ต๋ฅ ์ ์ต๋ 47%p ์ด๊ธ๋ฌ์ต๋๋ค. 300750.SZ, 2023-04-26), CSI300 ๋ฒค์น๋ ๊ฐ ๋ ์ง๋ฅผ ๊ทธ ์์ ์ ์ง์ ๊ตฌ์ฑ ์ข ๋ชฉ์ผ๋ก ๋ง์คํนํฉ๋๋ค. ๊ต์ฐจ ์์ฅ ์ปดํฌ์งํธ ๋ฐฑํ ์คํธ๋ CNY, USD, KRW๋ฅผ ํ๋์ ์์ฐ ๊ณก์ ์ ํฉ์ฐํ๋ ๋์ ํตํ๊ฐ ์์ธ ์ข ๋ชฉ ์งํฉ์ ๊ฑฐ๋ถํฉ๋๋ค. ์ต์ ๋ ๊ทธ๋ ์ง์ ์์ ์ ๋ณ๋์ฑ์ผ๋ก ํ๊ฐ๋์ด ํ๋ฆฌ๋ฏธ์ ๋๋น ์ต๋ +93%์ ์ด๋ฅด๋ ์ฒซ๋ ํ์ ์์ต์ด ์ฌ๋ผ์ก์ต๋๋ค. ๊ณผ๋ํ ๋๊ตฌ ๊ฒฐ๊ณผ๋ JSON ์ค๊ฐ์์ ์๋ฆฌ๋ ๋์ ์ด ๊ฐ์๋ฅผ ๋ช ์ํ๋ฉฐ ๋ ์ฝ๋ ๋จ์๋ก ํ์ด์ง๋ฉ๋๋ค.calc_metrics๋ ์ถ์ ์ค์ฐจ์ ๋ฒค์น๋งํฌ ๋ฒ ํ๋ฅผ ๋ณด๊ณ ํฉ๋๋ค. -
2026-08-03 โฐ ํ์์กด ์ธ์ ์์ฝ ๋ฆฌ์์น + ์ข ๋ชฉ ์คํฌ๋ฆฌ๋ ๊ต์ฐฉ ํด์: ์์ฝ ์์ ์ ์ ํ์ IANA
timezone์ ์ง์ ํ ์ ์๊ณ cron์ด ํด๋น ์กด์ ๋ฒฝ์๊ณ ๊ธฐ์ค์ผ๋ก ํ๊ฐ๋๋ฏ๋ก ์๋จธํ์ ์ ํ์๋ ์ฃผ๊ธฐ๊ฐ ์ ์ง๋ฉ๋๋ค. ๋ด์ฒ ๊ฑด๋๋ฐ๋ ์๊ฐ์ ์๋ต๋๊ณ ๊ฐ์์ฒ ์ค๋ณต๋๋ ์๊ฐ์ ์ฒซ ๋ฒ์งธ ๋ฐ์์๋ง ์คํ๋ฉ๋๋ค. cron ํ๋๋ ์ผํ ๋ชฉ๋ก๊ณผ ๋ฒ์(1,3-5)๋ฅผ ์ง์ํ๋ฉฐ, ํ์์กด์ด ์๋ ์์ ์ ๊ธฐ์กด UTC ์๋ฏธ๋ฅผ ์ ์งํ๊ณ , ์น UI์๋ 5๊ฐ ์ธ์ด๋ฅผ ๊ฐ์ถ Scheduled ํ์ด์ง๊ฐ ์ถ๊ฐ๋์์ต๋๋ค(์ด์ ์๋ ํ๋ฐํธ์๋์ ์์ฝ ํ๋ฉด์ด ์ ํ ์์์ต๋๋ค) (#954, closes #953, @ngoanpv์๊ฒ ๊ฐ์ฌ). ์คํฌ๋ฆฌ๋ ์์ฒญ์ด ๋ ์ด์ ๋ง๋ค๋ฅธ ๊ธธ๋ก ๊ฐ์ง ์์ต๋๋ค. ํ๋ณด๊ฐ ์ฌ๋ฟ์ธ 1์ฐจ ์ ๋ณ ๊ฒฐ๊ณผ๋ ๋ฏธํด๊ฒฐ ์ํ๊ฐ ์๋๋ผ ๋ต๋ณ์ผ๋ก ์ทจ๊ธ๋๊ณ , ๊ฐ๋ณ ์ข ๋ชฉ์ด ํ์ ๋๋ฉด ์ญํ ์ ๋ง์นฉ๋๋ค. ๊ฐ๊ฒฉ ๊ฒ์ฆ์ ์ข ๋ชฉ ์ฝ๋ ์ซ์, ํ์งํ๋ ๋ ์ง, ์ฃผ์ ์, ํฌ์ง์ ์๊ฐ๋ฅผ ํธ๊ฐ๋ก ์ฝ์ง ์์ง๋ง, ๊ธฐ๋ก๋ OHLC ๋ฒ์๋ฅผ ๋ฒ์ด๋ ํธ๊ฐ๋ ์ฌ์ ํ ๊ฑฐ๋ถํฉ๋๋ค (closes #955). ์์ด์ ํธ ๋ฉ๋ชจ๋ฆฌ์ ์ธ๋ฑ์ค ์ต์ปค ์ ํ ์ผ์น์ ๊ฒฐ๊ณผ ์ํ ์ฒ๋ฆฌ๋ ํจ๊ป ์์ ๋์์ต๋๋ค (#956, #957, @santhreal์๊ฒ ๊ฐ์ฌ). -
2026-08-02 ๐ง ์ค์๊ฐ ๋ชจ๋ธ ํ์, ์ ํํ ๋ฐํ์ ์ ์, ๊ฒ์ฆ๋ ์์กด์ฑ ๊ฐฑ์ : Settings์์ ์ค์ ๋ provider๋ณ ๋ชจ๋ธ์ ํ์ํ ๋ ํ์ํ๊ณ ์์ ์ ์ธ ๊ฒฝ๊ณ ์ฝ๋์ 5๊ฐ ์ธ์ด UI๋ก ํ์ํฉ๋๋ค. ๊ฐ ๋ต๋ณ์๋ ์ค์ ์์ฒญ์ ์ฒ๋ฆฌํ provider/model/reasoning ์ ์์ด ๋ถ๋ณ ์ค๋ ์ท์ผ๋ก ๊ธฐ๋กยท๋ณต์๋๋ฉฐ, ์ธ์ ์ ํ ์ ์์ ํ๊ฒ ์ด๊ธฐํ๋ฉ๋๋ค (#924, @QCYTSN์๊ฒ ๊ฐ์ฌ). hash-lock๋ Python ์์กด์ฑ 9๊ฐ์
jsdom/postcss๋ ๊ฐฑ์ ํ๊ณ , ์ ํํ ๋ฒ์ import, ์ง์ค ํ ์คํธ 330๊ฐ, ํ๋ก๋์ ๋น๋, ํ๋ฐํธ์๋ ํ ์คํธ 373๊ฐ,main์ ์ฒด CI, Dependency Graph๊ฐ ํต๊ณผํ์ต๋๋ค (#949, #948). ํธํ์ฑ์ด ๊นจ์ง๋ MCP 2.0์ ์ ์ฒด lock/runtime ๋ง์ด๊ทธ๋ ์ด์ ์ด ์ค๋น๋ ๋๊น์ง ๋ณํฉํ์ง ์์์ต๋๋ค (#950). -
2026-08-01 ๐งฎ ์ต์ ์ ๋ต ๋ถ์ + ์์ฅ ์ฌ๋ฆฌ + ๊ฐ์ฌ ๊ฐ๋ฅํ USD-M ๋ฆฌ์์น: ์ ์ต์ ์์ต ์ํฌํ๋ก๋ ๋ง๊ธฐ ์์ต ๊ทน๊ฐ, ์ฐ์ ์์ต 0 ๊ตฌ๊ฐ์ ํฌํจํ ์ ํํ ์์ต๋ถ๊ธฐ์ , ๊ธฐ์กด ์์ง๊ณผ ์ผ์นํ๋ ์ง์ ์์๋ฃ, ํ๋ฌผ ๊ฐ๊ฒฉ ร IV ์๋๋ฆฌ์ค๋ฅผ ํด์์ ์ผ๋ก ๊ณ์ฐํ๋ฉฐ Agent์ MCP์์ ์ฌ์ฉํ ์ ์์ต๋๋ค(#946, #883์์ ๊นจ๋ํ ์ด๋ ฅ์ผ๋ก ์ฌ๊ตฌํ, thanks @he-yufeng). ์ฝ๊ธฐ ์ ์ฉ
sentiment๋๊ตฌ๋ ์์์ ํ ์คํธ๋ฅผ ๋ก์ปฌ์์ ์ ์ํํ๊ณ API ํค ์์ด ์ํธํํ Fear & Greed Index๋ฅผ ๊ฐ์ ธ์ต๋๋ค(#939, thanks @Robin1987China). ์๊ฒฉํ USD-M ๋ฐฑํ ์คํธ๋ ์ฒด๊ฒฐ, ํ๋ฉ, ๋ฆฌ์คํฌ, ์ฒญ์ฐ ์ด๋ฒคํธ๋ฅผ ์์๋๋ก ์์ํํ๊ณ ์ถฉ์ค๋ ์์ฝ์ ์์ฑํ๋ฉฐ, 100ร ์๊ฒฉ ๋ชจ๋์์ ์ง์ํ์ง ์๋ ์๊ฐ ๊ฐ๊ฒฉ์ ๊ฑฐ๋ถํฉ๋๋ค(#936, thanks @honginp). ์ ๋ขฐ์ฑ ๊ฐ์ ์ผ๋ก ์ฌ๋ณผ๊ณผ ๊ฑฐ๋์๋ฅผ ๋จผ์ ํ์ธํ ๋ค ์์ฅ ๋ฐ์ดํฐ๋ฅผ ํธ์ถํ๊ณ , ์ต์ข ์ ์ ๊ฐ๊ฒฉ์ ๊ธฐ๋ก๋ OHLC ๊ทผ๊ฑฐ์ ๋์กฐํฉ๋๋ค. ์์ฝ ๋ฆฌ์์น๋ ์ผ์์ ์คํจ๋ฅผ ์ฌ์๋ํ๋ฉฐ ์ค์ฒฉ๋ MCP ๊ฒฐ๊ณผ๋ ์์ ์ ์ผ๋ก ์ง๋ ฌํ๋ฉ๋๋ค. -
2026-07-31 ๐ง USD-M ์ฒญ์ฐ ์๋ช ์ฃผ๊ธฐ + ๊ธฐ์ ์ ์งํ ๋๊ตฌ + ์ํ ๋๋ ํฐ๋ฆฌ์ ์ฌ์ฉ์ ๋ฃจํธ ์ด์ : ์ตํธ์ธ
perpetual_strict๋ชจ๋๊ฐ ์ฒด๊ฒฐ ์ ์ ๊ณผ๊ฑฐ ํ๋ฉ๋น๋ฅผ ์ ์ฐํ๊ณ ๊ฒฉ๋ฆฌ/๊ต์ฐจ ์ฆ๊ฑฐ๊ธ ์๋ฐ์ ์ค์ ์ฒญ์ฐ์ผ๋ก ์คํํฉ๋๋ค(#903, thanks @honginp). ์ฝ๊ธฐ ์ ์ฉtechnical_indicators๋๊ตฌ๊ฐ ๊ธฐ์กด ๋ก๋๋ฅผ ํตํด RSI/MACD/๋ณผ๋ฆฐ์ /SMA/EMA๋ฅผ ๊ณ์ฐํฉ๋๋ค(#921, #920 ์ฐธ์กฐ, thanks @Robin1987China). ์ธ์ , ์คํ ์ฐ์ถ๋ฌผ, ์ค์ ์คํ, ์ ๋ก๋๊ฐ~/.vibe-trading์๋๋ก ํตํฉ๋๊ณ (VIBE_TRADING_HOME์ผ๋ก ์ฌ๋ฐฐ์น ๊ฐ๋ฅ) ์ฒซ ์คํ ์ ์๋ ๋ง์ด๊ทธ๋ ์ด์ ๋ฉ๋๋ค(#925, #904 ์ข ๋ฃ, thanks @MuggleJinx). ์ฌ๊ธฐ์ 10๊ฑด์ ์ ํฉ์ฑ ์์ โ Yahoo.SS๋ฅผ A์ฃผ๋ก ๋ถ๋ฅ, ์ ๋/์ ๋ฏธ ํ์ A์ฃผ ์ฝ๋, ์ฌ๋์ ๊ตฌ๋ถ ์ํธํํ ํ์ด,nan/inf๊ฐ๋ ๋ฑ(#919, #926โ#935, thanks @santhreal). -
2026-07-30 ๐จ ์๋ก์์ง WebUI + ํ๊ตญ(KRX) ์์ฅ + OpenBB Workspace ๋ธ๋ฆฌ์ง: ์น UI์ guided-minimalism ๊ฐํธ์ด ๋ฐ์๋์ต๋๋ค โ ์ฒซ ํ๋ ์ ๊น๋นก์ ์ ๊ฑฐ, ํด๋ง๋ค ํ๋์ ์ง์ ํ๋ ๊ฐ์ฒด(์ค์๊ฐ ์ถ๋ก ์์คํผ + ์๋ก๊ณ ์นจํด๋ ๋ณต์๋๋ ๋๊ตฌ ํธ๋ ์ผ), LLM์ด ์ฐ๋ ์ธ์ ์ ๋ชฉ, 5๊ฐ ๋ก์ผ์ผ ์์ ์ ํฉ. **ํ๊ตญ ์ฃผ์(KRX: KOSPI/KOSDAQ)**์ด 9๋ฒ์งธ ๋ฐฑํ ์คํธ ์์ง์ด ๋ฉ๋๋ค โ ยฑ30% ๊ฐ๊ฒฉ์ ํํญ์ ์ฒด๊ฒฐ ์์ ์ ํ์ , ๋กฑ ์จ๋ฆฌ, 2026๋ 0.20% ์ฆ๊ถ๊ฑฐ๋์ธ, ์ ํ์
pykrx๋ก๋(#693, thanks @JungHoonGhae). ๋ํ OpenBB Workspace ๋ธ๋ฆฌ์ง(#817, thanks @shugaoye)์ ์ฝ๊ธฐ ์ ์ฉ ๋๋ง ์ฃผ์ ์ค๋ ์ท ๋๊ตฌ(#848, thanks @TSENGCHIENFENG). ์ ํฉ์ฑ: ์ผ์ผ ๊ฐ๊ฒฉ์ ํํญ์ ํ๋จ ๋ด์ ์ข ๊ฐ๊ฐ ์๋๋ผ ์ฒด๊ฒฐ ์์ ์ ํ์ ํ๋ฉฐ, ํ ์ธ์ ์ ํ ๋ฒ์ ํ๋์ ์คํ๋ง ์ํํ๊ณ (HTTP 409) ์ฌ์ฉ์ ์ค๋จ์ ๋ ๋ฆฝ๋ ์ข ๋ฃ ์ํ์ ๋๋ค(#676, thanks @tyj147454413-cmd). ์ฌ๊ธฐ์ ํธ๋ ์ด์ค ๋ด๊ตฌ์ฑ(#662), ๋๊ตฌ ๊ฒฐ๊ณผ ๋น๋ฐ์ ๋ณด ์คํฌ๋ฝ(#675), ์๋ชป๋ ๋๊ตฌ ์ธ์ ํ์ผ ํด๋ก์ฆ(#913/#911, thanks @santhreal), OpenAI ์ง์ ์ฐ๊ฒฐ์reasoning_effort(#755, thanks @1anter), ๋ฆฌ์คํฌ ์์ค๋ ์ด / ์ฃ์ง ๋ฐ๋ / ์ต์ ์์ง ์์น ๊ฐ๋(#909/#908/#907)๊ฐ ๋ํด์ก์ต๋๋ค. -
2026-07-29 ๐ง ๊ฐญ ์์ ์์ต๋ฅ + ์ฒญ์ฐ ๋ฆฌ์คํฌ ๋ชจ๋ธ๋ง + ๋ชจ๋ ์คํ์ ๋ฆฌ์คํฌ ์์ค๋ ์ด:
bar_returns๊ฐ ํฌ์๋ํ ์๋์ฐ๋ฅผ ๋๋ ๊ฑฐ๋์ ์ง ๊ตฌ๊ฐ์ ์ค์ ๊ฐ๊ฒฉ ๋ณ๋์ ๋ ์ด์ ์ง์ฐ์ง ์์ต๋๋ค โ ์ฌ๊ฐ ๋ด์ ์์ง์์ด ์กฐ์ฉํ 0์ผ๋ก ๊ธฐ๋ก๋์ด ๋ณ๋์ฑ ๊ณผ์ํ๊ฐ์ ์คํ ๊ณผ๋ํ๊ฐ๋ฅผ ์ผ์ผ์ผฐ์ต๋๋ค.inf์ง์ ๊ฐ๊ฒฉ์ด ๊น๋ํ โ100%๋ก ์ฝํ๋ ๋ฌธ์ ๋ ์์ (#895, thanks @darkknight4563). ์ฐ์จํ ํ ์ด๋ธ์ด 24๊ฐ ๋ฐ์ดํฐ ์์ค ์ ์ฒด๋ฅผ ๋ชจ๋ ์ฃผ๊ธฐ์์ ์ปค๋ฒํ๋ฉฐ, ๋๋ฝ ์ CI๊ฐ ์คํจํ๋ ์ปค๋ฒ๋ฆฌ์ง ํ ์คํธ ์ถ๊ฐ(#891, closes #884, thanks @Robin1987China). USD-M ๋ฌด๊ธฐํ ๋ฆฌ์์น์ ๊ฒฐ์ ๋ก ์ ๊ฒฉ๋ฆฌ/๊ต์ฐจ ๋ง์ง ์ฒญ์ฐ ํ๊ฐ๊ฐ ์ถ๊ฐ๋๊ณ (#889, thanks @honginp), ๋ชจ๋ ํฌํธํด๋ฆฌ์ค ๋ฐฑํ ์คํธ๊ฐ ๋ฆฌ์คํฌ ์์ค๋ ์ด ์ํฐํฉํธ(risk_xray.json/.md)๋ฅผ ์์ฑํฉ๋๋ค(#900, thanks @he-yufeng).connectorCLI๊ฐ~/.vibe-trading/.env๋ฅผ ๋ก๋ํ์ฌ ํ๊ฒฝ๋ณ์ ๊ธฐ๋ฐ ๋ธ๋ก์ปค ์๊ฒฉ์ฆ๋ช ์ด ๋ณต๊ตฌ(#902, closes #901, thanks @MuggleJinx). ์ฑ๋ ๋ฉ์์ง ๋ถํ ๋ค์ฌ์ฐ๊ธฐ ๋ณด์กด๊ณผ ์คํฌ frontmatter EOF ํ์ฑ ์์ ๋ ํฌํจ(#867/#861, thanks @santhreal). -
2026-07-28 ๐ง ์ฐจ์ธ๋ Claude ๋ชจ๋ธ ํด์ + ๋ถํธ ์์ ์์ต๋ฅ :
temperatureํ๋๋ฅผ ํ๊ธฐํ Claude ๋ชจ๋ธ(opus-4-7, opus-5, sonnet-5)์ ์ด์ ์ฌ์ฉํ ์ ์์ต๋๋ค โ API๊ฐ ํด๋น ํ๋๋ฅผ ๊ฑฐ๋ถํ๋ฉด ์ด๋ํฐ๊ฐ ํ๋๋ฅผ ์ ๊ฑฐํ๊ณ ํ ๋ฒ ์ฌ์๋ํ ๋ค ๊ทธ ๋ชจ๋ธ์ ๊ธฐ์ตํ๋ฏ๋ก, ๋ชจ๋ธ ๋ฆด๋ฆฌ์ค๋ง๋ค ํจ์นํ ํ์๊ฐ ์์ต๋๋ค(#890, #856 ์ข ๋ฃ, @yagnikpipaliya ๊ฐ์ฌํฉ๋๋ค). ๋น๋ํํvibe-trading run์ด ํธ์คํธ ์ธ์ ID๋ฅผ ์ฃผ์ ํฉ๋๋ค: ๊ธฐ์กด์๋ ๋ฆฌ์์น ๋ชฉํ ๋๊ตฌ๊ฐ ๋งค ํธ์ถ๋ง๋ค ์คํจํ๋๋ฐ๋ ์คํ์ ์ฑ๊ณต์ผ๋ก ๋ณด๊ณ ๋์ต๋๋ค(#885). ๋งค์ ํ ๋ณด์ ์์ต๋ฅ ์ด ๋ถํธ ์์ ํด์ก์ต๋๋ค โ ์ง์ ์ข ๊ฐ๊ฐ 0์ ๊ฐ๊น์ธ ๋ ๋ณต๋ฆฌ ๋ฒค์น๋งํฌ๊ฐ ํญ์ฃผํ๊ฑฐ๋, ์ข ๊ฐ๊ฐ ์ ํํ 0์ผ ๋inf/nan์ด ๋์ค์ง ์์ต๋๋ค(#872, @darkknight4563 ๊ฐ์ฌํฉ๋๋ค). ํ๋ฐํธ์๋๋ฅผ Node 22 + React Router 8๋ก ์ด์ ํด ์ฌ๊ฐ๋ '๋์' ๋ณด์ ๊ถ๊ณ ๋ฅผ ํด์ํ์ต๋๋ค. -
2026-07-27 ๐ง ์๊ดํ๋ ฌ ์ ํฉ์ฑ ์์ + vn.py 4.0 ๋ด๋ณด๋ด๊ธฐ ๋ณต๊ตฌ + ์ธ์ฝ๋ฉ ์์ ๋ฐฐ์น: ๋กค๋ง ์๊ดํ๋ ฌ์ด ๋ ์ด์ ๋๋ฝ๋ ์ข ๊ฐ๋ฅผ ์ ๋ฐฉ ์ฑ์ํ์ง ์์ต๋๋ค โ ๊ธฐ์กด์๋ ๊ฑฐ๋์ ์ง ์ธ์ ์ด ๊ฐ์์ 0% ์์ต๋ฅ ๋ก ๊ณ์ฐ๋์ด ์๋ ์ข ๋ชฉ์ ์ค์ ๋ฑ๋ฝ๊ณผ ์ง์ง์ด์ง๋ฉด์ ํ๋ ฌ์ ์๊ณกํ์ต๋๋ค(#873, @ddy4633 ๊ฐ์ฌํฉ๋๋ค). vn.py ๋ด๋ณด๋ด๊ธฐ ์คํฌ์ vn.py 4.x ๊ตฌ์กฐ์ ๋ง๊ฒ ๋ณต๊ตฌํ์ต๋๋ค โ ์ ์คํธ๋ฆผ์์
vnpy.app.cta_strategy๊ฐ ์ฌ๋ผ์ ธ ํ ํ๋ฆฟ์ด ์ด์ vnpy_ctastrategy์์ ์ํฌํธํฉ๋๋ค(#869, @y85998607 ๊ฐ์ฌํฉ๋๋ค). ์ฌ๊ธฐ์ 6๊ฑด์ ์์ : ๋ฌธ์ ๋ฆฌ๋์ ๋งค๋งค ์ผ์ง CSV์ UTF-16 BOM ๋์ฝ๋ฉ, ์ซ์ ๋ณํ ์ ํตํ ๊ธฐํธ ์ ๊ฑฐ,BTCUSDTํ์ ์ฌ๋ณผ์ ์ํธํํ ์ธ์, ์๋ฌธ์1h/1d์ธํฐ๋ฒ์ ์ฐ์จํ ์์ , ์คํฌ ๋๋ ํฐ๋ฆฌ ์ด๋ฆ์ CJK ๋ฌธ์ ๋ณด์กด(#862, #863, #864, #865, #866, #868, @santhreal ๊ฐ์ฌํฉ๋๋ค). -
2026-07-26 ๐ ์์กด์ฑ ์ ๊ธ ๋ณต๊ตฌ + ๋ฒค์น๋งํฌ ์ ๋๋ฒ์ค ํฌ๋ช ์ฑ: Docker ํด์ ์ ๊ธ ์ค์น๊ฐ ๋ค์ ์ ์ํ๋๊ณ CI์ ์ ๊ธ ๊ฒ์ฌ๊ฐ ์ถ๊ฐ๋์ต๋๋ค(#858, #847 ์ข ๋ฃ).
alpha bench๊ฐ ์ด์ CSI300/SP500์ ์ถ์ฒ, ๊ตฌ์ฑ ์ข ๋ชฉ ์, ์ถ์ ํด๋ฐฑ, ์์กด์ ํธํฅ์ ๊ณต๊ฐํฉ๋๋ค(#859, #845 ์ข ๋ฃ). Actions์ ํ๋ฐํธ์๋ ์์กด์ฑ 5๊ฑด๋ ์ ๋ฐ์ดํธํ์ต๋๋ค(#850โ#852). -
2026-07-25 ๐ง ํผํ์ถ์ผ ๋ฆฌ์ผ๋ฆฌ์ฆ + MCP ํฌ๋์ ์์ + ์ ํ์ฑ ๋ฐฐ์น: USD-M ํผํ์ถ์ผ์ ๋ง์ง ์ํ ๊ณ์ฝ์ด ์ถ๊ฐ๋๊ณ (#798, @honginp ๊ฐ์ฌํฉ๋๋ค), ์์ง์ด ์ด์ ๊ฐ์ ธ์ค๊ธฐ๋ง ํ๊ณ ๋ฌด์ํ๋ ๊ณผ๊ฑฐ ํ๋ฉ ๋น์จ์ ์ค์ ๋ก ์๋นํฉ๋๋ค(#819, @g0rdonL ๊ฐ์ฌํฉ๋๋ค). MCP dataclass ๊ฒฐ๊ณผ๊ฐ ์๋ชป ๊ฐ์ง๋
Circular reference detected๋ก ๋ ์ด์ ํฌ๋์ํ์ง ์์ผ๋ฉฐ(#849, @Echoandelementwebsites ๊ฐ์ฌํฉ๋๋ค),alpha benchCLI/HTML์ด_meta์์กด์ ํธํฅ ๊ณต์๋ฅผ ์ ๋ฌํฉ๋๋ค(#841, #797 ๋ซํ, @AmirF194 ๊ฐ์ฌํฉ๋๋ค). ๋ํ ์ ๋, ์ปค๋ฅํฐ, ์ฑ๋ ์ ๋ฐ์ 12๊ฐ ์ ํ์ฑ ์์ (#799โ#810, @santhreal ๊ฐ์ฌํฉ๋๋ค)๊ณผ CLI ์์ก ๋ณด๊ธฐ์ ์ค์ ๊ณ์ ๋ ์ด๋ธ(#843, #846 ๋ซํ, @Robin1987China ๊ฐ์ฌํฉ๋๋ค). -
2026-07-24 ๐ ๋ฉ๋ชจ๋ฆฌ Tier 2, ํฉ์ฑ ๊ฐ๋ฅํ ์ตํฐ๋ง์ด์ ์ ์ฝ + ์ธํฐ๋ฒ ์ฒ๋ฆฌ ์ ๊ฒ: ํผ์์คํดํธ ๋ฉ๋ชจ๋ฆฌ์ Tier 2 ๊ตฌ์กฐ์ ์กฐ์งํ๊ฐ ์ถ๊ฐ๋ฉ๋๋ค(#815, @shadowinlife ๊ฐ์ฌํฉ๋๋ค). ๋ฐฑํ ์คํธ ์ตํฐ๋ง์ด์ ๊ฐ ํฉ์ฑ ๊ฐ๋ฅํ ๊ฐ์ค์น ์ ์ฝ์ ๋ฐ์๋ค์ ๋๋ค(#818, @he-yufeng ๊ฐ์ฌํฉ๋๋ค). ์ ํ์ฑ: ์ผ๋ด ๊ฒ์ฆ๊ธฐ๊ฐ ๋น์์ ๊ฐ๊ฒฉ์ ์ตํธ์ธํ ์ ์์ต๋๋ค โ ์์ ๊ฐ๊ฒฉ ๋ด์์๋ ์๊ฐ๋ฅผ ์ทจํ๋ฉด์ 0์ ๊ณ์ ๊ฑฐ๋ถํฉ๋๋ค(#816, #571 ์ข ๋ฃ, @darkknight4563 ๊ฐ์ฌํฉ๋๋ค). ์ฌ๊ธฐ์ 19๊ฑด์ PR๋ก ์ด๋ค์ง ๋ก๋ ์ธํฐ๋ฒ ์ ๊ทํ ์ ๊ฒ: ์๋ฌธ์
1h/4h/1d/1w๋ณ์นญ์ ์ ๋ฐ์ ์ผ๋ก ํ์ฉํ๊ณ , ์ง์ํ์ง ์๋ ์ธํฐ๋ฒ์ ์กฐ์ฉํ ์ผ๋ด์ ๋ฐํํ๋ ๋์ ์ฆ์ ์คํจํ๋ฉฐ, Yahoo4H๋1h๋ก ๋งคํ๋๊ณ MT5๋1W/1M์ ํ์ฉํฉ๋๋ค(#812โ#838, @santhreal ๊ฐ์ฌํฉ๋๋ค). ๋ํ ๋งค๋งค ์ผ์ง์ Eastmoney Excel ์๋ฆฌ์ผ ๋ ์ง ์์ (#811, @santhreal ๊ฐ์ฌํฉ๋๋ค)๊ณผ README ๋ค๋น๊ฒ์ด์ ์ต์ปค ์์ (#840, @dvirarad ๊ฐ์ฌํฉ๋๋ค)์ด ํฌํจ๋ฉ๋๋ค. -
2026-07-23 ๐ง ์ ๋ขฐ์ฑ ์ ๊ฒ + strict alpha-bench ์ง์ ์ ๋ ธ์ถ + ์ทํธ์ธ ๋ฉ๋ชจ๋ฆฌ ๋ผ์ดํ์ฌ์ดํด: 22๊ฐ ๊ธฐ์ฌ์ PR ๋ฐฐ์น. ๊ด๋ฒ์ํ ์ ๋ขฐ์ฑ ์ ๊ฒ์ด ํ์ํ๋ ์ ์ฒ๋ฆฌ๋ฅผ ์๋ํฌ์๋๋ก ์์ ํฉ๋๋ค โ yfinance
1Mโ์๋ด(๋ถ ์๋), CCXT1W/1M, akshare/india-broker๊ฐ ์ง์ํ์ง ์๋ ๊ฐ๊ฒฉ์ ์กฐ์ฉํ ์ผ๋ด์ผ๋ก ๋ง๋ค์ง ์๊ณ ๊ฑฐ๋ถ, Tiger/Alpaca/OKX/Shoonya/Longbridge ์ปค๋ฅํฐ๊ฐ1H/4H๋ฅผ ์๊ฐ๋ด์ผ๋ก ์ ์ง โ ์ฌ๊ธฐ์ ๊ฑฐ๋ ์ ๋ Excel ๋ ์ง ์ ๊ทํ(eastmoney ๋ถ๋์์YYYYMMDD, Futu/Tonghuashun ์๋ฆฌ์ผ ๋ ์ง),report_audit์ ํ ์์น JSON, ๋นholding_days๊ฒ์ฆ, Feishu/CLI markdown ํ ์ด๋ธ ๊ฐ์ฅ์๋ฆฌ ์ด(#778โ#794, @santhreal ๊ฐ์ฌํฉ๋๋ค). MT5trading_history๋ ์ด์ numpy ์ค์นผ๋ผ๋ฅผ ๋ค์ดํฐ๋ธ Python ํ์ ์ผ๋ก ๋ณํํ์ฌ JSON ์ง๋ ฌํ๊ฐint64์์ ์คํจํ์ง ์์ต๋๋ค(#776, #774 ์ข ๋ฃ, @shadowinlife ๊ฐ์ฌํฉ๋๋ค). PIT ํ๋๋ฉํธ์ ์ ์ ๋ ํ์ ์ค๋ณต ์ ๊ฑฐํ๊ณ , ๋ฆ๊ฒ ๋์ฐฉํ ์ ์ ๊ณต์๋ก ์ค๋ ์ท์ด ๋ ์ค๋๋ ํ๊ณ ๊ธฐ๊ฐ์ผ๋ก ํํดํ์ง ์๋๋ก ํฉ๋๋ค(#772, #771 ์ข ๋ฃ, @klmtseng ๊ฐ์ฌํฉ๋๋ค). ์ ๊ท: **alpha bench --strict**๊ฐ 0.1.9๋ถํฐ ์กด์ฌํ์ง๋ง ์ง์ ์ ์ด ์๋ strict ๋์ผ ์ ๋๋ฒ์ค ๋๋ค ๋์กฐ + OOS ๊ฒ์ดํธ๋ฅผ ๋ง์นจ๋ด ์ฐ๊ฒฐ(#796, #773 ์ข ๋ฃ, @he-yufeng ๊ฐ์ฌํฉ๋๋ค), ์ทํธ์ธ ๋ฉ๋ชจ๋ฆฌ ๋ผ์ดํ์ฌ์ดํด(ํ์ง ์ ์, ์๋นํ์ฐ์ค ๊ฐ์ , ์์นด์ด๋ธ ์ ์ฉ GC โ ๋ชจ๋ ๊ธฐ๋ณธ ๋นํ์ฑํ)(#733, #732 ์ข ๋ฃ, @shadowinlife ๊ฐ์ฌํฉ๋๋ค), ๋ฐฑํ ์คํธ ๋ฆฌ๋ฐธ๋ฐ์ค ๋ ธํธ ์ํฐํฉํธ + ํ์ ์จ ์งํ(#795, @he-yufeng ๊ฐ์ฌํฉ๋๋ค). -
2026-07-22 ๐ v0.1.12 ๋ฆด๋ฆฌ์ค(๋ฆด๋ฆฌ์ค ๋ ธํธ,
pip install -U vibe-trading-ai): correlation regime ํ์๋ผ์ธ์ดGET /correlation/regime์๋ํฌ์ธํธ + ์ตํธ์ธ Correlation ํญ ์คํธ๋ฆฝ์ ์ถ๊ฐํฉ๋๋ค โ ์ฃ์ง ๋ฐ๋๋ฅผ ์ธ๊ณผ์ ํ์คํ ๋ฆฌ์์ค ์ํ ๋จธ์ ์ ํต๊ณผ์์ผ FUSED ์์ฅ ๊ตญ๋ฉด์ ํ์ํ๋ฉฐ, ์๊ทธ๋์ด ์๋๋ผ ์์ ์ ๋ฆฌ์คํฌ ์ปจํ ์คํธ์ ๋๋ค(#756, #719 ์ข ๋ฃ, @ebujinovch ๊ฐ์ฌํฉ๋๋ค). ํ๋ก๋ฐ์ด๋ ์๋ํฌ์ธํธ ํด์์ด ์ด์ ๊ฐ ํ๋ก๋ฐ์ด๋์ canonical base URL๋ก ํด๋ฐฑํ๊ณ non-SSE ์๋ํฌ์ธํธ๋ฅผ ์ฐ์ํ๊ฒ ์ฒ๋ฆฌํ์ฌ, glm-5.1์ ๋ค์ดํฐ๋ธ zai ํ๋ก๋ฐ์ด๋๋ฅผ ์์ ํฉ๋๋ค(#758). ์ฌ๊ธฐ์ metrics, factors, pattern, session, journal ์ ๋ฐ์ strict-JSON / ์ ํ ์์น ์ ๋ขฐ์ฑ ์ ๊ฒ(#761โ#770, @santhreal ๊ฐ์ฌํฉ๋๋ค)๊ณผ-PERP๋ฐฑํ ์คํธ๋ฅผ ์๊ฒฉ ์ฆ๋ช ์์ด ์ ์งํ๋ Binance ์ ์ง๋ณด์ ๋ธ๋ํท ๋ถ๋ฆฌ(#757, @honginp ๊ฐ์ฌํฉ๋๋ค)๊ฐ ๋ํด์ง๋๋ค. 0.1.11 ์ดํ ~90๊ฑด์ ์์ ์ ๋กค์ ํฉ๋๋ค. -
2026-07-21 ๐ง ๋ฐ์ดํฐ ๋ก๋ ์์ ์ฑ + ์ ๋ขฐ์ฑ ์์ ์ ๊ฒ: ๋ถ๋ถ ์์ฅ ๋ฐ์ดํฐ๋ ์ด์ fallback ์ฒด์ธ์ ํตํด ๋๋ฝ๋ ์ฌ๋ณผ์ ์ฑ์ฐ๊ณ , ์ฑ์ฐ์ง ๋ชปํ๋ฉด ํ์ผํด๋ก์ฆํ์ฌ ๋ฐฑํ ์คํธ ์ ๋๋ฒ์ค๋ฅผ ์กฐ์ฉํ ์ถ์ํ์ง ์์ต๋๋ค(#689, #681 ์ข ๋ฃ, @xkam7ar ๊ฐ์ฌํฉ๋๋ค). ๋ํ OKX ๋ฐ๋ ๊น์ ์ด๋ ฅ ๋ฐฑํ์ ์ํด ๋ ์ดํธ๋ฆฌ๋ฐ ์ฌ์๋์ ํจ๊ป
history-candles์๋ํฌ์ธํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค(#644, @tyj147454413-cmd ๊ฐ์ฌํฉ๋๋ค). ์ฌ๊ธฐ์ ์์ ์ ๊ฒ: MCP ๋คํธ์ํฌ ๊ฐ๋๊ฐ IPv6 / ๋์๋ฌธ์๊ฐ ๋ค๋ฅธ ํธ์คํธ๋ฅผ ํ์ฉํ๊ณ (#750, @Robin1987China ๊ฐ์ฌํฉ๋๋ค), ๊ฑฐ๋ ์ ๋ ํ์๊ฐ ๊ณต๋ฐฑ/NaN ์ฌ๋ณผ ํ์ ๊ฑด๋๋ฐ๋ฉฐ(#749, @Robin1987China ๊ฐ์ฌํฉ๋๋ค), Shadow Account๊ฐ ์ผ๋ด์์๋ ์ฑ๊ตด๋ ์ง์ ์๊ฐ ๊ฒ์ดํธ๋ฅผ ๊ฑด๋๋ฐ๊ณ (#748, @Robin1987China ๊ฐ์ฌํฉ๋๋ค), MiniMax ์ง์ญ API ์๋ํฌ์ธํธ๋ฅผ ์ ํํ ์ ์์ต๋๋ค(#731, @octo-patch ๊ฐ์ฌํฉ๋๋ค). -
2026-07-20 ๐ ํ๋ก๋ฐ์ด๋, MetaTrader 5, ๊ฒฌ๊ณ ์ฑ ์ ๊ฒ: ๋ค์ดํฐ๋ธ Anthropic Messages API(์ ํ์
[anthropic]extra, #695, @jelech ๊ฐ์ฌํฉ๋๋ค), SiliconFlow(#565, @UNHNQ ๊ฐ์ฌํฉ๋๋ค), iFlytek Spark(#537, @FenjuFu ๊ฐ์ฌํฉ๋๋ค)๊ฐ ํ๋ก๋ฐ์ด๋์ ์ถ๊ฐ๋๊ณ , MetaTrader 5(Exness) ๋ธ๋ก์ปค ์ปค๋ฅํฐ +mt5์ธํ/๊ท๊ธ์ ๋ฐ์ดํฐ ์์ค๊ฐ ๋์ ๋์์ต๋๋ค(๋ธ๋ก์ปค ์ปค๋ฅํฐ โ 12, #481, @StaniellG ๊ฐ์ฌํฉ๋๋ค). ์ฌ๊ธฐ์ ํ๋ก๋ฐ์ด๋ ๋ ๋ฆฝ์ ์ธllm-visionOCR ์์ง(#548, @shadowinlife ๊ฐ์ฌํฉ๋๋ค), 80ร ์๊ทธ๋ ์ ๋ ฌ ๋ฒกํฐํ(#698, @shadowinlife ๊ฐ์ฌํฉ๋๋ค), Binance USD-M ํ๋ฉ/๋ธ๋ํท ์ด๋ ฅ ๋ฐ์ดํฐ(#716, @honginp ๊ฐ์ฌํฉ๋๋ค), swarm MCP ๋์ค์ปค๋ฒ๋ฆฌ ์บ์(#704), ๊ทธ๋ฆฌ๊ณ 13๊ฐ์ SSE/์ธ์ /CLI/swarm/์ค์ผ์ค๋ฌ ์ด์๋ฅผ ๋ซ๋ ์ ๋ขฐ์ฑ ํตํฉ(#584, @xkam7ar ๊ฐ์ฌํฉ๋๋ค)์ด ๋ํด์ก์ต๋๋ค. ์ ํ์ฑ ์์ : ์ต์ ๋ถ๋ถ ์ฒญ์ฐ์ด ์ด์ ์ ์ฒด ๋์ ์ฒญ์ฐํ์ง ์๊ณ ์์ฒญ ์๋๋ง ์ฒญ์ฐํ๋ฉฐ(#577), ํ๋ก๋ฐ์ด๋ ์๊ฒฉ ์ฆ๋ช ํด์ ์ผ์ํ(#563), ๋๊ธฐ ์ค ์ทจ์ ์ฒ๋ฆฌ(#641), ํ๋ฐํธ์๋ ์คํธ๋ฆฌ๋ฐ DOM ๊ฒฝํฉ(#717, @Marnie0415 ๊ฐ์ฌํฉ๋๋ค), ์ปค๋ฅํฐ CLI ๋ ๋๋ฌ(#726, @nareshkps ๊ฐ์ฌํฉ๋๋ค). -
2026-07-19 ๐ง ๋ฏธ๊ตญ/ํ์ฝฉ ์ฃผ์ ์ค์ ๋ด์ค ๊ธฐ์ฌ + MCP factor-analysis ์์ + ๊ฒฌ๊ณ ์ฑ ์ ๊ฒ: ์ฃผ์ ๋ด์ค ๋๊ตฌ๊ฐ ์ด์ ๋ฏธ๊ตญ ๋ฐ ํ์ฝฉ ํฐ์ปค์ ๋ํด ๊ด๋ จ ์ข ๋ชฉ ๋งค์น๊ฐ ์๋๋ผ ์ค์ Yahoo Finance ๊ธฐ์ฌ(title/url/source/published/snippet)๋ฅผ ๋ฐํํ๋ฉฐ, ์ฌ์ ํ ๊ณ ์ ๋ IP ์ค๋กํ๋ง ํด๋ผ์ด์ธํธ๋ฅผ ํตํด ๋ผ์ฐํ ๋ฉ๋๋ค(#730, @yxhuang ๊ฐ์ฌํฉ๋๋ค). MCP
factor_analysis๋๊ตฌ๊ฐ ๋ฑ๋ก๋ ๋๊ตฌ์ ์ค์ CSV ๊ณ์ฝ์ ๋ง์ถฐ์ ธ, ํธ์ถ์ด ์คํ ์ ์KeyError๋ก ์คํจํ์ง ์์ต๋๋ค(#715, #635 ์ข ๋ฃ, @Robin1987China ๊ฐ์ฌํฉ๋๋ค). ์ฌ๊ธฐ์ ๊ฒฌ๊ณ ์ฑ ์ ๊ฒ๋ ๋ํด์ก์ต๋๋ค: ์ ์ฒด Kimi K ์๋ฆฌ์ฆ(k2/k3/โฆ/for-coding)๊ฐ ์ด์ API ์๊ตฌ๋๋กtemperature=1์ ์๋์ผ๋ก ๊ฐ์ ํ๊ณ (#701, @sambazhu ๊ฐ์ฌํฉ๋๋ค),split_message, PDF ํ์ด์ง ๋ฒ์, ํธ๋ ์ด๋ ์ ๋ ๋ ์ง ํํฐ๊ฐ ํดํ๋๊ฑฐ๋ ๋ค์งํ ์ ๋ ฅ์ ๋ํด ๋ฉ์ถ๊ฑฐ๋ ์กฐ์ฉํ ๋น ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ๋์ ์ฆ์ ์คํจํฉ๋๋ค(#727โ#729, @santhreal ๊ฐ์ฌํฉ๋๋ค). -
2026-07-18 ๐ง Binance ์ํธํํ fallback + ๋ณ๋ ฌ ์คํ ๋ฐ ์ ํ์ฑ ์์ : Binance loader๊ฐ ์ํธํํ ๊ณผ๊ฑฐ ์์ธ fallback ์ฒด์ธ์ ์ถ๊ฐ๋์๊ณ (#643, @tyj147454413-cmd ๊ฐ์ฌํฉ๋๋ค), IBKR ์ปค๋ฅํฐ๋ ์ค๋ ๋ ๋ก์ปฌ ์ฐ๊ฒฐ ํ๊ณผ ์ค๋ ์ท ์์ธ๋ก ์ ํ๋์ด ๋ณ๋ ฌ agent ์คํ ์์ ๋ฉ์ถค์ ์์ ํ์ต๋๋ค(#636, @MikeCer ๊ฐ์ฌํฉ๋๋ค). ์ฌ๊ธฐ์ ์ ํ์ฑ ์ ๊ฒ๋ ๋ํด์ก์ต๋๋ค: factor analysis๋ 0 ์ดํ์
n_groups๋ฅผ ๊ฑฐ๋ถํ๊ณ , ๋ค์งํ ๊ธฐ๊ฐ ๋ฒ์์ 0 ์ดํ์ ๊ฐ์ง ์๋์ฐ๋ ์ฆ์ ์คํจํ๋ฉฐ, correlation matrix์ ์ด๋ฆ ์๋DatetimeIndex๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌํ๊ณ ,equity.csv์ nav/value ์ด ๋ณ์นญ์ ํ์ฉํ๋ฉฐ, ๋น A์ฃผ ์ฝ๋๋ฅผ ๋ ์ด์000000.SZ๋ก ๊ฐ์ ๋ณํํ์ง ์์ต๋๋ค(#709โ#714, @santhreal ๊ฐ์ฌํฉ๋๋ค). correlation-rewiring ์์ ์ฑ ํฉํฐ๊ฐ academic zoo์ ์ถ๊ฐ๋๊ณ (#705, @ebujinovch ๊ฐ์ฌํฉ๋๋ค), fundamental zoo๊ฐ factor analysis ํ์ดํธ๋ฆฌ์คํธ์ ํฌํจ๋์์ผ๋ฉฐ(#707, @sambazhu ๊ฐ์ฌํฉ๋๋ค), ์์ํ๋ ์คํ ์ํ๊ฐ ์ด์ fsync๋ก ๋ณด์ฅ๋๊ณ (#645, @tyj147454413-cmd ๊ฐ์ฌํฉ๋๋ค), dev extra๊ฐ ๋ฌธ์์ ๋ช ์๋ Black/Ruff ํด์ฒด์ธ์ ์ค์นํฉ๋๋ค(#634, @xkam7ar ๊ฐ์ฌํฉ๋๋ค). -
2026-07-17 ๐งฉ correlation-regime skill + ๋ฐฑํ ์คํธ / ๋ฐ์ดํฐ / ๋ผ์ด๋ธ ์์ ์ฑ ์ ๋ฐ์ ์ ํ์ฑ ์ ๊ฒ: ์๋ก์ด correlation-regime ๊ฐ์ง skill(๋ฒ๋ค skills โ 88, #557, @ebujinovch ๊ฐ์ฌํฉ๋๋ค), Longbridge ๋ฐํ์ ์ฐ๊ฒฐ ์นด๋(#569, @fanfpy ๊ฐ์ฌํฉ๋๋ค), ๊ทธ๋ฆฌ๊ณ
~/.vibe-trading์์ ๋ก๋๋๋ ์ฌ์ฉ์ ์ ์ swarm presets(#570, @darkknight4563 ๊ฐ์ฌํฉ๋๋ค). ์ฌ๊ธฐ์ ์คํ ์ ๋ฐ์ ๊ฐํ๋ ๋ํด์ก์ต๋๋ค: Futu / Tencent / CCXT / mootdx loader์ ์กฐ์ฉํ ๋ฐ์ดํฐ ์์ ์์ , factor bench์ Shadow Account์ ์ ํ ํธํฅ ๋ฐ strict-OOS ๊ฐ๋, ๋ผ์ด๋ธ ํธ๋ ์ด๋ฉ ์์ ์ฑ(๋ถํธ ์๋ ์ต์คํฌ์ ์ํ, ์์์ ์ผ์ผ ์ฃผ๋ฌธ ํ๋, ๋์ ์ฐ์ mandate ์ปค๋ฐ, fail-closed ๋ผ์ด๋ธ ์ํ), ๊ทธ๋ฆฌ๊ณ journal / QVeris ์์ฐ / swarm / CI ๊ฒ์ดํธ ๊ฐ์ (#552, @xor-xe ๊ฐ์ฌํฉ๋๋ค; ์ ํ์ฑ ์์ ์ ์๋น ๋ถ๋ถ์ @xkam7ar์ด ๋งก์์ต๋๋ค). -
2026-07-16 ๐ง ์์กด์ฑ ์ ๊ธ ๋ณต๊ตฌ + Windows ์ค์ ์ ์ฅ ์์ : ํด์ ๊ฒ์ฆ ๋ฐํ์ ์ ๊ธ์ ์ฌ์์ฑํด Docker์
pip install --require-hashes๊ฐ ๋ค์ ์ ์์ ์ผ๋ก ํด์๋๋๋ก ํ๊ณ ,caio/pydantic-core/websockets์ ๋นํธํ ํ์ ์์ ํ์ต๋๋ค(#564, #558 ์ข ๋ฃ, @tianrking ๊ฐ์ฌํฉ๋๋ค). Web UI์์ Agent LLM ์ค์ ์ ์ ์ฅํ ๋ Windows์์ ๋ ์ด์ HTTP 500์ด ๋ฐ์ํ์ง ์์ต๋๋ค โ POSIX ์ ์ฉos.fchmod๊ฐํ๋ฅผ ํ๋ซํผ๋ณ๋ก ๊ฐ๋ํ๊ณ ,fchmod๊ฐ ์๋ ํ๋ซํผ์ฉ ํ๊ท ํ ์คํธ๋ฅผ ์ถ๊ฐํ์ต๋๋ค(#561, @CRui5in ๊ฐ์ฌํฉ๋๋ค). -
2026-07-15 ๐งฎ ๋ฐฑํ ์คํธ ์ ํ์ฑ + Portfolio Studio ํต์ฌ ์์ฑ: 10๊ฐ PR์ ์ ๋ฆฌํ ์ด๋ฒ ๋ฐฐ์น์์ ๋ฆฌ๋ฐธ๋ฐ์ฑ์ ์ธ๊ณผ์ฑ๊ณผ ์์ ๋ ๋ฆฝ์ฑ์ ํ๋ณดํ๊ณ , ์ต์ข ์ฒญ์ฐ ๋น์ฉ๊ณผ ์ค์ ์ฒด๊ฒฐ ๊ธฐ๋ฐ ํ์ ์จ์ ๋ฐ์ํ์ผ๋ฉฐ, ์ต์คํฌ์ ์ํ๊ณผ ์ ํํ๊ณ ์๊ฒฉํ ๊ฒ์ฆ ์ถ๋ ฅ์ ์ถ๊ฐํ์ต๋๋ค(#530/#531/#532/#540). ๊ณผ๊ฑฐ ์ฐจํธ๋ ์ค์ ์คํ ๋ฐ์ดํฐ ์์ค๋ฅผ ์ฌ์ฌ์ฉํ๊ณ , ๋ฐ๋ณต ๊ฐ๋ฅํ ์์ฅ ์ฟผ๋ฆฌ๋ ๋ ์ด์ ์กฐ์ฉํ ๋๋ฝ๋์ง ์์ผ๋ฉฐ,
.env๋ก๋ ํ ์บ์๋ ์ค์ ์ ๊ฐฑ์ ํฉ๋๋ค(#535/#544/#554). Portfolio Studio #456๊ณผ ์ค์ ๋ฒ๊ทธ #541์ ๋ซ์๊ณ , provider ์์ #528/#529๋ ์ข ๋ฃํ์ต๋๋ค. @YZY0108, @santhreal, @Robin1987China, @xkam7ar, @Marnie0415, @marichu99 ๋๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค. -
2026-07-14 ๐ Longbridge ์์ฅ ๋ฐ์ดํฐ + ํ๋์ MCP transport + provider reliability: Longbridge๊ฐ ํค๋ก ํ์ฑํ๋๋ ์๊ฒฉ ์ฆ๋ช , ๋ ์ง ๊ตฌ๊ฐ ๋ถํ , ์๊ฒฉํ ์์ ์ฑ ๊ฒ์ฌ, ์ตํธ์ธ SDK ์์กด์ฑ๊ณผ ํจ๊ป ๊ณผ๊ฑฐ ๋ฐ์ดํฐ fallback ๊ณ์ธต์ ํฉ๋ฅํ์ต๋๋ค. ์ค๊ตญ ์์ฅ ์๊ธ ํ๋ฆ ๋๊ตฌ 4๊ฐ์๋ ๊ฒ์ฆ๋ Tushare fallback์ด ์ถ๊ฐ๋์๊ณ , ์ต์ข ์์์ฐ์ด ์์์ฌ๋ ๋ฐฑํ ์คํธ ์งํ๊ฐ ๋ ์ด์ ์ถฉ๋ํ์ง ์์ต๋๋ค. MCP server๋ Streamable HTTP๋ฅผ ์ง์ํ๊ณ ,
write_file์ ๋ณ์นญ ๋๋ ๋๋ฝ๋ path ์ธ์๋ฅผ ์์ ํ๊ฒ ๋ณต๊ตฌํ๋ฉฐ, hypothesis ์ ๋ฐ์ดํธ๋ ์ง์ํ์ง ์๋ ํ๋๋ฅผ ๊ฑฐ๋ถํ๊ณ , Correlation ์์ฒญ์ ์ธ์ฆ์ ๊ฑฐ์นฉ๋๋ค. NVIDIA NIM์ Web Settings์ ๋ CLI onboarding ๊ฒฝ๋ก์ first-class provider๊ฐ ๋์์ผ๋ฉฐ, ๋ณด๊ณ ๋ 403์ ๋์ํ๋๋ก ๋ฒ์ ์ด ํฌํจ๋ ํธํ User-Agent๋ฅผ ์ ์กํฉ๋๋ค. Web Settings๋ canonical~/.vibe-trading/.env์ ๊ธฐ๋กํ๊ณ legacy ์ค์ ์ ์ด์ ํ๋ฉฐ ๊ถํ ์ค๋ฅ๋ฅผ ๋ช ํํ ๋ณด๊ณ ํด DeepSeek ์ ์ฅ ์ 500์ ์์ ํ์ต๋๋ค(#534, #516/#524 ์ข ๋ฃ; #528/#529). ์ฝ๋, ๋ณด๊ณ ์, ์ง๋จ์ ๊ธฐ์ฌํ @fanfpy, @asahikiko, @santhreal, @sTunnaSu, @abhishekjaisinghani, @huangcheng, @ShiroKSH, @Meru143, @DIEGOD79, @not-knope ๋๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค. -
2026-07-13 ๐ ๋ณด์ ๊ฐํ: ์ธ๋ถ ๊ฐ์ฌ 10๊ฑด ์ ๋ถ ์ข ๋ฃ + contributor batch: 2026-07-10 ์ธ๋ถ ๋ณด์ ๊ฐ์ฌ(issue #476, discussion #468)์ 10๊ฑด ๋ฐ๊ฒฌ ์ฌํญ์ด ๋ชจ๋
main์์ ํด๊ฒฐ๋์์ต๋๋ค โ digest๋ก ๊ณ ์ ๋ ๋ฒ ์ด์ค ์ด๋ฏธ์ง์ Docker ๋ฉํฐ์คํ ์ด์ง ์ฌ๊ตฌ์ฑ, ๋คํธ์ํฌ/์๋ธํ๋ก์ธ์ค/eval/os.environ/์์ ํ์ง ์์ open์ (์ค์ฒฉ๋ ํจ์ ๋ณธ๋ฌธ ๋ด๋ถ๊น์ง) ์ฐจ๋จํ๋ AST ๊ฐํ ๋ฐฑํ ์คํธ ์๋๋ฐ์ค, ๋จ๋ช ยท1ํ์ฉ SSE ์ธ์ฆ ํฐ์ผ, ๊ฐํ๋ Compose(read-only rootfs, capabilities ์ ๊ฑฐ, ๋ฆฌ์์ค ์ ํ),/correlation์ธ์ฆ + ๋ ์ดํธ ๋ฆฌ๋ฐ, ๋ณด์ ํค๋, ํด์ ๊ณ ์ ์์กด์ฑ ๋ฑ. ํจ๊ป ๋ณํฉ: Alpaca ํค ๊ฒฉ๋ฆฌ๋ฅผ ์ํ ์ตํธ์ธ TAP ๋ชจ๋(#377, @0xZKnw ๊ฐ์ฌํฉ๋๋ค), ๋ฐฑํ ์คํธ ์งํ์ ์คํ ํฌํธํด๋ฆฌ์ค ํ์ ์จ ๋ฐ์(#478, @Robin1987China ๊ฐ์ฌํฉ๋๋ค), Frazzini-Pedersen ์ ๋ฒ ํ ํ๋ฆฌ๋ฏธ์ ํ์ ํฉํฐ(Alpha Zoo โ 461, #480, @YogeshModi24 ๊ฐ์ฌํฉ๋๋ค), 5๊ฐ ํฌํธํด๋ฆฌ์ค ์ต์ ํ๊ธฐ ์ ์ฒด์ ์ ํ ํธํฅ ์์ (#487, @YZY0108 ๊ฐ์ฌํฉ๋๋ค), ๊ทธ๋ฆฌ๊ณ preflight/provider ์ค์ ์์ 2๊ฑด(#479/#484, #477/#482 ์ข ๋ฃ, @ananaymital/@Bortlesboat ๊ฐ์ฌํฉ๋๋ค). -
2026-07-12 ๐งช Strategy Development Manager + contributor fix batch: ์
strategy-dev-managerskill(87๋ฒ์งธ)์ ํ์ ๋ ผ๋ฌธ๊ณผ ๋ธ๋ก์ปค ๋ฆฌ์์น๋ฅผ ๋ฑ๋ก๋ ํฉํฐ/์ ๋ต์ผ๋ก ๋ณํํ๋ฉฐ, ์์ artifact store์ ์๋ IC/Sharpe decay ๋ชจ๋ํฐ๋ง์ ์ ๊ณตํฉ๋๋ค โsdm_register/sdm_status/sdm_decay_scan์ด~/.vibe-trading/์์์ active โ monitoring โ decayed โ disabled ๋ผ์ดํ์ฌ์ดํด์ ๊ตฌ๋ํฉ๋๋ค(#457, #455 ๋ซํ, @shadowinlife ๋ ๊ฐ์ฌํฉ๋๋ค). ํจ๊ป ๋ณํฉ: Correlation ํญ์ด bare ticker(AAPL,SPY)๋ฅผ ๋ฐ์ loader fallback chain์ ๋๊น์ง ์ํํ๊ณ (#472, #471 ๋ซํ, @yxhuang ๋ ๊ฐ์ฌํฉ๋๋ค),localloader๊ฐ OHLCV ๋ฆฌ์ํ๋ง์ผ๋ก ์์ฒญ interval์ ์ค์ํ๋ฉฐ(#467, @Shizoqua ๋ ๊ฐ์ฌํฉ๋๋ค), Binance USD-M ๋ฌด๊ธฐํ ํ์คํ ๋ฆฌ๊ฐ ๋ช ์์ BTC-USDT-PERP๋ผ์ฐํ + ์ฒด๊ฒฐ/๋งํฌ ๊ฐ๊ฒฉ ๋ถ๋ฆฌ์ ํจ๊ป #462์ ์ฒซ ์ฌ๋ผ์ด์ค๋ก ๋ค์ด์๊ณ (#470, @honginp ๋ ๊ฐ์ฌํฉ๋๋ค), FastMCP transport imports๊ฐ ๋ ๋ชจ๋ ๋ ์ด์์ ๋ชจ๋์์ ๋์ํฉ๋๋ค(#469, @roberttidball ๋ ๊ฐ์ฌํฉ๋๋ค), Requesty๊ฐ OpenAI ํธํ LLM ๊ฒ์ดํธ์จ์ด provider๋ก ์ถ๊ฐ๋์์ต๋๋ค(#474, @Thibaultjaigu ๋ ๊ฐ์ฌํฉ๋๋ค). -
2026-07-11 ๐ v0.1.11 ๋ฆด๋ฆฌ์ค(
pip install -U vibe-trading-ai): 0.1.10 ์ดํ 3์ฃผ๊ฐ์ ์ ๋ฐ์ดํธ๋ฅผ ๋ชจ์์ต๋๋ค โ first-class ์ธ๋ ์ฃผ์(NSE/BSE) ๋ฐฑํ ์คํ , PIT-safe ํ๋๋ฉํธ ํฉํฐ ๋ ์ด์ด(Alpha Zoo โ 460), 16๊ฐ ์ด๋ํฐ IM ์ฑ๋ ๋ฐํ์, ์๋ํฌ์๋ ์์ฝ ๋ฆฌ์์น, ์ ํํ QVeris ํ๋ฆฌ๋ฏธ์ ๋ฐ์ดํฐ, ๊ทธ๋ฆฌ๊ณ ์ค๋์ contributor batch: turnover-aware optimizer(#466, @Robin1987China ๊ฐ์ฌํฉ๋๋ค),analyze_image๋น์ ๋๊ตฌ + NapCat DM pairing + IM-media ์ฝ๊ธฐ ์์ (#464/#463/#465, @fei-moss ๊ฐ์ฌํฉ๋๋ค), Longbridge Decimal ์ง๋ ฌํ(#459, @fanfpy ๊ฐ์ฌํฉ๋๋ค), packaged-manifest count guards(#461, @asahikiko ๊ฐ์ฌํฉ๋๋ค). ์์ธํ ๋ด์ฉ: CHANGELOG ยท release notes. -
2026-07-10 ๐ฎ๐ณ ์ธ๋ ์ฃผ์(NSE/BSE) ์ง์ + ํ๊ฒฝ ๋ณ์ ์ค์ํ: ์ ์ฉ
IndiaEquityEngine์ถ๊ฐ โ T+1 ๊ฒฐ์ , ๊ฐ๊ฒฉ์ ํ ๋ฐด๋, config ๊ธฐ๋ฐ STT/์ธ์ง์ธ/๊ฑฐ๋์/SEBI/GST ๋น์ฉ ์คํ โ.NS/.BO์ฌ๋ณผ ๋ผ์ฐํ ๊ณผ ์ฝ๊ธฐ ์ ์ฉ Shoonya/Dhan ๋ฐ์ดํฐ ๋ธ๋ฆฌ์ง(์ตํธ์ธ)๋ฅผ ๊ฐ์ถ๊ณ , alpha101/qlib158์ 255๊ฐ ํฉํฐ๊ฐ ์equity_in์ ๋๋ฒ์ค์ ํธ์ (#305, @muku314115 ๊ฐ์ฌํฉ๋๋ค). ํ๊ฒฝ ๋ณ์๋ ๋จ์ผ PydanticEnvConfig์คํค๋ง๋ก ํตํฉ๋๊ณ AST ๊ธฐ๋ฐ CI ๊ฒ์ดํธ๊ฐ ํฅํos.getenv๋๋ฆฝ์ ๋ฐฉ์งํฉ๋๋ค(#440, #438 ์ข ๋ฃ, @shadowinlife ๊ฐ์ฌํฉ๋๋ค). ๋ํ: ์ค๊ฑฐ๋ mandate ์ปค๋ฐ ์ ํ์ธ ๋ค์ด์ผ๋ก๊ทธ์ ํต์ผ๋ ์ค๋ฅ ํ ์คํธ(#453, @wison1717-maker ๊ฐ์ฌํฉ๋๋ค), scheduled-research ๋ผ์ฐํธ ํ ์คํธ(#452, @Robin1987China ๊ฐ์ฌํฉ๋๋ค), zhipu ํ๋ก๋ฐ์ด๋์์ GLM ์ถ๋ก ๋ชจ๋ธ์ reasoning ์คํธ๋ฆผ์ด ์ ์ค๋๋ ๋ฌธ์ ์์ (#458). -
2026-07-09 ๐งฏ Docker ์์ ์ฐจ๋จ ํด์ + provider/CLI contributor batch: FastAPI route ์ํ ์ค
path๊ฐ ์๋ included-router-like ํญ๋ชฉ์ ๋ง๋๋ Docker/server startup์ด ๋ ์ด์ crashํ์ง ์์ต๋๋ค(#450, @Penn-Live ๋ ๊ฐ์ฌํฉ๋๋ค). ๋๊ธฐ ์ค์ด๋ quick-win contributor fixes๋ ํจ๊ป ๋ฐ์ํ์ต๋๋ค: OKX / Tushare / yfinance loaderfetch()signature๊ฐ protocol๊ณผ ๋ง์ถฐ์ก๊ณ (#437, @shadowinlife ๋ ๊ฐ์ฌํฉ๋๋ค), CLI resume prompt๋ ์ฒซ ์ฌ์ฉ์ ๋ฉ์์ง๋ฅผ ๋ณด์กดํฉ๋๋ค(#448, #447 ๋ซํ, @morluto ๋ ๊ฐ์ฌํฉ๋๋ค). Codex OAuth default๋openai-codex/gpt-5.4๋ก ์ ๋ฐ์ดํธ๋๊ณ (#446, @morluto ๋ ๊ฐ์ฌํฉ๋๋ค), Kimi for Coding์ ๋ณ๋ provider๋ก ์ฌ์ฉํ ์ ์์ผ๋ฉฐ(#435, @yxhuang ๋ ๊ฐ์ฌํฉ๋๋ค), opencode provider mappings๋ ์ฐ๊ฒฐ๋์ต๋๋ค(#444, @imsankz ๋ ๊ฐ์ฌํฉ๋๋ค). Tushare reference code fence๋pyhton์์python์ผ๋ก ๊ณ ์ณค์ต๋๋ค(#449, @flash1234pku ๋ ๊ฐ์ฌํฉ๋๋ค). ๊ฒ์ฆ์๋ focused server/CLI/provider/loader tests, Docker build,/healthsmoke๊ฐ ํฌํจ๋ฉ๋๋ค. -
2026-07-08 ๐ ํ๋๋ฉํธ ํฉํฐ ๋ ์ด์ด(Phase 1) + ์ ํํ QVeris ์ ๋ฃ ๋ฐ์ดํฐ + ๋ฉ์ธํฐ๋์ค ๋ฐ์ด: PIT-safe SEC ์ฌ๋ฌด ๋ฐ์ดํฐ๊ฐ ์ด์ ์ผ๋ณ ํฉํฐ panel๋ก ๋ฐ๋ก ํ๋ฌ๋ญ๋๋ค โโ
fund:*panel ์ปฌ๋ผ, filed ๋ ์ง ์ต์ปค๋ง(์ฌ์์ฑยทYTD ํ๋ ์ ๋ณดํธ), ์ ๊ท ํ๋ฆฌํฐ/๋ฐธ๋ฅ ํฉํฐ 4์ข (zoo๋ ์ด์ 460 alphas). ๋ฐ์ดํฐ ๋ผ์ฐํ ์ ์ ํํ ์ ๋ฃ ํธ๋ ์ถ๊ฐ: 18๊ฐ ๋ฌด๋ฃ ์์ค๊ฐ ์ฌ์ ํ ๊ธฐ๋ณธ๊ฐ์ด๋ฉฐ, QVeris๋ Settings โ QVeris ๋๋vibe-trading data mode paid๋ก 63+ providers๋ฅผ ์ฝ๋๋ค(์๋ QVeris ์น์ ์ฐธ์กฐ). ๋ํ:api_server๋ชจ๋ํ ์๋ฃ(1,103 โ 371์ค, #424๊ฐ #331์ ๋ซ์, @shadowinlife ๋ ๊ฐ์ฌํฉ๋๋ค), ๋ฐฑํ ์คํธvalidation.json์ด artifacts ๋๋ ํฐ๋ฆฌ ์ฌ์ ์กด์ฌ๋ฅผ ์๊ตฌํ์ง ์๊ฒ ๋์๊ณ (#429, @isaveall ๋ ๊ฐ์ฌํฉ๋๋ค),--swarm-run์ค๋ฅ ๋ฉ์์ง๊ฐ ๋ช ํํด์ก์ผ๋ฉฐ(#428, @isaveall ๋ ๊ฐ์ฌํฉ๋๋ค), ์ธ์ ์ฑํ ์ ๋ง๊ฐ๋จ๋ฆฐ governance stack์ revertํ์ต๋๋ค(#433, ์ ํํ ์ง๋จ์ ํด์ค @yxhuang ๋ ๊ฐ์ฌํฉ๋๋ค). -
2026-07-07 โ Contributor PR batch: ๋๊ธฐ ์ค์ด๋ contributor ์์ ์ mergeํ์ต๋๋ค. IM channel timeout configuration(#413, @SyntaxSawdust ๋ ๊ฐ์ฌํฉ๋๋ค), Alpha Library social previews ๋ฐ beginner tutorial(#396, #393, @kadaliao ๋ ๊ฐ์ฌํฉ๋๋ค), value-investing skills / tools / committee presets(#407, @sambazhu ๋ ๊ฐ์ฌํฉ๋๋ค),
trading_place_order์ zero-sized order-field handling(#417, @irfanallana-oss ๋ ๊ฐ์ฌํฉ๋๋ค), session/API paths์ timezone-aware UTC timestamps(#397, @mustafakamal88 ๋ ๊ฐ์ฌํฉ๋๋ค))์ ๋๋ค. -
2026-07-06 ๐งญ Preflight hardening, API slices, and CN search fallback: provider preflight๋ ์ด์ redirect๋ฅผ ๋ฐ๋ผ๊ฐ์ง ์๊ณ (#404, #402 ๋ซํ, @SyntaxSawdust ๋ ๊ฐ์ฌํฉ๋๋ค), ๋จ์ API routes๋ focused modules๋ก ์ด๋ํ์ต๋๋ค(#387, #383-#386 supersede, @shadowinlife ๋ ๊ฐ์ฌํฉ๋๋ค). CN web-search fallback์ Alibaba Cloud IQS๋ฅผ ํฌํจํฉ๋๋ค(#408, @sambazhu ๋ ๊ฐ์ฌํฉ๋๋ค). Maintainer cleanup์ผ๋ก no-network fallback tests์ EOF whitespace cleanup๋ ์ถ๊ฐํ์ต๋๋ค(fbac74f); main CI๋ green์ ๋๋ค(run 28780619018).
-
2026-07-05 โ Contributor PR queue closed + Windows baseline green: ์ค๋ ์ ํํ non-draft PR 4๊ฐ๋ฅผ mergeํ์ต๋๋ค. A-share mootdx batch pull์ ๋ ์ด์ bare
except๋กKeyboardInterrupt/SystemExit๋ฅผ ์ผํค์ง ์์ ๊ธด ๋ฐ์ดํฐ ์์ง์Ctrl+C๋ก ์ ์ ์ค๋จํ ์ ์์ต๋๋ค(#399, #398 ๋ซํ, @shadowinlife ๋ ๊ฐ์ฌํฉ๋๋ค). Settings route slice์ patched dependency floors๋ ์ contributor PR๋ก merge๋์ด credit์ด ์ ์ง๋ฉ๋๋ค(#382, #390, @shadowinlife ๋๊ณผ @aeonframework ๋ ๊ฐ์ฌํฉ๋๋ค). Windows baseline compatibility๋ loader cache isolation, platform-aware OAuth cache assertions, Windows์์ fork-only mock test skip, MCP loopback fixtures proxy bypass๋ฅผ ํฌํจํฉ๋๋ค(#401, @Elfsa-Miranda ๋ ๊ฐ์ฌํฉ๋๋ค). Validation:4701 passed, 47 skipped. -
2026-07-04 ๐งฉ API route slices, ์ค๊ตญ์ด ์ ๋ฌธ ํํ ๋ฆฌ์ผ, ์์ ํ dependency floors: IM channel ๋ฐ Settings routes๊ฐ
api_server.py์์src/api/channels_routes.py/src/api/settings_routes.py๋ก ์ด๋ํด #331์ ์ข์ modularization path๋ฅผ ์ด์ด๊ฐ๋๋ค(#379, #382, @shadowinlife ๋ ๊ฐ์ฌํฉ๋๋ค). Wiki์๋ ๋น๊ธ์ต ๋ ์๋ฅผ ์ํ ์ค๊ตญ์ด ์ ๋ฌธ ํํ ๋ฆฌ์ผ์ด ์ถ๊ฐ๋๊ณ (#393, @kadaliao ๋ ๊ฐ์ฌํฉ๋๋ค), Pillow / LangChain / LangGraph dependency floors๋ ์ค์น ๊ฐ๋ฅํ patched track์ผ๋ก ์ ๋ฐ์ดํธ๋์ต๋๋ค(#390, @aeonframework ๋ ๊ฐ์ฌํฉ๋๋ค). -
2026-07-04 ๐งน ์ธ์ ยทAPI ๊ฒฝ๋ก์ UTC ํ์์คํฌํ ์ ๋ฆฌ: #395 ํ์์คํฌํ ์์ ์ ๋ณด๊ฐํด session, goal, channel, API ํ์์คํฌํ๊ฐ ๋ช ์์ ISO ํ์์ ํ์์กด ์ธ์ง UTC ๊ฐ์ ์ถ๋ ฅํฉ๋๋ค.
-
2026-07-03 ๐ก๏ธ Robinhood MCP refresh + API modularization + SSRF guard: Robinhood Agentic Trading์ ์ด์ generic reads, live-runner plumbing, default read-only seeds, mandate-gate tests ์ ๋ฐ์์ ํ์ฌ MCP tool names๋ฅผ ์ฌ์ฉํฉ๋๋ค. Interactive startup๋ provider loader์ ๊ฐ์
.env๊ฒ์ ์์(~/.vibe-trading/.envโagent/.envโ$CWD/.env)๋ฅผ ๋ฐ๋ฆ ๋๋ค(#391, #381 ๋ฐ #380 ๋ซํ). System routes(/health,/correlation,/system/shutdown,/skills,/api)๋ ๋ค์ API modularization narrow slice๋กsrc/api/system_routes.py์ ์ด๋ํ์ต๋๋ค(#378, @shadowinlife ๋ ๊ฐ์ฌํฉ๋๋ค). Channel media SSRF defenses๋ fetch ์ ์ CGNAT/mesh/non-global targets์ QQ media redirect-to-internal์ ๊ฑฐ๋ถํฉ๋๋ค(#389, @hobostay ๋ ๊ฐ์ฌํฉ๋๋ค). -
2026-07-02 โก Factor acceleration + safer runtime boundaries: rolling factor ํซํจ์ค๊ฐ
bottleneck/NumPy fast path ๋ฅผ ์ฌ์ฉํ๊ณ , alpha bench ๋ณ๋ ฌ ์คํ์ ํฐ panel payload ๋ฅผ worker๋ง๋ค ๋ฐ๋ณต ์ ๋ฌํ์ง ์์ผ๋ฉฐ, base equity ๊ณ์ฐ์๋ regression coverage ๊ฐ ์ถ๊ฐ๋์์ต๋๋ค(#376, #339 ๋ซํ, ์ ์์ ์ @shadowinlife ๋์ #342). Upload ๋ฐ Shadow report routes ๋ ๊ฑฐ๋ํapi_server.py์์ ๋ถ๋ฆฌ๋์ด API modularization ์ ์ฒซ ๋ฒ์งธ ์ข์ slice ๋ก ๋ค์ด๊ฐ๊ณ , #331 ์ ๊ณ์ open ์ํ์ ๋๋ค(#375, #358 ๊ธฐ๋ฐ, @shadowinlife ๋ ๊ฐ์ฌํฉ๋๋ค). Generated backtest subprocess ๋ ์ด์ parent secrets surface ์ ์ฒด๊ฐ ์๋๋ผ allowlist ๋ ํ๊ฒฝ๋ง ์์ํฉ๋๋ค(#374, #332 ๋ซํ). IM channels ์๋/newsession reset ๊ณผ ๋์๋ฌธ์ ๊ตฌ๋ถ ์๋ pairing commands ๋ ์ถ๊ฐ๋์์ต๋๋ค(#372, #371 ๋ซํ, @shadowinlife ๋ ๊ฐ์ฌํฉ๋๋ค). -
2026-07-01 ๐งน Security polish + tracker cleanup: API/Docker/frontend dev defaults๋ฅผ ์กฐ์ ํ๊ณ , Settings channel๊ณผ
zh-CNedges๋ฅผ ์์ ํํ์ผ๋ฉฐ, frontend dependency/CSP alerts๋ฅผ ํด๊ฒฐํ๊ณ ์ค๋๋ WhatsApp + paper-trading tracker items๋ฅผ ์ ๋ฆฌํ์ต๋๋ค(#338, #351, #349, #365, #367, #350, #335, #283). -
2026-06-30 ๐ฌ ๋ฆฌ์์น ์ ๋ฌ์ ์ํ IM ์ฑ๋ ๋ฐํ์: Vibe-Trading์ ์ด์ ๊ฐ์ agent session runtime์ 16๊ฐ ๋ด์ฅ ๋ฉ์์ง ์ด๋ํฐ์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค โ WebSocket, Telegram, Slack, Discord, Matrix, WhatsApp, Signal, QQ/NapCat, WeChat/WeCom, Feishu/Lark, DingTalk, Teams, email, Mochat. CLI(
vibe-trading channels status/start/stop/login/pairing), REST(/channels/status,/channels/start,/channels/stop,/channels/pairing/command), Web UI Settings ํจ๋์ด ์ํ, ๋ณต๊ตฌ ํํธ, ์์/์ค์ง, sender pairing์ ์ ๊ณตํ๋ฉฐ, SDK ๊ธฐ๋ฐ ์ด๋ํฐ๋vibe-trading-ai[telegram]๋๋vibe-trading-ai[channels]๊ฐ์ extras ๋ค์ ๋ก๋๋ค(#341). -
2026-06-29 ๐ก๏ธ Live advisory safety + Trading 212 read-only connector + Windows/Gemini fixes: live order guards now have an opt-in, broker-agnostic
PreTradeAdvisoryInterfacethat records advisory reviews without bypassing the mandate gate, kill switch, or audit trail (#328, closes #317, thanks @shadowinlife). Trading 212 joins the connector layer with read-only account, positions, orders, history, and instrument-metadata support;place_order/cancel_orderstill hard-refuse until a structural paper/live boundary exists (#321, closes #309, thanks @mvanhorn). Windows startup avoids the pandas 3.0Timestampcrash via the<3.0.0constraint (#329, closes #324, thanks @hannibal-lee); Geminithought_signaturedict-history replay was verified/fixed onmain(#318);.USfinancial statements now route to SEC EDGAR instead of Eastmoney (#325); and the Alpha Library landing page got cache/date/selector/noscript/DNS-prefetch hardening while heavier CSP and social-card follow-ups stay tracked (#323). -
2026-06-28 ๐งฐ ํฌ๋ก์ค ํ๋ซํผ setup/dev + ๋ฐํ์ ๋ฐ ํ์ผ ๋๊ตฌ ๊ฐํ:
vibe-trading setup๊ณผvibe-trading dev๊ฐ Windows TypeScript build, ์ฌ๋ฐ๋ฅธ cwd ์์์ backend ์คํ, Vite 5899 ํฌํธ, ์ข ๋ฃ ์ child process ์ ๋ฆฌ๋ฅผ ์ ๋๋ก ์ฒ๋ฆฌํฉ๋๋ค(#292, @digger-yu ๋ ๊ฐ์ฌํฉ๋๋ค). Runtime status polling ์ ์ด์ crash ๋์ graceful ํ๊ฒ degrade ํ๊ณ (#322), MCP OAuth cache key ๋ sanitize ๋๋ฉฐ(#313), OpenAI default ์ Robinhoodagent.jsonvalidation ๋ ๋ ์๊ฒฉํด์ก์ต๋๋ค(#319, #320, @mvanhorn ๋ ๊ฐ์ฌํฉ๋๋ค). File tools ๋ ๋ ๋ฆฝ read/write roots ์ ํ์ฅ๋ sandbox tests ๋ฅผ ๊ฐ์ท์ต๋๋ค(#299, @skloxo ๋ ๊ฐ์ฌํฉ๋๋ค). -
2026-06-27 ๐งฏ ์ฝํ ์ธ ํํฐ ๋ณต์๋ ฅ + Shadow Account feature contract ์ ๋ฆฌ: event-driven / swarm ์คํ์ ์ด์ ๊ฐ๋ณ LLM content-moderation hit ๋ฅผ ๊ฑด๋๋ฐ๊ณ , filter rate ๊ฐ ๋์ผ๋ฉด run card ์ ๊ฒฝ๊ณ ํ๋ฉฐ, Gemini safety finish reason ์ ์ธ์ํด ์ ์ฒด analysis ๋ฅผ abort ํ์ง ์์ต๋๋ค(#308, #307 ์ข ๋ฃ, @shadowinlife ๋ ๊ฐ์ฌํฉ๋๋ค). Shadow Account extraction/codegen ์ ํ๋์
PRICE_FEATUREScontract ๋ฅผ ๊ณต์ ํ๊ณ ๋ค ์๋ฆฌ ์์ return bounds ๋ฅผ ์ ์งํด rule/codegen drift ์prior_5d_return์ ๋ฐ๋ ์์ค์ ๋ง์ต๋๋ค(#316, @Robin1987China ๋ ๊ฐ์ฌํฉ๋๋ค). -
2026-06-26 ๐ฏ Shadow Account ์กฐ๊ฑด๋ถ ์ง์ + tushare ETF/์ง์/HK ๋ผ์ฐํ : ์ถ์ถ๋ Shadow Account ๊ท์น์ด ์ด์ RSI / prior-return ๋ฒ์๋ฅผ ๋ด์, ์์ฑ๋ SignalEngine ์ด ๋ณด์ ์ฃผ๊ธฐ๋ฅผ ๋งน๋ชฉ์ ์ผ๋ก ๋ฐ๋ณตํ์ง ์๊ณ ์ค์ ์กฐ๊ฑด(RSI ๊ฐ ๋ฒ์ ๋ด, prior-return ์ด ๋ฒ์ ๋ด)์์ ์ง์ ํฉ๋๋ค(#314, #302 follow-up, @Robin1987China ๋ ๊ฐ์ฌํฉ๋๋ค). tushare loader ๋ ETF/LOF ๋ฅผ
fund_daily(), ์ง์๋ฅผindex_daily(), ํ์ฝฉ ์ฃผ์์hk_daily()๋ก ๋ผ์ฐํ ํ๋ฉฐ, ๋น์ฃผ์์ ๋ํด ์กฐ์ฉํ ๋น ๊ฐ์ ๋ฐํํ๋daily()๋ฅผ ํญ์ ํธ์ถํ๋ ๋์์ ๋ฉ์ถ๊ณ , ์ฌ๋ณผ๋ณ ๋น ๊ฒฐ๊ณผ + ๋ถ๋ถ ์์ง ๊ฒฝ๊ณ ๋ฅผ ์ถ๊ฐํ์ต๋๋ค(#315, #310 ์ข ๋ฃ, @shadowinlife ๋ ๊ฐ์ฌํฉ๋๋ค). -
2026-06-25 ๐งช ์๊ฒฉํ validation JSON + ๋ ์์ ์ ์ธ agent context: ๋ ๋ฆฝ backtest validation ์ด
artifacts/validation.json๋๋ CLI stdout ์ ์ฐ๊ธฐ ์ ์ ์ค์ฒฉ๋NaN/Infinity๊ฐ์ ์ ๊ทํํด, strict JSON parser ๊ฐ validation payload ์์ ๋งํ์ง ์์ต๋๋ค(#306, @gyx09212214-prog ๋ ๊ฐ์ฌํฉ๋๋ค). Agent prompt ๋ loader registry ์์ ํ์ฌ data-source ์๋ฅผ ๋์ ์ผ๋ก ๊ณ์ฐํ๊ณ ,_microcompact()๋ ์ค์ token pressure ๊ฐ ์์ ๋๋ง ์คํ๋์ด ์งง์ ์คํ์์ ์ค๋๋ tool result ๋ฅผ ๋๋ฌด ์ผ์ฐ ๋น์ฐ์ง ์์ต๋๋ค(#296, #282 ์ข ๋ฃ, @MarkfuGod ๋ ๊ฐ์ฌํฉ๋๋ค). -
2026-06-24 ๐ฏ Shadow Account ๊ฐ๊ฒฉ context + ๋ฐ์ํ ์ค๊ตญ์ด UI + LAN auth ์์ : Shadow Account ๊ท์น ์ถ์ถ์ ์ด์
buy_dt๊ธฐ์ค point-in-time-safe entry context ์ธentry_rsi14์prior_5d_return์ loader registry ๋ก ๊ฐ์ ธ์ค๋ฉฐ, offline / no-data ์ํฉ์์๋ ๊ธฐ์กด์ฒ๋ผ graceful ํ๊ฒ feature ๋ฅผ ์ ์ธํฉ๋๋ค(#302, #295 follow-up, @Robin1987China ๋ ๊ฐ์ฌํฉ๋๋ค). ์ฃผ์ Web UI ํจ๋์ charts, chat, Alpha Library, Correlation, Run Detail ๊น์ง ๋ฐ์ํ English / zh-CN translation ์ ์ฌ์ฉํฉ๋๋ค(#301, @skloxo ๋ ๊ฐ์ฌํฉ๋๋ค). CSRF hardening ์ดํ์๋API_AUTH_KEY๊ฐ ์ค์ ๋ remote same-origin Web UI deployment ๋ POST / upload ๊ฐ ๋ค์ ํต๊ณผํ๊ณ , mismatch ๋ cross-site origin ์ ๊ณ์ ์ฐจ๋จ๋ฉ๋๋ค(#304, @Hinotoi-agent ๋ ๊ฐ์ฌํฉ๋๋ค). -
2026-06-23 ๐ก๏ธ ๋ก์ปฌ API CSRF ๊ฐํ: ์ ์ฑ ์น ํ์ด์ง๊ฐ ๋ฃจํ๋ฐฑ API์ ์์ ํ์ง ์์ ํฌ๋ก์ค ์ฌ์ดํธ ์์ฒญ(POST/PUT/DELETE)์ ๋ณด๋ผ ์ ์๊ฒ ํ์ต๋๋ค โ CORS๋ ์๋ต ์ฝ๊ธฐ๋ ๋ง์๋ ๋ถ์์ฉ์ ๋ง์ง ๋ชปํ๋ฏ๋ก, ๋ฃจํ๋ฐฑ dev-mode ์ ๋ขฐ๋ฅผ ํ์ฉํ๊ธฐ ์ ์ ์์ ํ์ง ์์ ๋ฉ์๋์ ๊ธฐ์กด ํฌ๋ก์ค ์ฌ์ดํธ ๊ฐ๋๋ฅผ ์ ์ฉํฉ๋๋ค. ์์ ํ ๋ฉ์๋์ ๋ก์ปฌ CLI / ๋น๋ธ๋ผ์ฐ์ ์ ๋ก๋์๋ ์ํฅ์ด ์์ต๋๋ค(#293, @Hinotoi-agent ๋ ๊ฐ์ฌํฉ๋๋ค).
-
2026-06-22 ๐ง ๋ผ์ด๋ธ ์ธ๊ฐ OAuth ์์ + Alpha Zoo ํค๋๋ผ์ธ ์์ :
connector authorize๊ฐ ๋ช ๋ถ์ด ๊ฑธ๋ฆฌ๋ ๋ธ๋ก์ปค ๋ก๊ทธ์ธ ๋์ OAuth ํธ๋์ ฐ์ดํฌ๋ฅผ ์ ์งํ๊ณ (VIBE_LIVE_AUTHORIZE_TIMEOUT_SECONDS๋ก ์กฐ์ ๊ฐ๋ฅ), ์ฌ์๋ ์ ๊ฒฝ์ํ๋ ์ฝ๋ฐฑ ์๋ฒ๋ฅผ ๋ ์ด์ ๋์ฐ์ง ์์ ํ ํฐ์ด ์ค์ ๋ก ์ ์ฅ๋ฉ๋๋ค(#281, #259 ์ข ๋ฃ, @Robin1987China ๋ ๊ฐ์ฌํฉ๋๋ค). Alpha Zoo ํ์ด์ง๊ฐ alpha ๊ฐ์๋ฅผ ๋ ๋ฒ ํ์ํ์ง ์์ต๋๋ค(#287, #286 ์ข ๋ฃ, @digger-yu ๋ ๊ฐ์ฌํฉ๋๋ค). ์์ฝ ๋ฆฌ์์น์๋ ์๋ํฌ์๋ ์ฌ์ฉ ๋ฌธ์๊ฐ ์ถ๊ฐ๋์ต๋๋ค(#288). -
2026-06-21 โฐ ์์ฝ ๋ฆฌ์์น ์คํ๊ธฐ + ๋ฆฌํฌํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ + ๋ฐฑํ ์คํธ ์ฌํ ๊ธฐ์ฌ๋ ๋ถ์: ์์ฝ ๋ฆฌ์์น๊ฐ ์ด์ ์๋ํฌ์๋๋ก ๋์ํฉ๋๋ค โ ๊ธฐ๋ณธ ๋นํ์ฑํ๋ ๋ฐฑ๊ทธ๋ผ์ด๋ ์คํ๊ธฐ(
VIBE_TRADING_ENABLE_SCHEDULER)๊ฐ interval/cron ์ผ๋ก ๋๋ํ ์์ ์ ์ธ์ ๋ฐํ์์ ํตํด ์คํํฉ๋๋ค(#278, @mvanhorn ๋ ๊ฐ์ฌํฉ๋๋ค, #254 ์ข ๋ฃ). ์/reports์คํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ด์ง๋ ๋ฆฌํฌํธ๋ฅผ ์์ฑํ ์คํ์ ๋์ดยท๊ฒ์ยทํํฐ๋งํ๊ณ Run Detail + Compare ๋ก ์ฐ๊ฒฐ๋ฉ๋๋ค(#224, @LemonCANDY42 ๋ ๊ฐ์ฌํฉ๋๋ค). ๋ํ ๋ฐฑํ ์คํธ๊ฐ ๋๋ ๋๋ง๋ค ์์ด์ ํธ๊ฐ ๊ณ์ธตํ ๊ธฐ์ฌ๋ ๋ถ์ โ ๊ฑฐ๋ ๋จ์ ์์ต Top, ๋ฒ ํ ํ๊ท, ์์ฅ ๋ ์ง ๋ถ์, ๋ชฌํ ์นด๋ฅผ๋ก ์์ด ๊ฒ์ โ ์ ๋ฐ์ดํฐ ๊ฐ์ฉ์ฑ๊ณผ ๋ผ์ฐํ ์กฐ๊ฑด์ ๋ฐ๋ผ ์๋์ผ๋ก ์ํํฉ๋๋ค(#280, @shadowinlife ๋ ๊ฐ์ฌํฉ๋๋ค). -
2026-06-20 ๐ฌ Research Autopilot ๋ฃจํ ์์ฑ(3๋จ๊ณ) + ๋ก๋ OHLC ๋ฌด๊ฒฐ์ฑ ๊ฐ๋ + ํ์ ์ํ 4์ข : Research Autopilot ์ด ๊ฐ์ค โ ์๊ทธ๋ ์์ง โ ๋ฐฑํ ์คํธ ๋ฅผ ์๋ํฌ์๋๋ก ์คํํฉ๋๋ค โ
scaffold_signal_engine์ด runner ๊ณ์ฝ์ ๋ง๋ ์์ง์ ์์ฑํ๊ณ ,link_autopilot_backtest๊ฐ ๋ฐฑํ ์คํธ ์งํ๋ฅผ ๊ฐ์ค๋ก ์๋ ํ์ ํฉ๋๋ค(68๊ฐ ๋๊ตฌ)(#267). ๊ตฌ์กฐ์ OHLC ์ ํฉ์ฑ ๊ฒ์ฌ๊ฐ ๋ก๋ ๊ฒฝ๊ณ์์ ์๋ชป๋ bar(high < low, ์์ ๊ฐ๊ฒฉ, high/low๊ฐ open/close๋ฅผ ๊ฐ์ธ์ง ๋ชปํจ)๋ฅผ ์ผ๊ด ์ ๊ฑฐํด ๋ชจ๋ ๋ฐ์ดํฐ ์์ค๋ฅผ ๋ณดํธํฉ๋๋ค(#274, @Shizoqua ๋ ๊ฐ์ฌํฉ๋๋ค). ๊ทธ๋ฆฌ๊ณ academic ์ํ ํจ๋ฐ๋ฆฌ๊ฐ 6 โ 10์ผ๋ก ํ์ฅ๋ฉ๋๋ค โ Jegadeesh ๋ฐ์ , George-Hwang 52์ฃผ ๊ณ ์ , Amihud ๋น์ ๋์ฑ, Harvey-Siddique ์๋(456๊ฐ ํฉํฐ)(#277, @Robin1987China ๋ ๊ฐ์ฌํฉ๋๋ค). -
2026-06-19 ๐ v0.1.10 โ ๊ธ๋ก๋ฒ ๋ฐ์ดํฐ ๊ณ์ธต: ์์ฅ ๋ฐ์ดํฐ ์์ค๊ฐ 10 โ 18๊ฐ๋ก ํ๋(๋ฌด๋ฃ Eastmoney / Sina / Stooq / Yahoo + ํค ๊ธฐ๋ฐ Finnhub / Alpha Vantage / Tiingo / FMP, IP ์ฐจ๋จ ์ํ ์ fallback). ์ฌ๊ธฐ์ ์ฝ๊ธฐ ์ ์ฉ ๋ฐ์ดํฐ ๋๊ตฌ 18์ข (์๊ธ ํ๋ฆ, ์ฉํธ๋ฐฉ, ๋ถํฅ, ์ ์ฉ๊ฑฐ๋, ๋์ข ๊ฑฐ๋, SEC EDGAR + XBRL, ์ฌ๋ฌด, ์ต์ ์ฒด์ธ, ์ ์ฒด ์์ฅ ์คํฌ๋ฆฌ๋โฆ)์ A์ฃผ / ๋ฏธ๊ตญ / ํ์ฝฉ ์ ๋ฐ์ ๊ฑธ์ณ ๋ชจ๋ MCP๋ก ๋ ธ์ถ. ์ด๋ฒ ๋ฆด๋ฆฌ์ค๋ 0.1.9 ์ดํ์ ๋ชจ๋ ์ ๋ฐ์ดํธ๋ ํจ๊ป ํฌํจํฉ๋๋ค โ ๋ธ๋ก์ปค ์ปค๋ฅํฐ 10์ข ,
alpha compare, ํ๋ก๋ฐ์ด๋ ์ ๋ขฐ์ฑ ๋๊ฐํธ, ์ต์ ํ ๋ฐ์ดํฐ ์บ์.pip install -U vibe-trading-ai -
2026-06-18 ๐ฌ Research Autopilot 1๋จ๊ณ + ๋ก์ปฌ Data Bridge ๋ก๋, ๊ทธ๋ฆฌ๊ณ Discord ๋ณด์ ๊ณต์ง: ์
run_research_autopilot+generate_backtest_config๊ฐ Hypothesis โ Research Goal โ backtest๋ฅผ ๋๊น์ง ์ฐ๊ฒฐํ๊ณ (์ด์ 50๊ฐ ๋๊ตฌ), ์local๋ก๋๊ฐ ์ฌ์ฉ์ ๋ณธ์ธ์ CSV / Parquet / DuckDB ํ์ผ์์ ์ง์ OHLCV๋ฅผ ์ฝ์ต๋๋ค(#260, #252, @Robin1987China ๋ ๊ฐ์ฌํฉ๋๋ค). ๋ํ DeepSeekDSMLtool call ํ์ฑ๊ณผ ์๋ณ์ ๋ด์ ๊ฐํ๊ฐ ๋ค์ด์์ต๋๋ค.โ ๏ธ ๋ณด์ ๊ณต์ง: ์ด์ ์ปค๋ฎค๋ํฐ Discord ์ด๋๋ ์ด์ ์ฐ๋ฆฌ๊ฐ ๊ด๋ฆฌํ์ง ์๋ ์๋ฒ(๊ฐ์ง Collab.Land ์ง๊ฐ "์ธ์ฆ" ํผ์ฑ)๋ก ์ฐ๊ฒฐ๋ฉ๋๋ค โ ๋ชจ๋ ์ ๊ฑฐ๋๊ณ , ์ ์ผํ ๊ณต์ Discord๋ HKUDS ์๋ฒ(discord.gg/6TdQnT5xcF)์ ๋๋ค. ์ง๊ฐ ์ฐ๊ฒฐ์ ์๊ตฌํ๋ ์ผ์ ๊ฒฐ์ฝ ์์ต๋๋ค. -
2026-06-17 ๐งฉ ์ค์น ํธํ์ฑ + Opus/Kimi ํ๋ก๋ฐ์ด๋ ์์ : ๊ธฐ๋ณธ
pip install vibe-trading-ai๋ ๋ ์ด์ ์ ํ ๊ธฐ๋ฅ์ธpyharmonics/ta์์กด์ฑ ์ฒด์ธ์ ๋์ด์ค์ง ์์ต๋๋ค. harmonic detection์vibe-trading-ai[harmonic]extra ๋ค๋ก ์ด๋ํ๊ณ , ๋ด์ฅ fallback detector๋ ๊ทธ๋๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค(#250, #249 ์ข ๋ฃ). Agent loop๋ Opus 4.8+๊ฐ ๊ฑฐ๋ถํ๋ assistant-prefill handoff message๋ฅผ ๋ณด๋ด์ง ์์ผ๋ฉฐ, Kimi/Moonshot์MOONSHOT_USER_AGENT๋ก clientUser-Agent๋ฅผ ๋ฎ์ด์ธ ์ ์์ต๋๋ค(#248, #246 ๋ฐ #204 ์ข ๋ฃ). ํ์ ํ ์คํธ๋ background-result์ auto-compact handoff ๊ฒฝ๋ก๋ฅผ ์ง์ ์ปค๋ฒํฉ๋๋ค(#251). -
2026-06-16 ๐ก๏ธ ๋ณด์/API ๊ฐํ + GLM/Zhipu alias: Settings ์ฐ๊ธฐ๋ ์ธ์ฆ ์ค์ ์ auth๊ฐ ํ์ํฉ๋๋ค(#245); API session์ shell-capable tools๋ ๋ช ์์ ์ธ
VIBE_TRADING_ENABLE_SHELL_TOOLS=1opt-in์ด ํ์ํฉ๋๋ค(#243); API key๊ฐ ์ค์ ๋ local shutdown๋ auth๊ฐ ํ์ํฉ๋๋ค(#241); loopback์ฒ๋ผ ๋ณด์ด์ง๋ง ์ ๋ขฐํ ์ ์๋ Host๋ local๋ก ์ทจ๊ธํ์ง ์๊ณ ๊ฑฐ๋ถํฉ๋๋ค(#242). ๋ฐํ์ ์ธ๋ถ๋ ๋ค๋ฌ์์ต๋๋ค: Web chat์ ์๋ฃ๋ attempts์ ๋๊ธฐํ๋๊ณ (#236), run card๋ ์ ํํ์ง ์์ metric์ strict JSON์ผ๋ก ์ถ๋ ฅํ๋ฉฐ(#238), ์๋ชป๋RSSHUB_TIMEOUT_S/RSSHUB_FETCH_BUDGET_S๋ ์์ ํ๊ฒ fallbackํฉ๋๋ค(#240). ddgs retry fallback๋ regression coverage๊ฐ ์ถ๊ฐ๋์ต๋๋ค(#239). GLM/Zhipu๋ first-class provider alias๊ฐ ๋์๊ณ model-name inference๋ ์ถ๊ฐ๋์ต๋๋ค(#247, #237 ์ข ๋ฃ). -
2026-06-15 ๐งญ ์น ๊ฒ์ ๊ฒฌ๊ณ ์ฑ + Web UI ์คํ ์ฐ์์ฑ ์์ :
web_search๋ ๋จ์ผ ์์ง์ด ๋ ์ดํธ๋ฆฌ๋ฐ๋์ด๋ ๋ ์ด์ ์คํจํ์ง ์์ต๋๋คโโ์ด์ ์ฌ๋ฌ ๋ฌด๋ฃยทํค ๋ถํ์ ์์ง(DuckDuckGo, Google, Bing, Brave, Mojeek, Yahoo)์ ์์๋๋ก ์กฐํํ๊ณ ์ฌ์๋/๋ฐฑ์คํ๋ฅผ ์ ์ฉํ๋ฉฐ, "๊ฒฐ๊ณผ ์์"์ ์ค๋ฅ๊ฐ ์๋ ๋น ๋ต๋ณ์ผ๋ก ์ฒ๋ฆฌํ๊ณ , ๋ชจ๋ ์์ง์ด ์ ํ๋ ๋๋ ๋ฌด๋ฏธ๊ฑด์กฐํ โ ๋์ ์คํ ๊ฐ๋ฅํ ๋ฉ์์ง๋ฅผ ๋ฐํํฉ๋๋ค(์์ง ๋ชฉ๋ก์VIBE_TRADING_SEARCH_BACKENDS๋ก ์ฌ์ ์ ๊ฐ๋ฅ)(#232, #231 ์ข ๋ฃ, @Ethan-sun01 ๋ ๊ฐ์ฌํฉ๋๋ค). Web UI์์๋ ์คํ ์ค ํ์ด์ง๋ฅผ ์ ํํด๋ ๋ ์ด์ ๋ฉ์ถ์ง ์์ต๋๋คโโ์ฑํ ์ด ๋์์ฌ ๋ ๋ผ์ด๋ธ ์คํธ๋ฆผ์ ๋ค์ ๊ตฌ๋ ํ๊ณ ๋์น ์งํ์ ์ฌ์ํฉ๋๋ค(#234)โโ๊ทธ๋ฆฌ๊ณ ์ค์ง ๋ฒํผ์ด ์ดํฐ๋ ์ด์ ๊ฒฝ๊ณ๋ฟ ์๋๋ผ ์คํธ๋ฆฌ๋ฐ ์ค๊ณผ ๋๊ตฌ ์ฌ์ด์์๋ ์ฆ์ ์ ์ฉ๋ฉ๋๋ค(#235). ์ด๋ก์จ #229์ ๋ ์ฆ์์ด ๋ชจ๋ ํด๊ฒฐ๋ฉ๋๋ค(@kalkinj ๋ ๊ฐ์ฌํฉ๋๋ค). baostock loader๋ tushare ์คํ์ผ601398.SH์ ํจ๊ป ๋ค์ดํฐ๋ธsh.601398/sz.000001์ฝ๋๋ฅผ ๋ฐ์๋ค์ ๋๋ค(#230, @bhlt ๋ ๊ฐ์ฌํฉ๋๋ค). -
2026-06-14 ๐ ์คํ ๋จ์ ํ ํฐ ์ฌ์ฉ๋ + Run Detail ์ฐจํธ ์ง์ฐ ๋ก๋ฉ: ์ด์ ๋ชจ๋ agent ์คํ์ ํ๋ก๋ฐ์ด๋๊ฐ ๋ณด๊ณ ํ ํ ํฐ ์ฌ์ฉ๋์ ์คํ ๋ฒ์์
llm_usage.json์ผ๋ก ์์ํํฉ๋๋คโโํ๋ก๋ฐ์ด๋/๋ชจ๋ธ, ๋์ ํฉ๊ณ, ์ดํฐ๋ ์ด์ ๋ณ ์นด์ดํธโโ/runs/{id}์ ์ถ๊ฐ๋ก ๋ ธ์ถ๋์ด, ์คํ์ด ๋๋๊ณ ๋ผ์ด๋ธ ์คํธ๋ฆผ์ด ์ฌ๋ผ์ง ๋ค์๋ ํ ํฐ ๋น์ฉ์ ๊ฐ์ฌํ ์ ์์ต๋๋ค(ํ๋ก๋ฐ์ด๋ ๋ณด๊ณ ๊ฐ๋ง; prompt/๋ด์ฉ ์บก์ฒ๋ ๊ฐ๊ฒฉ ์ถ์ ์์)(#223, @LemonCANDY42 ๋ ๊ฐ์ฌํฉ๋๋ค). Run Detail ํ์ด์ง๋ ๋ ์ด์ ๋ชจ๋ ์ฌ๋ณผ์ ์บ๋ค์ ์ฒ์๋ถํฐ ๋ถ๋ฌ์ค์ง ์์ต๋๋ค: ๊ธฐ๋ณธ/runs/{id}์๋ต์ ๊ทธ๋๋ก ์ ์ง๋์ง๋ง, UI๋ ๋จผ์ ์คํ ์์ฝ์ ๋ ๋๋งํ ๋ค ์ตํธ์ธ?chart_payload=summary/?chart_symbol=๋ชจ๋๋ก ๊ฐ ์ฌ๋ณผ์ ์ฐจํธ๋ฅผ ํ์ํ ๋ ๋ถ๋ฌ์ต๋๋ค. ์ฌ๋ณผ๋ณ ๋ก๋ฉ ์ํ์ "์ ์ฒด ๋ก๋ + ์งํ๋ฅ " ์ปจํธ๋กค์ด ํจ๊ป ์ ๊ณต๋ฉ๋๋ค(#225, @LemonCANDY42 ๋ ๊ฐ์ฌํฉ๋๋ค). ๋ ๊ฐ์ง loader ์์ ์ผ๋ก ๋ง๋ฌด๋ฆฌ: yfinance์ ๋ฐฐํ์ end๊ฒฝ๊ณ๊ฐ ์์ฒญ ๋ฒ์์ ๋ง์ง๋ง ๊ฑฐ๋์ผ์ ๋ ์ด์ ๋๋ฝํ์ง ์์ต๋๋คโโ๋ค์ด๋ก๋ ํธ์ถ์end + 1์ผ์ ์ ๋ฌํ๊ณ ์บ์ ํค๋ ์๋ ๋ฒ์๋ฅผ ์ ์งํฉ๋๋ค(#226, @gyx09212214-prog ๋ ๊ฐ์ฌํฉ๋๋ค)โโ๊ทธ๋ฆฌ๊ณ ์๋ชป๋CCXT_TIMEOUT_MS/OKX_TIMEOUT_S๊ฐ์ import ์ ์์ธ๋ฅผ ๋์ ธ ์์์ ๋ง๋ ๋์ ๊ฒฝ๊ณ ํ๊ณ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ํด๋ฐฑํฉ๋๋ค(#227, @gyx09212214-prog ๋ ๊ฐ์ฌํฉ๋๋ค). -
2026-06-13 โฉ๏ธ CLI์์ ID๋ก ๊ณผ๊ฑฐ ์ธ์ ์ฌ๊ฐ: ์ธํฐ๋ํฐ๋ธ CLI๊ฐ ์ด์ ์ข ๋ฃ ์ session-id๋ฅผ ์ถ๋ ฅํ๊ณ , ๋ณต์ฌํด ๋ถ์ฌ๋ฃ์ ์ ์๋
vibe-trading resume <session-id>ํํธ๋ ํจ๊ป ๋ณด์ฌ์ค๋๋คโโ๋๋ ์คํ์ trace๋ฅผ ์ฐพ์ผ๋ ค๊ณagent/sessions/์๋ ์ด๋ ํด๋๊ฐ ํ์์คํฌํ์ ๊ฐ์ฅ ์ต์ ์ธ์ง ์ถ์ธกํ ํ์๊ฐ ๋๋ ์์ต๋๋ค. ์vibe-trading resume <session-id>์๋ธ์ปค๋งจ๋๋ ๋ฐ๋ก ๊ทธ ์ธ์ ์ ๋ค์ ์ด๊ณ ์ต๊ทผ ํด๋ค์ loop์ ์ฌ์ํฉ๋๋ค; ์กด์ฌํ์ง ์๋ id๋ ๋น ์ธ์ ์ ์กฐ์ฉํ ์์ํ๋ ๋์ ์ฆ์ ์ค๋ฅ๋ก ์ข ๋ฃํฉ๋๋ค(#218, @zwrong ๋ ๊ฐ์ฌํฉ๋๋ค). -
2026-06-12 ๐ฉบ ํ๋ก๋ฐ์ด๋ ์ ๋ขฐ์ฑ ์ ๋ฉด ๊ฐํโโDeepSeek ํ, Kimi ์ ์, ์คํธ๋ฆฌ๋ฐ ๋ผ์ด๋ธ๋์ค: ์ผ๋ จ์ ํ๋ก๋ฐ์ด๋ ๋ฆฌํฌํธโโDeepSeek ์คํ์ด "Agent is workingโฆ"์์ ๋ฉ์ถค(#208, @XYWOX ๋ ๊ฐ์ฌํฉ๋๋ค),
reached max iterations๊ฐ ๋ชจ๋ธ์ ๋น ์๋ต์ ๊ฐ๋ฆผ(#203, @mojianliang ๋ ๊ฐ์ฌํฉ๋๋ค), ๋ฉ์ถ ๋ค UI๊ฐ ๋ณต๊ตฌ๋์ง ์์(#195, @mafia23 ๋ ๊ฐ์ฌํฉ๋๋ค), Kimi๊ฐ ํด๋ผ์ด์ธํธ๋ฅผ ๊ฑฐ๋ถ(#204, @liao497 ๋ ๊ฐ์ฌํฉ๋๋ค)โโ์ ๊ทผ๋ณธ ์์ธ์ ํ๋์์ต๋๋ค: ๋ชจ๋ OpenAI ํธํ ํ๋ก๋ฐ์ด๋๊ฐ ๋จ์ผ shim์ ๊ณต์ ํ๋ฉฐ DeepSeek/Kimi/Gemini ๊ณ ์ ๋์์ ์ ์ญ์ผ๋ก ์ ์ฉํ๊ณ ์คํธ๋ฆผ ์คํจ๋ฅผ ์กฐ์ฉํ ์ผ์ผฐ์ต๋๋ค. ์ด์ ํ๋ก๋ฐ์ด๋๋ณ ๋์์ ๋ช ์์ ์ธ ์ผ์ดํผ๋น๋ฆฌํฐ ๊ณ์ธต์ผ๋ก ์ด๋โโreasoning ์บก์ฒ/์ฌ์ ์ก, Gemini thought signature, KimiUser-Agent, OpenRouter reasoning body๊ฐ ๊ฐ์์ ํ๋ก๋ฐ์ด๋์๋ง ์ ์ฉ๋์ด ์ํธ ์ค์ผ์ด ์์ต๋๋ค. reasoning ์ ์ฉ ์คํธ๋ฆผ์ ์ค์๊ฐ "Reasoningโฆ" ํ์๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ; ์คํธ๋ฆผ ์คํจ๋ ์ปจํ ์คํธ๊ฐ ๋ด๊ธดprovider_stream_error๋ฅผ ๋ฐ์์ํค๋ฉฐ ์ผ์์ ๋๊น์ ํ ๋ฒ ์๋ ์ฌ์๋(๊ฒฐ์ ์ 4xx๋ ์ฆ์ ์คํจ), ๋๋ฆฐ ๋น์คํธ๋ฆฌ๋ฐ ํธ์ถ๋ก์ ์กฐ์ฉํ ํด๋ฐฑ์ ์ ๊ฑฐ; ๋ชจ๋ธ์ ๋น ์๋ต์empty_model_response๋ก ์ ํํ ์ง๋จ; SSE ํํธ๋นํธ๊ฐ ์ฌ์ฐ๊ฒฐ ๋ฆฌํ๋ ์ด๋ฅผ ๊นจ๋จ๋ฆฌ์ง ์์ผ๋ฉฐ; ๋ฉ์ถ ์ฝ๊ธฐ ์ ์ฉ ๋๊ตฌ๋ ํ์์์๋ฉ๋๋ค. ์ ๋ช ๋ น **vibe-trading provider doctor**๋ ๋ง์คํน๋ provider/๋ชจ๋ธ/ํจํค์ง/ํ๋ก์ ์ค๋ ์ท์ ์ถ๋ ฅํด ํ๊ฒฝ ์ชฝ ํ์ ํ ๋ฒ์ ๋ถ๋ฅํฉ๋๋ค. DeepSeek์pip install "vibe-trading-ai[deepseek]"๋ก ๊ณต์ ๋ค์ดํฐ๋ธ ์ด๋ํฐ๋ฅผ ์ ํํ ์ ์๊ณ , kimi-k2.x์temperature=1์๊ตฌ๋ ์๋ ์ ์ฉโโKimi ๊ฒฝ๋ก๋ ์ค์ API๋ก ์๋ํฌ์๋ ๊ฒ์ฆ๋์์ต๋๋ค(kimi-k2.6๋๊ตฌ ํธ์ถ + ์๊ฒฉํ ๋ฉํฐํด reasoning ์ฌ์ ์ก). -
2026-06-11 ๐ swarm worker๊ฐ loader ๊ณ์ธต์ ํตํด ์์ฅ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ต๋๋ค: NVDA ํฌ์์์ํ ์คํ์์ ์ผ๋ จ์ ๊ณต๋ฐฑ์ด ๋๋ฌ๋ฌ์ต๋๋คโโworker๊ฐ ์์ yfinance ์คํฌ๋ฆฝํธ๋ฅผ ์ง์ ์์ฑํ๊ณ , ์์๋ ์ต์ ๋ด(๊ฑฐ๋๋์ ์์ง๋ง OHLC๊ฐ ๋น)์ ์ ๋ขฐํ์ผ๋ฉฐ,
NaN์ด ๋น์๊ฒฉ JSON์ผ๋ก ์๊ณ , ์ปจํ ์คํธ๋ฅผ ์์ ์ด์ด๊ฐ๊ธฐ ํ๋กฌํํธ๊ฐ ์๋ชป๋ preset์ผ๋ก ๋ผ์ฐํ ๋์ต๋๋ค(#198, ํ์ํ ์ง๋จ๊ณผ ๋ ์์ PR์ ๋ณด๋ด์ค @BillDin ๋ ๊ฐ์ฌํฉ๋๋ค). ์ด์ swarm worker๋ MCP์ ๋์ผํ ์ ๊ทํ loader ๋ ์ง์คํธ๋ฆฌ๊ฐ ๋ท๋ฐ์นจํ๋ ๋ก์ปฌget_market_data๋๊ตฌ๋ฅผ ๊ฐ์ต๋๋คโโ์๊ฒฉํ JSON, ๋น์ ํ ๋ถ๋์์๋null๋ก ์ง๋ ฌํโโ๋ชจ๋ ์์ฅ ๋ฐ์ดํฐ preset(13๊ฐ preset, 21๊ฐ worker)์ ์ฐ๊ฒฐ๋๊ณ , ํ๋กฌํํธ ์ ์ฑ ์ด OHLCV ์์ ์ ๋๊ตฌ ์ฐ์ ์ผ๋ก ์ ๋ํฉ๋๋ค(#199).run_swarm์ ๋ช ์์ preset_name์ ๋ฐ์ผ๋ฉฐ, ๋ชจํธํ ์ด์ด๊ฐ๊ธฐ ์กฐ๊ฐ์equity_research_team์ผ๋ก ์กฐ์ฉํ ํด๋ฐฑํ๋ ๋์ ๊ฑฐ๋ถ๋ฉ๋๋ค(#200). ๊ทธ๋ผ์ด๋ฉ๋ ๋ ๋๋ํด์ก์ต๋๋ค: swarm ํ๋กฌํํธ์ ๋งจ ๋ฏธ๊ตญ ํฐ์ปค(์:NVDA)๋NVDA.US๋ก ์น๊ฒฉ๋์ด(๋ถ์ฉ์ด ๊ฐ๋) worker๊ฐ ์ฒ์๋ถํฐ ์ ๋ขฐํ ์ ์๋ ์ฌ์ ์กฐํ ๊ฐ๊ฒฉ์ ๊ฐ๊ณ ์์ํฉ๋๋ค. ์ด ๋๊ตฌ๋ ๋ฉ์ธ agent ๋ ์ง์คํธ๋ฆฌ์๋ ํฉ๋ฅโโ์ด์ 48๊ฐ ๋๊ตฌ์ ๋๋ค. ๋ํ: Docker ๋ฐ์ดํฐ๊ฐ ์ ๋ฐ์ดํธ ํ์๋ ์ ์ง๋ฉ๋๋คโโ์๊ตฌ ๋ฉ๋ชจ๋ฆฌ, ์ธ์ ๊ฒ์ ์ธ๋ฑ์ค, ์ฌ์ฉ์ ์์ฑ ์คํฌ, shadow account, broker ์ค์ ์ด ๋ช ๋ช ๋ ๋ณผ๋ฅจ์ ์ ์ฅ๋์ดdocker compose up --build๋ก ๋ ์ด์ ์ง์์ง์ง ์์ต๋๋ค(#197, @FlyerJ ๋ ๊ฐ์ฌํฉ๋๋ค). -
2026-06-10 ๐ณ Docker๊ฐ ํธ์คํธ ์ธก Ollama์ ๊ธฐ๋ณธ์ผ๋ก ์ฐ๊ฒฐ๋ฉ๋๋ค: ์ปจํ ์ด๋ ์์
localhost๋ ์ปจํ ์ด๋ ์์ ์ ๊ฐ๋ฆฌํค๋ฏ๋ก ๊ธฐ๋ณธOLLAMA_BASE_URL=http://localhost:11434๋ก๋ Docker + Ollama ์กฐํฉ์ LLM ์ฌ์ ์ ๊ฒ์ด ํญ์ ์คํจํ์ต๋๋ค.docker-compose.yml์ด ์ด์ ๊ธฐ๋ณธ์ผ๋กhttp://host.docker.internal:11434๋ฅผ ๊ฐ๋ฆฌํค๋ฉฐ(OLLAMA_BASE_URL๋ด๋ณด๋ด๊ธฐ๋ก ์ฌ์ ์ ๊ฐ๋ฅ),host-gateway์extra_hosts๋งคํ์ด ์ถ๊ฐ๋์ด Docker Desktop๋ฟ ์๋๋ผ Linux์์๋ ๊ฐ์ ํ์ผ์ด ๊ทธ๋๋ก ๋์ํฉ๋๋ค(#196, @ShahNewazKhan ๋ ๊ฐ์ฌํฉ๋๋ค). -
2026-06-09 ๐ ๋ค๋ฅธ ์ปดํจํฐ์์ Web UI๋ฅผ ์ด ๋์ ์ค๋ฅ ๋ฉ์์ง ๊ฐ์ :
API_AUTH_KEY๋ฅผ ์ค์ ํ์ง ์์ ์ฑ ๋น๋ฃจํ๋ฐฑ ํด๋ผ์ด์ธํธ(๋ค๋ฅธ ์ปดํจํฐ, VM ํธ์คํธ, LAN์ ํด๋ํฐ)์์ ์ฑํ ์ ์ ์ํ๋ฉด ๋ฉ์์ง ์ ์กยท์ธ์ ๋ชฉ๋กยทlive ์ํ ๋ฑ ๋ชจ๋ ๋ฏผ๊ฐํ ์๋ํฌ์ธํธ๊ฐ403์ ๋ฐํํ์ง๋ง, ์ฑํ ์๋ ์ผ๋ฐ์ ์ธ โFailed to send message, please retry.โ๋ง ํ์๋์ต๋๋ค. ์ด์ ์ ์ก ๊ฒฝ๋ก๊ฐ ์ค์ ์ด์ โโโRemote API access requires an API key. Add it in Settings, or run the backend on localhost for local-only use.โโโ๋ฅผ ๋ณด์ฌ์ฃผ๋ฉฐ, README์ Web UI ์ค์ ์ค๋ช ๋ localhost์ LAN์ ์ฐจ์ด ๋ฐ ์ธ ๊ฐ์ง ํด๊ฒฐ์ฑ (๊ฐ์ ์ปดํจํฐ์์localhost๋ก ์ ์ /API_AUTH_KEY์ค์ ํ Settings์ ํ ๋ฒ ์ ๋ ฅ / Docker Desktop ํธ์คํธ ๊ฒ์ดํธ์จ์ด๋VIBE_TRADING_TRUST_DOCKER_LOOPBACK=1)์ ๋ช ์ํ์ต๋๋ค(#191, @mafia23 ๋ ๊ฐ์ฌํฉ๋๋ค). -
2026-06-08 ๐ง Gemini 3.x ๋ฉํฐํด ๋๊ตฌ ํธ์ถ ์์ : Gemini 3.x ์ฌ๊ณ ๋ชจ๋ธ ์์ ์ ์์ฑํ์ต๋๋ค. 6/05์ ์๋ณต(#176)์ ์ธ๋ฉ๋ชจ๋ฆฌ ํ์คํ ๋ฆฌ๋ง ๋ค๋ค์ง๋ง, ์ค์ agent loop๋ ํ์คํ ๋ฆฌ๋ฅผ OpenAI ํ์ dict๋ก ์ฌ์ํ๋ฉฐ LangChain์ด ์์ฒญ ๊ตฌ์ฑ ์ ์ ๋๊ตฌ ํธ์ถ๋ณ
thought_signature๋ฅผ ๋ฒ๋ ธ๊ธฐ ๋๋ฌธ์ ๋ฉํฐํด ๋๊ตฌ ํธ์ถ์ด ์ฌ์ ํmissing thought_signature๋ก 400์ ๋์ต๋๋ค. ์ด์ invoke์stream์ด ๊ณต์ ํ๋ ๋จ์ผ ๊ธธ๋ชฉ_convert_input์์ ๋ค์ ๋ถ์ฐฉ๋ฉ๋๋ค(๋ณ๋ ฌ ํธ์ถโโN๊ฐ ์ค ์ฒซ ๋ฒ์งธ๋ง ์๋ช ๋จโโ๋ ํฌํจ)(#184, @ngoanpv ๋ ๊ฐ์ฌํฉ๋๋ค). -
2026-06-07 ๐ ์ฑํ ํ์๋ผ์ธ์ ์ค์๊ฐ swarm ์ํ: agent๊ฐ ๋ฉํฐ์์ด์ ํธ swarm(ํฌ์์์ํ, ํํธ ๋ฐ์คํฌ, ๋ฆฌ์คํฌ ์์ํโฆโฆ)์ ์์ํ๋ฉด ์ฑํ ์ ๊ฐ worker์ ์ํโโ๋๊ธฐ / ์คํ / ์๋ฃ / ์คํจ / ์ฐจ๋จ / ์ฌ์๋โโ๋ฅผ ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐํ๋ ์ธ๋ผ์ธ ์ํ ์นด๋๊ฐ ํ์๋ฉ๋๋ค. ๋ ๋ฆฝ swarm ๋์๋ณด๋์ ๋์ผํ ์์ด์ ํธ๋ณ ๊ฐ์์ฑ์ ๋๋ค. ๋ฐํ์ ์ด๋ฒคํธ๋ ๊ธฐ์กด
/swarm/runsAPI๋ฅผ ๋ฐ๊พธ์ง ์๊ณ ์ธ์ SSE ์คํธ๋ฆผ์ผ๋ก ๋ธ๋ฆฌ์ง๋๋ฉฐ, ์ฌ์ฐ๊ฒฐ์ด๋ ํ์คํ ๋ฆฌ ์ฌ์ ์ ์๋ฃ๋ ์นด๋๊ฐ ์ต์ขrun_swarm๊ฒฐ๊ณผ์์ ๋ณต์๋ฉ๋๋ค(#188, @BillDin ๋ ๊ฐ์ฌํฉ๋๋ค). preset ๋ผ์ฐํ ๋ ๋ ์ ๋ฐํด์ก์ต๋๋ค: ๋ช ์์ ์ผ๋ก ์ง์ ํ preset(์:investment_committee, ๋ฐ์ค ์ ๋ฌด ๋ฌด๊ด)์ด ํค์๋ ์ ์๋ณด๋ค ์ฐ์ ํ๊ณ , ๋งจIVํ์์ํ ํค์๋๊ฐ โgivenโ ๊ฐ์ ์ผ๋ฐ ๋จ์ด์ ๋ ์ด์ ์ค๋งค์นญ๋์ง ์์ต๋๋ค(#189, @BillDin ๋ ๊ฐ์ฌํฉ๋๋ค). -
2026-06-06 โ๏ธ Alpha ๋น๊ต โ CLI / Web UI / REST / agent ์ ์์ญ ์ง์: ์
alpha compare๋ ์ง์ ๊ณ ๋ฅธ Alpha Zoo ํฉํฐ๋ค์ ๊ฐ์ universeยท๊ธฐ๊ฐ์์ ์ํธ ๋น๊ตํ๊ณ IC ํ๊ท /ํ์คํธ์ฐจ, IR, IC>0 ๋น์จ, ์ํ ์๋ก ์์๋ฅผ ๋งค๊ธฐ๋ฉฐ ๊ฐ ํฉํฐ์ ์ ๋์ ๊ฒฉ์ฐจ๋ฅผ ๋ณด์ฌ์ค๋๋ค. ์ ์ฒด zoo bench์ ๋ฌ๋ฆฌ ์ง์ ํ ํฉํฐ๋ง ํ๊ฐํฉ๋๋ค(์run_bench(only=โฆ)๋ถ๋ถ์งํฉ ํํฐ). ๊ทธ๋์ 3๊ฐ๋ฅผ ๋น๊ตํด๋ zoo์ 191๊ฐ๋ฅผ ๋ชจ๋ ๋๋ฆฌ์ง ์์ต๋๋ค. ํ๋์ ๊ณต์ ์ฝ์ด๊ฐ ๋ชจ๋ ์์ญ์ ๊ตฌ๋ํฉ๋๋ค:vibe-trading alpha compare <id1> <id2> โฆ --sort ir(CLI), Alpha Zoo Web UI์ Compare ๋ทฐ(์นดํ๋ก๊ทธ์์ ํฉํฐ ์ฒดํฌ โ ์ํด๋ฆญ ๋น๊ต + ์คํธ๋ฆฌ๋ฐ ์์ํ),POST /alpha/compare+ SSE(REST), ์ฝ๊ธฐ ์ ์ฉalpha_compareagent ๋๊ตฌ(์ด์ 47๊ฐ ๋๊ตฌ). -
2026-06-05 ๐ฎ๐ณ Dhan + Shoonya connector(์ธ๋) โ ๋ธ๋ก์ปค ์ด 10๊ณณ: connector-first ๊ฑฐ๋ ๋ ์ด์ด์ ์ธ๋ ์์ฅ์ฉ Dhan๊ณผ Shoonya(NSE/BSE ์ฃผ์ + F&O)๊ฐ ์ถ๊ฐ๋์ด ๋ธ๋ก์ปค๊ฐ ์ด 10๊ณณ์ด ๋์์ต๋๋ค. ๋ ๋ค ํ์ดํผ + ์ฝ๊ธฐ ์ ์ฉ์ ๋๋ค โ Longbridge์ ๋ง์ฐฌ๊ฐ์ง๋ก API๊ฐ ๋ฐํ์ paper/live ๊ตฌ๋ถ์๋ฅผ ๋ ธ์ถํ์ง ์์ผ๋ฏ๋ก
place_order/cancel_order๊ฐ ์ฒซ ์ค์์ ๋นํ์ดํผ ์ค์ ์ ๊ฐํ๊ฒ ๊ฑฐ๋ถํฉ๋๋ค(๊ท์น: ๋ฐํ์ paper/live ๊ฐ๋๊ฐ ์๋ ๋ธ๋ก์ปค๋ ํ์ดํผ + ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ์ ํ)(#181, #174 ์ข ๋ฃ). ์ด๋ฒ ์ฃผ๊ธฐ์๋ Gemini 2.5 / 3.x ์ฌ๊ณ ๋ชจ๋ธ๋ ์์ ํ์ต๋๋ค: ๋๊ตฌ ํธ์ถ๋ณthoughtSignature๊ฐ OpenAI ํธํ ๊ฒฝ๋ก๋ฅผ ์๋ณตํ์ฌ ๋ฉํฐํด function calling์ดINVALID_ARGUMENT๋ก ์คํจํ์ง ์์ต๋๋ค(#176, #170 ์ข ๋ฃ, @mvanhorn & @jliu6789 ๋ ๊ฐ์ฌํฉ๋๋ค). 452๊ฐ ์ ์ฒด Alpha Zoo ํฉํฐ์ ์ค๊ตญ์ด docstring(ไธญๆๅ็งฐ/่ฏดๆ/็จ้)์ด ์ถ๊ฐ๋์๊ณ (#180, @LeeCQiang ๋ ๊ฐ์ฌํฉ๋๋ค), **ํ๋ฐํธ์๋ ํ ์คํธ ์ค์ํธ(vitest 197๊ฐ)**์ ๋ฐฑ์๋ ์ธ์ฆ / ๊ฒฝ๋ก ํ์ / CORS ๋ณด์ ํ ์คํธ๊ฐ CI์ ๋ค์ด์์ต๋๋ค(#175, @sambazhu ๋ ๊ฐ์ฌํฉ๋๋ค). -
2026-06-04 ๐๏ธ ์ ์ฒด 7๊ฐ ๋ฐ์ดํฐ ์์ค ๋์ ์ตํธ์ธ ๋ก์ปฌ ์บ์: ์
VIBE_TRADING_DATA_CACHE์ค์์น๋ก ๊ฐ ๋ฐฑํ ์คํธ loaderโโtushare, okx, ccxt, akshare, mootdx, yfinance, futuโโ๊ฐ ํ์ ๋ ๊ณผ๊ฑฐ bar๋ฅผ~/.vibe-trading/cache(์ฌ์ฉ์ ํ, ์ ์ฅ์์๋ ์ ๋ ๊ธฐ๋กํ์ง ์์)์ ์บ์ํ์ฌ, ๋ฐ๋ณต ๋ฐ ์ฅ๊ธฐ / ํฌ๋ก์ค๋ง์ผ ๋ฐฑํ ์คํธ๊ฐ ๋คํธ์ํฌ๋ฅผ ๊ฑด๋๋ฐ๊ณ ์ ๊ณต์ ๋ ์ดํธ ์ ํ์ ํผํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ ๊บผ์ง. ๋ฐฐ์น / ์ฐ๊ฒฐํ loader(yfinance, futu)๋ ์บ์๊ฐ ์ ๋ถ ์ ์คํ๋ฉด ๋๋ ๋ค์ด๋ก๋ / FutuOpenD ์ฐ๊ฒฐ์ ์์ ํ ๊ฑด๋๋ฐ๋ฉฐ, staleness ๊ฐ๋๋ ์ค๋๋ก ๋๋๋ ๊ตฌ๊ฐ(๋ง์ง๋ง bar๊ฐ ์์ง ํ์ฑ ์ค)์ ์ ๋ ์บ์ํ์ง ์๊ณ , ์บ์๋ ํ๋ ์์ ์๋ก ๊ฐ์ ธ์จ ๊ฒ๊ณผ ๋ฐ์ดํธ ๋จ์๋ก ๋์ผํฉ๋๋ค(#177, @mvanhorn ๋ ๊ฐ์ฌํฉ๋๋ค). AI / ์๋ํ ์ง์ PR์ ์ํ ๊ธฐ์ฌ์ ๊ฐ์ด๋๋ ์ถ๊ฐ๋์ด ์์ ํ ๋ก์ปฌ ์ ๊ฒ๊ณผ ๊ณ ์ํ broker/MCP/์๊ฒฉ ์ฆ๋ช ์์ญ์ ์ ๋ฆฌํ์ต๋๋ค(#173). -
2026-06-03 ๐งน ์ปค๋ฎค๋ํฐ ํธ๋ฆฌ์์ง + ํธ๋ ์ด์ค ์๊ด๊ด๊ณ: ๋๊ตฌ ํธ์ถ ํธ๋ ์ด์ค ํญ๋ชฉ์ ์๋ณธ
call_id๊ฐ ํฌํจ๋์ด, run ํธ๋ ์ด์ค๋ฅผ ์ฌ์ํ ๋tool_result๋ฅผ ํด๋นtool_call์ ๋ค์ ๋งค์นญํ ์ ์์ต๋๋ค โ ์ธ์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ ํธ๋ ์ด์ค ํ์ผ์ ์๊ฒ ์ ์งํ๊ธฐ ์ํด ๊ณ์ ์๋ฆฐ ์ํ๋ก ๋ก๋๋ค(#168, @zwrong ๋ ๊ฐ์ฌํฉ๋๋ค). ์์ค ์ฃผ์์ ์ธ๋ถ ๊ธฐ์ฌ์๊ฐ ์ฐพ์ ์ ์๋ ๋ด๋ถ ์ ์ฉ ๋ฌธ์ ๊ฒฝ๋ก๋ฅผ ๋ ์ด์ ๊ฐ๋ฆฌํค์ง ์์ต๋๋ค(#166, @jaleelpersonal ๋ ๊ฐ์ฌํฉ๋๋ค). ๋ํ ์ค์น ์ ๋ํ๋๋langchain-community์์กด์ฑ ํด๊ฒฐ ๊ฒฝ๊ณ ๊ฐ ์คํจ๊ฐ ์๋๋ผ ์์ฌ ํจํค์ง๋ก ์ธํ ๋ฌดํดํ ์๋ฆผ์์ ๋ช ํํ ํ๊ณ (#167), Gemini 2.5/3.0 ํจ์ ํธ์ถ์thoughtSignature์๋ณต ์ฒ๋ฆฌ๋ฅผ ์์ ํ ์์ ๊ณํ์ด ํฌํจ๋help wanted์์ ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค(#170, @jliu6789 ๋ ๊ฐ์ฌํฉ๋๋ค). -
2026-06-02 ๐ ์ ๋ธ๋ก์ปค connector 6์ข (Tiger / Longbridge / Alpaca / OKX / Binance / Futu): connector-first ๊ฑฐ๋ ๋ ์ด์ด์ IBKR(๋ก์ปฌ)ยทRobinhood(MCP)์ ๋๋ํ direct-SDK transport๊ฐ ์ถ๊ฐ๋์์ต๋๋ค. ๊ฐ connector๋ ์ฝ๊ธฐ ์ ์ฉ account / positions / orders / quote / history์ ๋ํด ํ์ดํผ ๊ณ์ข ์ฃผ๋ฌธ ์ ์ถ์ ๋ ธ์ถํ๋ฏ๋ก, ์ด ๋ธ๋ก์ปค ํ์ดํผ ๊ณ์ข๋ค์์ ์ ๋ต์ ๊ฒ์ฆํ ์ ์์ต๋๋ค. ๊ทธ์ค 5์ข (Tiger, Alpaca, OKX, Binance, Futu)์ Robinhood์ ๋์ผํ ์์ ๋ชจ๋ธ ๋ค์์ mandate๋ก ๊ฒ์ดํธ๋๋ bounded ์ฃผ๋ฌธ ์ ์ถ๋ ์ง์ํฉ๋๋ค โ ์ฌ์ฉ์๊ฐ ์ปค๋ฐํ mandate(์ข ๋ชฉ universe / ์ฃผ๋ฌธ ๊ท๋ชจ / ์ต์คํฌ์ / ๋ ๋ฒ๋ฆฌ์ง / ์ผ์ผ ํ๋), ํ์ผ ์์ค kill switch, fail-closed ์ฌ์ ๊ฑฐ๋ ๊ฒ์ดํธ, ์์ ํ ๊ฐ์ฌ ์์ฅ. Longbridge๋ ํ์ดํผ + ์ฝ๊ธฐ ์ ์ฉ ์ ์ฉ์ ๋๋ค(API๊ฐ ๋ฐํ์ paper/live ๊ตฌ๋ถ์๋ฅผ ๋ ธ์ถํ์ง ์์). ๋ชจ๋ paper/live ๊ตฌ๋ถ์ ๋ธ๋ก์ปค๋ณ ๊ตฌ์กฐ์ ๊ฐ๋์ ๋๋ค. ์
trading_place_order/trading_cancel_order๋๊ตฌ๊ฐ ์ถ๊ฐ๋์๊ณ , HKยทA์ฃผ asset class๊ฐ mandate universe์ ๋ค์ด์์ต๋๋ค. ์คํ์ / ์ฌ์ฉ์ ๋ฐ๋ฅธ ์ฑ ์์ ๋ณธ์ธ์๊ฒ ์์ต๋๋ค. -
2026-06-01 ๐ v0.1.9 ์ถ์(
pip install -U vibe-trading-ai): 0.1.8 ์ดํ ๋ชจ๋ ๊ฒ์ ๋กค์ ํ์ต๋๋ค. Connector-first ๋ธ๋ก์ปค profile(IBKR ๋ก์ปฌ ์ฝ๊ธฐ ์ ์ฉ TWS / IB Gateway + OAuthยท์ปค๋ฐ๋ mandateยทorder guardยทaudit ledgerยทinstant halt ๋ค์ Robinhood Agentic Trading). CLI / REST / MCP / Web์ ์์ฐ๋ฅด๋ Research Goal ๋ฐํ์. swarm ํจ์ค โ live reconcile + MCP keepalive, operator๊ฐ ์ค์ ํ worker MCP ๋๊ตฌ, ์๊ฒฉ alpha-bench ๋๋ค ์ปจํธ๋กค, ์คํจ/์ค๋๋ run์ ๋ค์ ์คํํ๋ ์retry_run(์ด์ 36๊ฐ MCP tools).agent/cli/ํจํค์ง ๋ฆฌํฉํ ๋ง + ์ ํฐ๋ฏธ๋ UI,mootdx๋ฌดํ ํฐ A์ฃผ loader, backtest / agent loop / session ๊ฒฌ๊ณ ์ฑ ํจ์ค.--version์ ์ด์ ํญ์ ์ค์น๋ ํจํค์ง์ ์ผ์นํ์ฌ 0.1.8 ๋๋ฆฌํํธ๋ฅผ ์์ ํฉ๋๋ค(#156). -
2026-05-31 ๐ Connector-first ๋ธ๋ก์ปค ์ํคํ ์ฒ(IBKR + Robinhood): ๊ฑฐ๋ ์ ๊ทผ์ ์ด์ ๋ณ๋์ ๋ธ๋ก์ปค/live ์ง์ ์ ์ด ์๋๋ผ ์ ํ ๊ฐ๋ฅํ connector profile์์ ์์ํฉ๋๋ค.
vibe-trading connector list/use/check/account/positions/orders/quote/history์ MCPtrading_*๋๊ตฌ๋ ๋์ผํ ์ ํ profile์ ๊ณต์ ํ๋ฉฐ, paper/live๋ connector์ ์์ฑ์ผ๋ก ๋ค๋ฃน๋๋ค. IBKR์ ๋ก์ปฌ ์ฝ๊ธฐ ์ ์ฉ TWS / IB Gateway profile๋ก ์ฆ์ ์ฌ์ฉํ ์ ์๊ณ , ๊ณต์ IBKR ์๊ฒฉ MCP ๊ฒฝ๋ก๋ ์์ ์ ์ธ read tool ์ด๋ฆ์ด ์ ๊ณต๋ ๋๊น์ง OAuthmcp.readprobe๋ก seed๋์ด ์์ต๋๋ค. Robinhood Agentic Trading์ ๊ณ์ OAuth, ์ปค๋ฐ๋ mandate, order guard, audit ledger, instant halt ๋ค์ ์๋ bounded live MCP connector์ ๋๋ค. -
2026-05-30 ๐งฐ ๊ฒฌ๊ณ ์ฑ ํจ์ค โ backtest, agent loop, session: LLM์ด ์์ฑํ signal engine์ ์ด์ ์ธ์คํด์คํ ์ ์ ์ธํฐํ์ด์ค ์ฌ์ ๊ฒ์ฆ์ ๊ฑฐ์นฉ๋๋ค. ์ํ self-import, ๋๋ฝ๋
generate(), ๊ธฐ๋ณธ๊ฐ ์๋__init__์ธ์, ์๋ชป๋ ๋ฐํ ํ์ ๊ฐ์ ํํ ์ค์๋ฅผ ์กฐ๊ธฐ์ ์ก์ ์์ traceback ๋์ ์คํ ๊ฐ๋ฅํ JSON ์ค๋ฅ๋ก ๋ฐํํฉ๋๋ค (#149). ํ์ ์์ ์ผ๋ก ์์ค ์์ค AST ๊ฒ์ฆ ์ค๋ฅ๋ ๋์ผํ ๊น๋ํ JSON ๋ดํฌ์ ์ค์์ต๋๋ค. agent loop๋ ๋ ์ด์ 50ํ ๋ฐ๋ณต์ ๋ชจ๋ ์์งํ๊ณ ์ถ๋ ฅ ์๋failed์ํ๋ก ๋๋์ง ์์ต๋๋ค โ swarm worker์ ๊ฒ์ฆ๋ ๋ฐฉ์์ ๋ฐ๋ผ ๋ฐ๋ณต ์์ฐ์ 80%์์ wrap-up nudge๋ฅผ ์ฃผ์ ํ๊ณ ๋ง์ง๋ง ๋ฐ๋ณต์์ tool ์ ์๋ฅผ ์ ๊ฑฐํด ํ ์คํธ ๋ต๋ณ์ ๊ฐ์ ํฉ๋๋ค (#148). ์ค๊ฐ์๋ง ๋ฐ๋ํ๋๋ก ๊ฐ๋๋์ด research-goal ์ปจํ ์คํธ๋ฅผ ๋ฐ์ด๋ด์ง ์์ต๋๋ค. session ๋ฉ์์ง ์ฐ๊ธฐ๋ ์ด์ append๋ง๋คflush + fsyncํ์ฌ ๋น์ผ AI ์๋ต์ด ์ฐ๊ธฐ ๋์ค ํฌ๋์์๋ ์ด์๋จ๊ณ , ์ฝ๊ธฐ ๊ฒฝ๋ก๋ ์์๋ JSONL ์ค์ ๊ฑด๋๋ฐ๋ฉฐ(๋ณต๊ตฌ์ฉ์ผ๋ก ์ 200์ ๋ก๊น )/messages์๋ํฌ์ธํธ ์ ์ฒด๋ฅผ 500์ผ๋ก ๋ง๋ค์ง ์์ต๋๋ค (#147). Web ์ ๋ ฅ์ฐฝ์ IME Enter ์ฒ๋ฆฌ๋ ์์ ํด ์กฐํฉ ํ์ Enter๊ฐ ๋จ์ด ๋์ค์ ์ ์ก๋์ง ์๋๋ก ํ์ต๋๋ค (#146). -
2026-05-29 ๐ Robinhood Agentic Trading ์ง์(์ตํธ์ธ, ์ ํ๋ ์์จ์ฑ): Robinhood Agentic Trading์ ์ง์ํฉ๋๋ค(์๊ฒฉ MCP, OAuth). ๊ธฐ๋ณธ์ ์ผ๋ก ๋นํ์ฑยท์ฝ๊ธฐ ์ ์ฉ์ด๋ฉฐ, ์์ด์ ํธ๋ ์ฌ์ฉ์๊ฐ ์ปค๋ฐํ mandate(์ข ๋ชฉ/์ฃผ๋ฌธ ๊ท๋ชจ/์ต์คํฌ์ /๋ ๋ฒ๋ฆฌ์ง/์ผ์ผ ํ๋) ๋ฒ์ ์์์๋ง ์์จ ๊ฑฐ๋ํฉ๋๋ค. ํ์ผ ์์ค์ ์ฆ์ kill switch, ์ ์ ์ ํฌ์ง์ ์ฒญ์ฐ, mandate ์๋ ๋ง๋ฃ, ์์ ํ ๊ฐ์ฌ ์์ฅ, ์์ ์์จ runner๋ฅผ ๊ฐ์ท์ต๋๋ค. ์ํ ์์ยท๊ฑฐ๋์ ์์ โ ์๊ธ ๋ณด์ ์ ์ฒด๊ฒฐ์ ๋ธ๋ก์ปค๊ฐ ํ๊ณ , ์ฐ๋ฆฌ๋ ์๋๋ง ์ค๊ณํฉ๋๋ค. ์คํ์ / ์ฌ์ฉ์ ๋ฐ๋ฅธ ์ฑ ์์ ๋ณธ์ธ์๊ฒ ์์ต๋๋ค.
-
2026-05-28 ๐งช Swarm ์์ ์ฑ + ์๊ฒฉ alpha ๊ฒ์ดํธ + worker MCP: Swarm DAG๊ฐ ์์ ํ์คํฌ ์คํจ ์ ํ์ ํ์คํฌ๋ฅผ ์ฐจ๋จํฉ๋๋ค (#145). ์
run_bench_strict()๋ IC ๊ฒ์ดํธ ์์ ๋์ผ universe ๋๋ค ์ปจํธ๋กค + ํ์ต/ํ ์คํธ OOS ๋ถํ ์ ์ถ๊ฐํด ์์ฅ beta๋ง ๋ฐ๋ผ๊ฐ๋ ๊ฐ์ง factor๋ฅผ ์ก์๋ ๋๋ค (#143, @Soli22de ๊ฐ์ฌ). Swarm worker๋ ์ด์ operator๊ฐ ์ค์ ํ ์ธ๋ถ MCP server๋ฅผ ํธ์ถํ ์ ์์ผ๋ฉฐ ์ ๋ขฐ ๊ฒฝ๊ณ๋ ์ ์ฉ ํ ์คํธ๋ก ๊ณ ์ ๋์ด ์์ต๋๋ค (#142, @shadowinlife ๊ฐ์ฌ). -
2026-05-27 ๐ mootdx A์ฃผ ๋ฐ์ดํฐ ์์ค + ์ถ๋ ฅ ์ ๋ฆฌ: ์
mootdxloader๋ ๋ค์ดํฐ๋ธ ้่พพไฟก TCP ํ๋กํ ์ฝ๋ก A์ฃผ OHLCV๋ฅผ ๊ฐ์ ธ์ต๋๋ค(์ธ์ฆ ๋ถํ์, IP ์๋ ์ ํ ์์, ์ผ๋ด + ๋ถ๋ด์ 25 ํ์ด์ง walk-back ํ์ด์ง๋ค์ด์ ). fallback chain์์ tushare์ akshare ์ฌ์ด์ ์์นํฉ๋๋ค (#107). CCXT loader๋ ์ด์ HTTP_PROXY/HTTPS_PROXY/ALL_PROXY๋ฅผ ์ฝ์ด ์ ํ๋ ๋คํธ์ํฌ์์ Binance/OKX ๊ณต๊ฐ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค (#126, @ruok808 ๊ฐ์ฌ). ์ต์ข ๋ต๋ณ ๋ ๋๋ง์์๋ CLI์ Web์ ๋ณด๊ธฐ ํํ ์ ์ฒด ๋๋น---๊ตฌ๋ถ์๋ฅผ ์ ๊ฑฐํ์ต๋๋ค: system prompt๋ markdown ํ ์ด๋ธ๊ณผ##ํค๋ฉ ์ฌ์ฉ์ ์ ๋ํ๊ณ , CLI ๋ ๋๋ฌ๋ ๋ ๋ฆฝ HR์ defense-in-depth๋ก ์ ๊ฑฐํ๋ฉฐ, ์ฑํ ๋ฒ๋ธ์ ๋น ์ ธ๋์จ<hr>์ ์จ๊น๋๋ค (#139, @sdwxm188 ๊ฐ์ฌ). -
2026-05-26 โ Research Goal lifecycle ํ์ ๋ฃจํ: Goal mode๊ฐ ์ค์ task runner์ฒ๋ผ ๋์ํฉ๋๋ค. Web UI์์ goal์ ๋ง๋ค๋ฉด session์ ์์ฑํ๊ฑฐ๋ ๋ฐ์ธ๋ฉํ๊ณ ์ฆ์ kickoff turn์ ๋ณด๋ ๋๋ค. active goal์ Web/API/CLI/MCP์์ continue/edit/cancel/completeํ ์ ์์ผ๋ฉฐ, agent loop๋ ์ต์ด prompt๋ง์ด ์๋๋ผ ํ์ฌ goal snapshot(criteria, evidence, claims, open items)์ ๊ธฐ์ค์ผ๋ก ์งํํฉ๋๋ค. criteria๊ฐ covered์์ง๋ง goal์ด active๋ก ๋จ์ ์์ผ๋ฉด ์กฐ์ฉํ ๋ฉ์ถ์ง ์๊ณ audit/status update๋ก ๋ค์ด๊ฐ๋ฉฐ, backend, CLI, MCP, frontend events ํ๊ท๋ก ๊ณ ์ ํ์ต๋๋ค.
-
2026-05-25 ๐งผ ๋ ๊น๋ํ Chat UI + composer ์ํฌํ๋ก: Web UI๋ ์ด์ ๋ค์ ์ ๋ ฅ์ ์ง์คํ๋๋ก ์ ๋ฆฌ๋์์ต๋๋ค. upload, swarm, research-goal ๋ชจ๋๋ composer์
+๋ฉ๋ด ๋ค๋ก ๋ชจ์ด๊ณ , floating panel๋ก ์ฑํ ์ ๋ฐฉํดํ์ง ์์ต๋๋ค. ํ์ฌ context๋ ์ ๋ ฅ์ฐฝ ์ compact chip์ผ๋ก ํ์๋๋ฉฐ, goal ์ธ๋ถ ์ ๋ณด๋ chip์ ํด๋ฆญํ ๋๋ง inline์ผ๋ก ํผ์ณ์ง๋๋ค. ๊ธฐ์กด custom i18n layer๋ ์ ๊ฑฐํ๊ณ ์ง์ English copy๋ก ํต์ผํ์ต๋๋ค. Full Report card๋ report-worthy run์๋ง ํ์๋๋ฉฐ, ๋ก์ปฌ dev startup/status reporting๋ ๋ธ๋ผ์ฐ์ smoke test์ ๋ง๊ฒ ์์ ํํ์ต๋๋ค. -
2026-05-24 ๐ฏ Research Goal runtime: backend, CLI, API/MCP, SSE, Web UI ์ ๋ฐ์ session-scoped Research Goal layer๋ฅผ ์ถ๊ฐํ์ต๋๋ค. Goal์ claim, acceptance criteria, evidence row, budget, completion policy๋ฅผ ์์ํํฉ๋๋ค. agent tool์ goal ์์ฑ๊ณผ evidence ์ถ๊ฐ๋ฅผ ์ง์ํ๊ณ ,
/goal์ CLI ์ง์ ์ ์ด ๋์์ผ๋ฉฐ, REST/MCP๋ goal snapshot๊ณผ evidence write๋ฅผ ๋ ธ์ถํ๊ณ , SSE๋ chat client ์ํ๋ฅผ ์ต์ ์ผ๋ก ์ ์งํฉ๋๋ค. ํ์ audit fixes์์๋ verified evidence ๊ฒฝ๊ณ๋ฅผ ์ ๊ทธ๊ณ , agent tool์ live-trading risk tier ์ ๋ ฅ์ ์ฐจ๋จํ๋ฉฐ, CLI-created goal์ ์ดํ turn์ ์ฐ๊ฒฐํ๊ณ , session ์ญ์ ์ goal ledger๋ฅผ ์ ๋ฆฌํ๊ณ , replay-all์ ์ฐ๊ฒฐํ๊ณ , frontend cross-session snapshot race๋ฅผ ์์ ํ์ต๋๋ค. -
2026-05-23 ๐ฅ๏ธ ๋ํํ CLI ์ ๋จ์ฅ: ํฐ๋ฏธ๋ ์ง์ ์ ์ ๋ ํฐ Vibe-Trading ๋ฐฐ๋, ๋ ๊น๋ํ prompt ๊ตฌ๋ถ์ , ์ด์ ํด ์์ฝ, ์คํ ํ ์์ ์๊ฐ, Claude Code ์คํ์ผ activity rail๋ก live agent ์์ ์ ๋ณด์ฌ์ค๋๋ค. ๋๊ตฌ ํธ์ถ, ์น/๋ฐ์ดํฐ fetch, shell ์คํ์ผ ๋์, Markdown ๋ต๋ณ, pipe table์ ๋ ์ฝ๊ธฐ ์ฌ์ด transcript๋ก ๋ ๋๋ง๋๋ฉฐ, pipe ๋๋ non-TTY ์คํ์ ์๋ํ์ ์ ํฉํ plain-text ์ถ๋ ฅ์ ์ ์งํฉ๋๋ค. ์์ฑ๋ CLI ์คํฌ๋ฆฐ์ท์ ์ปค๋ฐ๋๋ docs ํ์ผ์ด ์๋๋ผ local artifact๋ก ์ฒ๋ฆฌ๋์ด ์ ์ฅ์๋ฅผ ๊ฐ๋ณ๊ฒ ์ ์งํฉ๋๋ค.
-
2026-05-22 ๐งญ Swarm ๋ณต๊ตฌ + MCP keepalive: Swarm ์ํ๋ ์ด์ ์ฝ์ ๋๋ง๋ค live task ํ์ผ์์ reconcile๋๋ฏ๋ก API/MCP/SSE/list ๋ทฐ๊ฐ ํฌ๋์๋์๊ฑฐ๋ ์ค๋๋ run์ ๋ณต๊ตฌํ๊ณ ์๊ตฌ
running์ค๋ ์ท์ ๋ณด์ฌ์ฃผ์ง ์์ต๋๋ค.run_swarm๋ polling ์ค MCP progress heartbeat๋ฅผ ๋ณด๋ด๋ฉฐ, transport drop ์ดํ ์ฌ์ฐ๊ฒฐํ ํด๋ผ์ด์ธํธ๊ฐ handle์ ํ์ํ ์ ์๋๋ก ์ฒซ ํ๋ ์์swarm_started run_id=<id>๋ก ๊ณ ์ ํ์ต๋๋ค. worker๋ LLM streaming, grounding fetch, tool execution ์ ๊ณผ์ ์์ heartbeat๋ฅผ ๋ ๋๋ค. stale-run reaper๋ run๋ณ ์๊ณ๊ฐ์ ์ฌ์ฉํ๊ณ task ์ํ์์ ์ต์ข ์ํ๋ฅผ ๋์ถํฉ๋๋ค.SwarmTool์ wait budget์ด ๋๋ฌ๋ค๋ ์ด์ ๋ง์ผ๋ก ์งํ ์ค์ธ team์ ์ทจ์ํ์ง ์์ผ๋ฉฐ, MCP ํด๋ผ์ด์ธํธ๋reap_stale_runs()๋ก ๋ช ์์ cleanup์ ์คํํ ์ ์์ต๋๋ค. ์ค๋์ DX pass์์๋ provider ๊ธฐ๋ณธ ๋ชจ๋ธ๋ ๊ฐฑ์ ํ๊ณ CI syntax check๋ฅผ ์agent/cli/ํจํค์ง์ ๋ง์ท์ต๋๋ค. 22๊ฐ์ ์ ํ๊ท ํ ์คํธ๊ฐ hydrate, ์ต์ข ์ํ ๋ณต๊ตฌ, stale reap, keepalive cadence, env parsing, heartbeat wiring์ ๋ค๋ฃจ๋ฉฐ, ์ ์ฒด swarm/MCP ์ค์ํธ๋ 169 passed, 4 skipped์ ๋๋ค. -
2026-05-21 ๐งฑ CLI ํจํค์ง ๋ฆฌํฉํ ๋ง:
agent/cli.py(3216 LOC)๋ฅผagent/cli/ํจํค์ง๋ก ๋ถํ โ ๋ํํ ์ง์ ์ , ์ฌ๋์ ๋ผ์ฐํฐ, Rich ์ปดํฌ๋ํธ, ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ์๋ธ์ปค๋งจ๋๋ฅผ ๋ณด์กดํ๊ณcli.cmd_*/cli._INIT_ENV_PATH/cli.Confirm๋ฑ ๊ณต๊ฐ ์ฌ๋ณผ์ ์ฌ๋ด๋ณด๋ด๋_legacy.pyshim. ์ FastAPI ๋ฏธ๋ค์จ์ด๋ ๋ธ๋ผ์ฐ์ ๊ฐ/runs/{id}๋๋/correlation์ ์ง์ ์ ๊ทผํ ๋ SPA ์ ธ์ ๋ฐํํ๋ฉฐ, ๋์ผํ ์ขํ์ Vite dev ํ๋ก์์๋ ๋ฐ์ํ์ต๋๋ค. ๋ฒ์ ๋ฌธ์์ด์cli/_version.py๋จ์ผ ์์ค๋ก ํตํฉ(--version๊ณผ ๋ฐฐ๋ ๋๋ฆฌํํธ ํด๊ฒฐ),python -m cli๋__main__.py๋ก ๋ณต์, chat ๊ฒ์ดํธ๋ฅผ ์ขํchat --help/chat extra๊ฐ REPL์ ์ผ์ผ์ง์ง ์๊ณ ๋ ๊ฑฐ์ argparse์ ๋๋ฌํฉ๋๋ค. -
2026-05-20 ๐ฌ Hypothesis Registry CLI: 2026-05-16์ ๋ฐฑ์๋๋ง ์ถ์๋ Hypothesis Registry์ CLI ์ธก์ ์์ฑํ์ต๋๋ค.
vibe-trading hypothesis list๋ Rich ํ ์ด๋ธ ๋๋ JSON์ ์ถ๋ ฅํฉ๋๋ค(--statusํํฐ,--limit์ง์).show <id>๋ ๋งํฌ๋ run card๋ฅผ ํฌํจํ ์์ธ ํจ๋์ ๋ ๋๋งํฉ๋๋ค.invalidate <id> --note "..."๋ ์ํ๋ฅผrejected๋ก ์ ํํ๋ฉฐ,--note๋ฅผ ์๋ตํ๋ฉด ๊ธฐ์กด invalidation notes๋ฅผ ์ ์งํฉ๋๋ค. ๊ธฐ์กดVIBE_TRADING_HYPOTHESES_PATHํ๊ฒฝ๋ณ์ ์ค๋ฒ๋ผ์ด๋์ ํธ์ถ๋ณ--path๋ฅผ ๋ชจ๋ ์ง์ํฉ๋๋ค. 22๊ฐ์ ์ ํ ์คํธ๊ฐ ์์ด์ด๋ง, JSON ์ถ๋ ฅ, ์ํ ํํฐ, limit, ID ๋๋ฝ ์ค๋ฅ, ๋ ธํธ ์์์ฑ์ ๋ค๋ฃน๋๋ค. -
2026-05-19 โจ ๋๊ตฌ ๋ผ์ด๋ธ ํผ๋๋ฐฑ + ์ฐ์ํ ์ทจ์: ์ค๋ ๊ฑธ๋ฆฌ๋ ๋๊ตฌ(๋ฐฑํ ์คํธ, ํฐ PDF, swarm worker)๊ฐ ๋ฉ์ถ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง ์๊ฒ ๋์์ต๋๋ค. ๋ชจ๋ ๋๊ตฌ ํธ์ถ์ ์ด์ 3์ด ๊ฐ๊ฒฉ์ ํํธ๋นํธ์ ๊ตฌ์กฐํ๋ ๋จ๊ณ๋ณ ์งํ ์ํฉ์ ๋ฐํํฉ๋๋ค โ
run_backtest๋ ๋จ๊ณ ๋ง์ปค(validate/simulate/finalize),read_document๋ PDF์์๋ ํ์ด์ง ๋จ์, Excel์์๋ ์ํธ ๋จ์,read_url์fetch/parse๋ฅผ ํ์ํฉ๋๋ค. CLI์ Rich Live ๋์๋ณด๋๋ ์ ๋์ฝ๋ ์คํผ๋, ASCII ์งํ ํ์์ค, ETA๋ฅผ ๋ ๋๋งํ๊ณ ๋๊ตฌ ์ด๋ฆ์ผ๋ก ํค๋ ์ต๋ 3๊ฐ์ ๋ณ๋ ฌ ๋๊ตฌ๋ฅผ ์คํ ํ์ํฉ๋๋ค. ํ๋ฐํธ์๋ ์ฑํ ์๋ ์๋ก์ดToolProgressIndicator๋ฅผ ์ถ๊ฐํ์ผ๋ฉฐ, rAF ์ฝ์ผ๋ ์ฑ, ARIArole="status"+ ์คํฌ๋ฆฐ ๋ฆฌ๋์ฉ ์จ๊ฒจ์ง ๋ค์ดํฐ๋ธ<progress>, ์ด๋์ ์ ๋ ๊ฒฐ์ ์ ProgressRingSVG๋ก ์ ํํฉ๋๋ค. CLI ์คํ ์ค ์ฒซ ๋ฒ์งธCtrl+C๋ ์ด์ agent.cancel()์ ํธ์ถํด ์ฐ์ํ๊ฒ ์ข ๋ฃ(ํ์ฌ ๋จ๊ณ๊ฐ ๋๋๊ณ trace๊ฐ ๊นจ๋ํ๊ฒ ๋ซํ)ํ๊ณ , 2์ด ์ด๋ด ๋ ๋ฒ์งธ๋ ๊ฐ์ ์ข ๋ฃํฉ๋๋ค. ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๊ธฐ๋ณธ ์์๋ ์ถ์ถํ์ต๋๋ค:ProgressBar.tsx์lib/tools.ts(๊ณต์ ๋๊ตฌ ์ด๋ฆ i18n). -
2026-05-18 ๐งน ์ ๋ฆฌ + 3๊ฐ์ ์ ์ฌ ๋ฒ๊ทธ ์์ :
CompositeEngine์ด ๊ฑฐ๋์ ์ ๋ฏธ์ฌ๊ฐ ์๋ ์ค๊ตญ ์ ๋ฌผ ์ฝ๋(RB2410๋ฑ)๋ฅผGlobalFuturesEngine์ผ๋ก ์๋ชป ๋ผ์ฐํ ํ๋ ๋ฌธ์ ๋ฅผ ์์ ํ์ต๋๋ค._is_china_futures๋ฅผ ๊ณต์_market_hooks๋ชจ๋๋ก ์ฎ๊ธฐ๊ณ , ์ํ ์ฝ๋ ํ ์ด๋ธ์ ๋์๋ฌธ์ ์ ๊ทํ + ๋น์ค๊ตญ ๊ฑฐ๋์ ๊ฐ๋๋ฅผ ์ถ๊ฐํ์ผ๋ฉฐ, ํ๊ท ์ผ์ด์ค 9๊ฐ๋ฅผ ์๋ก ์์ฑํ์ต๋๋ค. session FTS5 ์ธ๋ฑ์ค๊ฐ ํ์์คํฌํ๋ฅผ ์๊ตฌ ์ ์ฅํ๊ฒ ๋์ด ํฌ๋ก์ค ์ธ์ ๊ฒ์์์ ๋ ์ง ์ ๋ ฌ์ด ๊ฐ๋ฅํด์ก์ผ๋ฉฐ, ๋์ผ ๋ณ๊ฒฝ์ผ๋ก re-upsert ๊ฒฝ๋ก๊ฐstarted_at์ wall-clock์ผ๋ก ๋ฎ์ด์ฐ๋ ๋ถ์ ๋ฒ๊ทธ๋ ํด๊ฒฐํ์ต๋๋ค. Vite ๊ฐ๋ฐ ํ๋ก์์ ๋๋ฝ๋์๋/alpha๋ฅผ ์ถ๊ฐํ์ฌ AlphaZoo ํ์ด์ง๊ฐnpm run dev์์ ์ ์ ํด์๋ฉ๋๋ค.tests/test_e2e_harness_v2.py(์ค LLM e2e ์ค์ํธ)๋VIBE_TRADING_RUN_LIVE_E2E=1๋ก ๊ฒ์ดํธํ์ฌ CI๊ฐ ํ๊ฒฝ๋ณ์ ์ ๋ฌด์ ๋ฐ๋ผ ํํ๋ฅผ ๋ฐ๊พธ์ง ์๋๋ก ํ์ต๋๋ค. ruff์ factor zoo์ฉper-file-ignores๋ฅผ ์ถ๊ฐ(F401 ์ก์ 3783 โ 0)ํ๊ณ , ํ๋ฐํธ์๋ tsconfig์noUnusedLocals/noUnusedParameters๋ฅผ ํ์ฑํํด ํ๊ท ๊ฐ๋๋ก ๋์์ผ๋ฉฐ,gtja191alpha ํ์ผ๋ค์ ์ฌ์ฉ๋์ง ์๋vw = vwap(...)๋ณด์ผ๋ฌํ๋ ์ดํธ 76๊ฐ๋ ์ญ์ ํ์ต๋๋ค. ์ -918์ค. -
2026-05-17 ๐งฌ Alpha Zoo v1 (0.1.8): 4๊ฐ zoo์ ๊ฑธ์น 452๊ฐ์ ์ฌ์ ๋น๋๋ quant alpha๋ฅผ ๋ฒ๋ค๋ก ์ ๊ณต โ
qlib158(Microsoft Qlib์ Alpha158 ํน์ฑ, Apache-2.0 ์ถ์ฒ ํ๊ธฐ),alpha101(Kakushadze์ "101 Formulaic Alphas"๋ฅผ arXiv:1601.00991 ๋ ผ๋ฌธ ๋ถ๋ก์์ ์ฌ๊ตฌํ),gtja191(๊ตญํ๊ตฐ์ 2014 ๋จ๊ธฐ ๊ฑฐ๋ํ alpha ๋ฆฌ์์น ๋ณด๊ณ ์),academic(Fama-French 5 + Carhart ๋ชจ๋ฉํ ์ ๊ฐ๊ฒฉ ๊ธฐ๋ฐ proxy ๊ตฌํ). ํ ์ค CLI๋ก ์์ universe์์ ๋ฒค์น:vibe-trading alpha bench --zoo gtja191 --universe csi300 --period 2018-2025. AST ์์ ํจ์ ๊ฒ์ดํธ, look-ahead ๊ฐ๋ ํ ์คํธ,pytest-socket๋คํธ์ํฌ ์ฐจ๋จ, zoo๋ณ LICENSE.md, ์ปค๋ฎค๋ํฐ PR์ฉ DCO ์๋ช ์ํฌํ๋ก์ฐ ํฌํจ. Alpha Library ์๋ ๋ ๋๋ง: vibetrading.wiki/alpha-library/, Research Lab ๊ธ: Which of the 191 GTJA alphas still work in 2026?. -
2026-05-16 ๐งช ๋ฆฌ์์น ๊ธฐ๋ฐ ์ ๋ฐ์ดํธ: backend Hypothesis Registry๋ฅผ ์ถ๊ฐํด
create_hypothesis,update_hypothesis,link_backtest,search_hypotheses๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ธ๋ถ ์ฝํ ์ธ reader๋ warning-onlysecurity_warnings๋ฅผ ๋ถ์ด๊ณ , Shadow Account scanner๋ ๊ธฐ์กด calendar-phase stub ๋์ deterministic OHLCV feature evaluation์ ์ฌ์ฉํฉ๋๋ค. -
2026-05-15 ๐ชช Run ์์ธ ํ์ด์ง์์ metrics์ artifacts ์์ Trust Layer run card๋ฅผ ๋ ๋๋งํด, 2026-05-12์ ๋ค์ด๊ฐ
run_card.json์์ ์ UI ์ธก์ ๋ง๋ฌด๋ฆฌํฉ๋๋ค.PersistentMemory.add()๋ #108/#109/#110 triage์ ๋ฐ๋ผ ๊ธธ์ด, ๋น ๋ฌธ์์ด ๋๋ ๊ณต๋ฐฑ๋ง์ผ๋ก ์ด๋ฃจ์ด์ง name, C0/C1 ์ ์ด ๋ฐ์ดํธ ๊ฒฝ๋ก์์ ๊ฐํ๋์์ต๋๋ค(#112, @Teerapat-Vatpitak ๊ฐ์ฌํฉ๋๋ค). -
2026-05-14 ๐ ๊ณต๊ฐ Wiki๊ฐ vibetrading.wiki์ ์ด๋ ธ๊ณ , docs, tutorials, Research Lab, Alpha Library ์น์ ์ Cloudflare Pages๋ก ๋ฐฐํฌํฉ๋๋ค. ์๊ตฌ ๋ฉ๋ชจ๋ฆฌ๋ ์ด์
vibe-trading memory list/show/search/forget์ผ๋ก CLI์์ ํ์ธํ ์ ์์ผ๋ฉฐ(#102, @Teerapat-Vatpitak ๊ฐ์ฌํฉ๋๋ค), memory tokenization/slug๋ ํ๊ตญ์ด, ์๋์ด, ํ๋ธ๋ฆฌ์ด, ํค๋ฆด ๋ฌธ์๋ ์ง์ํฉ๋๋ค(#104). -
2026-05-13 ๐งญ Swarm ์คํ์ ์ด์ ๊ฐ์ ธ์จ ์์ฅ ๋ฐ์ดํฐ๋ก worker๋ฅผ groundingํ๊ณ , ๋ ๊น๋ํ ์๊ตฌ ๋ฆฌํฌํธ๋ฅผ ๋จ๊น๋๋ค(#93, #84).
-
2026-05-12 ๐งพ ๋ฐฑํ ์คํธ๋ ์ด์ ์ฌํ ๊ฐ๋ฅํ ๋ฆฌ์์น ์คํ์ ์ํด artifacts์ ํจ๊ป
run_card.json๋ฐrun_card.md๋ฅผ ์์ฑํฉ๋๋ค. -
2026-05-11 ๐งญ Memory slug, swarm ์ง๊ณ, CLI ํ๋ฆฌํ๋ผ์ดํธ: ์๊ตฌ ๋ฉ๋ชจ๋ฆฌ๋ ํ์ผ slug๋ฅผ ์์ฑํ ๋ CJK ๋ฌธ์๋ฅผ ๋ณด์กดํ์ฌ ์ค๊ตญ์ด/์ผ๋ณธ์ด/ํ๊ตญ์ด ๋ ธํธ์์ ์กฐ์ฉํ ํ์ผ๋ช ์ถฉ๋์ด ๋ฐ์ํ์ง ์๋๋ก ํฉ๋๋ค(#95, @voidborne-d ๊ฐ์ฌํฉ๋๋ค). Swarm ์คํ ํฉ๊ณ๋ ์ด์ provider๊ฐ ๋ณด๊ณ ํ token usage๋ฅผ ์ฐ์ ์ฌ์ฉํ๊ณ ๊ธฐ์กด ์ถ์ fallback๋ ์ ์งํฉ๋๋ค(#94, @Teerapat-Vatpitak ๊ฐ์ฌํฉ๋๋ค). CLI ์คํ UI์๋ ์ผ๋ฐ์ ์ธ ํ๊ฒฝ ๋ฌธ์ ๋ฅผ ํ์ธํ๋ ์์ ํ๋ฆฌํ๋ผ์ดํธ ์ฒดํฌ๋ ์ถ๊ฐ๋์์ต๋๋ค(#96, @ykykj ๊ฐ์ฌํฉ๋๋ค).
-
2026-05-10 ๐งฑ ํ๊ท ๊ฐ๋๋ ์ผ + run ๋ฉํ๋ฐ์ดํฐ: Memory recall์ ์ด์ ๋ฐ์ค์ token ๊ฒฝ๊ณ๋ก ์ทจ๊ธํ๋ฏ๋ก
mcp_wiring_test๊ฐ์ snake_case ์ ์ฅ ๋ฉ๋ชจ๋ฆฌ๊ฐ "mcp wiring" ๊ฐ์ ์์ฐ์ด ์ฟผ๋ฆฌ์ ๋งค์นญ๋ฉ๋๋ค(#87, @hp083625 ๊ฐ์ฌํฉ๋๋ค). MCP server์๋ initialize โtools/listโtools/call๊ฒฝ๋ก๋ฅผ ์ค์ subprocess๋ก ๊ฒ์ฆํ๋ smoke test๊ฐ ์ถ๊ฐ๋์ด ์ฒซ ํธ์ถ deadlock ๊ฒฝ๋ก๋ฅผ ๋ฐฉ์งํฉ๋๋ค(#86). Windows ๊ฒฝ๋ก ๋ฏผ๊ฐ ํ ์คํธ, API best-effort ์์ธ ์ฒ๋ฆฌ, backtestrun_dirํ์ฉ ๋ฃจํธ ๊ฒ์ฆ, SwarmRun provider/model ๋ฉํ๋ฐ์ดํฐ์ ๋ํ ์ ์ํ ๊ฐํ๋ ๋ฐ์๋์์ต๋๋ค(#88, #90, #91, #92, @Teerapat-Vatpitak ๊ฐ์ฌํฉ๋๋ค). -
2026-05-09 ๐ก๏ธ API ๊ฒฝ๋ก ๊ฐํ + MCP server ์์ ์ฑ: API run/session ๋ผ์ฐํธ๋ ์กฐํ ์ ์ path ID๋ฅผ ๊ฒ์ฆํ์ฌ ๊ฐํ์ด ํฌํจ๋ ์๋ชป๋ ํ๋ผ๋ฏธํฐ๋ฅผ ๊ฑฐ๋ถํ๊ณ , ์ด ๋์์ auth/security ํ๊ท ํ ์คํธ์ ๊ณ ์ ํ์ต๋๋ค(#80, @SJoon99 ๊ฐ์ฌํฉ๋๋ค). MCP server๋
tools/call์ ์ ๊ณตํ๊ธฐ ์ ์ ๋ฉ์ธ ์ค๋ ๋์์ ๋๊ตฌ ๋ ์ง์คํธ๋ฆฌ๋ฅผ ๋ฏธ๋ฆฌ ์๋ฐ์ ํ์ฌ lazy tool discovery์ ์ฒซ ํธ์ถ deadlock์ ํผํฉ๋๋ค(#85, @Teerapat-Vatpitak ๊ฐ์ฌํฉ๋๋ค). Vite dev proxy๋ ๊ธฐ๋ณธ๊ฐ์ด ์๋ ๋ฐฑ์๋ ํ๊น์ ์ํดVITE_API_URL์ ์กด์คํฉ๋๋ค(#82, @voidborne-d ๊ฐ์ฌํฉ๋๋ค). -
2026-05-08 ๐งพ Tushare ์ฌ๋ฌด์ ํ ํ๋๋ฅผ ํํฐ์ ์ฐ๊ฒฐ: A์ฃผ ์ผ๊ฐ ๋ฐฑํ ์คํธ์์
fundamental_fields๋ฅผ ํตํด PIT-safe ์ฌ๋ฌด์ ํ ํ๋๋ฅผ ์์ฒญํ ์ ์์ผ๋ฏ๋ก signal engine์ ๊ณต์/๊ณต๊ฐ์ผ ์ดํincome_total_revenue,income_n_income,balancesheet_total_hldr_eqy_exc_min_int,fina_indicator_roe๋ฑ ํ ์ด๋ธ ์ ๋์ฌ ์ปฌ๋ผ์ผ๋ก ์ ๋ณํ ์ ์์ต๋๋ค(#76, @mrbob-git ๊ฐ์ฌํฉ๋๋ค). ํ์ ๊ฐํ๋ก ๋ช ์์ ์ฌ๋ฌด์ ํ ํ๋ ์์ฒญ ์ Tushare enrichment๊ฐ ์คํ๋์ง ์์ผ๋ฉด ์์ ๊ฐ๊ฒฉ bar๋ก ์กฐ์ฉํ fallbackํ์ง ์๊ณ ์ฆ์ ์คํจํฉ๋๋ค(#77). -
2026-05-07 ๐ Tushare fundamentals + ์ปค๋ฎค๋ํฐ ์ ๋ฆฌ: ํ๋๋ฉํธ ๋ฆฌ์์น ์ํฌํ๋ก๋ฅผ ์ํด point-in-time
TushareFundamentalProvider๊ณ์ฝ์ ์ถ๊ฐํ๊ณ , ํ๋ก์ ํธTUSHARE_TOKENํ๊ฒฝ ๊ฒฝ๋ก๋ฅผ ํ๊ท ํ ์คํธ๋ก ๊ณ ์ ํ์ต๋๋ค(#74). ์ปค๋ฎค๋ํฐ ์ ๋ฆฌ์์๋ Vibe-Trading์ด ๋น๋ถ๊ฐ ๋น ๋ฅธ ๋ฐ๋ณต์ ์ํด ํ๋์ UI ์ธ์ด์ ์ง์คํ๊ณ , DuckDuckGo ๊ธฐ๋ฐweb_search๊ฐ ์ด๋ฏธ ๋ฒ๋ค๋์ด ์์ผ๋ฏ๋ก ์ค๋ณต ๊ฒ์ ์์กด์ฑ์ ์ถ๊ฐํ์ง ์์ผ๋ฉฐ, ๋น๊ณต์ ํธ์คํ ๋ฐฐํฌ๋ฅผ API ํค๋ ๋ฐ์ดํฐ ์์ค ํ ํฐ์ ์ ๋ ฅํ ์ ์๋ ์ ๋ขฐ ์ง์ ์ผ๋ก ๋ณด์ง ์๋๋ค๋ ์ ๋ ๋ช ํํ ํ์ต๋๋ค. -
2026-05-06 ๐ v0.1.7 ๋ฆด๋ฆฌ์ค(Release notes,
pip install -U vibe-trading-ai): ๋ณด์ ๊ฒฝ๊ณ ๊ฐํ๊ฐ PyPI์ ClawHub์ ๊ฒ์๋์์ต๋๋ค. API/read/upload/file/URL/generated-code/shell-tool/Docker ๊ธฐ๋ณธ๊ฐ์ ๋ ์์ ํ๊ฒ ํ๋ฉด์ localhost CLI/Web UI ์ํฌํ๋ก๋ ๋ฎ์ ๋ง์ฐฐ์ ์ ์งํฉ๋๋ค. ์ด๋ฒ ์ฌ์ดํด์๋ Web UI Settings, ์๊ด๊ด๊ณ ํํธ๋งต, OpenAI Codex OAuth, A์ฃผ pre-ST ํํฐ, ๋ํํ CLI UX, swarm preset inspection, ๋ฐฐ๋น ๋ถ์, ๊ฐ๋ฐ ์ํฌํ๋ก ๊ฐ์ , ๊ฐ์ฌ๋ frontend build dependency ํํ๋ ํฌํจ๋ฉ๋๋ค. 0.1.7 ๊ธฐ์ฌ์๋ค๊ณผ ์กฐ์จ๋ ๋ณด์ ๊ฒ์ฆ์ ๋์์ค lemi9090 (S2W)์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. -
2026-05-05 ๐ก๏ธ ๋ณด์ ๊ฒฝ๊ณ ํ์ ์กฐ์น: ๋ช ์์ CORS origin, Settings credential indicator, web URL reading, Shadow Account code generation ์ฃผ๋ณ์ ๋จ์ ๋ณด์ ๊ฒฝ๊ณ ๊ฐํ๋ฅผ ์๋ฃํ๊ณ ๊ฐ ๊ฒฝ๋ก์ ํ๊ท ํ ์คํธ๋ฅผ ์ถ๊ฐํ์ต๋๋ค. ์ผ๋ฐ์ ์ธ localhost CLI/Web UI ์ํฌํ๋ก๋ ๊ทธ๋๋ก ์ ์ง๋๋ฉฐ, ์๊ฒฉ ๋ฐฐํฌ๋ ๊ณ์
API_AUTH_KEY์ ๋ช ์์ ์ธ trusted origin์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. -
2026-05-04 ๐ฅ๏ธ ๋ํํ CLI UX + CI ์ ๋ฆฌ: ๋ํํ ๋ชจ๋์ provider/model, ์ธ์ ์๊ฐ, ์ง์ ์คํ latency, ๋์ tool-call ํต๊ณ๋ฅผ ๋ณด์ฌ์ฃผ๋ live bottom status bar๊ฐ ์ถ๊ฐ๋์๊ณ ,
prompt_toolkit์ ํตํด ๋ฐฉํฅํค ๊ธฐ๋ฐ prompt history ํ์๊ณผ cursor editing์ ์ง์ํฉ๋๋ค(#69).prompt_toolkit๋๋ TTY๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฉด CLI๋ ์ฌ์ ํ Rich prompt๋ก fallbackํฉ๋๋ค. ๊ฐํ๋ file-import sandbox์ cross-platform/tmpํด์์ ๋ง์ถฐ CI path expectation๋ ์ ๋ ฌ๋์ด main์ด ๋ค์ green ์ํ๊ฐ ๋์์ต๋๋ค(bb67dc7). -
2026-05-03 ๐ก๏ธ ๋ณด์ ๊ฐํ ํจ์น: ๋น๋ก์ปฌ ๋ฐฐํฌ์ ๊ธฐ๋ณธ API ์ธ์ฆ์ ๊ฐํํ๊ณ , ๋ฏผ๊ฐํ run/session/swarm read๋ฅผ ๋ณดํธํ๋ฉฐ, upload์ local file-reading ๊ฒฝ๊ณ๋ฅผ ์ ํํ๊ณ , shell-capable tool์ entry point๋ณ๋ก ์ ์ดํ๋ฉฐ, ์์ฑ ์ ๋ต์ import ์ ์ ๊ฒ์ฆํ๊ณ , Docker image๋ฅผ ๊ธฐ๋ณธ์ ์ผ๋ก non-root ์ฌ์ฉ์์ localhost-only published port๋ก ์คํํฉ๋๋ค. Local CLI์ localhost Web UI ์ํฌํ๋ก๋ ๋ฎ์ ๋ง์ฐฐ์ ์ ์งํ๋ฉฐ, ์๊ฒฉ API/Web ๋ฐฐํฌ๋
API_AUTH_KEY๋ฅผ ์ค์ ํด์ผ ํฉ๋๋ค. -
2026-05-02 ๐งญ ๋ฐฐ๋น ๋ถ์ + ๋ ์ ๋ช ํ ๋ก๋๋งต: income stock, payout sustainability, dividend growth, shareholder yield, ex-dividend mechanics, yield-trap check๋ฅผ ์ํ
dividend-analysis์คํฌ์ ์ถ๊ฐํ๊ณ bundled-skill ํ๊ท ํ ์คํธ๋ก ๊ณ ์ ํ์ต๋๋ค. ๊ณต๊ฐ ๋ก๋๋งต์ Research Autopilot, Data Bridge, Options Lab, Portfolio Studio, Alpha Zoo, Research Delivery, Trust Layer, Community sharing์ ์ง์คํ๋๋ก ์ ๋ฆฌ๋์์ต๋๋ค. -
2026-05-01 ๐ฅ ์๊ด๊ด๊ณ ํํธ๋งต + OpenAI Codex OAuth + A์ฃผ pre-ST ํํฐ: ์ correlation dashboard/API๊ฐ rolling return correlation์ ๊ณ์ฐํ๊ณ ํฌํธํด๋ฆฌ์ค ๋ฐ ์ข ๋ชฉ ๋ถ์์ฉ ECharts heatmap์ ๋ ๋๋งํฉ๋๋ค(#64). OpenAI Codex provider support๋ ์ด์
vibe-trading provider login openai-codex๋ฅผ ํตํด ChatGPT OAuth๋ฅผ ์ฌ์ฉํ๋ฉฐ, Settings metadata์ adapter regression test๊ฐ ํฌํจ๋ฉ๋๋ค(#65). A์ฃผ ST/*ST ๋ฆฌ์คํฌ ์คํฌ๋ฆฌ๋์ฉashare-pre-st-filter์คํฌ๋ ์ถ๊ฐ ๋ฐ ๊ฐํ๋์๊ณ , Sina penalty relevance filtering์ผ๋ก securities-account ์ธ๊ธ์ด E2 count๋ฅผ ๋ถํ๋ฆฌ์ง ์๋๋ก ํ์ต๋๋ค(#63). -
2026-04-30 โ๏ธ Web UI Settings + validation CLI ๊ฐํ: LLM provider/model, base URL, reasoning effort, data source credential์ ์ํ ์ Settings page๊ฐ ์ถ๊ฐ๋์๊ณ , local/auth-protected settings API์ data-driven provider metadata๊ฐ ์ด๋ฅผ ๋ท๋ฐ์นจํฉ๋๋ค(#57). ๋ํ
python -m backtest.validation <run_dir>๊ฐ missing, blank, malformed, non-existent, non-directory input์ validation ์์ ์ ์ operator-facing message๋ก ๋ช ํํ ์คํจํ๋๋ก ๊ฐํํ์ต๋๋ค(#60). -
2026-04-28 ๐ v0.1.6 ๋ฆด๋ฆฌ์ค(
pip install -U vibe-trading-ai):pip install/uv tool install์ดํvibe-trading --swarm-presets๊ฐ ๋น์ด ์๋ ๋ฌธ์ ๋ฅผ ์์ ํ์ต๋๋ค(#55). preset YAML์ ์ด์ src.swarmํจํค์ง ๋ด๋ถ์ ๋ฒ๋ค๋๋ฉฐ 6๊ฐ ํ ์คํธ ํ๊ท suite๋ก ๊ณ ์ ๋ฉ๋๋ค. AKShare loader๋ ETF(510300.SH)์ forex(USDCNH)๋ฅผ ์ฌ๋ฐ๋ฅธ endpoint๋ก routingํ๊ณ registry fallback์ ๊ฐํํ์ต๋๋ค. v0.1.5 ์ดํ์ benchmark comparison panel,/uploadstreaming + size limit, Futu loader(HK + A์ฃผ), vnpy export skill, security hardening, frontend lazy loading(688KB โ 262KB)์ ๋ชจ๋ ํฌํจํฉ๋๋ค. -
2026-04-27 ๐ ๋ฒค์น๋งํฌ ํจ๋ + ์ ๋ก๋ ์์ ์ฑ: ๋ฐฑํ ์คํธ ์ถ๋ ฅ์ yfinance ๊ธฐ๋ฐ SPY, CSI 300 ๋ฑ resolution์ ์ฌ์ฉํ๋ benchmark comparison panel(ticker / benchmark return / excess return / information ratio)์ด ํฌํจ๋ฉ๋๋ค(#48). ๋ํ
/upload๋ request body๋ฅผ 1MB chunk๋ก streamingํ๊ณMAX_UPLOAD_SIZE์ด๊ณผ ์ ์ค๋จํ์ฌ oversized/malformed client์์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ํํฉ๋๋ค(#53). 4-case regression suite๋ก ๊ณ ์ ๋์์ต๋๋ค. -
2026-04-22 ๐ก๏ธ ํ๋๋ + ์ ๊ท ํตํฉ:
safe_path์ journal/shadow tool sandbox์์ path containment๋ฅผ ๊ฐ์ ํ๊ณ ,MANIFEST.in์ด sdist์.env.example/ tests / Docker files๋ฅผ ํฌํจํ๋ฉฐ, route-level lazy loading์ผ๋ก frontend initial bundle์ 688KB โ 262KB๋ก ์ค์์ต๋๋ค. Futu data loader for HK & A-share equities(#47)์ vnpy CtaTemplate export skill(#46)๋ ์ถ๊ฐ๋์์ต๋๋ค. -
2026-04-21 ๐ก๏ธ ์ํฌ์คํ์ด์ค + ๋ฌธ์: ์๋
run_dir์ด active run dir๋ก ์ ๊ทํ๋์์ต๋๋ค(#43). README usage example๋ ์ถ๊ฐ๋์์ต๋๋ค(#45). -
2026-04-20 ๐ Reasoning + Swarm: ๋ชจ๋
ChatOpenAI๊ฒฝ๋ก์์reasoning_content๊ฐ ๋ณด์กด๋์ด Kimi / DeepSeek / Qwen thinking์ด end-to-end๋ก ์๋ํฉ๋๋ค(#39). Swarm streaming๊ณผ ๊น๋ํ Ctrl+C ์ฒ๋ฆฌ๋ ๋ฐ์๋์์ต๋๋ค(#42). -
2026-04-19 ๐ฆ v0.1.5: PyPI์ ClawHub์ ๊ฒ์๋์์ต๋๋ค.
python-multipartCVE floor bump, ์ ๊ท MCP tools 5๊ฐ ์ฐ๊ฒฐ(analyze_trade_journal+ 4 shadow-account tools),pattern_recognitionโpatternregistry fix, Docker dependency parity, SKILL manifest sync(22 MCP tools / 71 skills)๊ฐ ํฌํจ๋ฉ๋๋ค. -
2026-04-18 ๐ฅ Shadow Account: broker journal์์ ์ ๋ต ๊ท์น ์ถ์ถ โ ์ฌ๋ฌ ์์ฅ์์ shadow backtest โ ๊ท์น ์๋ฐ, ์กฐ๊ธฐ ์ฒญ์ฐ, ๋์น signal, counterfactual trade๋ฅผ ํตํด ์ ํํ ์ผ๋ง๋ฅผ ๋์น๋์ง ๋ณด์ฌ์ฃผ๋ 8-section HTML/PDF report. ์ ๊ท tools 4๊ฐ, skill 1๊ฐ, ์ด tools 32๊ฐ. Trade Journal + Shadow Account sample์ ์ด์ web UI welcome screen์ ์์ต๋๋ค.
-
2026-04-17 ๐ Trade Journal Analyzer + Universal File Reader: broker export(ๅ่ฑ้กบ/ไธ่ดข/ๅฏ้/generic CSV) ์ ๋ก๋ โ auto trading profile(holding days, win rate, PnL ratio, drawdown) + 4๊ฐ์ง bias diagnostics(disposition effect, overtrading, chasing momentum, anchoring).
read_document๋ ์ด์ PDF, Word, Excel, PowerPoint, image(OCR), 40+ text format์ ํ๋์ unified call๋ก dispatchํฉ๋๋ค. -
2026-04-16 ๐ง Agent Harness: persistent cross-session memory, FTS5 session search, self-evolving skills(full CRUD), 5-layer context compression, read/write tool batching. tools 27๊ฐ, ์ ๊ท tests 107๊ฐ.
-
2026-04-15 ๐ค Z.ai + MiniMax: Z.ai provider(#35), MiniMax temperature fix + model update(#33). providers 13๊ฐ.
-
2026-04-14 ๐ง MCP ์์ ์ฑ: stdio transport์์ backtest tool
Connection closederror๋ฅผ ์์ ํ์ต๋๋ค(#32). -
2026-04-13 ๐ Cross-Market Composite Backtest: ์
CompositeEngine์ด A์ฃผ + crypto ๊ฐ์ mixed-market portfolio๋ฅผ shared capital pool๊ณผ per-market rule๋ก backtestํฉ๋๋ค. swarm template variable fallback๊ณผ frontend timeout๋ ์์ ๋์์ต๋๋ค. -
2026-04-12 ๐ Multi-Platform Export:
/pine์ TradingView(Pine Script v6), TDX(้่พพไฟก/ๅ่ฑ้กบ/ไธๆน่ดขๅฏ), MetaTrader 5(MQL5)๋ก ์ ๋ต์ ํ ๋ฒ์ ๋ด๋ณด๋ ๋๋ค. -
2026-04-11 ๐ก๏ธ Reliability & DX:
vibe-trading init.env bootstrap(#19), preflight checks, runtime data-source fallback, hardened backtest engine. Multi-language README(#21). -
2026-04-10 ๐ฆ v0.1.4: Docker fix(#8),
web_searchMCP tool, LLM providers 12๊ฐ,akshare/ccxtdependencies. PyPI์ ClawHub์ ๊ฒ์๋์์ต๋๋ค. -
2026-04-09 ๐ Backtest Wave 2: ChinaFutures, GlobalFutures, Forex, Options v2 engines. Monte Carlo, Bootstrap CI, Walk-Forward validation.
-
2026-04-08 ๐ง Multi-market backtest with per-market rules, Pine Script v6 export, 5 data sources with auto-fallback.
Vibe-Trading์ ๊ธ์ต ์ง๋ฌธ์ ์คํ ๊ฐ๋ฅํ ๋ถ์์ผ๋ก ๋ฐ๊พธ๋ ์คํ์์ค ๋ฆฌ์์น ์ํฌ์คํ์ด์ค์ ๋๋ค. ์์ฐ์ด ํ๋กฌํํธ๋ฅผ ์์ฅ ๋ฐ์ดํฐ ๋ก๋, ์ ๋ต ์์ฑ, ๋ฐฑํ ์คํธ ์์ง, ๋ฆฌํฌํธ, ๋ด๋ณด๋ด๊ธฐ, ์๊ตฌ ๋ฆฌ์์น ๋ฉ๋ชจ๋ฆฌ์ ์ฐ๊ฒฐํฉ๋๋ค.
๋ฆฌ์์น, ์๋ฎฌ๋ ์ด์ , ๋ฐฑํ ์คํ ์ ์ํด ์ค๊ณ๋์์ต๋๋ค โ ๊ทธ๋ฆฌ๊ณ ์ํ์ ๋ค๋ฉด, ์ฌ์ฉ์๊ฐ ์ง์ ์ธ๊ฐํ ๋ธ๋ก์ปค(์: Robinhood Agentic Trading)๋ฅผ ํตํ ์์จ ๊ฑฐ๋๋ ๊ฐ๋ฅํฉ๋๋ค. ์๊ธ์ ์ผ์ ๋ณด์ ํ์ง ์๊ณ , ์ฌ์ฉ์๊ฐ ์ค์ ํ ํ๋๋ฅผ ๊ฒฐ์ฝ ๋์ง ์์ผ๋ฉฐ, ์ธ์ ๋ ์ฆ์ ์ค๋จํ ์ ์์ต๋๋ค.
| ์์ | ์ถ๋ ฅ |
|---|---|
| ํธ๋ ์ด๋ฉ ์ง๋ฌธํ๊ธฐ | ๋๊ตฌ, ๋ฐ์ดํฐ, ๋ฌธ์, ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ธ์ ์ปจํ ์คํธ๋ฅผ ํ์ฉํ ์์ฅ ๋ฆฌ์์น. |
| ์ ๋ต ์์ด๋์ด ๋ฐฑํ ์คํธ | ์ ๋ต ์ฝ๋, ์งํ, ๋ฒค์น๋งํฌ ์ปจํ ์คํธ, ๊ฒ์ฆ artifacts, run cards. |
| ๋ด ๊ฑฐ๋ ๊ฒํ ํ๊ธฐ | ๋ธ๋ก์ปค ์ผ์ง ํ์ฑ, ํ๋ ์ง๋จ, ๊ท์น ์ถ์ถ, Shadow Account ๋น๊ต. |
| ๋ฌธ์์ ์ฐจํธ ์ฝ๊ธฐ | ํ๋ฌ๊ทธํ OCR๋ก PDF / DOCX / XLSX / PPTX / ์ด๋ฏธ์ง๋ฅผ ํ์ฑํ๊ณ (read_document), ๋น์ ๋ชจ๋ธ๋ก ์ฐจํธ ์คํฌ๋ฆฐ์ท์ ์๋ฏธ ๋จ์๋ก ์ฝ์ต๋๋ค(analyze_image). ์น ์ฑํ
์์๋ ํ์ผ ์ ํ, ๋๋๊ทธ ์ค ๋๋กญ, ํด๋ฆฝ๋ณด๋ ๋ถ์ฌ๋ฃ๊ธฐ๋ก ํ ๋ฒ์ ์ต๋ 5๊ฐ ํ์ผ์ ์ฒจ๋ถํ ์ ์์ต๋๋ค. |
| ๊ธฐ๊ด ๋ณด๊ณ ์์ ํ๋ ํธ์ ์ข ๋ชฉ ์ฝ๊ธฐ | SEC 13F ๋ณด์ (๋ถ๊ธฐ ๋๋น ์ฆ๊ฐ ํฌํจ), ์์ฅ์ ๊ฐ๋ก์ง๋ฅด๋ ETF ๊ตฌ์ฑ์ข ๋ชฉ, ์ด๋ฒคํธ ๊ณ์ฝ ๋ด์ฌํ๋ฅ , arXiv / OpenAlex ํฉํฐ ์ถ์ถ โ ๋ชจ๋ ์ฝ๊ธฐ ์ ์ฉ, ๋ฌด๋ฃ ๊ณต๊ฐ ๋ฐ์ดํฐ. |
| ๋ฐ๋ณต ๋ฆฌ์์น ๊ฐ์ ํ๊ธฐ | ์๊ตฌ ๋ฉ๋ชจ๋ฆฌ์ ํธ์ง ๊ฐ๋ฅํ ์คํฌ๋ก ์ ์ฉํ ๋ฃจํด์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ํฌํ๋ก๋ก ์ ํ. |
| ์ ๋๋ฆฌ์คํธ ํ ์คํํ๊ธฐ | ํฌ์, ํํธ, ํฌ๋ฆฝํ , ๋งคํฌ๋ก, ๋ฆฌ์คํฌ ์ํฌํ๋ก๋ฅผ ์ํ ๋ฉํฐ ์์ด์ ํธ ๋ฆฌ์์น ๋ฆฌ๋ทฐ. |
| ๋ฆฌ์์น๋ฅผ IM ์ฑ๋์ ์ฐ๊ฒฐํ๊ธฐ | WebSocket, Telegram, Slack, Discord, Matrix, WhatsApp, Signal, QQ/NapCat, WeChat/WeCom, Feishu/Lark, DingTalk, Teams, email, Mochat์์ ๊ฐ์ session runtime์ CLI, REST, Web UI๋ก ๊ด๋ฆฌ. |
| ์ฌ์ฉ ๊ฐ๋ฅํ artifacts ๋ง๋ค๊ธฐ | ๋ฆฌํฌํธ, TradingView Pine Script, TDX, MetaTrader 5, MCP tools, ์ดํ ๋ฆฌ์์น ์ธ์ . |
| ์ฌ์ ๋น๋๋ alpha zoo ๋ฒค์น | 462๊ฐ์ alpha ์ธ์(Qlib 158 + Kakushadze 101 + GTJA 191 + academic + PIT-safe fundamental)์ ๋ํด ํ ์ค CLI๋ก IC + IR + alive/reversed/dead ๋ถ๋ฅ ์ํ |
| ์๊ด๊ด๊ณ ๊ตญ๋ฉด ํฌ์ฐฉํ๊ธฐ | /correlation ํ๋ฉด์ ์ฃ์ง ๋ฐ๋ + ํ์คํ
๋ฆฌ์์ค ํ์๋ผ์ธ์ผ๋ก ์์ฅ์ด ํ ๋ฉ์ด๋ฆฌ๋ก ์์ง์ด๊ธฐ ์์ํ๋ ์์ ์ ๋ณด์ฌ์ค๋๋ค โ ์๊ทธ๋์ด ์๋๋ผ ์์ ์ ๋ฆฌ์คํฌ ์ปจํ
์คํธ์
๋๋ค. |
pip install vibe-trading-ai
# ์์ฐ์ด ๋ฆฌ์์น
vibe-trading run -p "Backtest a BTC-USDT 20/50 moving-average strategy for 2024, summarize return and drawdown, then export the report"
# ํ ์ค๋ก ์ฌ์ ๋น๋๋ alpha zoo ๋ฒค์น
vibe-trading alpha bench --zoo gtja191 --universe csi300 --period 2018-2025 --top 20vibe-trading --upload trades_export.csv
vibe-trading run -p "Analyze my trading behavior, extract my shadow strategy, and compare it with my actual trades"Shadow Account๋ ์ผ๋ฐ์ ์ธ ์ ๋ต ํ ํ๋ฆฟ์ด ์๋๋ผ ์ฌ์ฉ์์ ์ค์ ๊ฑฐ๋ ๊ธฐ๋ก์์ ์์ํฉ๋๋ค.
๋ธ๋ก์ปค export๋ฅผ ์ ๋ก๋ํ๊ณ ์์ด์ ํธ๊ฐ ํ๋์ ์์ฝํ๊ฒ ํ ๋ค, ์ค์ ๊ฑฐ๋ ๊ฒฝ๋ก๋ฅผ ๊ท์น ๊ธฐ๋ฐ shadow strategy์ ๋น๊ตํฉ๋๋ค.
| ๋จ๊ณ | ์์ด์ ํธ ์ถ๋ ฅ |
|---|---|
| 1. ์ผ์ง ์ฝ๊ธฐ | ๅ่ฑ้กบ, ไธๆน่ดขๅฏ, ๅฏ้, generic CSV ํ์์ ๋ธ๋ก์ปค export๋ฅผ ํ์ฑํฉ๋๋ค. |
| 2. ํ๋ ํ๋กํ์ผ๋ง | ๋ณด์ ์ผ์, ์น๋ฅ , ์์ต๋น, drawdown, disposition effect, overtrading, momentum chasing, anchoring ์ ๊ฒ. |
| 3. ๊ท์น ์ถ์ถ | ๋ฐ๋ณต๋๋ ์ง์ /์ฒญ์ฐ์ ๋ชจํธํ ์์ฝ์ด ์๋ ๋ช ์์ ์ธ strategy profile๋ก ๋ณํํฉ๋๋ค. |
| 4. Shadow ์คํ | ์ถ์ถ๋ ๊ท์น์ ๋ฐฑํ ์คํธํ๊ณ ๊ท์น ์๋ฐ, ์กฐ๊ธฐ ์ฒญ์ฐ, ๋์น signal, ๋์ ๊ฑฐ๋ ๊ฒฝ๋ก๋ฅผ ๊ฐ์กฐํฉ๋๋ค. |
| 5. ๋ฆฌํฌํธ ์ ๊ณต | ๋์ค์ ์ ๊ฒ, ๋ณด๊ด, ๊ฐ์ ํ ์ ์๋ HTML/PDF ๋ฆฌํฌํธ๋ฅผ ์์ฑํฉ๋๋ค. |
vibe-trading --upload trades_export.csv
vibe-trading run -p "Analyze my trading behavior, extract my shadow strategy, and compare it with my actual trades"Web UI์ ์ ํํ ๋ธ๋ก์ปค ์ฐ๊ฒฐ์ ๋ณด์ ์ข
๋ชฉ์ ํ๋ฐ ๋ชจ์ ๋ณด์ฌ์ฃผ๋ ์ฝ๊ธฐ ์ ์ฉ ํฌํธํด๋ฆฌ์ค ํ์ด์ง๊ฐ ์ถ๊ฐ๋์ต๋๋ค. ์์ค๋ account.read์ positions.read๋ฅผ ์ ์ธํ ์ฝ๊ธฐ ์ ์ฉ profile์ ์ฐ๊ฒฐ ์ธ์คํด์ค์ด๋ฉฐ, ์์ธ ๊ธฐ๋ฅ์ ๋ธ๋ก์ปค ์ปค๋ฅํฐ์์ ์ค์ ํฉ๋๋ค. IBKR ๊ณต์ MCP profile์ ์์ง ์์ค๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
| ๋์ | ์ ๊ณต๋๋ ๊ฒ |
|---|---|
| ์์ค๋ณ ์ถ์ฒ | ๋ชจ๋ ๋ณด์ ์ข ๋ชฉ์ด ์ด๋ ์ฐ๊ฒฐ์์ ์๋์ง ํ์ํ๊ณ , USD๋ก ํ๊ฐํ ๋ค CNY ํ์ฐ๋ ํจ๊ป ๋ณด์ฌ์ค๋๋ค. |
| ์คํจํ ์์ค ์ ์ธ | ์ค๋ฅ๊ฐ ๋ ์์ค๋ ์ค๋ฅ๋ก ๋ณด๊ณ ๋๊ณ ํฉ๊ณ์์ ์ ์ธ๋ฉ๋๋ค โ ์ง์ ๊ฐ์ ์ด์ด ์ฐ์ง ์์ผ๋ฉฐ, ์ค๋ ์ท์ incomplete๋ก ํ์๋ฉ๋๋ค. |
| ๋ถ๋ณ ์ค๋ ์ท | ๊ฐ ์๋ก๊ณ ์นจ์ ~/.vibe-trading/portfolio/portfolio.sqlite3์ ์ ์ฅ๋๊ณ , ์๊ฒฉ์ฆ๋ช
์ด ์๋ ์ค์ ์ ~/.vibe-trading/portfolio.json๊ณผ connections.json์ ๋จ์ต๋๋ค. |
| ๋ด๋ณด๋ด๊ธฐ & ๋ถ์ | CSV ๋ด๋ณด๋ด๊ธฐ์ ํจ๊ป, ๋ฏผ๊ฐ์ ๋ณด๋ฅผ ์ ๊ฑฐํ portfolio_summary ์์ด์ ํธ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๊ทธ risk_xray_args๋ portfolio_risk_xray์ ๊ทธ๋๋ก ๋๊ธธ ์ ์์ต๋๋ค. ๊ฐ์ ์ค๋
์ท์ ํฐ๋ฏธ๋์์๋ vibe-trading portfolio show๋ก ๋ณผ ์ ์์ต๋๋ค(refresh / sources๋ ์ ๊ณต). |
์ง์ ์ค์นํ๋ ์ฝ๊ธฐ ์ ์ฉ ์ปค๋ฅํฐ๋ ์ฒดํฌ์์ ๋ฐ ~/.vibe-trading/connectors/<name>/์ ์์ต๋๋ค. connector.json manifest์ check_status / get_account_snapshot / get_positions๋ฅผ ๊ตฌํํ adapter.py๋ง ์์ผ๋ฉด ๋ฉ๋๋ค. ์ฐ๊ธฐ capability๋ฅผ ์ ์ธํ manifest๋ ๊ฑฐ๋ถ๋ฉ๋๋ค.
vibe-trading connector init my-broker --destination /tmp
vibe-trading connector validate /tmp/my-broker
vibe-trading connector install /tmp/my-broker์๊ฒฉ์ฆ๋ช
์ pip install "vibe-trading-ai[keyring]"๋ฅผ ํตํด OS ํค๋ง(macOS Keychain, Windows Credential Manager, Linux Secret Service)์ ์ ์ฅ๋๋ฉฐ ์ค์ ํ์ผ์๋ ๋ค์ด๊ฐ์ง ์์ต๋๋ค. ์ด ๊ฒฝ๋ก์ ์ด๋ค ๊ฒ๋ ์ฃผ๋ฌธ์ ๋ด๊ฑฐ๋ ์ทจ์ํ ์ ์์ต๋๋ค.
๋๋ถ๋ถ์ ์คํ์ ๊ฐ์ evidence path๋ฅผ ๋ฐ๋ฆ ๋๋ค. ์์ฒญ์ ๋ผ์ฐํ ํ๊ณ , ์ ์ ํ ์์ฅ ์ปจํ ์คํธ๋ฅผ ๋ก๋ํ๊ณ , ๋๊ตฌ๋ฅผ ์คํํ๊ณ , ์ถ๋ ฅ์ ๊ฒ์ฆํ๋ฉฐ, artifacts๋ฅผ ์ ๊ฒ ๊ฐ๋ฅํ ์ํ๋ก ์ ์งํฉ๋๋ค.
| ๊ณ์ธต | ์ํ ๋ด์ฉ |
|---|---|
| Plan | ์ ์ฉํ ๊ฒฝ์ฐ ๊ด๋ จ finance skills, tools, data sources, swarm preset์ ์ ํํฉ๋๋ค. |
| Ground | ์ฌ์ฉ ๊ฐ๋ฅํ loader๋ก A์ฃผ, HK/US/์บ๋๋ค ์ฃผ์, ํฌ๋ฆฝํ , ์ ๋ฌผ, ์ธํ, ๋ฌธ์, ์น ์ปจํ ์คํธ๋ฅผ ๊ฐ์ ธ์ต๋๋ค. |
| Execute | ํ ์คํธ ๊ฐ๋ฅํ ์ ๋ต ์ฝ๋๋ฅผ ์์ฑํ๊ณ , ๋๊ตฌ๋ฅผ ์คํํ๋ฉฐ, ์ ์ ํ backtest engine ๋๋ analysis workflow๋ฅผ ์ฌ์ฉํฉ๋๋ค. |
| Validate | ์งํ, benchmark comparison, Monte Carlo, Bootstrap, Walk-Forward, run cards, ๊ด๋ จ warning์ ์ถ๊ฐํฉ๋๋ค. |
| Deliver | TradingView, TDX, MetaTrader 5, MCP client, ์ดํ ์ธ์ ์ ์ํ ๋ฆฌํฌํธ, artifacts, tool traces, exports๋ฅผ ๋ฐํํฉ๋๋ค. |
get_market_data ํ ๋ฒ์ ํธ์ถ, 23๊ฐ ๋ฌด๋ฃ ์์ฅ ๋ฐ์ดํฐ ์์ค(์ ํํ ์ ๋ฃ ๋ง์ผํ๋ ์ด์ค QVeris ๋ณ๋). source: "auto"๋ก ์ค์ ํ๋ฉด ๋ก๋๊ฐ ์ฌ๋ณผ์ ๋ฐ๋ผ ์์ค๋ฅผ ๊ณ ๋ฅด๊ณ , ์์ฅ๋ณ ์ฒด์ธ์ IP ์ฐจ๋จ ์ํ ์์ผ๋ก ๋ฐ๋ผ๊ฐ๋๋ค: ์ ๋ ์ฐจ๋จ๋์ง ์๋ ๊ณต๊ฐ ์์ค๋ฅผ ๋จผ์ , ์๋ ์ ํ / ํค ๊ธฐ๋ฐ ์์ค๋ฅผ ๋ง์ง๋ง์ ๋ก๋๋ค. ์ค์ ๋ถํ์, ๋จ์ผ ์ฅ์ ์ง์ ์์.
| Source | Markets | Auth | Role |
|---|---|---|---|
tencent ยท mootdx |
A-share + HK | none | never IP-banned (mootdx = ้่พพไฟก TCP) |
eastmoney |
A / US / HK | none | OHLCV + deep fundamentals & flow tools (throttled) |
baostock ยท akshare |
A (+ US/HK/futures/macro/fx) | none | free fallbacks |
tushare |
A / HK / futures / fund / macro | token | richest A-share |
yahoo |
US / HK / ์บ๋๋ค | none | direct chart/quotes/options; TSX .TO / TSXV .V |
sina ยท stooq |
US | none | K-line to 1984 ยท EOD CSV |
yfinance |
US / HK / ์บ๋๋ค | none | wrapper; TSX .TO / TSXV .V ๊ทธ๋๋ก ์ฌ์ฉ |
longbridge |
US / HK | App Key + App Secret + Access Token | optional historical OHLCV source; install the optional SDK |
finnhub ยท alphavantage ยท tiingo ยท fmp |
US | key | optional providers |
qveris |
๊ธ๋ก๋ฒ ๋ฉํฐ์์ | key ยท credits | ํ๋ฆฌ๋ฏธ์ ๋ง์ผํ๋ ์ด์ค โ key ํ๋๋ก 63+ providers (๋ช ์ ์ง์ ์ ์ฉ, auto ํด๋ฐฑ ์ ์ธ) |
okx ยท ccxt ยท binance |
crypto | none | OKX + 100+ exchanges + Binance historical / USD-M perps |
futu |
HK / A | OpenD | optional local FutuOpenD |
mt5 |
forex / metals | MT5 terminal | MetaTrader 5 (Exness-style) forex / metal bars, 1mโ1D |
pykrx |
ํ๊ตญ (KRX: KOSPI/KOSDAQ) | ์์ | .KS / .KQ์ฉ KOSPI / KOSDAQ ์ผ๋ด (์ ํ์ krx extra) |
india_broker |
์ธ๋ (NSE/BSE) | ๋ธ๋ก์ปค ๋ก๊ทธ์ธ | .NS / .BO์ฉ ์ฝ๊ธฐ ์ ์ฉ Shoonya / Dhan ๋ด (ํด๋ฐฑ ์ฒด์ธ ๋ง๋จ) |
local |
any | none | your own CSV / Parquet / DuckDB via local: prefix |
ํด๋ฐฑ ์ฒด์ธ (IP ์ฐจ๋จ ์ํ ์):
- A์ฃผ โ
tencentยทmootdxยทeastmoneyยทbaostockยทakshareยทtushareยทlocal - ๋ฏธ๊ตญ โ
yahooยทstooqยทsinaยทeastmoneyยทyfinanceยทtiingoยทfmpยทfinnhubยทalphavantageยทlongbridgeยทakshareยทlocal - ํ์ฝฉ โ
tencentยทeastmoneyยทyahooยทfutuยทakshareยทyfinanceยทtushareยทlongbridgeยทlocal - ์ธ๋ (NSE/BSE) โ
yahooยทyfinanceยทindia_brokerยทlocal - ํ๊ตญ (KOSPI/KOSDAQ) โ
pykrxยทyahooยทyfinanceยทlocal - ํฌ๋ฆฝํ โ
okxยทccxtยทbinanceยทyfinanceยทlocal - ์ธํ/๊ท๊ธ์ โ
mt5ยทyfinanceยทakshareยทlocalย ยทย (์ ๋ฌผ / ํ๋ / ๋งคํฌ๋ก โtushare/akshareโlocal)
Longbridge๋ ๋ฏธ๊ตญ/ํ์ฝฉ ์ฃผ์์ ๊ณผ๊ฑฐ OHLCV๋ฅผ ์ ๊ณตํ๋ ์ ํ์ loader์ ๋๋ค. SDK ์ค์น:
pip install "vibe-trading-ai[longbridge]".env์ ์๊ฒฉ ์ฆ๋ช
3๊ฐ๋ฅผ ์ค์ ํ์ธ์:
LONGBRIDGE_APP_KEY=...
LONGBRIDGE_APP_SECRET=...
LONGBRIDGE_ACCESS_TOKEN=...๋ฐฑํ
์คํธ์์๋ config.json์ source๋ฅผ ์ง์ ํฉ๋๋ค:
{
"codes": ["QQQ.US"],
"start_date": "2025-01-01",
"end_date": "2025-01-10",
"interval": "1D",
"source": "longbridge"
}Agent ๋ํ์์๋ ๋ช
์์ ์ผ๋ก ์์ฒญํ์ธ์: "Longbridge๋ก QQQ.US ๊ณผ๊ฑฐ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ค." ์ด ๋ช
์์ ์์ค ์ง์ ์ source: "auto"์ ๋ณ๊ฐ์ด๋ฉฐ, auto๋ ์์ฅ๋ณ ๊ธฐ๋ณธ ํด๋ฐฑ ์ฒด์ธ์ ๊ทธ๋๋ก ์ฌ์ฉํฉ๋๋ค.
OHLCV๋ฅผ ๋์ด 22๊ฐ ์ฝ๊ธฐ ์ ์ฉ ๋ฐ์ดํฐ ๋๊ตฌ๊ฐ ํ๋๋ฉํธ๊ณผ ์๊ธ ํ๋ฆ๊น์ง ๋ฟ์ต๋๋ค โ ์๊ธ ํ๋ฆ, ์ฉํธ๋ฐฉ(dragon-tiger), ๋ถํฅ(northbound), ์ ์ฉ๊ฑฐ๋, ๋์ข
๊ฑฐ๋, ์ฃผ์ฃผ ์, ๋ณดํธ์์, ์นํฐ, ๋ฆฌ์์น ๋ฆฌํฌํธ, ๋ด์ค, SEC ๊ณต์, ์ฌ๋ฌด์ ํ, ์ต์
์ฒด์ธ, ์ข
๋ชฉ ํ๋กํ, ์์ฅ ์คํฌ๋ฆฌ๋, ์ฌ๋ณผ ๊ฒ์, ๋งคํฌ๋ก, ์์ฐจ์ด(iwencai), ๊ธฐ๊ด ๋ณด์ (13F), ETF ๋ฃฉ์ค๋ฃจ, ์์ธก ์์ฅ, ๋
ผ๋ฌธ ๊ฒ์ โ ๋ชจ๋ MCP๋ก ๋
ธ์ถ๋ฉ๋๋ค. ๋ช
์์ ์ธ local: ์ฌ๋ณผ์ ์ ๋ ์กฐ์ฉํ ๋คํธ์ํฌ ์์ค๋ก ํด๋ฐฑํ์ง ์์ต๋๋ค.
๋ฐ์ดํฐ๋ ๊ธฐ๋ณธ ๋ฌด๋ฃ ๋ผ์ฐํ
, ํ์ํ ๋๋ง ํ๋ฆฌ๋ฏธ์. ๊ธฐ๋ณธ๊ฐ์ 23๊ฐ ๋ด์ฅ ์์ค์ ์ฐจ๋จ ์ํ ๊ธฐ๋ฐ ํด๋ฐฑ์ด๋ฉฐ key๋ ๋น์ฉ๋ ์์ต๋๋ค. QVeris๋ฅผ ์ผ๋ฉด 63+ providers์ 10,000+ capabilities(per QVeris)๋ก ์ต์
Greeks, ๊ณ ๊ธ ํ๋๋ฉํธ, ์ค๊ตญ/ํ์ฝฉ/๊ธ๋ก๋ฒ ๋ฐ์ดํฐ, ๋งคํฌ๋ก, ํฌ๋ฆฝํ , ๋ด์ค, filings๋ฅผ ๋ณด๊ฐํ ์ ์๊ณ ์คํจํ ํธ์ถ์ ๊ณผ๊ธ๋์ง ์์ต๋๋ค. Settings โ QVeris ๋๋ vibe-trading data mode paid์์ ํ์ฑํํ์ธ์.
QVeris disclosure: Vibe-Trading ์ถ์ฒ ๋งํฌ๋ก ๊ฐ์ ํ๋ฉด +1,000 ํฌ๋ ๋ง์ ์ถ๊ฐ๋ก ๋ฐ๊ณ ํ๋ก์ ํธ๋ฅผ ํ์ํ๊ฒ ๋ฉ๋๋ค.
๋ฉ์ธ README๋ฅผ ์ฝ๊ธฐ ์ฝ๊ฒ ์ ์งํ๊ธฐ ์ํด ์์ธ ๋ชฉ๋ก์ ์๋์ ์ ์ด ๋์์ต๋๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ ๊ตฌ์ฑ ์์๋ฅผ ํ์ธํ๊ณ ์ถ์ ๋ ์ด์ด๋ณด์ธ์.
๊ธ์ต ์คํฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ 9๊ฐ ์นดํ ๊ณ ๋ฆฌ 90๊ฐ ์คํฌ
- ๐ 9๊ฐ ์นดํ ๊ณ ๋ฆฌ๋ก ๊ตฌ์ฑ๋ 90๊ฐ ์ ๋ฌธ ๊ธ์ต ์คํฌ
- ๐ ์ ํต ์์ฅ๋ถํฐ ํฌ๋ฆฝํ & DeFi๊น์ง ์์ ํ ์ปค๋ฒ๋ฆฌ์ง
- ๐ฌ ๋ฐ์ดํฐ sourcing๋ถํฐ ์ ๋ ๋ฆฌ์์น๊น์ง ํฌ๊ดํ๋ ๊ธฐ๋ฅ
| ์นดํ ๊ณ ๋ฆฌ | ์คํฌ | ์์ |
|---|---|---|
| Data Source | 10 | data-routing, tushare, yfinance, okx-market, akshare, mootdx, ccxt, eastmoney, sec-edgar, qveris |
| Strategy | 19 | strategy-generate, cross-market-strategy, technical-basic, candlestick, ichimoku, elliott-wave, smc, multi-factor, ml-strategy |
| Analysis | 23 | factor-research, correlation-regime, macro-analysis, global-macro, valuation-model, investor-lenses, credit-analysis, dividend-analysis |
| Asset Class | 9 | options-strategy, options-advanced, convertible-bond, etf-analysis, asset-allocation, sector-rotation |
| Crypto | 7 | perp-funding-basis, liquidation-heatmap, stablecoin-flow, defi-yield, onchain-analysis |
| Flow | 8 | hk-connect-flow, us-etf-flow, edgar-sec-filings, financial-statement, adr-hshare |
| Tool | 10 | backtest-diagnose, report-generate, pine-script, doc-reader, web-reader, vnpy-export, trade-journal |
| Research | 3 | alpha-zoo, strategy-dev-manager, strategy-discovery |
| Risk Analysis | 1 | ashare-pre-st-filter |
์ปค์คํ ๋ฐ์ดํฐ ์์ค ์ง์ ๋ง๋ ๊ณผ๊ฑฐ OHLCV loader ๋ฑ๋ก
loader๋ฅผ ๊ธฐ๋ณธ ์ ๊ณตํ์ง ์๋ ์์ฅ์ด๋ ๋ฒค๋๊ฐ ํ์ํ์ ๊ฐ์? ์ง์ ๊ณผ๊ฑฐ ๋ด loader๋ฅผ
์ถ๊ฐํ๊ณ source="<name>"์ผ๋ก ์ ํํ์ธ์. ์๋ ๋จ๊ณ๋ ํจํค์ง ์์ค๋ฅผ ์์ ํ๋ฏ๋ก
clone์์ ์คํํ์ธ์(pip install -e .).
-
loader ์์ฑ โโ
agent/backtest/loaders/<name>_loader.py๋ฅผ ๋ง๋ค๊ณDataLoaderProtocol์ ๋ง์กฑํ๋ ํด๋์ค(duck-typed, ๊ธฐ๋ฐ ํด๋์ค ๋ถํ์)๋ฅผ ์ ์ํ ๋ค@register๋ฅผ ๋ถ์ ๋๋ค:import pandas as pd from backtest.loaders.registry import register @register class DataLoader: name = "mysource" # the value you pass as source= markets = {"us_equity"} # a_share/us_equity/hk_equity/crypto/futures/fund/macro/forex requires_auth = False def is_available(self) -> bool: return True # token present? network reachable? def fetch(self, codes, start_date, end_date, *, interval="1D", fields=None): # return {symbol: DataFrame indexed by trade_date, # columns: open, high, low, close, volume} ...
-
๋ชจ๋ ๋ฑ๋ก ์ผ๋ก
@register๊ฐ ์คํ๋๊ฒ โโagent/backtest/loaders/registry.py์_loader_modules์"backtest.loaders.<name>_loader"๋ฅผ ์ถ๊ฐํฉ๋๋ค. -
์ด๋ฆ ํ์ฉ ์ผ๋ก ์ค์ ๊ฒ์ฆ ํต๊ณผ โโ
agent/backtest/runner.py์_VALID_SOURCES์"mysource"๋ฅผ ์ถ๊ฐํฉ๋๋ค. -
(์ ํ)
registry.py์ ํน์ ์์ฅFALLBACK_CHAINS์ ๋ฃ์ผ๋ฉดsource="auto"๋ก๋ ๋๋ฌํ ์ ์์ต๋๋ค. -
์ฌ์ฉ โโ ๋ฐฑํ ์คํธ ์ค์ ์์
source="mysource", ๋๋ CLI / agent๋ฅผ ํตํด.
์ค์๊ฐ ticks / ํธ๊ฐ์ฐฝ depth๋ loader ๋ฒ์ ๋ฐ์ ๋๋ค โโ loader ๊ณ์ธต์ point-in-time ๊ณผ๊ฑฐ ๋ด๋ง ๋ค๋ฃน๋๋ค. ์ค์๊ฐ ์์ฅ ๋ฐ์ดํฐ๋ broker connector๋ฅผ ํตํฉ๋๋ค: ์ํธํํ๋
okx/binance/ccxt, ์ฃผ์์futu/tiger.
๋ธ๋ก์ปค ์ปค๋ฅํฐ 13๊ฐ ๋ธ๋ก์ปค โ read + paper, ์ง์ ์ bounded-live
connector-first ํ๋กํ. ๋๋ถ๋ถ์ ๋ธ๋ก์ปค๊ฐ read + ํ์ดํผ ๊ณ์ ์ฃผ๋ฌธ ์คํ์ ์ง์ํ์ง๋ง IBKR์ ์ฝ๊ธฐ ์ ์ฉ์ด๊ณ , Robinhood๋ ํ์ดํผ ๊ณ์ ์์ด ์ค๊ฑฐ๋ ์ ์ฉ์ด๋ฉฐ, Trading 212๋ ํ์ดํผ๋ฅผ ํฌํจํด ์ฃผ๋ฌธ ์คํ์ ๋ชจ๋ ๊ฑฐ๋ถํ๊ณ , ์ค๊ฑฐ๋ ์ฃผ๋ฌธ ์คํ์ ์ฌ์ฉ์ ์ ์ mandate(์ฌ๋ณผ ํ์ฉ๋ชฉ๋ก, ์ฃผ๋ฌธ ํฌ๊ธฐ / ์ต์คํฌ์ ์ํ, ์ผ์ผ ๊ฑฐ๋ ํ๋, ์ฆ์ kill switch)๋ก ์ ํ๋๊ณ ์๊ธ์ ๋ณด๊ดํ์ง ์์ต๋๋ค โ ์คํ์ ๋ธ๋ก์ปค๊ฐ ํฉ๋๋ค. ์ฃผ๋ฌธ ์คํ ๋๊ตฌ๋ MCP์ ๋ ธ์ถ๋์ง ์์ต๋๋ค(agent + CLI ์ ์ฉ). ๋ฆฌ์์น / ๋ฐฑํ ์คํธ ๊ฒฝ๋ก๋ ๊ตฌ์กฐ์ ์ผ๋ก ๋ชจ๋ ์ค๊ฑฐ๋ ์๋ํฌ์ธํธ์์ ์ฐจ๋จ๋ฉ๋๋ค.
| Broker | Markets | Capabilities |
|---|---|---|
| IBKR | global | local TWS / Gateway, read-only |
| Robinhood | US | Agentic MCP (desktop OAuth) โ read + bounded live |
| Tiger | US / HK / A | read + paper + bounded live |
| Alpaca | US | read + paper + bounded live (+ TAP credential-isolation mode) |
| OKX ยท Binance | crypto | read + paper + bounded live |
| Futu | HK / US / A | read + paper + bounded live |
| eToro | global | read + paper + bounded live (Public API; demo ํค๋ ๊ตฌ์กฐ์ ์ผ๋ก /demo ๊ฒฝ๋ก์๋ง ๋๋ฌํ๋ฉฐ, ์นดํผ ํธ๋ ์ด๋ฉ ์ํฌํ๋ก๋ ์ง์) |
| MetaTrader 5 | forex / CFD | read + paper + bounded live (Exness-style; demo โ paper identity guard) |
| Longbridge ยท Dhan ยท Shoonya | US / HK ยท India (NSE/BSE) | read + paper only โ no runtime paper/live discriminator, so live order placement is hard-refused |
| Trading 212 | UK / EU | fully read-only โ place_order / cancel_order hard-refuse even paper |
Paper-vs-live๋ ๊ตฌ์กฐ์ ๋ธ๋ก์ปค๋ณ ๋ฐํ์ ๊ฐ๋(account-id ํ์, ํธ์คํธ ๋ถ๋ฆฌ, demo ํ๋๊ทธ, ๋๋ trade environment)์ด๋ฉฐ, agent๊ฐ ๋ค์ง์ ์ ์๋ config ํ๋๊ทธ๊ฐ ์๋๋๋ค. ๊ทธ๋ฐ ๊ตฌ๋ถ์๋ฅผ ๋ ธ์ถํ์ง ์๋ ๋ธ๋ก์ปค๋ ํ์ดํผ + ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ์ ํ๋ฉ๋๋ค.
ํ๋ฆฌ์ ํธ๋ ์ด๋ฉ ํ 30๊ฐ swarm preset
- ๐ข ๋ฐ๋ก ์ฌ์ฉํ ์ ์๋ 30๊ฐ ์์ด์ ํธ ํ
- โก ์ฌ์ ๊ตฌ์ฑ๋ ๊ธ์ต ์ํฌํ๋ก
- ๐ฏ ํฌ์, ํธ๋ ์ด๋ฉ, ๋ฆฌ์คํฌ ๊ด๋ฆฌ preset
| ํ๋ฆฌ์ | ์ํฌํ๋ก |
|---|---|
investment_committee |
bull/bear ํ ๋ก โ ๋ฆฌ์คํฌ ๋ฆฌ๋ทฐ โ PM ์ต์ข ํ๋จ |
global_equities_desk |
A์ฃผ + HK/US + ํฌ๋ฆฝํ ๋ฆฌ์์ฒ โ ๊ธ๋ก๋ฒ ์ ๋ต๊ฐ |
crypto_trading_desk |
funding/basis + liquidation + flow โ ๋ฆฌ์คํฌ ๋งค๋์ |
earnings_research_desk |
ํ๋๋ฉํธ + revision + options โ ์ค์ ์ ๋ต๊ฐ |
macro_rates_fx_desk |
rates + FX + commodity โ macro PM |
quant_strategy_desk |
screening + factor research โ backtest โ risk audit |
technical_analysis_panel |
classic TA + Ichimoku + harmonic + Elliott + SMC โ consensus |
risk_committee |
drawdown + tail risk + regime review โ sign-off |
global_allocation_committee |
A์ฃผ + ํฌ๋ฆฝํ + HK/US โ cross-market allocation |
์ถ๊ฐ๋ก 20๊ฐ ์ด์์ ์ ๋ฌธ preset์ด ์์ต๋๋ค. ์ ์ฒด ๋ชฉ๋ก์ vibe-trading --swarm-presets๋ก ํ์ธํ์ธ์.
Alpha Zoo 5๊ฐ ํจ๋ฐ๋ฆฌ์ ๊ฑธ์น 462๊ฐ ์ฌ์ ๋น๋๋ quant alpha
- ๐งฌ operator ๊ณ์ธต์์ lookahead๊ฐ ๊ธ์ง๋ 462๊ฐ cross-sectional alpha
- ๐ ํ ์ค CLI๋ก IC + IR + alive/reversed/dead ๋ถ๋ฅ ์ํ
- ๐ฌ AST ์์์ฑ ๊ฒ์ดํธ + 300-row lookahead sentinel ํ
์คํธ +
pytest-socket๋คํธ์ํฌ kill-switch - ๐ฆ Qlib์ ๋ํ Apache-2 ์ถ์ฒ ํ๊ธฐ, zoo๋ณ
LICENSE.md์์ ์์์ ์ํ์ ์ฝํ ์ธ ๋ก ๋ช ์ - ๐ค ์ปค๋ฎค๋ํฐ PR์ ์ํ Developer Certificate of Origin (DCO) ์๋ช ์ํฌํ๋ก
| Zoo | Count | Source | License |
|---|---|---|---|
| qlib158 | 154 | Microsoft Qlib Alpha158 (Apache-2.0, ์ปค๋ฐ ๊ณ ์ ) |
Apache-2.0 |
| alpha101 | 101 | Kakushadze (2015), "101 Formulaic Alphas", arXiv:1601.00991 | ์์์ ์ํ์ ์ฝํ ์ธ |
| gtja191 | 191 | ๊ตญํ๊ตฐ์ (2014), "191 Short-period Trading Alpha Factors" | ์์์ ์ํ์ ์ฝํ ์ธ |
| academic | 12 | Fama-French 5 + Carhart ๋ชจ๋ฉํ (๊ฐ๊ฒฉ ๊ธฐ๋ฐ proxy) + Jegadeesh reversal + George-Hwang 52-week-high + Amihud illiquidity + Harvey-Siddique skew + Frazzini-Pedersen betting-against-beta + correlation-rewiring stability | ๊ณต๊ฐ ํ์ ๋ฌธํ |
| fundamental | 4 | PIT-safe SEC company facts โ earnings yield, ROE, gross profitability, asset growth (filed-date ๊ธฐ์ค) | ๊ณต๊ฐ ์ฌ๋ฌด ๋ฐ์ดํฐ |
vibe-trading alpha list๋ก ์นดํ๋ก๊ทธ๋ฅผ ํ์ํ๊ณ , vibe-trading alpha show <id>๋ก ์์๊ณผ ์์ค ์ฝ๋๋ฅผ ํ์ธํ๋ฉฐ, vibe-trading alpha bench --zoo X --universe Y --period Z๋ก zoo ์ ์ฒด๋ฅผ ์ ์ํํ๊ณ , vibe-trading alpha compare --all๋ก zoo๋ค์ ๋๋ํ ์์ํํ์ธ์.
๋ฐฑํ ์คํธ ์์ง 10๊ฐ ์์ง + ์ต์ ํฌํธํด๋ฆฌ์ค, ํฌ๋ก์ค๋ง์ผ composite
| Engine | Market | Notes |
|---|---|---|
| ChinaA | A-share | T+1, price limits, pre-ST filter |
| GlobalEquity | US / HK / ์บ๋๋ค | ๋์ผ ์ธ์ ๊ฑฐ๋, ์์ฅ๋ณ ์ฃผ๋ฌธ ๋จ์ยทํธ๊ฐยท๋น์ฉ |
| IndiaEquity | India (NSE/BSE) | T+1, circuit bands, config-driven STT / stamp / SEBI / GST cost stack |
| KoreaEquity | ํ๊ตญ (KRX: KOSPI/KOSDAQ) | ๋กฑ ์จ๋ฆฌ, ํตํฉ ํธ๊ฐ ๋จ์์์ ยฑ30% ๊ฐ๊ฒฉ์ ํํญ์ ์ฒด๊ฒฐ ์์ ์ ํ์ , 2026๋ 0.20% ์ฆ๊ถ๊ฑฐ๋์ธ |
| VietnamEquity | ๋ฒ ํธ๋จ (HOSE) | ๋กฑ ์จ๋ฆฌ, T+2 ๊ฒฐ์ ๋ณด์ , 10/50/100 VND ํธ๊ฐ ๋จ์์์ ยฑ7% ๊ฐ๊ฒฉ์ ํํญ, 100์ฃผ ๋จ์, ๋งค๋์ธก 0.1% ์ธ๊ธ |
| Crypto | crypto spot / USD-M perps | funding settlements, execution/mark split |
| ChinaFutures ยท GlobalFutures | futures | margin, contract multipliers |
| Forex | FX / metals | via the mt5 loader |
| Composite | cross-market | one shared capital pool across markets (source="auto") |
| options_portfolio | options | multi-leg, Greeks, payoff/scenario |
Intraday bars: 1m / 5m / 15m / 30m / 1H / 4H / 1D. 15 metrics + benchmark comparison, 5 portfolio optimizers (equal-volatility / risk-parity / mean-variance / max-diversification / turnover-aware), and 3 validation tools (Monte Carlo / Bootstrap / Walk-Forward).
Quant Library 19๊ฐ ๋ชจ๋ 286๊ฐ์ ํ ์คํธ๋ ํจ์, ๋ชจ๋ ๊ฒฝ๋ก์์ ํธ์ถ ๊ฐ๋ฅ
src/quantlib๋ agent๊ฐ ํ์๋ก ํ๋ ๊ฐ ๊ธ์ต ์ํ์ ๋ํด ํ
์คํธ๋ ๊ตฌํ์ ํ๋์ฉ๋ง
๋ณด์ ํฉ๋๋ค. skill์ ์ด์ ์ด ํจ์๋ค์ importํ๋ฉฐ, markdown ์ฝ๋ ๋ธ๋ก ์์ ์์์
ํ๊ณ ์์ง ์์ต๋๋ค โ SKILL.md ์์ ๊ฐ๊ฒฉ ์ฐ์์ด ์ด๊ณ ์๋ค๋ฉด ๊ทธ๊ฒ์ ํจํด์ด ์๋๋ผ
๋ฒ๊ทธ์
๋๋ค.
| ๋ชจ๋ | ๋ค๋ฃจ๋ ๋ฒ์ |
|---|---|
options |
Black-Scholes ๊ฐ๊ฒฉ + greeks, ๋ด์ฌ๋ณ๋์ฑ ์ญ์ฐ |
fixedincome |
์ฑ๊ถ ์ํ, Nelson-Siegel / Svensson ์ปค๋ธ ํผํ |
credit |
Altman Z-score, Merton / KMV ๋ถ๋๊ฑฐ๋ฆฌ |
timeseries |
์ ์์ฑ, ๊ณต์ ๋ถ, GARCH, bootstrap |
risk ยท var_backtest |
VaR / CVaR / EVT ๋ฐ ๊ทธ ๋ฐฑํ ์คํธ |
attribution |
Brinson-Fachler ์ฑ๊ณผ์์ธ ๋ถํด |
performance ยท fundmath |
TWR / MWR / Modified Dietz; XIRR / MOIC / DPI / TVPI |
factormodel ยท eventstudy |
ํฉํฐ ํ๊ท, ์ด๋ฒคํธ ์คํฐ๋ |
multipletesting ยท crossvalidation |
๋ค์ค๊ฒ์ ๋ณด์ , purged CV |
impact |
์์ฅ์ถฉ๊ฒฉ ๋ชจ๋ธ |
์ฝ๊ธฐ ์ ์ฉ quantlib_call ๋๊ตฌ๊ฐ ํ๋์ ๊ณ์ฝ์ผ๋ก ์ ์ฒด์ ๋๋ฌํ๋ฏ๋ก, bash๊ฐ ์ฐจ๋จ๋
CLIยทWeb UIยทREST APIยทMCP์์๋ ๊ธ์ต ์ํ์ด ๋์ํฉ๋๋ค. ๊ตฌ์กฐ์ ์ผ๋ก shell์ด ์๋๋๋ค โ
๋ชจ๋ ํ์ฉ ๋ชฉ๋ก, __all__ ์ ์ฉ ๋์คํจ์น, export_* ๊ฑฐ๋ถ. ๊ณ๋๊ฒฝ์ ํจ์๋ stats
์์คํธ๋ผ(pip install "vibe-trading-ai[stats]")๊ฐ ํ์ํ๋ฉฐ, ์ง์ฐ ์ํฌํธํ๋ฉด์ ๋ฌด์์ด
๋น ์ก๋์ง ์๋ ค์ค๋๋ค.
๋ฐธ๋ฅ์์ด์ & ๊ธฐ๊ด ๋ฆฌ์์น DCF, ์ปดํ์ค, ์ฌ๋ฌด์ ํ ์ฐ๋, ๊ทธ๋ฆฌ๊ณ ์ฌ์ฏ ๊ฐ์ ๋ฆฌ์์น ์ปค๋งจ๋
์
๋ ฅ์ ์ค์ค๋ก ์ง์ด๋ด๊ธฐ๋ฅผ ๊ฑฐ๋ถํ๋ ๋ฐธ๋ฅ์์ด์
์์ง์
๋๋ค. contracts.py์ ์ ์ผํ
๊ท์น: ์
๋ ฅ์ด ๋น ์ง๋ฉด ๋ชจ๋ธ์ ์คํ ๋ถ๊ฐ(NOT RUNNABLE)์ด๋ฉฐ, ์กฐ์ฉํ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ฑ์ฐ์ง
์๋๋ค โ ๋ฐธ๋ฅ์์ด์
๋ชจ๋ธ์ ๋ชจ๋ ๊ธฐ๋ณธ๊ฐ์ ์์์ ์ท์ ์
์ ๊ฒฌํด์ด๊ธฐ ๋๋ฌธ์
๋๋ค.
| ๋ชจ๋ธ | ์์๋ ๋์ |
|---|---|
run_dcf |
FCFF ๋ธ๋ฆฌ์ง, WACC ๊ตฌ์ฑ, ๊ธฐ์ค ํ ์ธ, ์๋ถ์ฑ ๋ธ๋ฆฌ์ง, WACCรg ๋ฏผ๊ฐ๋ ๊ทธ๋ฆฌ๋. ์ด์ค ํฐ๋ฏธ๋ ๋ฐธ๋ฅ: ๊ฐ ๋ฐฉ์์ ์๋ ๋ฐฉ์์ ๋ด์ฌ ๋ฐฐ์์ ๋ด์ฌ g๋ก ๊ต์ฐจ ๊ฒ์ฆ |
run_comps |
EV ๋ธ๋ฆฌ์ง, LTM + ์ญ๋ ์บ๋ฆฐ๋ํ, ๋ฐฐ์ ํ๋ ฌ. ๋ถ๋ชจ๊ฐ ์์๊ฐ ์๋ ํผ์ด๋ ์ ์ธํ๊ณ ๋ณด๊ณ ํ๋ฉฐ, ์์ ๋ฐฐ์๋ก ํ๊ท ์ ์์ง ์์ต๋๋ค |
threestatement |
์ฐ๋ ์ถ์ . ๊ฐ์ ๋ฐธ๋ฐ์ค ๋จ์ธ, ๋ช ์์ ๋ฆฌ๋ณผ๋ฒ ํ๋ฌ๊ทธ, ์๋ ดํ์ง ์์ผ๋ฉด raiseํ๋ ์ด์โ๋ถ์ฑ ์ํ ๋ฐ๋ณต |
์ฐ์ถ๋ฌผ์ ์ ๋ ฅ ํด์ ๊ธฐ๋ฐ์ผ๋ก ๋ฒ์ ๊ด๋ฆฌ๋๋ฉฐ xlsx / pptx๋ก ๋ด๋ณด๋ผ ์ ์์ต๋๋ค.
6๊ฐ์ ์ฌ๋์ ์ปค๋งจ๋๊ฐ ์ํฌํ๋ก๋ฅผ ๊ตฌ๋ํฉ๋๋ค โ /comps /dcf /attrib /memo
/earnings /screen โ ๊ฐ๊ฐ ๋จ๊ณ ๊ณจ๊ฒฉ๊ณผ ์ฐ์ ์ ์ผ๋ก ์ ํฉํ ์์๋ฅผ ๊ฐ๊ณ ์์ต๋๋ค
(Brinson ๋ถํด๋ ์กํฐ๋ธ ๋ฆฌํด์ ์ ํํ ํฉ์ฐ๋๊ณ , ์ค์ ๋ธ๋ฆฌ์ง๋ EPS ๋ณํ์ ์ ํํ
ํฉ์ฐ๋ฉ๋๋ค). investor-lenses skill์ ์ ๋ช
ํฌ์์์ ์ฌ๊ณ ํ๋ ์์ํฌ๋ฅผ ๋ถ์ ์ค๋ฒ๋ ์ด๋ก
์์ต๋๋ค: ๊ฐ ๋ ์ฆ๋ ์ฐ์ ์ ํธยทํ๋ฝ ์กฐ๊ฑดยท์ ํ์ ์ค์ฉ์ผ๋ก ์ด๋ฃจ์ด์ง ์ด์ ์ ์ฐจ์ด๋ฉฐ,
์ธ๋ฌผ ์ ๊ธฐ๊ฐ ์๋๊ณ ์ด๋ค ๋๊ตฌ๋ ์ง๋ชฉํ์ง ์์ต๋๋ค.
๋ฐ ์ธ์๋ src/entities๊ฐ ๋ถ๊ท์น ์ผ์์ ํ๊ธํ๋ฆ(NAV, ์บํผํธ ์ฝ, ์ฟ ํฐ)์ ์์งํ๊ณ ,
cashflow_performance๊ฐ ๊ทธ ์์์ XIRR / MOIC / DPI / TVPI / TWR / Modified Dietz /
MWR๋ฅผ ์ฐ์ถํฉ๋๋ค. ์ด ๊ฒฝ๋ก๋ ๋ฐ ์์ง๊ณผ ์๋์ ์ผ๋ก ํํํ๊ฒ ์ค๊ณ๋์ด, nav ์ปฌ๋ผ์ด
๋ฐ ์์ง์ ๋๋ฌํด ์ข
๊ฐ๋ก ๊ฐ๊ฒฉ์ด ๋งค๊ฒจ์ง๋ ์ผ์ด ๊ฒฐ์ฝ ์์ต๋๋ค.
๊ฑฐ๋ฒ๋์ค & ๊ฐ์ฌ ์ถ์ "๊ทธ ์ซ์๋ ์ด๋ค ๋ฐฉ๋ฒ๋ก ์ด ๋ง๋ค์๋?"์ ๋ตํ๊ธฐ
๋ชจ๋ ์คํ์ ํ๋กฌํํธ, skill ๋ด์ฉ, ๋๊ตฌ ๋ ์ง์คํธ๋ฆฌ, ํจํค์ง ๋ฒ์ ์ ํด์ํ manifest๋ฅผ ๊ธฐ๋กํฉ๋๋ค. ํ ๋ฌ ์ ์ ๋์จ ์ซ์๋ ๊ทธ๊ฒ์ ๋ง๋ ์ ํํ ๋ฐฉ๋ฒ๋ก ๊น์ง ์ถ์ ํ ์ ์์ต๋๋ค.
๊ฐ์ฌ ์์ฅ์ ๊ฐ ๋ ์ฝ๋๋ฅผ ์ง์ ๋ ์ฝ๋์ ํด์์ ์ฐ๊ฒฐํ๊ณ fsyncํ๋ฏ๋ก, ๋ ์ฝ๋์ ์์ ์ด๋
์ญ์ ๋ฅผ ํ์งํ ์ ์์ต๋๋ค โ ์์ ์ ํด์๊น์ง ๋ค์ ๊ณ์ฐํ ์์ ์ด๋ผ๋ ๋ฐ๋ก ๋ค์ ๋ ์ฝ๋์์
prev_hash_mismatch๋ก ์กํ๋๋ค. ํ์์คํฌํ๋ ํญ์ ํธ์ถ์๊ฐ ์ ๊ณตํ๋ฉฐ, ์ด ๋ชจ๋์
datetime.now()๋ฅผ ํธ์ถํ์ง ์์ต๋๋ค.
ํธ๋ ์ด์ค ๋ง์คํน์ sink ๋จ์์
๋๋ค: ๋๊ตฌ ํธ์ถ ์ธ์์ ์ค์๊ฐ ๊ฐ์ฌ ์์ฅ์ fail-closed
sink๋ฅผ ์ฌ์ฉํด content๋ฅผ ๋ง์คํน๋ ์ํ๋ก ๋๊ณ , ๋๊ตฌ ๊ฒฐ๊ณผ sink๋ง content๋ฅผ ํด์ ํ๋ฉฐ
๊ทธ ๋ฌธ์์ด ๋ฆฌํ๋ฅผ ํจํด ์ธ์ฒํฉ๋๋ค. env๋ ์ด๋ ์ชฝ์์๋ ํด์ ๋์ง ์์ต๋๋ค.
cli_sm.mp4 |
frontend_sm.mp4 |
| โ๏ธ ์์ฐ์ด ๋ฐฑํ ์คํธ & ๋ฉํฐ ์์ด์ ํธ swarm ํ ๋ก โ Web UI + CLI | |
pip install vibe-trading-ai์ฒซ ๋ฆฌ์์น ์์ ์ ์คํํ์ธ์:
vibe-trading init
vibe-trading run -p "Backtest a BTC-USDT 20/50 moving-average strategy for 2024 and summarize return and drawdown"์ด์ ๋ฒ์ ์์ ์ ๊ทธ๋ ์ด๋ํ์๋์? 0.1.10์ LangChain 1.x๋ก ์ด์ ํ์ต๋๋ค. 0.1.10 ์ด์ ์ค์น ์์์
pip install -U vibe-trading-ai๋ฅผ ์คํํ ํ ์ํฌํธ๊ฐ ๊นจ์ง๋ฉด(์: langgraph ์ํฌํธ ์คํจ) venv๋ฅผ ๋ค์ ๋ง๋ค๊ฑฐ๋pip install --force-reinstall vibe-trading-ai๋ฅผ ์คํํ์ธ์. ์๋ก ์ค์นํ ๊ฒฝ์ฐ์๋ ์ํฅ์ด ์์ต๋๋ค.
ํจํค์ง ์ด๋ฆ vs ๋ช ๋ น: PyPI ํจํค์ง๋
vibe-trading-ai์ ๋๋ค. ์ค์นํ๋ฉด ์ธ ๊ฐ์ง ๋ช ๋ น์ ์ฌ์ฉํ ์ ์์ต๋๋ค:
Command Purpose vibe-trading๋ํํ CLI / TUI vibe-trading serveFastAPI ์น ์๋ฒ ์คํ vibe-trading-mcpMCP ์๋ฒ ์์(Claude Desktop, OpenClaw, Cursor ๋ฑ)
vibe-trading init # interactive .env setup
vibe-trading # launch CLI
vibe-trading serve --port 8899 # launch web UI
vibe-trading-mcp # start MCP server (stdio)| ๊ฒฝ๋ก | ์ ํฉํ ์ฉ๋ | ์๊ฐ |
|---|---|---|
| A. Docker | ์ฆ์ ์ฒดํ, ๋ก์ปฌ ์ค์ ์์ | 2๋ถ |
| B. Local install | ๊ฐ๋ฐ, ์ ์ฒด CLI ์ ๊ทผ | 5๋ถ |
| C. MCP plugin | ๊ธฐ์กด ์์ด์ ํธ์ ์ฐ๊ฒฐ | 3๋ถ |
| D. ClawHub | ํ ๋ฒ์ ๋ช ๋ น, clone ๋ถํ์ | 1๋ถ |
- ์ง์ provider ์ค ํ๋์ LLM API key ๋๋ Ollama ๋ก์ปฌ ์คํ(key ๋ถํ์)
- ๊ฒฝ๋ก B์ฉ Python 3.11+
- ๊ฒฝ๋ก A์ฉ Docker
- OpenAI Codex๋ ChatGPT OAuth๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
LANGCHAIN_PROVIDER=openai-codex๋ฅผ ์ค์ ํ ๋คvibe-trading provider login openai-codex๋ฅผ ์คํํ์ธ์. ์ด ๋ฐฉ์์OPENAI_API_KEY๋ฅผ ์ฌ์ฉํ์ง ์์ต๋๋ค.
์ง์ LLM provider: OpenRouter, Requesty, OpenAI, Anthropic (native Messages API), DeepSeek, Gemini, Groq, DashScope/Qwen, Zhipu, Moonshot/Kimi, MiniMax, SiliconFlow (CN + Global), Xiaomi MIMO, Novita AI, iFlytek Spark, Z.ai, NVIDIA NIM, ModelScope, GitHub Copilot, Ollama(local).
*_BASE_URL์ด ์ค์ ๋์ง ์์ผ๋ฉด ๊ฐ provider๋ canonical endpoint๋ก ํด๋ฐฑํ๋ฏ๋ก key๋ง ์์ผ๋ฉด ์ถฉ๋ถํฉ๋๋ค. ์ค์ ์.env.example์ ์ฐธ๊ณ ํ์ธ์.
ํ: ์๋ fallback ๋๋ถ์ ๋ชจ๋ ์์ฅ์ API key ์์ด๋ ์๋ํฉ๋๋ค. yfinance/Yahoo(HK/US/์บ๋๋ค), OKX(crypto), mootdx(A์ฃผ, TCP ์ง๊ฒฐ, IP ์ ํ ์์), AKShare(A์ฃผ, US, HK, futures, forex)๋ ๋ชจ๋ ๋ฌด๋ฃ์ ๋๋ค. Tushare token์ ์ ํ ์ฌํญ์ด๋ฉฐ, mootdx๊ฐ ๊ถ์ฅ no-token A์ฃผ fallback์ด๊ณ AKShare๋ ๋ ๋์ ์ปค๋ฒ๋ฆฌ์ง์ ๋ฐฑ์ ์ ๋๋ค.
git clone https://github.com/HKUDS/Vibe-Trading.git
cd Vibe-Trading
cp agent/.env.example agent/.env
# Edit agent/.env โ uncomment your LLM provider and set API key
docker compose up --buildhttp://localhost:8899๋ฅผ ์ฌ์ธ์. Backend + frontend๊ฐ ํ๋์ container์ ๋ค์ด ์์ต๋๋ค.
Docker๋ ๊ธฐ๋ณธ์ ์ผ๋ก backend๋ฅผ 127.0.0.1:8899์ ๊ฒ์ํ๊ณ ์ฑ์ non-root container user๋ก ์คํํฉ๋๋ค. API๋ฅผ ์์ ์ ๋จธ์ ๋ฐ์ผ๋ก ์๋์ ์ผ๋ก ๋
ธ์ถํ๋ ๊ฒฝ์ฐ ๊ฐ๋ ฅํ API_AUTH_KEY๋ฅผ ์ค์ ํ๊ณ client์์ Authorization: Bearer <key>๋ฅผ ๋ณด๋ด์ธ์.
git clone https://github.com/HKUDS/Vibe-Trading.git
cd Vibe-Trading
python -m venv .venv
# Activate
source .venv/bin/activate # Linux / macOS
# .venv\Scripts\activate.bat # Windows CMD
# .venv\Scripts\Activate.ps1 # Windows PowerShell
pip install -e .
cp agent/.env.example agent/.env # Edit โ set your LLM provider API key
vibe-trading # Launch interactive TUINote
Windows์ ๊ฒฝ์ฐ: cp๋ PowerShell์์ Copy-Item์ ๋ณ์นญ์ด๋ฏ๋ก ์ ๋ช
๋ น์ PowerShell์์ ๊ทธ๋๋ก ๋์ํฉ๋๋ค. CMD์๋ cp๊ฐ ์์ผ๋ฏ๋ก ๋์ copy agent\.env.example agent\.env๋ฅผ ์ฌ์ฉํ์ธ์(์์ Docker ๋ช
๋ น๋ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค). PowerShell์ด Activate.ps1 ์คํ์ ๊ฑฐ๋ถํ๋ฉด ๋จผ์ Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned๋ฅผ ์คํํ์ธ์. ์ด ์ค์ ์ ํ์ฌ ์
ธ ์ธ์
์๋ง ์ ์ฉ๋ฉ๋๋ค.
์น UI ์์(์ ํ ์ฌํญ)
# Terminal 1: API server
vibe-trading serve --port 8899
# Terminal 2: Frontend dev server
cd frontend && npm install && npm run dev # Node >= 22.22 ํ์http://localhost:5899๋ฅผ ์ฌ์ธ์. Frontend๋ API ํธ์ถ์ localhost:8899๋ก proxyํฉ๋๋ค.
Production mode(single server):
cd frontend && npm run build && cd ..
vibe-trading serve --port 8899 # FastAPI serves dist/ as static files[!NOTE]
vibe-trading serve๋0.0.0.0์ ๋ฐ์ธ๋ฉ๋์ง๋ง ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฃจํ๋ฐฑ๋ง ์ ๋ขฐํฉ๋๋ค. ๊ฐ์ ์ปดํจํฐ์์ UI๋ฅผ ์ด๋ฉด(http://localhost:8899) ์ค์ ์์ด ์๋ํฉ๋๋ค. ๋ค๋ฅธ ์ปดํจํฐ, VM ํธ์คํธ, LAN์ ํด๋ํฐ์์ ์ ์ํ๋ฉด ๋ฏผ๊ฐํ ์๋ํฌ์ธํธ๊ฐ403์ ๋ฐํํ๊ณ ์ฑํ ์ โRemote API access requires an API keyโ ๊ฐ ํ์๋ฉ๋๋ค.agent/.env์ ๊ฐ๋ ฅํAPI_AUTH_KEY๋ฅผ ์ค์ ํ๊ณ ์ฌ์์ํ ๋ค Settings ์์ ๊ฐ์ ํค๋ฅผ ์ ๋ ฅํ์ธ์. (Docker Desktop ํธ์คํธ ๊ฒ์ดํธ์จ์ด์ ๊ฒฝ์ฐ: ๊ธฐ๋ณธ127.0.0.1ํฌํธ ๋ฐ์ธ๋ฉ์ ์ ์งํ ์ฑVIBE_TRADING_TRUST_DOCKER_LOOPBACK=1์ค์ .)
์๋ MCP Plugin ์น์ ์ ์ฐธ๊ณ ํ์ธ์.
npx clawhub@latest install vibe-trading --forceskill + MCP config๊ฐ agent์ skills directory์ ๋ค์ด๋ก๋๋ฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ClawHub install์ ์ฐธ๊ณ ํ์ธ์.
agent/.env.example์ agent/.env๋ก ๋ณต์ฌํ๊ณ ์ฌ์ฉํ provider block์ ์ฃผ์์ ํด์ ํ์ธ์. ๊ฐ provider์๋ 3~4๊ฐ์ ๋ณ์๊ฐ ํ์ํฉ๋๋ค:
| ๋ณ์ | ํ์ | ์ค๋ช |
|---|---|---|
LANGCHAIN_PROVIDER |
Yes | Provider name(openrouter, deepseek, groq, ollama ๋ฑ) |
<PROVIDER>_API_KEY |
Yes* | API key(OPENROUTER_API_KEY, DEEPSEEK_API_KEY ๋ฑ) |
<PROVIDER>_BASE_URL |
Yes | API endpoint URL |
LANGCHAIN_MODEL_NAME |
Yes | Model name(์: deepseek-v4-pro) |
TUSHARE_TOKEN |
No | A์ฃผ data์ฉ Tushare Pro token(AKShare๋ก fallback) |
TIMEOUT_SECONDS |
No | LLM call timeout, ๊ธฐ๋ณธ 120s |
API_AUTH_KEY |
๋คํธ์ํฌ ๋ฐฐํฌ ๊ถ์ฅ | API๊ฐ non-local client์์ ์ ๊ทผ ๊ฐ๋ฅํ ๋ ํ์ํ Bearer token |
VIBE_TRADING_ENABLE_SHELL_TOOLS |
No | remote API/MCP-SSE ํํ ๋ฐฐํฌ์์ shell-capable tools ๋ช ์์ opt-in |
VIBE_TRADING_ALLOWED_FILE_ROOTS |
No | document์ broker-journal import์ฉ ์ถ๊ฐ comma-separated roots |
VIBE_TRADING_ALLOWED_RUN_ROOTS |
No | generated-code run directory์ฉ ์ถ๊ฐ comma-separated roots |
VIBE_TW_STOCK_DB |
No | ๋๋ง ์์ฅ SQLite ์ค๋
์ท ๊ฒฝ๋ก. ์ฝ๊ธฐ ์ ์ฉ taiwan_stock_data ๋๊ตฌ๋ ์คํค๋ง๊ฐ ์ ํจํ ๋๋ง ๋ฑ๋ก๋ฉ๋๋ค |
VIBE_TRADING_EXTRA_CORS_ORIGINS |
No | ๋ฃจํ๋ฐฑ CORS ๊ธฐ๋ณธ๊ฐ์ ์ถ๊ฐ๋๋ ์ค๋ฆฌ์ง(์ผํ ๊ตฌ๋ถ). CORS_ORIGINS๋ ๋์ฒด |
CONTENT_FILTER_WARNING_THRESHOLD |
No | ์ฝํ ์ธ ํํฐ ๊ฒฝ๊ณ ๋น์จ ์๊ณ๊ฐ(๊ธฐ๋ณธ 0.05 = 5%). ์ฝํ ์ธ ๊ฒ์ด๋ก ์ฐจ๋จ๋ LLM ์๋ต ๋น์จ์ด ์ด๋ฅผ ๋์ผ๋ฉด run card๊ฐ ํ๋ก๋ฐ์ด๋ ๋ณ๊ฒฝ์ ๊ถ๊ณ ํฉ๋๋ค. |
* Ollama๋ API key๊ฐ ํ์ ์์ต๋๋ค. OpenAI Codex๋ ChatGPT OAuth๋ฅผ ์ฌ์ฉํ๋ฉฐ token์ agent/.env๊ฐ ์๋๋ผ oauth-cli-kit์ ํตํด ์ ์ฅํฉ๋๋ค.
๋ฌด๋ฃ ๋ฐ์ดํฐ(key ๋ถํ์): AKShare๋ฅผ ํตํ A์ฃผ, yfinance๋ฅผ ํตํ HK/US equities, OKX๋ฅผ ํตํ crypto, CCXT๋ฅผ ํตํ 100๊ฐ ์ด์ crypto exchanges. ์์คํ ์ ์์ฅ๋ณ๋ก ๊ฐ์ฅ ์ ํฉํ source๋ฅผ ์๋ ์ ํํฉ๋๋ค.
Vibe-Trading์ tool-heavy agent์ ๋๋ค. skills, backtests, memory, swarms๊ฐ ๋ชจ๋ tool call์ ํตํด ํ๋ฆ ๋๋ค. ๋ชจ๋ธ ์ ํ์ ์์ด์ ํธ๊ฐ ์ค์ ๋ก ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋์ง, ์๋๋ฉด ํ์ต ๋ฐ์ดํฐ์์ ๋ต์ ๋ง๋ค์ด๋ด๋์ง๋ฅผ ์ง์ ๊ฒฐ์ ํฉ๋๋ค.
| ๋ฑ๊ธ | ์์ | ์ฌ์ฉ ์์ |
|---|---|---|
| Best | anthropic/claude-opus-4.7, anthropic/claude-sonnet-4.6, openai/gpt-5.5-pro, google/gemini-3.5-flash |
๋ณต์กํ swarms(3+ agents), ๊ธด ๋ฆฌ์์น ์ธ์ , ๋ ผ๋ฌธ๊ธ ๋ถ์ |
| Sweet spot(๊ธฐ๋ณธ๊ฐ) | deepseek-v4-pro, deepseek/deepseek-v4-pro, x-ai/grok-4.20, z-ai/glm-5.1, moonshotai/kimi-k2.6, qwen/qwen3-max-thinking |
Daily driver โ ์ฝ 1/10 ๋น์ฉ์ผ๋ก ์์ ์ ์ธ tool-calling |
| Agent ์ฌ์ฉ ์ ํผํ ๊ฒ | *-nano, *-flash-lite, *-coder-next, small / distilled variants |
tool-calling์ด ๋ถ์์ ํฉ๋๋ค. agent๊ฐ skills๋ฅผ ๋ก๋ํ๊ฑฐ๋ backtest๋ฅผ ์คํํ๋ ๋์ "๊ธฐ์ต์์ ๋ตํ๋" ๊ฒ์ฒ๋ผ ๋ณด์ผ ์ ์์ต๋๋ค. |
๊ธฐ๋ณธ agent/.env.example์ DeepSeek official API + deepseek-v4-pro๋ฅผ ํฌํจํฉ๋๋ค. OpenRouter ์ฌ์ฉ์๋ deepseek/deepseek-v4-pro๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
vibe-trading # interactive TUI
vibe-trading run -p "..." # single run
vibe-trading serve # API server
vibe-trading alpha list # ์ฌ์ ๋น๋๋ 462๊ฐ alpha ํ์; show / bench / compare / export-manifest ์๋ธ์ปค๋งจ๋ ์ฌ์ฉ ๊ฐ๋ฅ
vibe-trading playbook list # ์์ฝ ๋ฆฌ์์น ํ
ํ๋ฆฟ 5๊ฐ; show / create ์๋ธ์ปค๋งจ๋ ์ฌ์ฉ ๊ฐ๋ฅ
vibe-trading channels status --local # IM ์ฑ๋ ์ค์ ๊ณผ ์ค์น ํํธ ํ์ธ
vibe-trading provider doctor # ๋ง์คํน๋ provider/proxy/ํจํค์ง ์ง๋จ ์ถ๋ ฅTUI ๋ด slash commands
| Command | Description |
|---|---|
/help |
๋จ์ถํค์ ๋ช ๋ น ๋ชฉ๋ก ํ์ |
/model |
LLM ์ ๊ณต์์ ๋ชจ๋ธ ์ ํ |
/memory |
์์ ๋ฉ๋ชจ๋ฆฌ ๋ณด๊ธฐ / ๊ด๋ฆฌ |
/history |
์ด์ ์ธ์ ํ์ ๋ฐ ์ฌ๊ฐ |
/goal |
๊ธ์ต ๋ฆฌ์์น goal ์์ / ํ์ธ |
/search |
๋ชจ๋ ์ธ์ ์ ๋ฌธ ๊ฒ์ |
/swarm |
๋ฉํฐ ์์ด์ ํธ preset(์์ํ / ํํธ / ๋ฆฌ์คํฌ) |
/skill |
skills ๋ชฉ๋ก / ๋ก๋ / ํด์ |
/show |
์ด์ run์ id๋ก ํ์ |
/clear |
ํ์ฌ ๋ํ ๋น์ฐ๊ธฐ |
/pine |
ํ์ฌ ์ ๋ต์ Pine Script๋ก ๋ด๋ณด๋ด๊ธฐ |
/journal |
๋งค๋งค์ผ์ง CSV ๋ถ์ |
/shadow |
์๋ ๊ณ์ข ํ์ต / ์กฐํ |
/export |
ํ์ฌ ์ธ์ ๋ด๋ณด๋ด๊ธฐ(md / json) |
/debug |
๋๋ฒ๊ทธ ํจ๋ ์ ํ(ํ ํฐ ์ฌ์ฉ๋ / ์ง์ฐ) |
/comps |
์ ์ฌ๊ธฐ์ ๋ถ์(ํผ์ด ๋ฉํฐํ โ ๋ด์ฌ ๋ฒ์) |
/dcf |
ํ๊ธํ๋ฆํ ์ธ ๋ฐธ๋ฅ์์ด์ + ๋ฏผ๊ฐ๋ ๊ทธ๋ฆฌ๋ |
/attrib |
Brinson-Fachler ์ฑ๊ณผ๊ธฐ์ฌ ๋ถ์(์์ฐ๋ฐฐ๋ถ vs ์ข ๋ชฉ์ ํ) |
/memo |
ํฌ์ ๋ฉ๋ชจ โ ๋ ผ์ง, ์ฐจ๋ณ์ ๊ด์ , ์๋๋ฆฌ์ค, ์ฒ ํ ๊ธฐ์ค |
/earnings |
์ค์ ๋ฆฌ๋ทฐ โ ๋งค์ถ์์ EPS๊น์ง ์ํ๋ผ์ด์ฆ ๋ธ๋ฆฌ์ง |
/screen |
์ฒด๊ณ์ ์์ด๋์ด ์คํฌ๋ฆฌ๋ โ ๊ฐ์ค, ํผ๋, ์์กด ํ |
/playbook |
์์ฝ ๋ฆฌ์์น ํ ํ๋ฆฟ(๋ชฉ๋ก / ์คํ / ์์ฝ) |
/connector |
ํธ๋ ์ด๋ฉ ์ปค๋ฅํฐ ํ๋กํ(์ํ / ์์ / ์ค์ง) |
/halt |
ํฌ ์ค์์น โ ๋ชจ๋ ์ค๊ฑฐ๋ ์ฆ์ ์ค๋จ |
/resume |
ํฌ ์ค์์น ํด์ (์ค๊ฑฐ๋ ์ฌ๊ฐ) |
/data |
๋ฐ์ดํฐ ๋ผ์ฐํ ๋ชจ๋ |
/quit |
์ข ๋ฃ(q, exit, :q ๋ ๊ฐ๋ฅ) |
Single run & flags
vibe-trading run -p "Backtest BTC-USDT MACD strategy, last 30 days"
vibe-trading run -p "Analyze AAPL momentum" --json
vibe-trading run -f strategy.txt
echo "Backtest 000001.SZ RSI" | vibe-trading runvibe-trading -p "your prompt"
vibe-trading --skills
vibe-trading --swarm-presets
vibe-trading --swarm-run investment_committee '{"topic":"BTC outlook"}'
vibe-trading --list
vibe-trading --show <run_id>
vibe-trading --code <run_id>
vibe-trading --pine <run_id> # Export indicators (TradingView + TDX + MT5)
vibe-trading --trace <run_id>
vibe-trading --continue <run_id> "refine the strategy"
vibe-trading --upload report.pdfvibe-trading alpha list --zoo gtja191 --limit 10
vibe-trading alpha show gtja191_171
vibe-trading alpha bench --zoo gtja191 --universe csi300 --period 2018-2025 --top 20IM ์ฑ๋
IM channel adapter๋ ์ธ๋ถ ์ฑํ
์ฑ์ Web UI์ CLI๊ฐ ์ฐ๋ ๊ฐ์ session runtime์ ์ฐ๊ฒฐํฉ๋๋ค. ํ์ฑํํ ์ด๋ํฐ๋ ~/.vibe-trading/agent.json์ channels ์๋์ ์ค์ ํฉ๋๋ค. SDK ๊ธฐ๋ฐ ์ด๋ํฐ๋ optional extras์ด๋ฉฐ, SDK๊ฐ ์์ผ๋ฉด ๋ฐํ์์ ์ค๋จํ์ง ์๊ณ recovery hints๋ฅผ ํ์ํฉ๋๋ค.
vibe-trading channels status --local # API ์์ด config์ missing SDK hints ํ์ธ
vibe-trading channels status # ์คํ ์ค์ธ API runtime ์กฐํ
vibe-trading channels start # API๋ฅผ ํตํด enabled adapters ์์
vibe-trading channels stop # API๋ฅผ ํตํด enabled adapters ์ค์ง
vibe-trading channels login weixin # ํ์ํ adapter login hook ์คํ
vibe-trading channels pairing --channel telegram listvibe-trading channels login feishu ๋ ๋ก๊ทธ์ธ ์ฑ๊ณต์ ๋ณด๊ณ ํ๊ธฐ ์ ์ QR ์ธ์ฆ์ผ๋ก ๋ฐ์ ์ฑ ์๊ฒฉ ์ฆ๋ช
์ ~/.vibe-trading/agent.json ์ ์ ์ฅํฉ๋๋ค(ํ์ผ ๊ถํ์ ์์ ์ ์ ์ฉ).
Built-in adapters๋ websocket, telegram, slack, discord, matrix, whatsapp, signal, qq, napcat, weixin, wecom, feishu, dingtalk, msteams, email, mochat์
๋๋ค. ๊ฐ๋ณ ํ๋ซํผ์ pip install "vibe-trading-ai[telegram]"์ฒ๋ผ ์ค์นํ๊ฑฐ๋, ์ ์ฒด ์ฑ๋ ์ธํธ๋ pip install "vibe-trading-ai[channels]"๋ก ์ค์นํ ์ ์์ต๋๋ค.
์ฑํ ๋ด ์ฌ๋์ ๋ช ๋ น์ด (์ฑ๋ ๋ฌด๊ด, 16๊ฐ ์ด๋ํฐ ๋ชจ๋ ๊ณตํต):
| ๋ช ๋ น์ด | ์ค๋ช |
|---|---|
/new |
ํ์ฌ ์ธ์ ์ด๊ธฐํ โ ๋ค์ ๋ฉ์์ง์์ ์ ๋ํ ์์ |
/reset |
/new์ ๋ณ์นญ |
/newsession |
/new์ ๋ณ์นญ |
/pairing list |
๋๊ธฐ ์ค์ธ sender pairing ์์ฒญ ํ์ |
๋ช
๋ น์ด๋ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์ผ๋ฉฐ, ์ ์ฒด ๋ฉ์์ง๋ก ์ ์กํด์ผ ํฉ๋๋ค (์: hello /new์ ์ด๊ธฐํ๊ฐ ์๋ ์ผ๋ฐ ๋ฉ์์ง๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค).
# Moving average crossover on US equities
vibe-trading run -p "Backtest a 20/50-day moving average crossover on AAPL for the past year, show Sharpe ratio and max drawdown"
# RSI mean-reversion on crypto
vibe-trading run -p "Test RSI(14) mean-reversion on BTC-USDT: buy below 30, sell above 70, last 6 months"
# Multi-factor strategy on A-shares
vibe-trading run -p "Backtest a momentum + value + quality multi-factor strategy on CSI 300 constituents over 2 years"
# After backtesting, export to TradingView / TDX / MetaTrader 5
vibe-trading --pine <run_id>ํ ์ค๋ก ์ฌ์ ๋น๋๋ alpha zoo ๋ฒค์นํ๊ธฐ:
vibe-trading alpha bench --zoo gtja191 --universe csi300 --period 2018-2025 --top 20์นดํ๋ก๊ทธ ํ์ ํ ๋จ์ผ alpha ํ์ธ:
vibe-trading alpha list --zoo gtja191 --theme reversal --limit 10
vibe-trading alpha show gtja191_171zoo ์ธ์๋ค๋ก ๋ค์ธ์ ์ ํธ ๊ตฌ์ฑ(Python):
from src.skills.multi_factor.zoo_signal_engine import ZooSignalEngine
engine = ZooSignalEngine.from_zoo(["gtja191_171", "gtja191_111", "gtja191_163"])
panel = ... # your wide OHLCV panel
signal = engine.compute_signal(panel)# Equity deep-dive
vibe-trading run -p "Research NVDA: earnings trend, analyst consensus, option flow, and key risks for next quarter"
# Macro analysis
vibe-trading run -p "Analyze the current Fed rate path, USD strength, and impact on EM equities and gold"
# Crypto on-chain
vibe-trading run -p "Deep dive BTC on-chain: whale flows, exchange balances, miner activity, and funding rates"# Bull/bear debate on a stock
vibe-trading --swarm-run investment_committee '{"topic": "Is TSLA a buy at current levels?"}'
# Quant strategy from screening to backtest
vibe-trading --swarm-run quant_strategy_desk '{"universe": "S&P 500", "horizon": "3 months"}'
# Crypto desk: funding + liquidation + flow โ risk manager
vibe-trading --swarm-run crypto_trading_desk '{"asset": "ETH-USDT", "timeframe": "1w"}'
# Global macro portfolio allocation
vibe-trading --swarm-run macro_rates_fx_desk '{"focus": "Fed pivot impact on EM bonds"}'# Save your preferences once
vibe-trading run -p "Remember: I prefer RSI-based strategies, max 10% drawdown, hold period 5โ20 days"
# The agent recalls them in future sessions automatically
vibe-trading run -p "Build a crypto strategy that fits my risk profile"# Analyze a broker export or earnings report
vibe-trading --upload trades_export.csv
vibe-trading run -p "Profile my trading behavior and identify any biases"
vibe-trading --upload NVDA_Q1_earnings.pdf
vibe-trading run -p "Summarize the key risks and beats/misses from this earnings report"vibe-trading serve --port 8899| Method | Endpoint | Description |
|---|---|---|
GET |
/runs |
runs ๋ชฉ๋ก |
GET |
/runs/{run_id} |
run details |
GET |
/runs/{run_id}/pine |
multi-platform indicator export |
POST |
/sessions |
session ์์ฑ |
POST |
/sessions/{id}/messages |
message ์ ์ก |
GET |
/sessions/{id}/events |
SSE event stream |
POST |
/upload |
๋ฌธ์, ๋ฐ์ดํฐ ํ์ผ ๋๋ ์ด๋ฏธ์ง ์ ๋ก๋ |
GET |
/swarm/presets |
swarm presets ๋ชฉ๋ก |
POST |
/swarm/runs |
swarm run ์์ |
GET |
/swarm/runs/{id}/events |
Swarm SSE stream |
GET |
/alpha/list |
zoo/theme/universe๋ก alpha ๋ชฉ๋ก ํํฐ๋ง |
GET |
/alpha/{alpha_id} |
Alpha ๋ฉํ๋ฐ์ดํฐ + ์์ค ์ฝ๋ |
POST |
/alpha/bench |
Bench ์์
์์ (job_id ๋ฐํ) |
GET |
/alpha/bench/{job_id}/stream |
SSE ์งํ ์คํธ๋ฆผ |
GET |
/settings/llm |
Web UI LLM settings ์ฝ๊ธฐ |
PUT |
/settings/llm |
local LLM settings ์ ๋ฐ์ดํธ |
GET |
/settings/data-sources |
local data source settings ์ฝ๊ธฐ |
PUT |
/settings/data-sources |
local data source settings ์ ๋ฐ์ดํธ |
GET |
/channels/status |
IM channel runtime๊ณผ adapter status ์ฝ๊ธฐ |
POST |
/channels/start |
์ค์ ๋ IM channel adapters ์์ |
POST |
/channels/stop |
์ค์ ๋ IM channel adapters ์ค์ง |
POST |
/channels/pairing/command |
shared store์ sender-pairing command ์คํ |
POST |
/scheduled-runs |
์์ฝ ๋ฆฌ์์น ์์ ์์ฑ (interval-ms ๋๋ cron) |
GET |
/scheduled-runs |
์์ฝ๋ ์์ ๋ชฉ๋ก |
GET |
/scheduled-runs/status |
์คํ๊ธฐ ์ํ ๋ฐ ๊ตฌ์ฑ๋ ์ ๋ฌ ๋์ |
GET |
/scheduled-runs/{job_id} |
์์ฝ ์์ 1๊ฑด ์กฐํ |
DELETE |
/scheduled-runs/{job_id} |
์์ฝ ์์ ์ทจ์ |
POST |
/scheduled-runs/proposals/{proposal_id}/commit |
์์ด์ ํธ๊ฐ ์ ์ํ ์์ฑ/์ทจ์ ํ์ |
POST |
/scheduled-runs/proposals/{proposal_id}/discard |
์์ด์ ํธ ์ ์ ํ๊ธฐ |
GET |
/scheduled-runs/playbooks |
๋ฆฌ์์น ํ ํ๋ฆฟ ๋ชฉ๋ก |
GET |
/scheduled-runs/playbooks/{slug} |
ํ ํ๋ฆฟ 1๊ฐ์ ์ ์ธ๋ ๋ณ์ ํ์ |
POST |
/scheduled-runs/playbooks/{slug} |
ํ ํ๋ฆฟ์ผ๋ก ์์ ์์ฝ |
POST |
/sessions/{id}/cancel |
์งํ ์ค์ธ ์คํ ์ค์ง(์คํจ๊ฐ ์๋๋ผ ์ทจ์๋ก ๊ธฐ๋ก) |
POST |
/sessions/{id}/title/auto |
์ฒซ ๋ํ๋ก ์ธ์ ์ ๋ชฉ ์์ฑ(์๋ ์ด๋ฆ ๋ณ๊ฒฝ์ ๋ฎ์ด์ฐ์ง ์์) |
GET |
/correlation/regime |
์๊ด ์ฃ์ง ๋ฐ๋ ๋ ์ง ํ์๋ผ์ธ |
GET |
/agents.json ยท POST /v1/query |
OpenBB Workspace ๋ธ๋ฆฌ์ง โ ์ ํ์ openbb extra ์ค์น ์์๋ง ๋ฑ๋ก, /v1/query๋ ์ธ์ฆ ํ์ |
Interactive docs: http://localhost:8899/docs
localhost ๊ฐ๋ฐ์์ vibe-trading serve๋ browser workflow๋ฅผ ๋จ์ํ๊ฒ ์ ์งํฉ๋๋ค. non-local client์์๋ ๋ฏผ๊ฐํ API endpoint์ API_AUTH_KEY๊ฐ ํ์ํฉ๋๋ค. JSON/upload request์๋ Authorization: Bearer <key>๋ฅผ ์ฌ์ฉํ์ธ์. Browser EventSource stream์ Web UI Settings์ ๊ฐ์ key๋ฅผ ํ ๋ฒ ์
๋ ฅํ๋ฉด Web UI๊ฐ ์ฒ๋ฆฌํฉ๋๋ค.
Shell-capable process tools(bash / background_run / cancel_background)๋ ๋ํํ local CLI์์๋ง ํ์ฑํ๋ฉ๋๋ค. ๊ทธ ์ธ ๋ชจ๋ ํ๋ฉด โ HTTP/SSE API์ MCP server์ ๋ชจ๋ transport(stdio ํฌํจ) โ ๋ VIBE_TRADING_ENABLE_SHELL_TOOLS=1์ ๋ช
์์ ์ผ๋ก ์ค์ ํ์ง ์๋ ํ(๋๋ vibe-trading-mcp์ --enable-shell-tools๋ฅผ ์ ๋ฌํ์ง ์๋ ํ) ๋นํ์ฑ ์ํ๋ก ์ ์ง๋ฉ๋๋ค. transport ์ข
๋ฅ๊ฐ ์๋ฌต์ ์ผ๋ก shell ์ ๊ทผ์ ๋ถ์ฌํ๋ ์ผ์ ์์ต๋๋ค. Document์ journal reader๋ ๊ธฐ๋ณธ์ ์ผ๋ก upload/import roots๋ก ์ ํ๋ฉ๋๋ค. ํ์ผ์ ~/.vibe-trading/uploads, ~/.vibe-trading/runs, ./uploads, ./data(๋๋ ๋ ๊ฑฐ์ agent/uploads / agent/runs) ์๋์ ๋๊ฑฐ๋, VIBE_TRADING_ALLOWED_FILE_ROOTS๋ก ์ ์ฉ directory๋ฅผ ์ถ๊ฐํ์ธ์. ์ธ์
, ์คํ ์ฐ์ถ๋ฌผ, swarm ์คํ, ์
๋ก๋, sessions.db ์ธ๋ฑ์ค๋ ~/.vibe-trading ์๋๋ก ํตํฉ๋๋ฉฐ(shell ํ๊ฒฝ ๋ณ์ VIBE_TRADING_HOME์ผ๋ก ์ ์ฒด ์ด๋ ๊ฐ๋ฅ), ๊ธฐ์กด ์์น์ ์ด๋ ฅ์ ์ฒซ ์คํ ์ ์๋์ผ๋ก ์ด์ ๋ฉ๋๋ค.
Web UI Settings page์์๋ local user๊ฐ LLM provider/model, base URL, generation parameters, reasoning effort, Tushare token ๊ฐ์ ์ ํ์ market data credentials๋ฅผ ์
๋ฐ์ดํธํ ์ ์์ต๋๋ค. Settings๋ agent/.env์ ์ ์ฅ๋๋ฉฐ provider defaults๋ agent/src/providers/llm_providers.json์์ ๋ก๋๋ฉ๋๋ค.
Settings read๋ side effect๊ฐ ์์ต๋๋ค. GET /settings/llm๊ณผ GET /settings/data-sources๋ agent/.env๋ฅผ ๋ง๋ค์ง ์์ผ๋ฉฐ project-relative path๋ง ๋ฐํํฉ๋๋ค. Settings read/write๋ credential state๋ฅผ ๋
ธ์ถํ๊ฑฐ๋ credential/runtime environment๋ฅผ ์
๋ฐ์ดํธํ ์ ์์ผ๋ฏ๋ก API_AUTH_KEY๊ฐ ์ค์ ๋์ด ์์ผ๋ฉด ์ธ์ฆ์ด ํ์ํฉ๋๋ค. dev mode์์ API_AUTH_KEY๊ฐ ์ค์ ๋์ง ์์ ๊ฒฝ์ฐ settings access๋ loopback client์์๋ง ํ์ฉ๋ฉ๋๋ค.
๊ฐ์ Settings page์๋ local operator์ฉ IM ์ฑ๋ ํจ๋๋ ์์ต๋๋ค. /channels/status๋ฅผ pollingํ๊ณ configured/enabled/available/loaded/running ์ํ์ adapter recovery hints๋ฅผ ํ์ํ๋ฉฐ, ํฐ๋ฏธ๋๋ก ๋์๊ฐ์ง ์๊ณ configured channel runtime์ ์์ํ๊ฑฐ๋ ์ค์งํ ์ ์์ต๋๋ค.
๋ฆฌ์์น prompt๋ backtest๋ฅผ ๋ฐ๋ณต ์ผ์ ์ผ๋ก ์คํํฉ๋๋ค โ Web UI์ ์์ฝ ํ์ด์ง์์๋, REST๋ก๋ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ๋ฐฑ๊ทธ๋ผ์ด๋ executor๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๊บผ์ ธ ์์ต๋๋ค โ VIBE_TRADING_ENABLE_SCHEDULER=1๋ก server๋ฅผ ์์ํ๋ฉด ํ์ฑํ๋ฉ๋๋ค:
VIBE_TRADING_ENABLE_SCHEDULER=1 vibe-trading serve --port 8899๊ทธ๋ฐ ๋ค์ REST๋ก ์์
์ ์์ฑํฉ๋๋ค. schedule์ ๋จ์ ์ ์(๊ฐ๊ฒฉ, ๋จ์ ๋ฐ๋ฆฌ์ด)์ด๊ฑฐ๋ 5ํ๋ cron ํํ์(๋ถ ์ ์ผ ์ ์์ผ; ๊ฐ ํ๋๋ *, */n, ์ซ์, ์ผํ ๋ชฉ๋ก, 1-5 ๊ฐ์ ๋ฒ์ ์ง์)์
๋๋ค. cron์ ์์
์ ์ ํ์ timezone(IANA ํค)์ ๋ฒฝ์๊ณ ๊ธฐ์ค์ผ๋ก ํ๊ฐ๋์ด ์๋จธํ์ ์ ํ ํ์๋ ์ฃผ๊ธฐ๊ฐ ์ ์ง๋ฉ๋๋ค โ ๋ด์ ์กด์ฌํ์ง ์๋ ์๊ฐ์ ๊ฑด๋๋ฐ๊ณ , ๊ฐ์์ ์ค๋ณต๋๋ ์๊ฐ์ ์ฒซ ๋ฒ์งธ ๋ฐ์ ์ ํ ๋ฒ๋ง ์คํ๋ฉ๋๋ค. timezone์ด ์๋ ์์
์ ๊ธฐ์กด UTC ์๋ฏธ๋ฅผ ์ ์งํฉ๋๋ค:
# 6์๊ฐ๋ง๋ค (cron)
curl -X POST http://localhost:8899/scheduled-runs \
-H "Content-Type: application/json" \
-d '{"prompt":"Scan CSI300 for momentum breakouts and backtest the top 5","schedule":"0 */6 * * *"}'
# ํ์ผ 23:30 (์คํด๋๋ ํ์ง ์๊ฐ, ์๋จธํ์์๋ ์ ๋ฐ๋ฆผ)
curl -X POST http://localhost:8899/scheduled-runs \
-H "Content-Type: application/json" \
-d '{"prompt":"Pre-open scan of NZX names","schedule":"30 23 * * 1-5","timezone":"Pacific/Auckland"}'
# ๋ชฉ๋ก / ์ทจ์
curl http://localhost:8899/scheduled-runs
curl -X DELETE http://localhost:8899/scheduled-runs/<job_id>๊ฐ ์คํ์ ์ agent session์์ prompt๋ฅผ ์คํํ๋ฉฐ(์ ํ์ backtest ํ๋ผ๋ฏธํฐ๋ config์ ๋ฃ์ต๋๋ค), ์์
์ ~/.vibe-trading/์ ์ ์ฅ๋์ด ์ฌ์์ ํ์๋ ์ ์ง๋ฉ๋๋ค. ์ด ํ๋๊ทธ๊ฐ ์์ผ๋ฉด /scheduled-runs endpoint๋ ์์
์ ๊ธฐ๋กํ์ง๋ง ์คํ๋์ง๋ ์์ต๋๋ค. API_AUTH_KEY๊ฐ ์ค์ ๋ ๊ฒฝ์ฐ ๊ฐ ํธ์ถ์ -H "Authorization: Bearer <key>"๋ฅผ ์ถ๊ฐํ์ธ์.
์์ด์ ํธ์๊ฒ ๋ณด์ด๋ ์ค์ผ์ค๋ง ๋๊ตฌ๋ scheduled_research ํ๋๋ฟ์
๋๋ค. ์ฝ๊ธฐ ์ก์
์ ์ํ/์์
/ํ
ํ๋ฆฟ์ ์กฐํํ๊ณ , propose_create ์ propose_cancel ์ ์งง๊ฒ ์ ์ง๋๋ ํ์ธ ์ ์๋ง ์ ์ฅํ ๋ฟ ์์
์ ์ฅ์๋ฅผ ์ง์ ๋ณ๊ฒฝํ์ง ์์ต๋๋ค. Web ์ ๊ฒฐ์ ์ ํ์ธ ์นด๋๋ฅผ ๋ ๋๋งํ๊ณ CLI ๋ y/N ์ ๋ฌผ์ผ๋ฉฐ, IM ๋ํ์์๋ ์ ํํ confirm(็กฎ่ฎค) ๋๋ cancel(ๅๆถ) ๋ก ๋ตํด์ผ ํฉ๋๋ค โ commit ์๋ํฌ์ธํธ๋ฅผ ํธ์ถํ๋ ๊ฒ์ ์ด ํ๋ฉด ๋์๋ฟ์
๋๋ค. end_at ์ด ์ง๋ ์์
์ expired ๊ฐ ๋์ด ๋ค์ ์คํ๋์ง ์์ต๋๋ค. ์ ๋ฌ์ ์ฑ๋ ์ค๋ฆฝ์ ์
๋๋ค. channels.deliveryTargets ์๋์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๋ถํฌ๋ช
๋์ ์ฐธ์กฐ๋ฅผ ๊ตฌ์ฑํ๋ฉด ์์ด์ ํธ์ ํ์ธ UI ์๋ ref/label/channel ๋ง ๋ณด์ด๊ณ ํ๋ก๋ฐ์ด๋์ ์์ chat/user id ๋ ๋
ธ์ถ๋์ง ์์ต๋๋ค. ์ด๋ํฐ๊ฐ ์์์ฆ ์์ด ์ฑ๊ณตํ๋ฉด ์ ๋ฌ ์ํ๋ accepted, ํ๋ก๋ฐ์ด๋ ๋ฉ์์ง id ๊ฐ ๋ฐํ๋ ๋๋ง sent ์
๋๋ค(ํ์ฌ Feishu ๊ฐ ์๋ํฌ์๋ ์ง์).
์ค์ผ์ค๋ฌ์๋ ๋ฐ๋ก ์์ฝํ ์ ์๋ ๋ฆฌ์์น ํ
ํ๋ฆฟ 5๊ฐ๊ฐ ๋ค์ด ์์ต๋๋ค โ premarket-brief, earnings-season-tracker, portfolio-checkup, a-share-money-flow, institutional-holdings-diff. ๊ฐ ํ
ํ๋ฆฟ์ ๋๊ตฌ ์ด๋ฆ์ ์ง๋ชฉํ์ง ์๊ณ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์์ฐ์ด๋ก ์ ์ธํ๋ฏ๋ก ๋๊ตฌ ํ๋ฉด์ด ๋์ด๋๋ ๊ทธ๋๋ก ๋์ํ๋ฉฐ, ๋น ์ง ์
๋ ฅ์ ๊ธฐ์ต์ผ๋ก ์ฑ์ฐ์ง ๋ง๊ณ ๋ฐํ๋๋ก ์๊ตฌํฉ๋๋ค. CLI, REST, TUI์ /playbook ์ด๋์๋ ์ธ ์ ์์ต๋๋ค:
vibe-trading playbook list # ํ
ํ๋ฆฟ 5๊ฐ
vibe-trading playbook show premarket-brief # ๋ณธ๋ฌธ, ์ ์ธ๋ ๋ณ์, ๊ถ์ฅ ์ฃผ๊ธฐ
vibe-trading playbook create premarket-brief \
--var home_market="US equities" --var watchlist="AAPL, MSFT, NVDA" \
--timezone America/New_York
curl http://localhost:8899/scheduled-runs/playbooks
curl http://localhost:8899/scheduled-runs/playbooks/premarket-brief
curl -X POST http://localhost:8899/scheduled-runs/playbooks/premarket-brief \
-H "Content-Type: application/json" \
-d '{"variables":{"home_market":"US equities","watchlist":"AAPL, MSFT, NVDA"}}'{} ๋ฅผ POSTํ๋ฉด ํ
ํ๋ฆฟ ์์ฒด์ ๊ถ์ฅ ์ฃผ๊ธฐ์ ๊ธฐ๋ณธ ๋ณ์๋ก ์์ฝ๋ฉ๋๋ค. ๋ ๋๋ง๋ ๋ณธ๋ฌธ์ด ๊ทธ๋๋ก ์์
prompt๊ฐ ๋๋ฉฐ, ์ ์ธ๋์ง ์์ ๋ณ์๋ ์กฐ์ฉํ ๋ฌด์๋์ง ์๊ณ ๊ฑฐ๋ถ๋ฉ๋๋ค.
Vibe-Trading์ ๋ชจ๋ MCP-compatible client๋ฅผ ์ํด 74๊ฐ MCP tools๋ฅผ ์ ๊ณตํฉ๋๋ค. stdio subprocess๋ก ์คํ๋๋ฏ๋ก server setup์ด ํ์ ์์ต๋๋ค. ํต์ฌ research tools๋ HK/US/crypto์์ API key ์์ด ์๋ํ๊ณ , trading connector tools๋ ์ ํ๋ connector profile์ ์ฌ์ฉํ๋ฉฐ, run_swarm๋ง LLM key๊ฐ ํ์ํฉ๋๋ค.
ํ๊ฒฝ ๋ณ์: server๋ client๊ฐ ์ง์ spawnํ๋ฏ๋ก shell์ export๋ ์ ๋ฌ๋์ง ์์ต๋๋ค โโ client์ env block์ ์ค์ ํ์ธ์. ์์ฑ๋ backtest code๋ allowed run roots ์์ผ๋ก ์ ํ๋๋ฏ๋ก, ๊ฒฐ๊ณผ๋ฅผ ์์ ์ ์์
directory์ ์ฐ๋ ค๋ฉด VIBE_TRADING_ALLOWED_RUN_ROOTS๊ฐ ํ์ํฉ๋๋ค:
{
"mcpServers": {
"vibe-trading": {
"command": "vibe-trading-mcp",
"env": { "VIBE_TRADING_ALLOWED_RUN_ROOTS": "C:\\Users\\me\\research" }
}
}
}Claude Desktop
claude_desktop_config.json์ ์ถ๊ฐ:
{
"mcpServers": {
"vibe-trading": {
"command": "vibe-trading-mcp"
}
}
}OpenClaw
~/.openclaw/config.yaml์ ์ถ๊ฐ:
skills:
- name: vibe-trading
command: vibe-trading-mcpCursor / Windsurf / ๊ธฐํ MCP clients
vibe-trading-mcp # stdio (default)
vibe-trading-mcp --transport http # Streamable HTTP (spec default) at /mcp
vibe-trading-mcp --transport sse # legacy SSE (deprecated)๋
ธ์ถ๋๋ MCP tools(74): list_skills, load_skill, start_research_goal, get_research_goal, add_goal_evidence, update_research_goal_status, backtest, factor_analysis, alpha_zoo, alpha_bench, analyze_options, analyze_options_payoff, pattern_recognition, read_url, read_document, web_search, write_file, read_file, list_strategies, query_strategies, get_strategy_evidence, refresh_strategy_evidence, trading_connections, trading_select_connection, trading_check, trading_account, trading_positions, trading_orders, trading_quote, trading_history, list_swarm_presets, run_swarm, get_market_data, get_fund_flow, get_dragon_tiger, get_northbound_flow, get_margin_trading, get_block_trades, get_shareholder_count, get_lockup_expiry, get_sector_info, get_research_reports, get_stock_news, get_sec_filings, get_financial_statements, get_options_chain, get_stock_profile, screen_market, search_symbol, get_macro_series, iwencai_search, qveris_search, qveris_inspect, qveris_execute, get_institutional_holdings, etf_holdings, prediction_market, research_papers, get_swarm_status, get_run_result, list_runs, reap_stale_runs, retry_run, analyze_trade_journal, extract_shadow_strategy, run_shadow_backtest, render_shadow_report, scan_shadow_signals, quantlib_call, cashflow_performance, orderbook_depth, sentiment, technical_indicators, get_fundamentals.
run_swarm worker๋ ์ด์์๊ฐ ์น์ธํ ์ธ๋ถ MCP ์๋ฒ์ ๋๊ตฌ๋ฅผ ํธ์ถํ ์ ์์ต๋๋ค. ์๋ฒ ์ธก allowlist๋ VIBE_TRADING_SWARM_AGENT_CONFIG, ~/.vibe-trading/swarm-agent.json, ๋๋ ํด๋ฐฑ์ธ ~/.vibe-trading/agent.json์ ์ค์ ํ๊ณ , swarm preset์์๋ ๋ก์ปฌ MCP ๋ํผ ์ด๋ฆ(์: mcp_internal_kb_search)์ผ๋ก ์๊ฒฉ ๋๊ตฌ๋ฅผ ๋์ดํฉ๋๋ค. ํธ์ถ์๊ฐ ์ ๋ฌํ variables๋ ํ
ํ๋ฆฟ ๋ฐ์ดํฐ๋ก๋ง ๋จ์ผ๋ฉฐ MCP URL, ๋ช
๋ น, ํ๊ฒฝ ๋ณ์, allowlist ์ฌ์ ์๋ฅผ ์ฃผ์
ํ ์ ์์ต๋๋ค.
ClawHub์์ ์ค์น(ํ ๋ฒ์ ๋ช ๋ น)
npx clawhub@latest install vibe-trading --forceskill์ด ์ธ๋ถ API๋ฅผ ์ฐธ์กฐํ์ฌ VirusTotal ์๋ ์ค์บ์ด ํธ๋ฆฌ๊ฑฐ๋๋ฏ๋ก
--force๊ฐ ํ์ํฉ๋๋ค. ์ฝ๋๋ ์์ ํ ์คํ์์ค์ด๋ฉฐ ๊ฒํ ํ ์ ์์ต๋๋ค.
์ด ๋ช ๋ น์ skill + MCP config๋ฅผ agent์ skills directory์ ๋ค์ด๋ก๋ํฉ๋๋ค. clone์ ํ์ ์์ต๋๋ค.
ClawHub์์ ๋ณด๊ธฐ: clawhub.ai/skills/vibe-trading
OpenSpace โ ์๊ฐ ์งํ ์คํฌ
90๊ฐ finance skills๋ ๋ชจ๋ open-space.cloud์ ๊ฒ์๋์ด ์์ผ๋ฉฐ OpenSpace์ self-evolution engine์ ํตํด ์์จ์ ์ผ๋ก ๋ฐ์ ํฉ๋๋ค.
OpenSpace์ ํจ๊ป ์ฌ์ฉํ๋ ค๋ฉด ๋ MCP server๋ฅผ agent config์ ์ถ๊ฐํ์ธ์:
{
"mcpServers": {
"openspace": {
"command": "openspace-mcp",
"toolTimeout": 600,
"env": {
"OPENSPACE_HOST_SKILL_DIRS": "/path/to/vibe-trading/agent/src/skills",
"OPENSPACE_WORKSPACE": "/path/to/OpenSpace"
}
},
"vibe-trading": {
"command": "vibe-trading-mcp"
}
}
}OpenSpace๋ 90๊ฐ skills๋ฅผ ๋ชจ๋ ์๋ ๋ฐ๊ฒฌํ์ฌ auto-fix, auto-improve, community sharing์ ํ์ฑํํฉ๋๋ค. OpenSpace-connected agent์์ search_skills("finance backtest")๋ก Vibe-Trading skills๋ฅผ ๊ฒ์ํ์ธ์.
๊ณต์ MetaTrader5 ํจํค์ง๋ฅผ ํตํด ๋ก์ปฌ์์ ์คํ ์ค์ธ MT5 ํฐ๋ฏธ๋์ ์ฐ๊ฒฐํฉ๋๋ค(Windows ์ ์ฉ):
pip install "vibe-trading-ai[mt5]"~/.vibe-trading/mt5.json์ ์ค์ ํ์ธ์(์ง์ ์์ฑ, ์ง์๋๋ ํ๊ฒฝ์์๋ chmod 600):
{
"login": 12345678,
"password": "...",
"server": "Exness-MT5Trial8",
"symbol_suffix": "m",
"max_order_volume": 1.0,
"max_order_notional_usd": 10000
}๊ทธ๋ค์:
vibe-trading connector use mt5-paper-sdk
vibe-trading connector check
vibe-trading connector account
vibe-trading connector quote EURUSD
vibe-trading connector history EURUSD| ํ๋กํ์ผ | ๊ณ์ | ์ฃผ๋ฌธ |
|---|---|---|
mt5-paper-sdk |
๋ฐ๋ชจ | ์ฝ๊ธฐ ์ ์ฉ |
mt5-live-sdk-readonly |
์ค๊ณ์ข | ์ฝ๊ธฐ ์ ์ฉ |
mt5-paper-trade |
๋ฐ๋ชจ | ์ง์ ์ฃผ๋ฌธ(connector ํฌ๊ธฐ ๊ฐ๋ ์ ์ฉ) |
mt5-live-trade |
์ค๊ณ์ข | mandate + kill-switch ๊ฒ์ดํธ |
์์ ๊ฒฝ๊ณ: "paper"๋ ๋ธ๋ก์ปค์ ๋ฐ๋ชจ ๊ณ์ ์ด๋ฉฐ ๋ชจ๋ ํธ์ถ๋ง๋ค ๊ฒ์ฆ๋ฉ๋๋ค โ ํฐ๋ฏธ๋์ด account_info().trade_mode์ ๋ก๊ทธ์ธ ์ ๋ณด๋ฅผ ๊ทธ๋๋ก ๋๋๋ ค์ฃผ๋ฏ๋ก, ์ค๊ณ์ข์ ๋ถ์ paper ํ๋กํ์ผ(๋๋ ๊ทธ ๋ฐ๋)์ ๊ฐ์ ๊ฑฐ๋ถ๋ฉ๋๋ค. MT5๋ ์ฃผ๋ฌธ ํฌ๊ธฐ๋ฅผ lot ๋จ์๋ก ๊ณ์ฐํฉ๋๋ค(EURUSD 1 lot = 100,000 EUR); live mandate ๊ฒ์ดํธ๋ connector์ USD ์ฌ์ด์ง ํ
์ผ๋ก lot ๊ฐ๊ฒฉ์ ํ์ฐํ๊ณ , connector ์์ฒด์ max_order_volume / max_order_notional_usd ๊ฐ๋๋ ๋ฐ๋ชจ์ ์ค๊ณ์ข ๋ชจ๋์ ์ ์ฉ๋๋ฉฐ, ๋ช
๋ชฉ ๊ธ์ก์ ๊ฐ๊ฒฉ์ผ๋ก ํ์ฐํ ์ ์์ผ๋ฉด fail-closed ์ฒ๋ฆฌ๋ฉ๋๋ค. ํค์ง ๊ณ์ (Exness ๊ธฐ๋ณธ๊ฐ) ์ฐธ๊ณ : ๋ฐ๋ ๋ฐฉํฅ ์ฃผ๋ฌธ์ ํค์ง๋ฅผ ์๋ก ์ฝ๋๋ค โ ํฌ์ง์
์ ํฐ์ผ์ผ๋ก ์ข
๋ฃํ์ธ์(ํฌ์ง์
ํฐ์ผ์ ๋๊ธด trading_cancel_order). ์ด๋ ๊ฒ ํ๋ฉด ์ฒด๊ฒฐ์ด ํด๋น ํฌ์ง์
์ ๊ณ ์ ๋์ด ์ต์คํฌ์ ๋ฅผ ์ค์ด๋ ๋ฐฉํฅ์ผ๋ก๋ง ์๋ํฉ๋๋ค. ๋กค๋ฐฑ/์ค๋จ ๊ฒฝ๋ก: kill switch๋ ์ ๊ท live ์ฃผ๋ฌธ์ ์ฐจ๋จํ๋ฉฐ, ์ทจ์๋ ๊ณ์ ์ฌ์ฉํ ์ ์๊ณ ๊ฐ์ฌ ๋ก๊ทธ์ ๊ธฐ๋ก๋ฉ๋๋ค. Mandate ํ๋๋ USD ๊ธฐ์ค์ด๋ฉฐ, USD๊ฐ ์๋ ๊ณ์ ํตํ๋ ๋ธ๋ก์ปค ์ธก์์ ๊ณ์ ํตํ ๊ธฐ์ค ๋ง์ง์ผ๋ก ๊ฐ์ ๋ฉ๋๋ค.
mt5 ์์ฅ ๋ฐ์ดํฐ ๋ก๋(์ธํ ํด๋ฐฑ ์ฒด์ธ์ ์ ๋)๋ ๊ฐ์ mt5.json์ ๊ณต์ ํฉ๋๋ค โ ํ์ผ์ด ์์ผ๋ฉด ๋ง์ง๋ง์ผ๋ก ์ฌ์ฉ๋, ๋ก๊ทธ์ธ๋ ํฐ๋ฏธ๋์ ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ์ฐ๊ฒฐ๋ฉ๋๋ค.
API ํค ์(x-api-key + x-user-key)์ผ๋ก eToro Public API์ ๋ฐ๋ชจยท์ค๊ณ์ข์ ์ฐ๊ฒฐํฉ๋๋ค. ๋ฐ๋ชจ์ ์ค๊ณ์ข๋ ๊ตฌ์กฐ์ ์ผ๋ก ๋ถ๋ฆฌ๋์ด ์์ผ๋ฉฐ, ๋ฐ๋ชจ ํค๋ /demo API ๊ฒฝ๋ก์๋ง ๋๋ฌํฉ๋๋ค.
~/.vibe-trading/etoro.json์ ์ค์ ํ์ธ์(์ง์ ์์ฑ; ์ง์๋๋ ํ๊ฒฝ์์๋ chmod 600):
{
"api_key": "YOUR_PUBLIC_API_KEY",
"user_key": "YOUR_USER_KEY",
"profile": "paper"
}๋๋ ~/.vibe-trading/.env์ ETORO_API_KEY์ ETORO_USER_KEY๋ฅผ ์ค์ ํด๋ ๋ฉ๋๋ค.
๊ทธ๋ค์:
vibe-trading connector use etoro-paper-sdk
vibe-trading connector check
vibe-trading connector account
vibe-trading connector positions
vibe-trading connector quote BTC| ํ๋กํ์ผ | ๊ณ์ข | ์ฃผ๋ฌธ |
|---|---|---|
etoro-paper-sdk |
๋ฐ๋ชจ | ์ฝ๊ธฐ ์ ์ฉ |
etoro-live-sdk-readonly |
์ค๊ณ์ข | ์ฝ๊ธฐ ์ ์ฉ |
etoro-paper-trade |
๋ฐ๋ชจ | ๋ฐ๋ชจ ๊ฒฝ๋ก์ ์ง์ ์ฃผ๋ฌธ |
etoro-live-trade |
์ค๊ณ์ข | mandate + kill switch ๊ฒ์ดํธ |
์ฌ๋ณผ ์กฐํ๋ eToro์ internalSymbolFull ๊ฒ์์ ์ฌ์ฉํฉ๋๋ค(์: BTC โ instrument id 100000). ๊ฑฐ๋ ์ ์ etoro_search_instruments ์์ด์ ํธ ๋๊ตฌ๋ก ํฐ์ปค๋ฅผ ํด์ํ์ธ์.
์์ ๊ฒฝ๊ณ: ๋ฐ๋ชจ์ ์ค๊ณ์ข๋ ๊ฒฝ๋ก ๋ถ๋ฆฌ + ํค ๋ฐ์ธ๋ฉ์
๋๋ค(paper_guard: path_separated_key_bound). ์ค๊ณ์ข์์ ๋ฆฌ์คํฌ๋ฅผ ๋๋ฆฌ๋ ๋์(์ ๊ท ์ง์
, ์นดํผ ์์/์ฆ์ก)์๋ ์ธ๊ฐ๋ mandate, ์ค๋จ๋์ง ์์ ๋ช
ํํ ์ํ, ๊ทธ๋ฆฌ๊ณ ์นดํผ ๋ช
๋ชฉ๊ธ์ก ์ ํ์ ์ํ ๊ฒ์ฆ๋ USD ๊ณ์ข๊ฐ ํ์ํฉ๋๋ค. ๊ฒ์ฆ๋ ์ ๋ยท๋ถ๋ถ ์ฒญ์ฐ, ๋ฏธ์ฒด๊ฒฐ ์ฃผ๋ฌธ ์ทจ์, ์นดํผ ์ข
๋ฃ๋ ์ค๋จ ์ํ์์๋ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ๋ชจ๋ ๊ฐ์ฌ ๋ก๊ทธ์ ๋จ์ต๋๋ค. ๋๊ธฐ ์ค์ธ ์ฒญ์ฐ์ ์ทจ์์ ํฌ์ง์
์คํฑ ์์ ์ ๋ฐ๋ชจ ์ ์ฉ์
๋๋ค. ๋ ๋์์ ์ต์คํฌ์ ๋ฅผ ๋๋ฆฌ๊ฑฐ๋ ์ถ๊ฐ ์ฆ๊ฑฐ๊ธ์ ์ด์ ํ ์ ์๋๋ฐ ์ฆ๋ถ USD ๋ฆฌ์คํฌ๋ฅผ ์ ๋ํํ ๋งํผ์ API ๋ฐ์ดํฐ๊ฐ ์์ด, ์ค๊ณ์ข ๊ฒฝ๋ก๋ fail-closed๋ฉ๋๋ค. ์นดํผ ๊ธ์ก์ eToro ๊ณ์ข ํตํ๋ก ํ์๋๋ฉฐ, ์นดํผ ์์ยท์กฐ์ ๋ง๋ค ํธ์ถ์๊ฐ 1~35์ URL-safe ์ฐธ์กฐ id๋ฅผ ์ ๊ณตํด์ผ ํด๋งํ ์ ์์ต๋๋ค. eToro ์ ์ฉ ์ฐ๊ธฐ ๋๊ตฌ(etoro_close_position, etoro_copy_* ๋ฑ)๋ ์์ด์ ํธ ๋๊ตฌ ์ ์ฉ์ผ๋ก MCP๋ CLI์ ๋
ธ์ถ๋์ง ์์ต๋๋ค. ๋กค๋ฐฑ: ํด๋น ์ปค๋ฅํฐ ์ปค๋ฐ์ revertํ๊ฑฐ๋ ํ๋กํ์ผ์ ๋นํ์ฑํํ์ธ์. halt๋ ์๋ก์ด ์ค๊ณ์ข ๋ฆฌ์คํฌ ์ฆ๊ฐ ๋์์ ์ฐจ๋จํฉ๋๋ค.
์์ MCP Plugin๊ณผ๋ ๋ฐ๋ ๋ฐฉํฅ์ ๋๋ค. MCP Plugin์ ๋ค๋ฅธ agent๊ฐ Vibe-Trading์ ๋๊ตฌ๋ฅผ ํธ์ถํ๊ฒ ํฉ๋๋ค. ์ด ์ ์ ๋ด์ฅ Vibe-Trading agent๊ฐ ๋น์ ์ ์ธ๋ถ MCP ์๋ฒ์ ์๋ ๋๊ตฌ๋ฅผ ํธ์ถํ๊ฒ ํฉ๋๋ค.
~/.vibe-trading/agent.json์ ๋ง๋ญ๋๋ค:
{
"mcpServers": {
"my-server": {
"command": "uvx",
"args": ["my-mcp-server"]
}
}
}๊ทธ๋ฐ ๋ค์ ์๋ฌด CLI ๋ช ๋ น์ด๋ ์คํํ๋ฉด ๋ฉ๋๋ค โ ์ผ๋ฐ ์ธ๋ถ ์๋ฒ์ ๋๊ตฌ๋ ๋ก์ปฌ ๋๊ตฌ ๋ค์ agent ๋ ์ง์คํธ๋ฆฌ๋ก ์๋ ์ฃผ์ ๋ฉ๋๋ค:
vibe-trading run "use my-server to do X"Vibe-Trading์ Interactive Brokers์ ๊ณต์ ์๊ฒฉ MCP endpoint์ ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ์ง์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
~/.vibe-trading/agent.json์ ๋ค์์ ์ถ๊ฐํ์ธ์:
{
"mcpServers": {
"ibkr": {
"type": "streamableHttp",
"url": "https://api.ibkr.com/v1/api/mcp-public",
"auth": {
"type": "oauth",
"scopes": ["mcp.read"],
"clientName": "Vibe-Trading",
"cacheDir": "~/.vibe-trading/live/ibkr/oauth"
},
"enabledTools": ["*"]
}
}
}์ด์ด์ ๋ธ๋ผ์ฐ์ OAuth ํ๋ก์ฐ๋ฅผ ์์ํฉ๋๋ค:
vibe-trading connector authorize ibkr-live-official-mcp-readonly์์ผ๋์นด๋๋ IBKR์ mcp.read ํ๋ก๋ธ์๋ง ํ์ฉ๋ฉ๋๋ค. ์ด profile์ ์น์ธํด๋ ํ์ธ๋๋ ๊ฒ์ IBKR ๊ณต์
์ฝ๊ธฐ scope ์ ๊ทผ๊น์ง์ด๋ฉฐ, IBKR์ด ์์ ํ๊ฒ ๋งคํํ ์ ์๋ ์์ ์ ์ธ ์ฝ๊ธฐ ๋๊ตฌ ์ด๋ฆ์ ๊ณต๊ฐํ๊ธฐ ์ ๊น์ง
๋ฒ์ฉ trading_account์ trading_positions ํธ์ถ์ ๊ณ์ ๋นํ์ฑ ์ํ์
๋๋ค. mcp.write๋ฅผ ์ถ๊ฐํ๋
์ค์ ์ ๋๊ตฌ allowlist๋ฅผ ๋ช
์์ ์ผ๋ก ๊ณ ์ ํด์ผ ํ๋ฉฐ, ๊ทธ๋๋ ์ค๊ฑฐ๋ order guard๋ฅผ ํต๊ณผํฉ๋๋ค.
IBKR์ด ์ฌ์ ๋ฑ๋ก๋ OAuth client๋ฅผ ๋ฐ๊ธํ๋ค๋ฉด auth ์์ clientId์ clientSecret์ ์ถ๊ฐํ์ธ์.
IBKR์ OAuth client ์น์ธ์ ๊ธฐ๋ค๋ฆด ์ ์๋ค๋ฉด ๋ก์ปฌ TWS ๋๋ IB Gateway ์ธ์
์ ์ฐ๊ฒฐํ์ธ์. ์๊ฒฉ ์ฆ๋ช
์
IBKR ๋ฐ์คํฌํฑ ์ฑ ์์ ๋จ๊ณ , Vibe-Trading์ 127.0.0.1์๋ง ์ ์ํด ์ด๋ฅผ ์ปค๋ฅํฐ profile๋ก ๋
ธ์ถํฉ๋๋ค.
์ ํ์ SDK๋ฅผ ์ค์นํฉ๋๋ค:
pip install "vibe-trading-ai[ibkr]"TWS ํ์ดํผ ํธ๋ ์ด๋ฉ ๋๋ IB Gateway ํ์ดํผ๋ฅผ ์ด๊ณ API socket clients๋ฅผ ํ์ฑํํ ๋ค ์คํํฉ๋๋ค:
vibe-trading connector list
vibe-trading connector use ibkr-paper-local
vibe-trading connector configure ibkr-paper-local --yes
vibe-trading connector check
vibe-trading connector account
vibe-trading connector positions
vibe-trading connector orders
vibe-trading connector quote AAPL
vibe-trading connector history AAPL --duration "30 D" --bar-size "1 day"๋ก์ปฌ ๊ธฐ๋ณธ ํฌํธ:
| ์ฑ | ํ์ดํผ | ์ค๊ฑฐ๋ ์ฝ๊ธฐ ์ ์ฉ |
|---|---|---|
| TWS | 7497 |
7496 |
| IB Gateway | 4002 |
4001 |
agent๊ฐ ๋
ธ์ถํ๋ ์ปค๋ฅํฐ ๋ฒ์ ๋๊ตฌ๋ trading_connections, trading_select_connection,
trading_check, trading_account, trading_positions, trading_orders, trading_quote,
trading_history์
๋๋ค. ์ค๊ฑฐ๋ ๋ธ๋ก์ปค์ ์์ MCP ๋๊ตฌ๋ mcp_<broker>_* ํํ๋ก ์ง์ ๋ฑ๋ก๋์ง
์์ต๋๋ค. IBKR ์ฃผ๋ฌธ ์คํ ๋๊ตฌ๋ ํ๋๋ ๋ฑ๋ก๋์ง ์์ต๋๋ค.
์ตํธ์ธ์ด๋ฉฐ ๊ธฐ๋ณธ์ ๊บผ์ ธ ์์ต๋๋ค. ์๋ TAP_* ๋ณ์๊ฐ ์ค์ ๋์ง ์์ผ๋ฉด ์ปค๋ฅํฐ๋ ์ด์ ๊ณผ ๋๊ฐ์ด
(๋ธ๋ก์ปค SDK ์ง๊ฒฐ) ๋์ํ๋ฉฐ ๋ฌ๋ผ์ง๋ ๊ฒ์ด ์์ต๋๋ค.
TAP(Tool Authorization Protocol)์ ์๊ฒฉ ์ฆ๋ช
ํ๋ก์์
๋๋ค. agent๋ ๋ธ๋ก์ปค
API์ ์๋ณธ ์ํฌ๋ฆฟ์ ๊ฒฐ์ฝ ๋ณด์ ํ์ง ์๊ณ , ๊ฒฐ๊ณผ๊ฐ ์๋ ์ฐ๊ธฐ๋ ์ฌ๋์ ์น์ธ์ผ๋ก ๊ฒ์ดํธ๋ฉ๋๋ค. TAP ๋ชจ๋๋ฅผ
์ผ๋ฉด ๋ชจ๋ Alpaca ํธ์ถ โ ์ฃผ๋ฌธ ์คํ, ์ทจ์, ๊ทธ๋ฆฌ๊ณ ์ฝ๊ธฐ(account/positions/orders/quote/bars) โ ๊ฐ
๋ธ๋ก์ปค SDK ๋์ TAP ํ๋ก์์ /forward endpoint๋ก ์ ์ก๋๊ณ , TAP๊ฐ ์๋ฒ ์ธก์์ ์ค์ ํค๋ฅผ ์ฃผ์
ํ ๋ค
์๋ฅ๋ก ์ ๋ฌํฉ๋๋ค.
- agent ํ๋ก์ธ์ค๋ Alpaca ํค๋ฅผ ์ ํ ๋ณด์ ํ์ง ์์ผ๋ฉฐ
alpaca-py์กฐ์ฐจ ํ์ ์์ต๋๋ค. ์ ์ฒด egress๊ฐ TAP๋ฅผ ์ง๋๊ฐ๊ธฐ ๋๋ฌธ์ด๋ฉฐ, ์ํฌ๋ฆฟ์ ์ด๋ฆ(<CREDENTIAL:alpaca.key_id>)์ผ๋ก๋ง ์ฐธ์กฐ๋๊ณ TAP๊ฐ ์นํํฉ๋๋ค. - ์ฐ๊ธฐ๋ ์ฌ๋ ์น์ธ์์ ์ฐจ๋จ๋ฉ๋๋ค. ์ฃผ๋ฌธ์ด๋ ์ทจ์๋ ์ฌ๋์ด ์น์ธํ์ง ์์ผ๋ฉด ๋ธ๋ก์ปค์ ๋๋ฌํ์ง ๋ชปํฉ๋๋ค.
ํ๋กฌํํธ ์ธ์ ์
์ผ๋ก ๋ค์ด์จ "์ง๊ธ ์ฌ๋ผ"๋ ๋ณด๋ฅ๋๋ฉฐ, ๊ฑฐ๋ถํ๋ฉด Alpaca์ ์ ๋ ๋๋ฌํ์ง ์์ต๋๋ค. ์ฃผ๋ฌธ์๋
๊ฒฐ์ ์
client_order_id๊ฐ ๋ถ์ผ๋ฏ๋ก ์น์ธ ๊ฒฝ์ ์ํฉ์ ์ฌ์๋๋ ์ค๋ณต ์ฃผ๋ฌธ์ด ์๋๋ผ ์ค๋ณต ์ ๊ฑฐ๋ฉ๋๋ค. - ์ฝ๊ธฐ๋ ์๋ ์น์ธ๋ฉ๋๋ค. account/positions/orders/quote/bars๋ GET์ด๋ฉฐ TAP๊ฐ ์ฌ๋ ๋จ๊ณ ์์ด ์ ๋ฌํฉ๋๋ค. ์ด๋ ๊ฒ์ดํธ๊ฐ ์๋๋ผ ์๊ฒฉ ์ฆ๋ช ๊ฒฉ๋ฆฌ(ํ๋ก์ธ์ค ์์ ํค๊ฐ ์์)์ด๋ฏ๋ก ์ถ๊ฐ ๋ง์ฐฐ์ด ๊ฑฐ์ ์์ต๋๋ค.
- TAP ์๊ฒฉ ์ฆ๋ช
์
allowed_hosts๊ฐ ํค๋ฅผ ๋ณด๋ผ ์ ์๋ ๋์์ ๊ณ ์ ํ๋ฏ๋ก, ๋ณ์กฐ๋ ๋์์ ์ฃผ์ ์ ์ ๊ฑฐ๋ถ๋ฉ๋๋ค(403).
ํ์ฑํ ๋ฐฉ๋ฒ:
- TAP ๋์๋ณด๋์์
alpaca๋ผ๋ ์ด๋ฆ์ ๋ฉํฐ ์ํฌ๋ฆฟ ์๊ฒฉ ์ฆ๋ช ์ ๋ง๋ค๊ณ Alpaca ํค ์์key_id์secret_keyํ๋์ ๋ด์ agent์ ํ ๋นํ ๋ค, allowed hosts์paper-api.alpaca.markets(๋๋ ์ค๊ฑฐ๋ ํธ์คํธapi.alpaca.markets) ๊ทธ๋ฆฌ๊ณdata.alpaca.markets(quote/bars๊ฐ ์ฐ๋ ์์ฅ ๋ฐ์ดํฐ ํธ์คํธ)๋ฅผ ์ง์ ํ์ธ์. ํ์ดํผ์ ์ค๊ฑฐ๋์๋ ์๋ก ๋ค๋ฅธ TAP ์๊ฒฉ ์ฆ๋ช ์ ์ฐ์ธ์(์:alpaca-paper/alpaca-live,TAP_ALPACA_CREDENTIAL๋ก ์ ํ). ๊ฐ๊ฐallowed_hosts๋ฅผ ์๊ธฐ API ํธ์คํธ๋ก ๊ณ ์ ํ๋ฉด TAP๊ฐ ๊ตฌ์กฐ์ ์ผ๋ก ํ์ดํผ ํค๋ฅผ ์ค๊ฑฐ๋ ํธ์คํธ๋ก ๋ณด๋ด๋ ๊ฒ์ ๊ฑฐ๋ถํ๊ณ ๊ทธ ๋ฐ๋๋ ๋ง์ฐฌ๊ฐ์ง์ฌ์, ํ์ดํผ์ ์ค๊ฑฐ๋์ ๋ถ๋ฆฌ๊ฐ ๋๊น์ง ๋ช ํํ๊ฒ ์ ์ง๋ฉ๋๋ค. agent/.env์ ์ถ๊ฐํฉ๋๋ค:
| ๋ณ์ | ํ์ | ์ค๋ช |
|---|---|---|
TAP_PROXY_URL |
์ | TAP ํ๋ก์ ๊ธฐ๋ณธ URL (์: https://proxy.tap.human.tech) |
TAP_AGENT_KEY |
์ | ๋น์ ์ TAP agent API ํค(์ํฌ๋ฆฟ) |
TAP_ALPACA_CREDENTIAL |
์๋์ค | Alpaca์ฉ TAP ์๊ฒฉ ์ฆ๋ช
์ด๋ฆ(๊ธฐ๋ณธ alpaca) |
TAP_APPROVAL_TIMEOUT |
์๋์ค | ์ฌ๋์ ๊ฒฐ์ ์ ๊ธฐ๋ค๋ฆฌ๋ ์ด(๊ธฐ๋ณธ 300) |
์ฐ๊ธฐ๊ฐ ๋ฐ์ํ๋ฉด TAP ์ฑ๋(Telegram / ๋์๋ณด๋)์์ ์น์ธํ๊ฑฐ๋ ๊ฑฐ๋ถํ์ธ์. ์น์ธ๋ ์ฃผ๋ฌธยท์ทจ์๋ Alpaca๋ก ์ ๋ฌ๋๊ณ , ๊ฑฐ๋ถ๋๊ฑฐ๋ ์๊ฐ์ด ์ด๊ณผ๋ ๊ฒ์ ์ค๋ฅ๋ฅผ ๋ฐํํ๋ฉฐ ์ ๋ ์ ์ก๋์ง ์์ต๋๋ค.
์๋ ค์ง ํ๊ณ โ ์น์ธ ๊ฒฝ์. ์ฌ๋์ด ์ ํํ
TAP_APPROVAL_TIMEOUT๊ฒฝ๊ณ์์ ์น์ธํ๋ฉด, ํด๋ง ์ชฝ์ ์ด๋ฏธ ํฌ๊ธฐํ๋๋ฐ TAP๊ฐ ์ฃผ๋ฌธ์ ์ ๋ฌํ ์ ์์ต๋๋ค. ์ด๋ ์ฃผ๋ฌธ์ ๋ธ๋ก์ปค์ ๋๋ฌํ๋๋ฐ๋ ๊ฒ์ดํธ๋ ์ค๋ฅ๋ฅผ ๋ณด๊ณ ํ๊ณmax_trades_per_day์นด์ดํฐ๋ ํ๋ ์ ๊ฒ ์ ๋๋ค. ๊ฒฐ์ ์ client_order_id๋๋ถ์ ์ฌ์๋๊ฐ ๊ทธ ์ฃผ๋ฌธ์ ์ด์ค์ผ๋ก ๋ด์ง๋ ์์ง๋ง, ์ผ์ผ ๊ฑฐ๋ ํ๋๋ฅผ ๋นก๋นกํ๊ฒ ์ด์ฉํ๋ค๋ฉด TAP ํ์์์ ์ค๋ฅ ๋ค ์ฌ์๋ํ๊ธฐ ์ ์ ๋ฏธ์ฒด๊ฒฐ ์ฃผ๋ฌธ์ ํ์ธํ์ธ์.
๋ฒ์: Alpaca์ ์ฃผ๋ฌธ ์คํ, ์ทจ์, ๋ค์ฏ ๊ฐ์ง ์ฝ๊ธฐ ์ ๋ถ โ ์ฆ ์ปค๋ฅํฐ egress ์ ์ฒด๋ฅผ ๋ฎ์ผ๋ฏ๋ก ์ด๋ค ๊ฒฝ๋ก์์๋ ํ๋ก์ธ์ค๊ฐ ํค๋ฅผ ๋ณด์ ํ์ง ์์ต๋๋ค. HMAC ์๋ช ๋ฐฉ์ ๋ธ๋ก์ปค(Binance/OKX)๋ ํ์ ๊ณผ์ ์ ๋๋ค (ํด๋ผ์ด์ธํธ ์ธก ์๋ช ์ ์์ egress ์ฃผ์ ๊ณผ ๋ง์ง ์์ต๋๋ค). ์ด ํ ๋ค์ ์ถ๊ฐ์ ์ด๋ฉฐ Alpaca ์ปค๋ฅํฐ ๋ด๋ถ์๋ง ์๊ณ ์ค๊ฑฐ๋ mandate ๊ฒ์ดํธ๋ ๊ทธ๋๋ก ๋ก๋๋ค.
| ํ๋ | ํ์ | ๊ธฐ๋ณธ๊ฐ | ์ค๋ช |
|---|---|---|---|
type |
string | stdio๋ ์ถ๋ก , HTTP๋ ํ์ | stdio์์๋ ์๋ตํ๊ณ , URL ๊ธฐ๋ฐ ์๋ฒ์๋ sse / streamableHttp๋ฅผ ์ง์ ํฉ๋๋ค. |
command |
string | stdio ํ์ | stdio ์๋ฒ์์ ์คํํ ์คํ ํ์ผ. sse / streamableHttp์๋ ๋ฌดํจ์
๋๋ค. |
args |
array | [] |
stdio ์๋ฒ ์ ์ฉ ์ปค๋งจ๋๋ผ์ธ ์ธ์. |
env |
object | {} |
stdio ์๋ฒ ์ ์ฉ. ์๋ธํ๋ก์ธ์ค ํ๊ฒฝ์ ๋ณํฉ๋๋ ์ถ๊ฐ ํ๊ฒฝ ๋ณ์. |
url |
string | sse / streamableHttp ํ์ |
์๊ฒฉ SSE / streamable HTTP endpoint URL. stdio์์๋ ์ฐ์ง ์์ต๋๋ค. |
headers |
object | {} |
sse / streamableHttp ์๋ฒ ์ ์ฉ ์ถ๊ฐ HTTP ํค๋. |
toolTimeout |
number | 30 |
๋๊ตฌ ํธ์ถ 1ํ ํ์์์(์ด) |
initTimeout |
number | ๋ฏธ์ค์ (max(toolTimeout, 30)) |
MCP initialize / OAuth ์ธ๊ฐ ํ์์์(์ด). ์ผ๋ฐ ๋๊ตฌ ํธ์ถ์ ๋ํ์ง ์๊ณ ๋๋ฆฐ ๋ธ๋ผ์ฐ์ ์ธ๊ฐ๋ฅผ ์ฒ๋ฆฌํ ๋ ์๋๋ค. |
enabledTools |
array | ["*"] |
๋๊ตฌ allowlist. ["*"]๋ก ํด๋น ์๋ฒ์ ๋ชจ๋ ๋๊ตฌ๋ฅผ ๋
ธ์ถ |
์ค์ ํ์ผ ์์น: ~/.vibe-trading/agent.json (JSON ๋๋ YAML).
URL ๊ธฐ๋ฐ transport์๋ type์ด ํ์์
๋๋ค. agent๋ ๋ ์ด์ URL ์ ๋ฏธ์ฌ๋ก SSE์ streamable HTTP๋ฅผ
์ถ์ธกํ์ง ์์ต๋๋ค.
API๋ก session์ ๋ง๋ค ๋ session.config ์์ mcpServers๋ฅผ ๋๊ธฐ๋ฉด ๊ทธ ์ธ์
์ ํํด ์ ์ญ ์ค์ ์
ํ์ฅํ๊ฑฐ๋ ๋ฎ์ด์ธ ์ ์์ต๋๋ค:
{
"config": {
"mcpServers": {
"research-server": {
"command": "uvx",
"args": ["research-mcp"],
"enabledTools": ["search", "fetch"]
}
}
}
}์ผ๋ฐ ์๊ฒฉ ๋๊ตฌ๋ ์์ ์ ์ธ ์ด๋ฆ mcp_<server>_<tool>๋ก ๋
ธ์ถ๋ฉ๋๋ค.
์ค๊ฑฐ๋ ๋ธ๋ก์ปค์ MCP ์๋ฒ๋ trading_* ์ปค๋ฅํฐ ํ๋ฉด ๋ค์ ๋จ์ต๋๋ค.
๋ ์๋ฒ ์ด๋ฆ์ด ๋ก์ปฌ ์ด๋ฆ ์ ๊ทํ ํ ๊ฐ์ ASCII ์์ ์ ๋์ฌ๊ฐ ๋๋ ๊ฒฝ์ฐ(์: foo-bar์ foo_bar๊ฐ ๋ชจ๋
foo_bar๊ฐ ๋๋ ๊ฒฝ์ฐ), ์ด๋ฆ์ ์ ์ผ์ฑ์ ์งํค๊ธฐ ์ํด ์๋ฒ ์ธ๊ทธ๋จผํธ์ ๊ฒฐ์ ์ ํด์ ์ ๋ฏธ์ฌ๊ฐ ๋ถ๊ณ ์ด์์์๊ฒ
๊ฒฝ๊ณ ๊ฐ ํ์๋ฉ๋๋ค:
WARNING: Configured MCP server 'foo-bar' collides with another server after local name
normalization. Using local tool prefix 'mcp_foo_bar_<hash>_<tool>' to keep generated
tool names unique. Rename the server in agent config if you want a different prefix.
| ์ ํ | ์์ธ |
|---|---|
| Transport | stdio, SSE, streamable HTTP |
| ์คํ | ์ง๋ ฌ๋ง โ MCP ๋๊ตฌ๋ ๋ณ๋ ฌ readonly ๊ฒฝ๋ก์ ๋ค์ด๊ฐ์ง ์์ต๋๋ค |
| ๋์ | tools๋ง(v1์์๋ resources์ prompts ์ ์ธ) |
| ํซ ๋ฆฌ๋ก๋ | ๋ฏธ์ง์ โ ์ค์ ๋ณ๊ฒฝ์ ๋ฐ์ํ๋ ค๋ฉด ํ๋ก์ธ์ค๋ฅผ ์ฌ์์ํด์ผ ํฉ๋๋ค |
| Swarm ๊ฒฝ๋ก | v1์์๋ Swarm worker ๋ ์ง์คํธ๋ฆฌ์ MCP ๋๊ตฌ๊ฐ ์์ต๋๋ค |
ํผ์ณ ๋ณด๊ธฐ
Vibe-Trading/
โโโ agent/ # Backend (Python)
โ โโโ cli/ # CLI package โ interactive TUI + subcommands
โ โโโ api_server.py # FastAPI server โ runs, sessions, upload, swarm, SSE
โ โโโ mcp_server.py # MCP server โ 74 tools for OpenClaw / Claude Desktop
โ โ
โ โโโ src/
โ โ โโโ agent/ # ReAct agent core
โ โ โ โโโ loop.py # 5-layer compression + read/write tool batching
โ โ โ โโโ context.py # system prompt + auto-recall from persistent memory
โ โ โ โโโ skills.py # skill loader (90 bundled + user-created via CRUD)
โ โ โ โโโ tools.py # tool base class + registry
โ โ โ โโโ memory.py # lightweight workspace state per run
โ โ โ โโโ frontmatter.py # shared YAML frontmatter parser
โ โ โ โโโ trace.py # execution trace writer
โ โ โ
โ โ โโโ memory/ # Cross-session persistent memory
โ โ โ โโโ persistent.py # file-based memory (~/.vibe-trading/memory/)
โ โ โ
โ โ โโโ tools/ # 107 auto-discovered agent tools
โ โ โ โโโ backtest_tool.py # run backtests
โ โ โ โโโ remember_tool.py # cross-session memory (save/recall/forget)
โ โ โ โโโ skill_writer_tool.py # skill CRUD (save/patch/delete/file)
โ โ โ โโโ session_search_tool.py # FTS5 cross-session search
โ โ โ โโโ swarm_tool.py # launch swarm teams
โ โ โ โโโ web_search_tool.py # DuckDuckGo web search
โ โ โ โโโ ... # bash, file I/O, factor analysis, options, alpha browser + bench, etc.
โ โ โ
โ โ โโโ factors/ # Alpha Zoo โ 5๊ฐ ํจ๋ฐ๋ฆฌ์ ๊ฑธ์น 462๊ฐ alpha
โ โ โ โโโ base.py # 19๊ฐ operator (rank/scale/ts_*/delta/decay_linear/safe_div/vwap)
โ โ โ โโโ registry.py # AST-only ๋ฉํ๋ฐ์ดํฐ ๋ก๋ฉ + lazy compute + sanity gate
โ โ โ โโโ bench_runner.py # IC + alive/reversed/dead ๋ถ๋ฅ
โ โ โ โโโ zoo/ # qlib158 (154) + alpha101 (101) + gtja191 (191) + academic (12) + fundamental (4)
โ โ โ
โ โ โโโ api/ # FastAPI ๋ผ์ฐํธ ๋ชจ๋
โ โ โ โโโ alpha_routes.py # /alpha/list, /alpha/{id}, /alpha/bench, SSE stream
โ โ โ
โ โ โโโ skills/ # 90 finance skills in 9 categories (SKILL.md each)
โ โ โโโ swarm/ # Swarm DAG execution engine
โ โ โ โโโ presets/ # 30 swarm preset YAML definitions
โ โ โโโ session/ # Multi-turn chat + FTS5 session search
โ โ โโโ providers/ # LLM provider abstraction
โ โ
โ โโโ backtest/ # Backtest engines
โ โโโ engines/ # 8 engines + composite cross-market engine + options_portfolio
โ โโโ loaders/ # 24 sources: tushare, okx, binance, yfinance, akshare, baostock, tencent, mootdx, ccxt, futu, pykrx, local, eastmoney, sina, stooq, yahoo, finnhub, alphavantage, tiingo, fmp, longbridge, mt5, qveris, india_broker
โ โ โโโ base.py # DataLoader Protocol
โ โ โโโ registry.py # Registry + auto-fallback chains
โ โโโ optimizers/ # MVO, equal vol, max div, risk parity
โ
โโโ frontend/ # Web UI (React 19 + Vite + TypeScript)
โ โโโ src/
โ โโโ pages/ # Home, Agent, AlphaZoo, RunDetail, Compare, Correlation, Settings
โ โโโ components/ # chat, charts, layout
โ โโโ stores/ # Zustand state management
โ
โโโ Dockerfile # Multi-stage build
โโโ docker-compose.yml # One-command deploy
โโโ pyproject.toml # Package config + CLI entrypoint
โโโ tools/ # ๋ ํฌ ๋จ์ CI helper
โ โโโ ci_grep_gates.sh # yaml.load / ํธ๋ ์ด๋๋งํฌ / ์ข
๋ชฉ๋ณ ๋ฐ์ดํฐ ๋์ถ ์ฐจ๋จ
โโโ LICENSE # MIT
Vibe-Trading์ HKUDS agent ecosystem์ ์ผ๋ถ์ ๋๋ค:
|
NanoBot ์ด๊ฒฝ๋ ๊ฐ์ธ AI ์ด์์คํดํธ |
AI-Trader Agent-Native Signal & Copy Trading Platform |
CLI-Anything ๋ชจ๋ ์ํํธ์จ์ด๋ฅผ agent-native๋ก |
OpenSpace ์๊ฐ ์งํ AI agent skills |
ClawTeam Agent Swarm Intelligence |
๋จ๊ณ์ ์ผ๋ก ๋ฐฐํฌํฉ๋๋ค. ์์ ์ด ์์๋๋ฉด ํญ๋ชฉ์ Issues๋ก ์ด๋ํฉ๋๋ค.
| Phase | Feature | Status |
|---|---|---|
| Trust Layer | ์ฌํ ๊ฐ๋ฅํ run cards๋ ์์ฑ ๋ฐ Run Detail ํ์๊น์ง ์๋ฃ. v1์ tool traces์ citations ์ถ๊ฐ | v0 ์ถ์ |
| Hypothesis Registry | lifecycle status, data sources, skills, run-card links, invalidation notes๋ฅผ ๊ฐ์ง durable research hypotheses | Backend MVP ์ถ์ |
| Research Autopilot | ์๋ ์คํ ์ฐ์ research loop: hypothesis โ deterministic backtest โ evidence report | 1โ3๋จ๊ณ ์ถ์ |
| Data Bridge | Bring-your-own data: local CSV/Parquet/SQL connectors with schema mapping | ๋ก์ปฌ ๋ก๋ ์ถ์ |
| Options Lab | Vol surface, Greeks dashboard, payoff/scenario explorer | Planned |
| Portfolio Studio | Risk x-ray, constraints, turnover-aware optimizer, rebalance notes | Turnover-aware optimizer 0.1.11 ์ถ์ ์๋ฃ; ๋๋จธ์ง Planned |
| Alpha Zoo | 5๊ฐ ํจ๋ฐ๋ฆฌ์ ๊ฑธ์น 462๊ฐ์ ์ฌ์ ๋น๋๋ alpha ์ธ์(Qlib 158 + Kakushadze 101 + GTJA 191 + academic + fundamental), ํ ์ค CLI ๋ฒค์น, agent ํตํฉ, Web UI | 0.1.8 ์ถ์ ์๋ฃ, 0.1.12๊น์ง ํ์ฅ |
| Strategy Development Manager | ๋ ผ๋ฌธ / ๋ธ๋ก์ปค ๋ฆฌ์์น๋ฅผ ์์ store + ์๋ IC/Sharpe decay ๋ผ์ดํ์ฌ์ดํด๊ณผ ํจ๊ป ํฉํฐ & ์ ๋ต์ผ๋ก ๋ฑ๋ก | 0.1.11 ์ถ์ ์๋ฃ |
| Correlation Regime | /correlation ์์ ์น์ ์ฃ์ง ๋ฐ๋ + ํ์คํ
๋ฆฌ์์ค ๋ ์ง ํ์๋ผ์ธ โ ์์ฅ์ด ํ๋์ ๋ธ๋ก์ผ๋ก ์ตํฉ๋๋ ์์ ํฌ์ฐฉ |
0.1.12 ์ถ์ ์๋ฃ |
| Research Delivery | Slack / Telegram / email-style IM channels๋ฅผ ํตํ ์์ฝ brief์ live research sessions | ์ค์ผ์ค๋ฌ + IM Runtime ์ถ์ |
| Community | ๊ณต์ ๊ฐ๋ฅํ skills, presets, strategy cards | Exploring |
๊ธฐ์ฌ๋ฅผ ํ์ํฉ๋๋ค! ๊ฐ์ด๋๋ CONTRIBUTING.md๋ฅผ ์ฐธ๊ณ ํ์ธ์.
Good first issues๋ good first issue ๋ผ๋ฒจ์ด ๋ถ์ด ์์ต๋๋ค. ํ๋๋ฅผ ๊ณจ๋ผ ์์ํด ๋ณด์ธ์.
๋ ํฐ ๊ธฐ์ฌ๋ฅผ ํ๊ณ ์ถ๋์? ์ ๋ก๋๋งต์ ํ์ธํ๊ณ ์์ ์ ์ issue๋ฅผ ์ด์ด ๋ ผ์ํด ์ฃผ์ธ์.
Vibe-Trading์ ๊ธฐ์ฌํด ์ฃผ์ ๋ชจ๋ ๋ถ๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
์ต๊ทผ v0.1.14 ์ฌ์ดํด ๊ธฐ์ฌ์ ๋ฐ ํฌ๋ ๋ง:
- @Shizoqua โ a 13-PR correctness sweep across nearly every subsystem: grounding auto-recovers identity and price evidence within a bounded budget (#1092), swarm isolates worker artifacts between retries (#1053), rejects raw
ok/successtool-result envelopes (#1052) and truncates oversized results with the shared notice (#1110), MCP gains offset paging for SEC filings and statements (#1138), routesload_skillthrough the registry so oversized skills page (#1137) and carries market-data provenance onget_market_data(#1131), plusexcess_returnconsistency (#1058), Wilder-EWM RSI (#1056), the FTS5 tokenizer floor (#1071), non-finite prediction-market fields (#1136), in-flight delivery protection (#1140) and preserved backtest validation evidence (#1139) - @shadowinlife โ the run-analysis surface, four pages in one cycle: Options Lab (#1096), the Factor Research panel with its new IC correlation matrix (#1099), positions structure visualization (#1097) and the tearsheet tab (#1091); plus evidence-gated Strategy Discovery Phase 1 (#978) and Phase 2 decay monitoring (#1007), per-market volume units in market-data provenance (#1065) and baostock volume normalized to board lots (#1067)
- @pengpengyi92 โ five quantlib numerics fixes:
xirrand money-weighted return survive long-horizon discount underflow (#1119), zero-volatility options discount their forward value (#1066), the fixed-income curve keeps decay inside the requested bounds (#1076), event studies anchor to the prior session (#1078) and cross-validation aligns label ends to the prior observation (#1079) - @cgycorey โ reasoning effort honoured in chat completions (#1025), the per-task swarm
ChatLLMclosed to stop a pooled-connection leak (#1145) and the same for one-shot clients (#1153),gross_profitderived from revenue minus COGS when the SEC tag is absent (#1111), andvibe-trading show <run_id>dispatching its run id instead of the flag (#1147) - @lorenzozanee โ the test suite stopped escaping into the real config root and its live audit ledger (#1118, closes #1116), recovery steering delivered as user messages with inline system tags (#1112), and unsupported ticker-plus-name symbol queries marked skipped rather than failed (#1114)
- @AndyLongest โ the interactive backtest research dashboard (#1084), the engine reporting actual post-fill positions (#1082), and grounding ignoring identity constants in rate formulas (#1083)
- @ofeksh-tr โ eToro runtime UI parity for SDK connector status (#1051) and its crypto browse and flat market-data quotes (#1070), plus an empty
Responsefor thescheduled-runsDELETE 204 (#1068) - @wiliao โ the agent-run reliability pass: grounding false-rejections, the final-answer gate and LLM timeouts (#1105), with prompt wording and support/resistance masking (#1060)
- @jay79-boop โ a selectable IBKR market-data tier with starved quotes reported as
no_data(#1075), and strict alpha t-stats surfaced in the bench JSON and HTML report (#1085) - @Robin1987China โ DCF refusing non-finite inputs instead of a silent negative share price (#1121), and grounding masking ISO dates that run into CJK text (#1132)
- @zzz607 โ grounding masking line-leading ordered-list markers before number extraction (#1063), and the East Money research-report endpoint given the time parameters it now requires (#1077)
- @Echoandelementwebsites โ worker prompts ordered for prompt-cache-friendly prefixes (#1057), and tool-less agents no longer instructed to call
write_file(#1144) - @549236606-oss โ seven extended read-only Futu connector endpoints, each fail-closed through the existing gateway envelope (#1135)
- @QCYTSN โ the desktop update safety boundary: PID-scoped shutdown, dormant candidate verification, interrupted-attempt recovery, and a tested tampered/unsigned/wrong-publisher/downgrade rejection matrix (#1101)
- @honginp โ offline USD-M account reconciliation with immutable snapshot contracts and deterministic drift reporting (#1106)
- @he-yufeng โ each monitor's latest verdict parsed server-side and persisted on the job for the Market Watch list (#1152)
- @sykuang โ GitHub Copilot as a provider through the official SDK, with no borrowed client ID and no editor-impersonation headers (#990)
- @miguelangelo78 โ the hosted TickerAll MetaTrader 5 data source, so forex and metals backtests need no local MT5 terminal (#968)
- @ngoanpv โ Vietnam equity (HOSE) support:
.VNno longer executes under China A-share rules (#1033) - @jax-novita โ Novita AI registered as a built-in OpenAI-compatible provider (#1059)
- @daviddaco1 โ the Spanish locale and
README_es.md, the sixth README (#1087) - @1psconstructor โ German (Deutsch) UI support (#1117)
- @x-lambda โ the tencent loader building its SSL context from the certifi CA bundle, unblocking HK quotes (#1113)
- @er-s-an โ
build_registry()reporting partial construction instead of silently returning a short tool list (#1129) - @straun-repo โ reasoning effort passed through to the Anthropic adapter (#1115)
- @nstavros โ
connector ordersrendering broker_sdk rows, with SDK enum reprs stripped and class-B tickers left intact (#1150) - @lukiod โ
.env.partialcreated with owner-only permissions (#1086) - @fixXxerTech โ inferred strategy labels marked as inferred in the run dashboard (#1134)
- @birdxs โ Docker images carrying the Feishu and Telegram channel dependencies, with a GHCR/Docker Hub build workflow (#1088)
- @zhiwuyazhe-fjr โ a Docker Codex OAuth EOF that explains itself (#1054)
v0.1.12 ์ฌ์ดํด ๊ธฐ์ฌ์
- @santhreal โ a 30-PR correctness sweep: strict-JSON / finite-number hardening across metrics, factors, pattern, and options (#764/#765/#766/#767/#739/#740/#744), loader correctness (#761 yahoo 1m bars), and session / journal robustness (#762/#763/#768/#769/#770)
- @xkam7ar โ broad reliability across packaging, web, scheduler, swarm, and CLI (#584), cancellation before the first AgentLoop iteration (#641, closes #638), QVeris session budget + atomic credit accounting (#685/#686), CI / OOS gates (#630/#632), and journal month-filter / side-parse fixes (#626/#628)
- @shadowinlife โ the Strategy Development Manager skill (#457, closes #455), pluggable OCR + LLM-vision extraction (#548), centralized provider credentials (#563), the 80ร signal-alignment vectorization (#698), and swarm MCP-discovery caching (#704)
- @ebujinovch โ the correlation regime timeline endpoint + UI (#756, closes #719) and its
correlation-regimeskill (#557), plus theacademic_corr_rewirefactor (#705) - @honginp โ Binance USD-M routing with execution/mark separation (#470/#716) and the maintenance-bracket decouple that keeps
-PERPbacktests zero-credential (#757) - @StaniellG โ the MetaTrader 5 (Exness) broker connector +
mt5data source (#481) - @tyj147454413-cmd โ the Binance fallback loader (#643), bounded OKX history with rate-limit handling (#644), and codex stream-failure classification (#663)
- @Marnie0415 โ composite sub-engine fallback for unknown symbols (#734) and the frontend
insertBeforestreaming DOM-race fix (#717) - @YZY0108 โ the look-ahead-bias fix across all five portfolio optimizers (#487)
- @UNHNQ โ the SiliconFlow CN + Global providers (#565)
- @FenjuFu โ the iFlytek Spark provider (#537)
- @jelech โ the native Anthropic Messages API adapter (#695)
- @octo-patch โ MiniMax regional API endpoints (#731)
- @Thibaultjaigu โ the Requesty OpenAI-compatible gateway provider (#474)
- @Robin1987China โ realized portfolio turnover metrics for every optimizer (#478)
- @YogeshModi24 โ the Frazzini-Pedersen betting-against-beta academic factor (#480)
- @0xZKnw โ opt-in TAP mode for Alpaca (#377)
- @sambazhu โ the fundamental zoo
_VALID_ZOOSwhitelist (#707) - @nareshkps โ Robinhood connector
account_numberwiring (#726) - @darkknight4563 โ user swarm-presets directory discovery (#570)
- @MikeCer โ IBKR thread-local connection pool + snapshot quotes (#636)
- @Shizoqua โ
localloader interval resampling (#467) - @roberttidball โ FastMCP transport import compatibility (#469)
- @yxhuang โ bare-ticker resolution in the correlation matrix (#472, closes #471)
- @Bortlesboat โ stale
OPENAI_BASE_URLprovider-switch fix (#484, closes #482) - @ananaymital โ preflight
EnvConfigstale-cache fix (#479, closes #477) - @GabbaTauchi โ reported the native zai streaming / base-URL bug (#758)
- @warren618 / Haozhe Wu โ the correlation regime backend integration, the zai provider streaming + base-URL resolution fix (#758), release integration, and open-PR/issue triage
v0.1.11 ์ฌ์ดํด ๊ธฐ์ฌ์
- @shadowinlife โ the
api_servermodularization capstone (1,103 โ 371 lines, #424 closing #331), centralized env config with the AST CI gate (#440), loaderfetch()protocol conformance (#437), and the Strategy Development Manager RFC in review (#455/#457) โ 12 merged PRs this cycle - @Robin1987China โ Research Autopilot Phase 3 loop closure (#267), 4 canonical academic alphas (#277), Shadow Account PIT-safe entry conditions (#302/#314/#316), the turnover-aware portfolio optimizer (#466), scheduled-research route tests (#452), and test-coverage batches for trade-journal / pattern / loader layers (#268/#269/#276)
- @muku314115 โ first-class Indian equity (NSE/BSE) support: the
IndiaEquityEngine, cost stack,.NS/.BOrouting, and theindia_brokerbridge (#305) - @mvanhorn โ the end-to-end scheduled-research executor (#278), the Trading 212 read-only connector (#321), OpenAI default-model resolution (#319), and Robinhood config validation (#320)
- @fei-moss โ the
analyze_imagevision tool (#464), NapCat DM pairing (#463), and the IM-media allowed-roots report (#465) - @sambazhu โ the value-investing toolkit: financial-rigor + report-audit tools, 4 skills, and the
value_investing_committeepreset (#407/#408) - @Elfsa-Miranda โ the evidence-bound alpha research pipeline exploration (#405/#416, since re-scoped into #442)
- @Hinotoi-agent โ loopback CSRF rejection (#293) and authenticated remote same-origin UI requests (#304)
- @dpersek โ configurable IM reply timeout (#413) and the provider-preflight redirect fix (#404)
- @digger-yu โ cross-platform
setup/devcommands (#292) and dev-dependency pre-checks (#349) - @skloxo โ tilde expansion + file-roots safety fallback (#299) and reactive zh-CN localization (#301)
- @kadaliao โ the beginner tutorial (#393) and Alpha Library social cards (#396)
- @morluto โ CLI resume first-message preservation (#448) and the Codex OAuth default model (#446)
- @yxhuang โ the Kimi for Coding provider (#435) and the precise #433 diagnosis behind the governance-stack revert
- @isaveall โ the
validation.jsonartifacts-dir fix (#429) and clearer--swarm-runerrors (#428) - @mustafakamal88 โ timezone-aware UTC timestamps (#397)
- @irfanallana-oss โ the zero-size order guard in
trading_place_order(#417) - @Shizoqua โ the central OHLC-invariant loader guard (#274)
- @hobostay โ SSRF-guard hardening for CGNAT/mesh ranges + the QQ media redirect fix (#389)
- @aeonframework โ Pillow / langchain CVE floor bumps (#390)
- @hannibal-lee โ the pandas version-constraint fix (#329)
- @MarkfuGod โ dynamic data-source counts + token-gated microcompaction (#296)
- @gyx09212214-prog โ strict JSON validation outputs (#306)
- @LemonCANDY42 โ the backtest report library (#224)
- @fanfpy โ Longbridge Decimalโfloat serialization (#459)
- @asahikiko โ packaged SKILL.md capability-count sync + the manifest guard test (#461)
- @wison1717-maker โ the mandate second-confirmation dialog + unified error toasts (#453)
- @imsankz โ opencode provider mappings (#444)
- @flash1234pku โ the tushare reference code-fence fix (#449)
- @Penn-Live โ the Docker startup route-iteration crash report (#450)
- @warren618 / Haozhe Wu โ the fundamental factor layer (PIT-safe SEC panels), the QVeris premium track, the IM channel runtime, India-equity integration review, CN search fallbacks, and release integration
v0.1.10 ์ฌ์ดํด ๊ธฐ์ฌ์
- @Hinotoi-agent โ a security-hardening wave: local-shutdown auth (#241), loopback-host rebinding rejection (#242), agent shell-tool opt-in (#243), settings-write auth (#245), mandate proposal-id containment (#256), persistent-memory type validation (#257), and MCP swarm run-id containment (#258)
- @mvanhorn โ the opt-in local data cache (#177), Gemini thoughtSignature round-trip over OpenAI-compat tool calls (#176), the custom data loader guide (#194), and the glm/zhipu provider alias + model-name inference (#247)
- @gyx09212214-prog โ loader robustness for malformed crypto/RSSHub timeout env vars (#227, #240), requested yfinance end-date inclusion (#226), strict run-card JSON for non-finite metrics (#238), and ddgs retry-fallback coverage (#239)
- @BillDin โ swarm agent status in the chat UI (#188), explicit preset-name handling (#189), the loader-backed market-data tool for swarm workers (#199), and preset-context continuations (#200)
- @Robin1987China โ the Research Autopilot goal-hypothesis bridge (#260), the local CSV/Parquet/DuckDB data loader (#252), and an assistant-prefill fix + configurable Kimi User-Agent (#248)
- @LemonCANDY42 โ the read-only runtime status dashboard (#210), persisted AgentLoop usage artifacts (#223), and opt-in Run Detail chart payloads (#225)
- @zwrong โ the trace.jsonl overhaul with zero truncation + offload (#206) and session-id on exit +
resume <session-id>(#218) - @forge-builder โ the AI contributor guide (#173) and the OpenClaw MCP research-only smoke-test docs (#165)
- @skloxo โ Chinese (zh-CN) frontend localization (adopted from #217)
- @LeeCQiang โ Chinese docstrings across all 452 Alpha Zoo factors (#180)
- @KaiLuettmann โ GHCR pre-built image publishing on release (#187)
- @ngoanpv โ Gemini thought_signature preservation through the AgentLoop dict path (#184)
- @ShahNewazKhan โ Docker host-Ollama reachability via host.docker.internal (#196)
- @sambazhu โ frontend sync of completed chat attempts (#236)
- @bhlt โ baostock-native code format support (#230)
- @octo-patch โ MiniMax M3 default model upgrade (#162)
- @warren618 / Haozhe Wu โ the global data layer (8 sources + 18 read-only data tools), the 10 broker SDK connectors, the alpha-compare full stack, the provider-reliability overhaul, multi-engine web_search fallback, responsive Stop + SSE reconnect, and release integration
Vibe-Trading์ ๋ฆฌ์์น ๋ฐ ๊ฑฐ๋ ์ํํธ์จ์ด์ ๋๋ค. ํฌ์ ์กฐ์ธ์ด ์๋๋ฉฐ, ์๊ธ์ ๋ณด์ ํ์ง ์๊ณ , ๊ฑฐ๋์๋ฅผ ์ด์ํ์ง ์์ต๋๋ค. ๊ฑฐ๋๋ ์ฌ์ฉ์๊ฐ ๋ช ์์ ์ผ๋ก ์ธ๊ฐํ ๋ธ๋ก์ปค ์ฑ๋(์: Robinhood Agentic Trading)์ ํตํด์๋ง, ์ฌ์ฉ์๊ฐ ์ค์ ํ ํ๋ ๋ด์์ ์ด๋ฃจ์ด์ง๋ฉฐ ์ธ์ ๋ ์ค๋จํ ์ ์์ต๋๋ค. ์ด ๋ธ๋ก์ปค ๊ฑฐ๋ ๊ธฐ๋ฅ์ ์คํ์ ์ด๋ฉฐ ๋น์ฌ๊ฐ ์ค์ ๋ธ๋ก์ปค ๊ณ์ ์ผ๋ก ๊ฒ์ฆํ์ง ์์์ต๋๋ค โ ์ฌ์ฉ์ ๋ฐ๋ฅธ ์ฑ ์์ ๋ณธ์ธ์๊ฒ ์์ต๋๋ค. ๊ณผ๊ฑฐ ์ฑ๊ณผ๊ฐ ๋ฏธ๋ ์์ต์ ๋ณด์ฅํ์ง ์์ต๋๋ค.
MIT License โ LICENSE ์ฐธ์กฐ
โญ Vibe-Trading์ด ์ฐ๊ตฌ์ ๋์์ด ๋์๋ค๋ฉด, Star๋ฅผ ๋๋ฌ ๋ ๋ง์ ๋ถ๋ค์ด ์ฐพ์ ์ ์๋๋ก ๋์์ฃผ์ธ์.
Vibe-Trading์ ๋ฐฉ๋ฌธํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค โจ



