Analisis Saham Harian: Sistem AI yang Menukar Senarai Pantau Menjadi Papan Pemuka Keputusan Harian

daily_stock_analysis oleh ZhuLinsen ialah salah satu projek AI-kewangan paling banyak diberi bintang ketika ini — repositori Python nombor 1 hari itu di Trendshift. Namun bahagian yang menarik bukanlah jumlah bintangnya. Yang menariknya ialah projek ini enggan berpura-pura meramal harga. Sebaliknya, ia menyelesaikan masalah yang lebih sempit tetapi jauh lebih berguna: setiap hari dagangan, mengambil senarai pantau anda dan menghasilkan laporan analitik yang berstruktur dan boleh dijelaskan — lalu menghantarnya ke tempat anda benar-benar membaca, iaitu aplikasi pemesejan anda.
Penafian daripada penulis projek: untuk pembelajaran dan penyelidikan sahaja. Ini bukan nasihat pelaburan. Pasaran mempunyai risiko.
Idea Teras: Bukan Bot, tetapi Penganalisis-Pelapor Harian
Kebanyakan repositori "dagangan AI" mengejar fantasi yang sama: model masuk, isyarat keluar, wang naik. daily_stock_analysis dibina atas premis yang lebih jujur — bahagian sukar dalam melabur bukanlah menghasilkan satu lagi isyarat, sebaliknya menyusun gambaran yang lengkap dan konsisten tentang sesuatu saham dan menuliskannya dengan cara yang sama setiap hari.
Maka ia berkelakuan seperti penganalisis muda yang mengikut jadual. Salurannya linear dan mudah dibaca:
| Peringkat | Apa yang berlaku |
|---|---|
| Pengambilan data | Sebut harga, candle harian, penunjuk, aliran modal, fundamental, cip |
| Analisis teknikal | Purata bergerak, RSI, volum, nisbah bias, pengelasan trend |
| Berita & perisikan | Mencari berita terkini, pengumuman, sentimen bagi setiap ticker |
| Analisis LLM | Membina pakej konteks dan prompt, menghasilkan papan pemuka keputusan JSON |
| Render laporan | Laporan Markdown, secara pilihan ditukar menjadi imej |
| Pemberitahuan | Menghantar ke WeCom, Feishu, Telegram, Discord, Slack, atau e-mel |
Secara lalai ia berjalan mengikut jadual (hari bekerja, selepas penutupan) dan melangkau hari bukan dagangan. Ia merangkumi saham A, Hong Kong, saham dan ETF AS, dengan pasaran Jepun dan Korea disokong pada tahap yang lebih terhad di tempat sumber data tidak menjangkau.
Bahagian yang Diam-diam Pintar: Fallback Data

Keputusan kejuruteraan paling teguh dalam projek ini bukanlah LLM — sebaliknya cara ia menganggap data sebagai tidak boleh dipercayai secara lalai.
Data pasaran diambil melalui rantaian keutamaan enam pembekal, masing-masing menjadi fallback bagi yang sebelumnya:
Efinance (P0) → Tencent (P0) → Akshare (P1) → Pytdx (P2) → Baostock (P3) → Yfinance (P4)
Apabila anda menganalisis ticker AS, sistem secara automatik melangkau pembekal khusus China dan menghala ke Yahoo Finance. Jika sesuatu sumber gagal, tamat masa, atau memulangkan data separa, larian itu menurunkan satu blok itu sahaja dan bukannya meruntuhkan seluruh laporan. Prompt malah diberitahu blok mana yang fallback, partial, atau missing — supaya model dikehendaki menulis "data tidak tersedia" dan bukannya mereka-reka angka.
Ini ialah naluri yang betul bagi mana-mana sistem pengeluaran: kegagalan satu sumber data tidak sepatutnya meruntuhkan seluruh analisis. Anggap setiap suapan sebagai best-effort, seragamkan medannya, dan jadikan data yang hilang kelihatan dan bukannya mengisinya secara senyap.
Papan Pemuka Keputusan
LLM tidak memulangkan prosa — ia memulangkan "papan pemuka keputusan" JSON yang ketat yang dirender oleh laporan menjadi susun atur yang konsisten:
- Kesimpulan teras — satu ayat: beli, pegang, atau tunggu, serta kepekaan masa.
- Nasihat berasingan — panduan berbeza bagi seseorang yang memegang kedudukan berbanding seseorang yang memegang tunai.
- Perspektif data — penjajaran MA, harga berbanding sokongan/rintangan, nisbah bias, bacaan volum.
- Perisikan — amaran risiko dan pemangkin positif, masing-masing wajib mencatatkan tarikh.
- Pelan tempur — titik sniper konkrit: belian ideal, stop-loss, sasaran, penentuan saiz kedudukan.
- Senarai semak — setiap syarat ditandakan ✅ / ⚠️ / ❌ (penjajaran menaik, bias dalam julat, volum, tiada berita buruk besar, penilaian).
Disiplin yang terkandung dalam prompt bersifat tegas dan munasabah: jangan mengejar (bias melebihi 5% di atas MA5 ialah "jangan beli" yang tegas), hanya berdagang dengan penjajaran MA menaik (MA5 > MA10 > MA20), lebih suka membeli pullback volum mengecil ke sokongan, dan jangan sekali-kali berbalik antara beli dan jual atas pergerakan satu hari.
Strategi Ejen: Ajukan Soalan kepada Sistem
Selain laporan harian, projek ini disertakan dengan mod ejen dengan 15 buku panduan strategi terbina dalam yang boleh anda soal bagi setiap ticker:
| Keluarga | Contoh |
|---|---|
| Trend / purata bergerak | MA golden cross, trend menaik |
| Teori struktur | teori Chan (Zen), gelombang Elliott |
| Tingkah laku / kecairan | kitaran emosi, breakout volum, volum dasar, pullback volum mengecil |
| Pemangkin / naratif | tema hangat, dipacu peristiwa, penilaian semula jangkaan |
| Kualiti / pertumbuhan | kualiti pertumbuhan |
Setiap strategi ialah fail YAML dengan peraturannya sendiri, alat yang diperlukan, dan pelarasan pemarkahan — supaya "perisikan" itu boleh dikonfigurasi dan boleh diaudit, bukan tersembunyi di dalam satu prompt gergasi.
Cara Membacanya Tanpa Menipu Diri Sendiri
Mana-mana projek seperti ini mudah untuk terlalu dipercayai. Senarai semak penilaian yang jujur:
- Kualiti sumber berita. Blok perisikan hanya sebaik pembekal carian yang anda konfigurasikan — tanpanya, sentimen dan pemangkin menjadi kosong dan laporan bersandar sepenuhnya pada teknikal.
- Determinisme. Output LLM berbeza-beza; ticker yang sama boleh dibaca sedikit berbeza merentas larian. Anggap papan pemuka sebagai pendapat berstruktur, bukan kebenaran tetap.
- Liputan mengikut pasaran. Kedalaman saham A (aliran modal, cip, dragon-tiger) menurun dengan baik kepada
not_supportedpada pasaran yang tidak diliputi data. - Kesegaran data. Perhatikan flag
fallback/partial— input yang merosot sepatutnya menurunkan keyakinan anda, tepat seperti yang diarahkan oleh prompt. - Ujian belakang ≠ keuntungan. Laporan ialah sokongan keputusan, bukan kelebihan yang disahkan.
Batasan dan Penilaian Jujur
Apa yang bukan daily_stock_analysis:
- Bukan sistem pelaksanaan. Ia menganalisis dan melaporkan; ia tidak meletakkan pesanan atau memodelkan kecairan.
- Bergantung pada model. Kualiti output mengikut LLM yang anda halakan.
- Bergantung pada carian. Tanpa kunci API berita, separuh kualitatif laporan menjadi nipis.
- Bukan deterministik. Input yang sama boleh menghasilkan papan pemuka yang sedikit berbeza.
Pautan
- 💻 GitHub: ZhuLinsen/daily_stock_analysis
- 📄 Lesen: MIT
Kesimpulan
daily_stock_analysis bernilai bukan sebagai orakel tetapi sebagai tabiat analitik yang boleh diulang, yang diautomasikan:
- Seragamkan apa yang dimaksudkan dengan "melihat sesuatu saham", setiap hari.
- Anggap data sebagai tidak boleh dipercayai dan jadikan jurang kelihatan.
- Jadikan kesimpulan boleh dijelaskan — skor, paras, senarai semak, risiko.
- Pisahkan penjanaan idea (15 strategi) daripada rangka keputusan yang berdisiplin.
Untuk pembelajaran, semakan harian, dan membuat prototaip aliran kerja penyelidikan, ia dibina dengan baik. Untuk pengeluaran, lapisan seterusnya ialah lapisan yang sama yang diperlukan oleh setiap sistem yang serius: data yang disahkan, kawalan model-drift, pelaksanaan yang realistik, dan peraturan risiko yang hidup dalam kod, bukan hanya dalam prompt.
Pengarang
Trading-systems engineer
Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.