Skip to content

happydog-intj/stock-analysis-agent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

33 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

่‚ก็ฅจๅˆ†ๆž Agent โ€” ๆฑ‡้‡็ง‘ๆŠ€ 1860.HK

ๆ— ็Šถๆ€ใ€้›ถๅŸบ็ก€่ฎพๆ–ฝ็š„ๆธฏ่‚ก่ˆ†ๆƒ…ๅˆ†ๆž Agent๏ผš่‡ชๅŠจ้‡‡้›†ๅฝ“ๆ—ฅ้›ช็ƒ/Reddit ่ฏ„่ฎบ๏ผŒLLM ๆƒ…็ปช่ฏ„ๅˆ†๏ผŒ้ฃžไนฆๅฎšๆ—ถๆŽจๆŠฅๅ‘Šใ€‚ๆ— ้œ€ๆ•ฐๆฎๅบ“ๅ’Œ Redis๏ผŒ็›ดๆŽฅ่ท‘ๅœจ GitHub Actions ไธŠใ€‚


้กน็›ฎ็ฎ€ไป‹

ๆœฌ้กน็›ฎ้€š่ฟ‡ๅคšไธชๆ•ฐๆฎ้‡‡้›†ๅ™จ๏ผˆ้›ช็ƒใ€Redditใ€ๆธฏไบคๆ‰€ๆŠซ้œฒๆ˜“ใ€Yahoo Finance๏ผ‰ๆŒ็ปญๆ”ถ้›†ไธŽๆฑ‡้‡็ง‘ๆŠ€็›ธๅ…ณ็š„่ˆ†ๆƒ…ไธŽๅธ‚ๅœบๆ•ฐๆฎ๏ผŒๅˆฉ็”จ Claude API ่ฟ›่กŒๆƒ…็ปชๆ‰“ๅˆ†ไธŽไธป้ข˜ๆ็‚ผ๏ผŒๅนถๅœจๆฏๅคฉๅ›บๅฎšๆ—ถ้—ด๏ผˆ09:00 / 12:00 / 15:00๏ผ‰้€š่ฟ‡้ฃžไนฆ Webhook ่‡ชๅŠจๆŽจ้€ๆ™จๆŠฅใ€ๅˆๆŠฅใ€ๆ”ถ็›˜ๆŠฅใ€‚


ๆžถๆž„ๅ›พ

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                       Orchestrator Agent                        โ”‚
โ”‚              (ๅ่ฐƒ้‡‡้›† โ†’ ๅˆ†ๆž โ†’ ๆŠฅๅ‘Šๆ•ดไธชๆต็จ‹)                        โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
        โ”‚                โ”‚                โ”‚
   โ”Œโ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”      โ”Œโ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”     โ”Œโ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”
   โ”‚Sentimentโ”‚      โ”‚Industry โ”‚     โ”‚ Financial โ”‚
   โ”‚  Agent  โ”‚      โ”‚  Agent  โ”‚     โ”‚   Agent   โ”‚
   โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”˜      โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”˜     โ””โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”˜
        โ”‚                โ”‚                โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    Collectors Layer                    โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚  Xueqiu  โ”‚ โ”‚Redditโ”‚ โ”‚ HKEX โ”‚ โ”‚Yahoo โ”‚ โ”‚Futu/   โ”‚  โ”‚
โ”‚  โ”‚(Playwrightโ”‚ โ”‚(PRAW)โ”‚ โ”‚(HTTP)โ”‚ โ”‚Fin.  โ”‚ โ”‚Tiger   โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”ฌโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”ฌโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”ฌโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
        โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                            โ”‚
              โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
              โ”‚  (ๆ— ็Šถๆ€๏ผŒไธไพ่ต–ๆ•ฐๆฎๅบ“/Redis)  โ”‚
              โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                            โ”‚
              โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
              โ”‚      Analysis Layer         โ”‚
              โ”‚  Claude API ยท ๆƒ…็ปชๅˆ†ๆž       โ”‚
              โ”‚  ็ซžๅฏนๆฏ”่พƒ ยท ่ดขๅŠกๆŒ‡ๆ ‡          โ”‚
              โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                            โ”‚
              โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
              โ”‚      Reporter Layer         โ”‚
              โ”‚  ้ฃžไนฆๅฏŒๆ–‡ๆœฌๅก็‰‡ ยท ๆ™จ/ๅˆ/ๆ”ถ็›˜ๆŠฅ โ”‚
              โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ๅฟซ้€Ÿๅผ€ๅง‹

1. ็Žฏๅขƒๅ‡†ๅค‡

# ๅ…‹้š†้กน็›ฎ
git clone <repo-url>
cd stock-analysis-agent

# ๅˆ›ๅปบ่™šๆ‹Ÿ็Žฏๅขƒ๏ผˆๆŽจ่ Python 3.11+๏ผ‰
python -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate

# ๅฎ‰่ฃ…ไพ่ต–
pip install -r requirements.txt

# ๅฎ‰่ฃ… Playwright ๆต่งˆๅ™จ
playwright install chromium

2. ้…็ฝฎ็Žฏๅขƒๅ˜้‡

cp .env.example .env
# ็ผ–่พ‘ .env๏ผŒๅกซๅ…ฅๅ„ๅนณๅฐๅฏ†้’ฅ

3. ๅฏๅŠจ่ฐƒๅบฆๅ™จ

python scripts/run.py

ๆˆ–็›ดๆŽฅๆต‹่ฏ•ๅ•ๆฌกๆŠฅๅ‘Š๏ผš

python scripts/run_job.py morning

6. ๅކๅฒๆ•ฐๆฎๅ›žๅกซ

python scripts/backfill.py --ticker 1860.HK --days 30

๐Ÿš€ GitHub Actions ้ƒจ็ฝฒ๏ผˆๆŽจ่๏ผ‰

ๆ— ้œ€ๆœๅŠกๅ™จ๏ผŒ็›ดๆŽฅ็”จ GitHub Actions ๅ…่ดน่ฟ่กŒ๏ผŒๆฏๅคฉ่‡ชๅŠจๆŽจ้€ไธ‰ๆฌกๆŠฅๅ‘Šใ€‚

1. Fork ๆœฌไป“ๅบ“

2. ้…็ฝฎ Secrets

่ฟ›ๅ…ฅไป“ๅบ“ Settings โ†’ Secrets and variables โ†’ Actions โ†’ New repository secret๏ผŒๆทปๅŠ ไปฅไธ‹ secrets๏ผš

Secret ๅ็งฐ ๅฟ…ๅกซ ่ฏดๆ˜Ž
LLM_PROVIDER โœ… ้€‰ๆ‹ฉๆจกๅž‹๏ผšclaude / qwen / kimi / glm / minimax
LLM_MODEL ๅฏ้€‰ ๆŒ‡ๅฎšๆจกๅž‹ๅ๏ผŒ็•™็ฉบ็”จ้ป˜่ฎคๅ€ผ
CLAUDE_API_KEY ๆŒ‰้œ€ Anthropic API Key๏ผˆLLM_PROVIDER=claude ๆ—ถๅกซ๏ผ‰
QWEN_API_KEY ๆŒ‰้œ€ ้˜ฟ้‡Œไบ‘ DashScope Key๏ผˆLLM_PROVIDER=qwen ๆ—ถๅกซ๏ผ‰
KIMI_API_KEY ๆŒ‰้œ€ Moonshot Kimi Key๏ผˆLLM_PROVIDER=kimi ๆ—ถๅกซ๏ผ‰
GLM_API_KEY ๆŒ‰้œ€ ๆ™บ่ฐฑ GLM Key๏ผˆLLM_PROVIDER=glm ๆ—ถๅกซ๏ผ‰
MINIMAX_API_KEY ๆŒ‰้œ€ MiniMax Key๏ผˆLLM_PROVIDER=minimax ๆ—ถๅกซ๏ผ‰
FEISHU_WEBHOOK โœ… ้ฃžไนฆๆœบๅ™จไบบ Webhook URL
REDDIT_CLIENT_ID โœ… Reddit App Client ID
REDDIT_CLIENT_SECRET โœ… Reddit App Secret
REDDIT_USERNAME โœ… Reddit ่ดฆๅท็”จๆˆทๅ
REDDIT_PASSWORD โœ… Reddit ่ดฆๅทๅฏ†็ 
XUEQIU_COOKIES โœ… ้›ช็ƒ็™ปๅฝ• Cookie๏ผˆJSON ๅญ—็ฌฆไธฒ๏ผ‰

3. ๅฏ็”จ Workflow

่ฟ›ๅ…ฅไป“ๅบ“ Actions ๆ ‡็ญพ้กต โ†’ ๅฏ็”จ Workflowsใ€‚

4. ่งฆๅ‘ๆ—ถ้—ด๏ผˆ่‡ชๅŠจ๏ผ‰

Workflow Cron (UTC) HKT ๆ—ถ้—ด
ๆ™จๆŠฅ 0 1 * * 1-5 ๅ‘จไธ€่‡ณๅ‘จไบ” 09:00
ๅˆๆŠฅ 0 4 * * 1-5 ๅ‘จไธ€่‡ณๅ‘จไบ” 12:00
ๆ”ถ็›˜ๆŠฅ 0 7 * * 1-5 ๅ‘จไธ€่‡ณๅ‘จไบ” 15:00

5. ๆ‰‹ๅŠจ่งฆๅ‘๏ผˆๆต‹่ฏ•๏ผ‰

Actions โ†’ ๐Ÿ“Š Stock Reports โ†’ Run workflow โ†’ ้€‰ๆ‹ฉๆŠฅๅ‘Š็ฑปๅž‹ โ†’ Runใ€‚


้…็ฝฎ่ฏดๆ˜Ž

ๅ˜้‡ ่ฏดๆ˜Ž ็คบไพ‹
LLM_PROVIDER LLM ๆไพ›ๅ•† claude / qwen / kimi / glm / minimax
CLAUDE_API_KEY Anthropic Claude API ๅฏ†้’ฅ sk-ant-...
FEISHU_WEBHOOK ้ฃžไนฆๆœบๅ™จไบบ Webhook URL https://open.feishu.cn/open-apis/bot/v2/hook/xxx
REDDIT_CLIENT_ID Reddit App Client ID โ€”
REDDIT_CLIENT_SECRET Reddit App Secret โ€”
REDDIT_USER_AGENT Reddit ่ฏทๆฑ‚ UA StockBot/1.0
FUTU_HOST FutuOpenD ๆœๅŠกๅœฐๅ€ 127.0.0.1
FUTU_PORT FutuOpenD ๆœๅŠก็ซฏๅฃ 11111
TIGER_TIGER_ID Tiger Broker Tiger ID โ€”
TIGER_PRIVATE_KEY Tiger RSA ็ง้’ฅ โ€”

็›ฎๅฝ•็ป“ๆž„

stock-analysis-agent/
โ”œโ”€โ”€ config/            # ๅ…จๅฑ€้…็ฝฎ๏ผˆpydantic-settings๏ผ‰
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ collectors/    # ๆ•ฐๆฎ้‡‡้›†ๅฑ‚๏ผˆ้›ช็ƒ/Reddit/HKEX/Yahoo๏ผ‰
โ”‚   โ”œโ”€โ”€ analysis/      # LLM ๆƒ…็ปชๅˆ†ๆž๏ผˆๅคšๆไพ›ๅ•†๏ผ‰
โ”‚   โ”œโ”€โ”€ scheduler/     # APScheduler ๅฎšๆ—ถไปปๅŠก
โ”‚   โ””โ”€โ”€ reporters/     # ้ฃžไนฆๆŠฅๅ‘ŠๆŽจ้€
โ”œโ”€โ”€ tests/             # ๅ•ๅ…ƒๆต‹่ฏ•
โ””โ”€โ”€ scripts/           # ๅ…ฅๅฃ่„šๆœฌ๏ผˆrun.py / run_job.py๏ผ‰

็›‘ๆŽงๆŒ‡ๆ ‡๏ผˆๆฑ‡้‡็ง‘ๆŠ€ 1860.HK๏ผ‰

  • ไธป่ฆ็ซžๅฏน๏ผšAppLovin๏ผˆAPP๏ผ‰ใ€Unity Ads๏ผˆU๏ผ‰ใ€Digital Turbine๏ผˆAPPS๏ผ‰
  • ๆ ธๅฟƒไธšๅŠก๏ผš็จ‹ๅบๅŒ–ๅนฟๅ‘Š๏ผˆMintegral DSP/SSP๏ผ‰ใ€็งปๅŠจๅบ”็”จๅ‘่กŒ
  • ๅ…ณ้”ฎ่ฏ๏ผšMobvista, Mintegral, ๆฑ‡้‡็ง‘ๆŠ€, 1860.HK
  • ๆธฏไบคๆ‰€ๅ…ฌๅ‘Šๅˆ†็ฑป๏ผšไธš็ปฉๅ…ฌๅ‘Š๏ผˆP3๏ผ‰ใ€ๅ›ž่ดญ๏ผˆP2๏ผ‰ใ€่‚กๆƒๅ˜ๅŠจ๏ผˆP2๏ผ‰ใ€ไธ€่ˆฌๅ…ฌๅ‘Š๏ผˆP1๏ผ‰

License

MIT

About

๐Ÿ“ˆ ่‚ก็ฅจๅˆ†ๆž Agent๏ผšๆƒ…็ปชๅˆ†ๆž + ่กŒไธšๆ•ฐๆฎ + ่ดขๆŠฅๅ…ฌๅ‘Š๏ผŒไปฅๆฑ‡้‡็ง‘ๆŠ€(1860.HK)ไธบๆกˆไพ‹

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages