# a-stock **Repository Path**: mingwuda/a-stock ## Basic Information - **Project Name**: a-stock - **Description**: No description available - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-31 - **Last Updated**: 2026-06-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ๐Ÿ“ˆ A ่‚กๅ…จๆ ˆ้‡ๅŒ–ไบคๆ˜“็ณป็ปŸ [![Python](https://img.shields.io/badge/Python-3.11%2B-blue)](https://python.org) [![FastAPI](https://img.shields.io/badge/FastAPI-0.115%2B-009688)](https://fastapi.tiangolo.com) [![LangGraph](https://img.shields.io/badge/LangGraph-ReAct-purple)](https://langchain-ai.github.io/langgraph/) [![Qlib](https://img.shields.io/badge/Qlib-Alpha158-orange)](https://github.com/microsoft/qlib) [![License](https://img.shields.io/badge/License-MIT-green)](LICENSE) > ไธ€ไธชๅฏๆœฌๅœฐ่ฟ่กŒ็š„ๅ…จๆ ˆ A ่‚ก้‡ๅŒ–ไบคๆ˜“็ณป็ปŸใ€‚ไปŽๆ•ฐๆฎๆ‹‰ๅ–ๅˆฐ AI ้€‰่‚กใ€ML ๆจกๅž‹่ฎญ็ปƒใ€่‡ชๅŠจๅค็›˜ใ€AI Agent ๅฏน่ฏๅˆ†ๆž๏ผŒๅ…จ้“พ่ทฏ้—ญ็Žฏใ€‚**docker compose up** ไธ€้”ฎๅฏๅŠจใ€‚ --- ## โœจ ๆ ธๅฟƒ็‰นๆ€ง ### ๐Ÿง  AI ๆ™บ่ƒฝ้€‰่‚ก - **6ๅคงๅ› ๅญ่žๅˆ่ฏ„ๅˆ†**๏ผš่ถ‹ๅŠฟๅ› ๅญใ€ๅŠจ้‡ๅ› ๅญใ€้‡่ƒฝๅ› ๅญใ€ไผฐๅ€ผๅ› ๅญใ€้ฃŽ้™ฉๅ› ๅญใ€ไธปๅŠ›่ต„้‡‘ๅ› ๅญ - **3็ง้ฃŽๆ ผๅˆ‡ๆข**๏ผš็จณๅฅๅž‹ใ€่ฟ›ๅ–ๅž‹ใ€็Ÿญ็บฟๅž‹๏ผŒไธๅŒๅ› ๅญๆƒ้‡่‡ชๅŠจ้€‚้… - **7ๅฑ‚ๅผบๅˆถ้ฃŽๆŽง**๏ผšST่ฟ‡ๆปคใ€ไบๆŸ่ฟ‡ๆปคใ€ไฝŽๆตๅŠจๆ€ง่ฟ‡ๆปคใ€้ซ˜ไฝ่ฟ‡็ƒญ่ฟ‡ๆปคใ€้ซ˜ๆณขๅŠจ่ฟ‡ๆปคใ€ๅ…ฌๅ‘Š้ฃŽ้™ฉ่ฟ‡ๆปคใ€ๆฌกๆ–ฐ่ฟ‡ๆปค - **ไธปๅŠ›่ต„้‡‘ไผฐ็ฎ—**๏ผšๅŸบไบŽๅคงๅ•ๆˆไบคไผฐ็ฎ— 5 ๆ—ฅไธปๅŠ›่ต„้‡‘ๅ‡€ๆตๅ…ฅ๏ผŒ็Ÿญ็บฟ้ฃŽๆ ผๆƒ้‡ 15% - **ๆšด่ทŒๅŽ‹ๅŠ›ๆต‹่ฏ•**๏ผšๅކๅฒๆšด่ทŒๅ›žๆต‹ + ่ทŒๅœ้ฃŽ้™ฉ่ฏ„ๅˆ† + ๆž็ซฏๅ›žๆ’คๅฟซ็…ง ### ๐Ÿค– ML ๆ—ฅๅ†ณ็ญ–้—ญ็Žฏ - **Qlib ้›†ๆˆ**๏ผšๆ•ฐๆฎๅŒๆญฅ โ†’ Alpha158 ๅ› ๅญ่ฎก็ฎ— โ†’ LightGBM/XGBoost ๆจกๅž‹่ฎญ็ปƒ โ†’ ้ข„ๆต‹ - **่‡ชๅŠจ่ฎญ็ปƒ่ฐƒๅบฆ**๏ผšๆฏๆ™š 20:00 ่‡ชๅŠจๆ‰ง่กŒ๏ผŒๆ”ฏๆŒๆ–ญ็‚น็ปญ่ฎญใ€Optuna ่ถ…ๅ‚ไผ˜ๅŒ– - **ๆ—ฅๅ†ณ็ญ–ๆตๆฐด็บฟ**๏ผš`Tๆ—ฅ ๆ”ถ็›˜้€‰่‚ก โ†’ T+1 ๅผ€็›˜ไนฐๅ…ฅ โ†’ T+2 ๆ”ถ็›˜ๅ–ๅ‡บ` - **่‡ชๅŠจๅค็›˜**๏ผšไบคๆ˜“็ช—ๅฃๅ…ณ้—ญๅŽ่‡ชๅŠจๅค็›˜ๆŽจ่็ป“ๆžœ๏ผŒ็”ŸๆˆๅŽŸๅ› ๅˆ†ๆžไธŽๆ”น่ฟ›ๅปบ่ฎฎ - **Kronos ้ข„ๆต‹**๏ผš้›†ๆˆ Transformer ๆ—ถๅบ้ข„ๆต‹ๅผ•ๆ“Ž๏ผŒ้ข„ๆต‹ๆœชๆฅ K ็บฟ่ถ‹ๅŠฟ๏ผˆๆ”ฏๆŒ GPU๏ผ‰ ### ๐Ÿ’ฌ AI Agent ๅฏน่ฏๅˆ†ๆž - **14 ไธชๆŠ•่ต„ๅˆ†ๆžๅทฅๅ…ท**๏ผš่กŒๆƒ…ๆŸฅ่ฏขใ€ๆŠ€ๆœฏๆŒ‡ๆ ‡ใ€AI ่ฏ„ๅˆ†ใ€ML ้ข„ๆต‹ใ€ๆ–ฐ้—ปๆœ็ดขใ€ๆฟๅ—ไฟกๆฏใ€ๅคง็›˜ๆƒ…็ปชใ€่ต„้‡‘ๆตๅ‘ใ€้ฃŽ้™ฉๆฃ€ๆŸฅใ€ไป“ไฝ่ฎก็ฎ—ใ€ๆจชๅ‘ๅฏนๆฏ”็ญ‰ - **LangGraph ReAct ๆŽจ็†**๏ผšLLM ่‡ชไธปๅ†ณ็ญ–่ฐƒ็”จๅทฅๅ…ท้“พ๏ผŒ่พ“ๅ‡บ็ป“ๆž„ๅŒ–ๆŠ•่ต„ๅปบ่ฎฎ - **SSE ๆตๅผ่พ“ๅ‡บ**๏ผšๅฎžๆ—ถๅฑ•็คบ Agent ๆ€่€ƒ่ฟ‡็จ‹ๅ’Œๅทฅๅ…ท่ฐƒ็”จ็ป“ๆžœ - **ๅทฅๅ…ทๅก็‰‡ๆธฒๆŸ“**๏ผšๆฏไธชๅทฅๅ…ท็ป“ๆžœๆ ผๅผๅŒ–ๅฑ•็คบ๏ผŒ้ฟๅ…ๅŽŸๅง‹ JSON - **ไผš่ฏ็ฎก็†**๏ผšๅคšไผš่ฏๅˆ‡ๆขใ€ๅކๅฒ่ฎฐๅฝ•ๆŒไน…ๅŒ– ### ๐Ÿ“Š ๅ›žๆต‹็ณป็ปŸ - **4 ็ง็ญ–็•ฅ**๏ผšๅŒๅ‡็บฟใ€MACDใ€KDJใ€็ฝ‘ๆ ผ็ญ–็•ฅ๏ผŒๆ”ฏๆŒ่‡ชๅฎšไน‰ๅ‚ๆ•ฐ - **A ่‚ก่ง„ๅˆ™ๅฎŒๆ•ด**๏ผšT+1 ้”ไป“ใ€ๆถจ่ทŒๅœ้™ไปท๏ผˆไธปๆฟ10%/ๅˆ›ไธšๆฟ20%/็ง‘ๅˆ›ๆฟ20%/ๅŒ—ไบคๆ‰€30%๏ผ‰ใ€100่‚กๆ•ดๆ‰‹ใ€ไฝฃ้‡‘/ๅฐ่Šฑ็จŽ/่ฟ‡ๆˆท่ดน - **ๆ‰น้‡ๅ›žๆต‹**๏ผšๅฏน AI ่‚ก็ฅจๆฑ ไธ€้”ฎๆ‰น้‡ๅ›žๆต‹๏ผŒๅ•็ฅจไป“ไฝ้™ๅˆถ 10% - **ๅฏ่ง†ๅŒ–ๆŠฅๅ‘Š**๏ผšK ็บฟไนฐๅ–็‚นใ€่ต„้‡‘ๆ›ฒ็บฟใ€ๅ›žๆ’คๆ›ฒ็บฟใ€ๆŠ€ๆœฏๆŒ‡ๆ ‡ใ€ไบคๆ˜“ๆ˜Ž็ป†่กจ ### ๐Ÿ”„ ๅฎšๆ—ถไปปๅŠก่‡ชๅŠจๅŒ– | ๆ—ถ้—ด | ไปปๅŠก | |------|------| | ๆฏๆ™š 19:30 | ๅค็›˜ไธŠไธ€่ฝฎ ML ๆŽจ่็ป“ๆžœ | | ๆฏๆ™š 20:00 | Qlib ๆจกๅž‹่‡ชๅŠจ่ฎญ็ปƒ | | ๆฏๆ™š 20:30 | ็”Ÿๆˆๆฌกๆ—ฅ Top3 ๅ†ณ็ญ– | | ๆฏๅ‘จๅ…ญ 20:00 | Top100 ่‚ก็ฅจๆฑ ๅ…จๅธ‚ๅœบๅˆทๆ–ฐ | --- ## ๐Ÿ—๏ธ ็ณป็ปŸๆžถๆž„ ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๅ‰็ซฏ (HTML+CSS+JS) โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ AI ้€‰่‚ก โ”‚ โ”‚ ML ๅ†ณ็ญ– โ”‚ โ”‚ ๅ›žๆต‹ โ”‚ โ”‚ Agent ๅฏน่ฏ โ”‚ โ”‚ โ”‚ โ”‚ ๅทฅไฝœๅฐ โ”‚ โ”‚ ้ขๆฟ โ”‚ โ”‚ ้กต้ข โ”‚ โ”‚ ็•Œ้ข โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ Nginx ๅๅ‘ไปฃ็† โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ HTTP / SSE โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ FastAPI ๅŽ็ซฏ (8000) โ”‚ โ”‚ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ API ่ทฏ็”ฑๅฑ‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ routes.py โ”‚ agent_routes.py โ”‚ auth.py โ”‚ โ”‚ โ”‚ โ”‚ (60+็ซฏ็‚น) โ”‚ (Agent SSE/ไผš่ฏ) โ”‚ (JWT็™ปๅฝ•) โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ๆœๅŠกๅฑ‚ (22ไธชๆœๅŠก) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ“ก ๆ•ฐๆฎๅฑ‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ MooTdxProvider โ† ้€š่พพไฟกๅ่ฎฎ่กŒๆƒ… โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ MarketUniverseService โ† ๅ…จๅธ‚ๅœบ่‚ก็ฅจๆฑ  โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿงฎ ๅ› ๅญไธŽ้€‰่‚ก โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ AIStockSelector โ† ๅคšๅ› ๅญ่ฏ„ๅˆ† โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ HybridStockSelector โ† ๅคšๅ› ๅญ+ML่žๅˆ้€‰่‚ก โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ Top100PoolService โ† Top100ๅ‘จ้ข‘่‚ก็ฅจๆฑ  โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ MomentumRotationService โ† ๅŠจ้‡่ฝฎๅŠจ็ญ–็•ฅ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿค– ML ๆจกๅž‹ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ QlibEngine โ† Alpha158 + LightGBM โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ QlibAutoTrainer โ† ่‡ชๅŠจ่ฎญ็ปƒ่ฐƒๅบฆ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ KronosPredictor โ† Transformer ๆ—ถๅบ้ข„ๆต‹ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ MLDecisionEngine โ† ๆฏๆ—ฅ Top3 ๅ†ณ็ญ–ๅผ•ๆ“Ž โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ”„ ๅ›žๆต‹ไธŽ็ญ–็•ฅ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ BacktestEngine โ† ๅ›žๆต‹ๅผ•ๆ“Ž โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ MLBacktestRunner โ† ๆจกๅž‹่ฏ•่ท‘ๅ™จ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ Strategies โ† ็ญ–็•ฅๅฎšไน‰ๅบ“ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ StrategyProfiles โ† ้กถๅฑ‚็ญ–็•ฅ้…็ฝฎ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ’ฌ AI Agent โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ StockAgent โ† LangGraph ReAct Agent โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ query_market_data ่กŒๆƒ…ๆŸฅ่ฏข โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ get_ai_score ๅคšๅ› ๅญ่ฏ„ๅˆ† โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ get_ml_prediction ML้ข„ๆต‹ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ run_backtest ๆ‰ง่กŒๅ›žๆต‹ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ fetch_news ๆœ็ดขๆ–ฐ้—ป โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ check_risk ้ฃŽ้™ฉๆฃ€ๆŸฅ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ calculate_position ไป“ไฝ่ฎก็ฎ— โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ get_technical_indicators ๆŠ€ๆœฏๆŒ‡ๆ ‡ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ get_stock_pool ๆŸฅ่ฏข่‚ก็ฅจๆฑ  โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ get_fund_flow_estimate ่ต„้‡‘ๆตๅ‘ไผฐ็ฎ— โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ get_market_snapshot ๅธ‚ๅœบๆฆ‚ๅ†ต โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ get_sector_info ๆฟๅ—ไฟกๆฏ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ get_market_sentiment ๅคง็›˜ๆƒ…็ปช โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ compare_stocks ๆจชๅ‘ๅฏนๆฏ” โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ AgentConfigService ้…็ฝฎ็ฎก็† โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โฐ ่ฐƒๅบฆไธŽๆŒไน…ๅŒ– โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ TaskScheduler ๅฎšๆ—ถ่ฐƒๅบฆๅ™จ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ BacktestJobManager ๅ›žๆต‹ไปปๅŠก็ฎก็† โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ MLDecisionJobManager ๅ†ณ็ญ–ไปปๅŠก็ฎก็† โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ Repository ๆ•ฐๆฎๅบ“ๆŒไน…ๅŒ– โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ๆ•ฐๆฎๅฑ‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ MooTdx(้€š่พพไฟก) ่…พ่ฎฏ่กŒๆƒ…(fallback) AnySearch(ๆ–ฐ้—ป) โ”‚ โ”‚ โ”‚ โ”‚ SQLite(app.db) Qlibๆ•ฐๆฎ(parquet) CSV็ผ“ๅญ˜ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` --- ## ๐Ÿš€ ๅฟซ้€Ÿๅผ€ๅง‹ ### Docker Compose ไธ€้”ฎ้ƒจ็ฝฒ๏ผˆๆŽจ่๏ผ‰ ```bash git clone https://gitee.com/mingwuda/a-stock.git cd a-stock # ๅฏ้€‰๏ผš้…็ฝฎ LLM API Key๏ผˆ็”จไบŽ AI Agent ๅฏน่ฏๅŠŸ่ƒฝ๏ผ‰ echo "LLM_API_KEY=sk-your-key" > .env # ๅฏๅŠจ docker compose up -d --build ``` ๅฏๅŠจๅŽ่ฎฟ้—ฎ๏ผš | ๆœๅŠก | ๅœฐๅ€ | |------|------| | ๅ‰็ซฏ้กต้ข | http://localhost:5173 | | API ๆ–‡ๆกฃ | http://localhost:8000/docs | | ๅฅๅบทๆฃ€ๆŸฅ | http://localhost:8000/api/health | ### ๆœฌๅœฐๅผ€ๅ‘ ```bash # ๅˆ›ๅปบ่™šๆ‹Ÿ็Žฏๅขƒ make venv # ๅฎ‰่ฃ…ไพ่ต– make install # ๅฏๅŠจๅŽ็ซฏ make backend # ๆ–ฐๅผ€็ปˆ็ซฏ๏ผŒๅฏๅŠจๅ‰็ซฏ make frontend ``` > ไนŸๅฏไปฅไฝฟ็”จไธ€้”ฎ่„šๆœฌ๏ผš`./start.sh` --- ## ๐Ÿ“– ไฝฟ็”จๆต็จ‹ ``` 1. ๆ‰“ๅผ€ๆต่งˆๅ™จ โ†’ ็™ปๅฝ•็ณป็ปŸ 2. AI ๆ™บ่ƒฝ้€‰่‚ก โ†’ ้€‰ๆ‹ฉ้ฃŽๆ ผใ€ๅ‚ๆ•ฐ โ†’ ็”Ÿๆˆ่‚ก็ฅจๆฑ  3. ๆŸฅ็œ‹่ฏ„ๅˆ†่ฏฆๆƒ…ใ€้ฃŽ้™ฉ็ญ‰็บงใ€ๅ…ฅ้€‰็†็”ฑ 4. ML ๆ—ฅๅ†ณ็ญ– โ†’ ็”ŸๆˆไปŠๆ—ฅ Top3 ๆŽจ่ 5. ๆŸฅ็œ‹้ข„ๆต‹ โ†’ Kronos ๆ—ถๅบ้ข„ๆต‹ๆœชๆฅK็บฟ 6. ๆ‰น้‡ๅ›žๆต‹ โ†’ ้ชŒ่ฏ่‚ก็ฅจๆฑ ๅކๅฒ่กจ็Žฐ 7. ๅ•่‚กๅ›žๆต‹ โ†’ ่ฏฆ็ป†ๅˆ†ๆžๅ•ๅช่‚ก็ฅจ 8. AI Agent โ†’ ่‡ช็„ถ่ฏญ่จ€ๅฏน่ฏๆทฑๅบฆๅˆ†ๆž 9. ่‡ชๅŠจๅค็›˜ โ†’ ๆฌกๆ—ฅๆŸฅ็œ‹ๆŽจ่็ป“ๆžœๅ้ฆˆ ``` --- ## ๐Ÿ”ง ๅฏ็”จๅ‘ฝไปค๏ผˆMakefile๏ผ‰ | ๅ‘ฝไปค | ่ฏดๆ˜Ž | |------|------| | `make venv` | ๅˆ›ๅปบ `.venv` ่™šๆ‹Ÿ็Žฏๅขƒ | | `make install` | ๅฎ‰่ฃ…ๅŽ็ซฏไพ่ต– | | `make backend` | ๅฏๅŠจๅŽ็ซฏ (uvicorn + hot-reload, 8000็ซฏๅฃ) | | `make frontend` | ๅฏๅŠจๅ‰็ซฏ (python http.server, 5173็ซฏๅฃ) | | `make dev` | ไธ€้”ฎๅฏๅŠจๅ‰ๅŽ็ซฏ | | `make clean` | ๆธ…็†็ผ“ๅญ˜ๆ–‡ไปถ | --- ## ๐Ÿ“ฆ ้กน็›ฎ็ป“ๆž„ ``` a-stock/ โ”œโ”€โ”€ backend/ โ”‚ โ”œโ”€โ”€ app/ โ”‚ โ”‚ โ”œโ”€โ”€ api/ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ routes.py # 60+ ๆ ธๅฟƒ API ็ซฏ็‚น โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ agent_routes.py # AI Agent ่ทฏ็”ฑ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ auth.py # ็™ปๅฝ•่ฎค่ฏ โ”‚ โ”‚ โ”œโ”€โ”€ services/ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ stock_agent.py # LangGraph AI Agent โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ qlib_engine.py # Qlib ้‡ๅŒ–ๅผ•ๆ“Ž โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ ai_selector.py # ๅคšๅ› ๅญ้€‰่‚ก โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ backtest.py # ๅ›žๆต‹ๅผ•ๆ“Ž โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ top100_pool.py # Top100 ่‚ก็ฅจๆฑ  โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ ml_decision_engine.py # ML ๆ—ฅๅ†ณ็ญ– โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ scheduler.py # ๅฎšๆ—ถ่ฐƒๅบฆๅ™จ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ ... (ๅ…ฑ22ไธชๆœๅŠก) โ”‚ โ”‚ โ”œโ”€โ”€ core/ # ๆ ธๅฟƒ้…็ฝฎ โ”‚ โ”‚ โ”œโ”€โ”€ main.py # ๅบ”็”จๅ…ฅๅฃ โ”‚ โ”‚ โ””โ”€โ”€ schemas.py # Pydantic ๆจกๅž‹ โ”‚ โ”œโ”€โ”€ Dockerfile โ”‚ โ””โ”€โ”€ requirements.txt โ”œโ”€โ”€ frontend/ โ”‚ โ”œโ”€โ”€ assets/ โ”‚ โ”‚ โ”œโ”€โ”€ app.js # ๅ‰็ซฏไธป้€ป่พ‘ (152KB) โ”‚ โ”‚ โ””โ”€โ”€ styles.css # ๆ ทๅผ่กจ โ”‚ โ”œโ”€โ”€ index.html # ไธป้กต้ข (SPA) โ”‚ โ”œโ”€โ”€ login.html # ็™ปๅฝ•้กต้ข โ”‚ โ”œโ”€โ”€ Dockerfile โ”‚ โ””โ”€โ”€ nginx.conf โ”œโ”€โ”€ docker-compose.yml โ”œโ”€โ”€ Makefile โ”œโ”€โ”€ start.sh โ””โ”€โ”€ README.md ``` --- ## ๐Ÿค– AI Agent ๅทฅๅ…ทๆธ…ๅ• ๅœจ Agent ๅฏน่ฏ็•Œ้ข๏ผŒไฝ ๅฏไปฅ็”จ่‡ช็„ถ่ฏญ่จ€้—ฎ่‚ก็ฅจ๏ผŒAI ่‡ชๅŠจ่ฐƒ็”จไปฅไธ‹ 14 ไธชๅทฅๅ…ท้“พ่ฟ›่กŒๅˆ†ๆž๏ผš | ๅทฅๅ…ท | ๅŠŸ่ƒฝ | ๅˆ†็ฑป | |------|------|------| | `query_market_data` | ่Žทๅ–่‚ก็ฅจ่กŒๆƒ…๏ผˆK็บฟ+ๆœ€ๆ–ฐไปท๏ผ‰ | ๐Ÿ“Š ่กŒๆƒ… | | `get_technical_indicators` | ่Žทๅ–ๆŠ€ๆœฏๆŒ‡ๆ ‡๏ผˆMA/MACD/KDJ๏ผ‰ | ๐Ÿ“Š ่กŒๆƒ… | | `get_market_sentiment` | ่Žทๅ–ๅฎžๆ—ถๅคง็›˜ๆƒ…็ปช๏ผˆๆŒ‡ๆ•ฐๆถจ่ทŒ/ๆถจ่ทŒๆฏ”๏ผ‰ | ๐Ÿ“Š ่กŒๆƒ… | | `get_market_snapshot` | ่Žทๅ–ๅธ‚ๅœบๆฆ‚ๅ†ต๏ผˆๆฟๅ—ๅˆ†ๅธƒ/ๅธ‚ๅ€ผๅˆ†ๅธƒ๏ผ‰ | ๐Ÿ“Š ่กŒๆƒ… | | `get_ai_score` | ่Žทๅ–ๅคšๅ› ๅญ่žๅˆ่ฏ„ๅˆ† | ๐ŸŽฏ ้€‰่‚ก | | `get_ml_prediction` | ่Žทๅ– ML ๆจกๅž‹้ข„ๆต‹ๆ”ถ็›Š | ๐ŸŽฏ ้€‰่‚ก | | `get_stock_pool` | ๆŸฅ่ฏข Top100 ๅ€™้€‰ๆฑ /ๅŠจ้‡ๆฑ  | ๐ŸŽฏ ้€‰่‚ก | | `get_sector_info` | ๆŸฅ่ฏข่‚ก็ฅจๆ‰€ๅฑžๆฟๅ—ๅŠๅŒๆฟๅ—้พ™ๅคด่‚ก | ๐Ÿญ ่กŒไธš | | `get_fund_flow_estimate` | ไผฐ็ฎ—ไธปๅŠ›่ต„้‡‘ๆตๅ‘ | ๐Ÿ’ฐ ่ต„้‡‘ | | `fetch_news` | ๆœ็ดขไธช่‚กๆœ€ๆ–ฐๆ–ฐ้—ปๅ’Œๅ…ฌๅ‘Š | ๐Ÿ“ฐ ่ต„่ฎฏ | | `check_risk` | ๆฃ€ๆŸฅไธช่‚ก้ฃŽ้™ฉๆŒ‡ๆ ‡ | โš ๏ธ ้ฃŽๆŽง | | `calculate_position` | ๆ นๆฎ่ต„้‡‘/้ฃŽ้™ฉ/็ฝฎไฟกๅบฆ่ฎก็ฎ—ไป“ไฝ | ๐Ÿ“ ไป“ไฝ | | `compare_stocks` | ๆจชๅ‘ๅฏนๆฏ”ๅคšๅช่‚ก็ฅจ | ๐Ÿ”„ ๅฏนๆฏ” | | `run_backtest` | ๅฏนๆŒ‡ๅฎš่‚ก็ฅจ่ฟ่กŒๅ›žๆต‹ | ๐Ÿงช ๅ›žๆต‹ | --- ## ๐Ÿ“Š API ๆฆ‚่งˆ ### ๆ ธๅฟƒๆŽฅๅฃ | ๆ–นๆณ• | ่ทฏๅพ„ | ่ฏดๆ˜Ž | |------|------|------| | GET | `/api/health` | ๅฅๅบทๆฃ€ๆŸฅ | | GET | `/api/strategies` | ็ญ–็•ฅๅˆ—่กจ | | GET | `/api/data/history?symbol=&start=&end=&interval=` | K ็บฟๅކๅฒๆ•ฐๆฎ | | GET | `/api/data/quote?symbol=` | ๅฎžๆ—ถ่กŒๆƒ… | | POST | `/api/ai/select` | AI ๅคšๅ› ๅญ้€‰่‚ก | | POST | `/api/ai/hybrid-select` | ่žๅˆ้€‰่‚ก๏ผˆๅคšๅ› ๅญ+ML๏ผ‰ | | POST | `/api/backtest` | ๆไบคๅ›žๆต‹ | | GET | `/api/backtest/{job_id}` | ๆŸฅ่ฏขๅ›žๆต‹็ป“ๆžœ | ### Qlib ๆŽฅๅฃ | ๆ–นๆณ• | ่ทฏๅพ„ | ่ฏดๆ˜Ž | |------|------|------| | GET | `/api/qlib/status` | ๅผ•ๆ“Ž็Šถๆ€ | | POST | `/api/qlib/trigger` | ๆ‰‹ๅŠจ่งฆๅ‘่ฎญ็ปƒ | | POST | `/api/qlib/stop` | ๅœๆญข่ฎญ็ปƒ | | POST | `/api/qlib/predict` | ้ข„ๆต‹ๆŽ’ๅ | | GET | `/api/qlib/factor-effectiveness` | ๅ› ๅญๆœ‰ๆ•ˆๆ€งๅˆ†ๆž | ### ML ๅ†ณ็ญ–ๆŽฅๅฃ | ๆ–นๆณ• | ่ทฏๅพ„ | ่ฏดๆ˜Ž | |------|------|------| | POST | `/api/ml/daily-decision` | ็”Ÿๆˆๆ—ฅๅ†ณ็ญ–๏ผˆๅผ‚ๆญฅ๏ผ‰ | | GET | `/api/ml/daily-decision/{job_id}` | ๆŸฅ่ฏขๅ†ณ็ญ–็Šถๆ€ | | POST | `/api/ml/review` | ๅค็›˜ | | GET | `/api/ml/latest` | ๆœ€ๆ–ฐๅ†ณ็ญ– | | GET | `/api/ml/history` | ๅ†ณ็ญ–ๅކๅฒ | | POST | `/api/ml/backtest/run` | ๆจกๅž‹่ฏ•่ท‘ | ### Agent ๆŽฅๅฃ | ๆ–นๆณ• | ่ทฏๅพ„ | ่ฏดๆ˜Ž | |------|------|------| | POST | `/api/agent/chat` | Agent ๅฏน่ฏ๏ผˆSSE ๆตๅผ๏ผ‰ | | GET | `/api/agent/config` | ่Žทๅ– Agent ้…็ฝฎ | | POST | `/api/agent/config` | ไฟๅญ˜ Agent ้…็ฝฎ | | GET | `/api/agent/sessions` | ไผš่ฏๅˆ—่กจ | | GET | `/api/agent/sessions/{id}` | ไผš่ฏ่ฏฆๆƒ… | | DELETE | `/api/agent/sessions/{id}` | ๅˆ ้™คไผš่ฏ | --- ## ๐Ÿ”Œ ๅค–้ƒจไพ่ต– | ไพ่ต– | ็”จ้€” | ๆ˜ฏๅฆ้œ€่ฆ API Key | |------|------|:---------------:| | MooTdx | ้€š่พพไฟก่กŒๆƒ…ๅ่ฎฎ๏ผˆไธปๆ•ฐๆฎๆบ๏ผ‰ | โŒ ๅ…่ดน | | ่…พ่ฎฏ่กŒๆƒ… API | ๅฎžๆ—ถ่กŒๆƒ…/ๅคง็›˜ๆƒ…็ปช๏ผˆfallback๏ผ‰ | โŒ ๅ…่ดน | | DeepSeek/OpenAI API | AI Agent LLM ๆŽจ็† | โœ… ้œ€้…็ฝฎ | | AnySearch API | ๆ–ฐ้—ปๆœ็ดข | โŒ ๅ…่ดน | | Kronos | Transformer ๆ—ถๅบ้ข„ๆต‹ๆจกๅž‹ | โŒ ๆœฌๅœฐๆจกๅž‹ | --- ## ๐Ÿ”’ ๅ…่ดฃๅฃฐๆ˜Ž ๆœฌ้กน็›ฎ**ไป…็”จไบŽ็ ”็ฉถๅ’Œๆ•™ๅญฆๆผ”็คบ**๏ผš - โŒ ไธๆŽฅๅ…ฅไปปไฝ•ๅฎž็›˜ไบคๆ˜“ๆŽฅๅฃ - โŒ ไธไธ‹ๅ•ใ€ไธไบคๆ˜“ใ€ไธ็ฎก็†่ต„ไบง - โš ๏ธ AI ้€‰่‚ก็ป“ๆžœไป…ไพ›ๅ‚่€ƒ๏ผŒไธๆž„ๆˆๆŠ•่ต„ๅปบ่ฎฎ - โš ๏ธ ๅ›žๆต‹ๅކๅฒ่กจ็Žฐไธไปฃ่กจๆœชๆฅๆ”ถ็›Š - ๐Ÿ’ก ๆŠ•่ต„ๆœ‰้ฃŽ้™ฉ๏ผŒๅ…ฅๅธ‚้œ€่ฐจๆ…Ž --- ## ๐Ÿ› ๏ธ ๆŠ€ๆœฏๆ ˆ | ็ฑปๅˆซ | ๆŠ€ๆœฏ | |------|------| | ๅŽ็ซฏๆก†ๆžถ | FastAPI + Uvicorn | | AI Agent | LangGraph ReAct + LangChain | | ML ๅผ•ๆ“Ž | Qlib (LightGBM/XGBoost) + Optuna | | ๆ—ถๅบ้ข„ๆต‹ | Kronos Transformer | | ๆ•ฐๆฎๆบ | MooTdx / ่…พ่ฎฏ่กŒๆƒ… | | ๆ•ฐๆฎๅบ“ | SQLite (Tortoise ORM) | | ๅ‰็ซฏ | ๅŽŸ็”Ÿ HTML / CSS / JavaScript | | ๅ›พ่กจ | ECharts | | ้ƒจ็ฝฒ | Docker Compose | | ่ฎค่ฏ | JWT | --- > **็›ธๅ…ณ้กน็›ฎๅฏนๆฏ”**๏ผšไธŽๆธฏๅคง Vibe-Trading ็›ธๆฏ”๏ผŒๆœฌ้กน็›ฎ็š„ไผ˜ๅŠฟๅœจไบŽ **A ่‚กๆทฑๅบฆ้€‚้…**๏ผˆๅฎŒๆ•ดไบคๆ˜“่ง„ๅˆ™ใ€7ๅฑ‚้ฃŽๆŽงใ€ไธปๅŠ›่ต„้‡‘ไผฐ็ฎ—๏ผ‰ๅ’Œ **ML ๅ…จ่‡ชๅŠจๅ†ณ็ญ–้—ญ็Žฏ**๏ผˆTโ†’T+1โ†’T+2 ๆ—ฅๅ†ณ็ญ– + ่‡ชๅŠจๅค็›˜๏ผ‰๏ผŒ้€‚ๅˆ่š็„ฆ A ่‚ก็š„ๆŠ•่ต„่€…ๅ’Œ็ ”็ฉถ่€…ๅ’Œใ€‚