[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-84049":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":8,"htmlUrl":8,"language":9,"languages":8,"totalLinesOfCode":8,"stars":10,"forks":11,"watchers":12,"openIssues":13,"contributorsCount":13,"subscribersCount":13,"size":13,"stars1d":14,"stars7d":15,"stars30d":15,"stars90d":13,"forks30d":13,"starsTrendScore":16,"compositeScore":17,"rankGlobal":8,"rankLanguage":8,"license":8,"archived":18,"fork":18,"defaultBranch":19,"hasWiki":20,"hasPages":18,"topics":21,"createdAt":8,"pushedAt":8,"updatedAt":22,"readmeContent":23,"aiSummary":8,"trendingCount":13,"starSnapshotCount":13,"syncStatus":24,"lastSyncTime":25,"discoverSource":26},84049,"eastmoney-monthly","yuu-ramsey\u002Feastmoney-monthly","yuu-ramsey",null,"Python",110,15,5,0,14,47,75,82.31,false,"main",true,[],"2026-06-12 04:01:42","# eastmoney-monthly\n\n\n**A regime-adaptive analysis system for China A-share equities — designed to help you avoid losses, not chase profits.**\n\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-yellow.svg)](LICENSE)\n[![Python 3.10+](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPython-3.10+-blue.svg)](https:\u002F\u002Fwww.python.org\u002F)\n[![Node.js 18+](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNode.js-18+-green.svg)](https:\u002F\u002Fnodejs.org\u002F)\n\n> ⚠️ **This is a personal research project, not a commercial product.**\n> Updates and bug fixes happen on my own schedule — there are no guarantees of timely patches, backward compatibility, or continued development.\n> **Use entirely at your own risk.**\n\n---\n\n## 📌 News\n\n- 🚩 **[2026.06]** Regime-Adaptive MoE architecture designed (v2). Three-detector voting for regime detection, no single point of failure.\n- 🚩 **[2026.05]** Survivorship bias quantified at **8.4 percentage points** — rebuilt evaluation pool with Baostock (includes delisted stocks). All prior signal conclusions invalidated and re-evaluated.\n- 🚩 **[2026.05]** P0–P3 research cycle completed: 12 signal sources tested on 24-timepoint unbiased pool. Kronos most reliable overall (+9.7%); momentum and LightGBM validated in bear-market regimes (+20.6%); LLM effective as interpreter with strong directional accuracy in extreme cases.\n- 🚩 **[2026.05]** Multi-agent debate system (Bull\u002FBear\u002FPredictor\u002FJudge) with checkpoint\u002Fresume for Chrome MV3 service worker lifecycle.\n- 🚩 **[2026.04]** Initial Chrome Extension (MV3) + Node.js CLI dual-entry system.\n\n---\n\n## What This Project Is\n\nA multi-signal analysis system for monthly-frequency A-share technical analysis. It combines statistical factors, machine learning models, and LLM-based interpretation under a regime-adaptive framework.\n\n**Core philosophy:** No single model works in all market conditions. The system detects the current market regime and activates only the signals that have been validated for that specific environment.\n\n### What It Does\n\n- 📉 **Flags risk** — Tells you when signals conflict, when confidence is low, and when **not** to act. Knowing when to stay out is more valuable than knowing when to get in.\n- 📊 **Multi-signal analysis** — Combines independently validated signals (statistical factors, transformer predictions, LLM interpretation) rather than relying on any single model.\n- 🔄 **Regime awareness** — Different market conditions (trending, volatile, sideways) activate different signal combinations.\n- 📝 **Plain-language explanation** — LLM translates quantitative signals into readable technical analysis. The LLM explains; it does not decide.\n\n### What It Does NOT Do\n\n- ❌ Guarantee profits or positive returns\n- ❌ Execute trades or connect to any brokerage\n- ❌ Provide real-time signals (monthly frequency only)\n- ❌ Replace professional financial advice\n\n---\n\n## Architecture\n\n```\nLayer 1: Perception          Multi-scale features (monthly\u002Fweekly\u002Fdaily) + data quality gate\n            ↓\nLayer 2: Regime Detection    Three independent detectors (HMM \u002F volatility \u002F trend) → majority vote\n            ↓                No LLM in the loop — pure statistics and math\nLayer 3: Expert Pool         Multiple signals, each validated per-regime\n            ↓                Mechanical weight lookup — no model decides the weights\nLayer 4: Output              Weighted signal (math) + LLM interpretation (text, isolated from signal chain)\n```\n\n![Architecture Diagram](docs\u002Farchitecture.svg)\n\n**Design principles:**\n- **No single point of failure** — Any component can fail without breaking the system\n- **LLM isolation** — LLM generates explanations only; it never touches signal routing or weighting\n- **Mechanical gating** — Regime → weight mapping is a hardcoded lookup table, not a model prediction\n\n---\n\n## Signal Sources\n\nValidated on a 24-timepoint unbiased evaluation pool (3,100+ stock-timepoint pairs, includes delisted stocks via Baostock):\n\n| Signal | Type | Hold-out Test CI | Status |\n|--------|------|-----------------|--------|\n| Kronos | External Transformer | [+5.1, +15.3] | ✅ Most reliable ML signal — CI fully positive on 24tp |\n| Momentum Factor | Statistical Factor | +20.6% (bear) \u002F −42.2% (bull) | ✅ Validated in bear markets — regime-dependent |\n| LightGBM | Own ML Model | +20.6% (bear) \u002F −42.2% (bull) | ✅ Validated in bear markets — regime-dependent |\n| LLM Analysis | LLM (Anthropic\u002FDeepSeek) | +1.6% CI includes 0 (70% neutral) | 🔄 Active interpreter — strong_bull hit rate +26% |\n| Reversal Factor | Statistical Factor | −19.2% on 24tp (flipped from +6.6%) | 🔄 Per-regime breakdown pending |\n| GRU (Triple-Barrier) | Own ML Model | Borderline (CI includes 0) | 🧪 Research — per-regime re-evaluation planned |\n| LSTM (Daily) | Own ML Model | Training failed (data leakage) | ⏸️ Suspended — walk-forward retraining needed |\n\n---\n\n## Running Modes\n\nThe analysis engine is **platform-independent**. The Chrome Extension is one interface, not the only one.\n\n| Interface | Description | Use Case |\n|-----------|-------------|----------|\n| **Chrome Extension (MV3)** | Analyze stocks directly on Eastmoney pages | Real-time single-stock analysis |\n| **Node.js CLI** | `cli\u002F` commands for batch analysis and evaluation | Batch processing, evaluation, data pipeline |\n| **Python Scripts** | `scripts\u002F` and `lib\u002F` for ML training and research | Model training, backtesting, data construction |\n| **Native Host** | Bridge between extension and local compute | SQLite access, ML model inference |\n| **Future** | Standalone desktop UI, API service | Not yet implemented |\n\n---\n\n## Research Findings (P0–P3)\n\nKey methodological discoveries from the validation cycle:\n\n- **Survivorship bias = 8.4pp.** Excluding delisted stocks inflated low-position stock returns by 8.4 percentage points and flipped the reversal factor's sign from +6.6% to −19.2%. All conclusions from survivor-only pools were artifacts.\n- **Evaluation metric was pathological.** The original scoring matrix rewarded \"neutral\" predictions with a 0.3 floor, making \"always predict neutral\" the optimal strategy (score 0.401 vs. best model 0.197).\n- **Model performance is regime-dependent, not absolute.** LightGBM and momentum deliver +20.6% in bear markets but flip negative in bull markets. LSTM failed walk-forward training due to data leakage. GRU is borderline. Monthly-frequency data challenges deep learning models, but regime-aware routing can salvage regime-specific signals.\n- **LLM is too conservative.** 70.9% of LLM predictions are \"neutral\" — but when it does commit (strong_bull, n=30), alpha is +26%. The capability exists; the prompt suppresses it.\n\nFull research documentation in `docs\u002F`.\n\n---\n\n## Tech Stack\n\n| Component | Technology |\n|-----------|-----------|\n| Runtime | Chrome Extension (MV3) + Node.js native host |\n| Research | Python 3.10+ (PyTorch, scikit-learn, LightGBM, hmmlearn) |\n| Data | [Baostock](http:\u002F\u002Fbaostock.com) (free, no registration, includes delisted stocks) |\n| LLM | Anthropic Claude \u002F DeepSeek (configurable) |\n| Database | SQLite (better-sqlite3) |\n| Technical Indicators | Self-implemented (15 indicators, zero npm dependencies) |\n\n---\n\n## Quick Start\n\n### Prerequisites\n- Node.js 18+\n- Python 3.10+\n- Chrome browser (for extension mode)\n\n### Installation\n\n```bash\n# Clone\ngit clone https:\u002F\u002Fgithub.com\u002Fyuu-ramsey\u002Feastmoney-monthly.git\ncd eastmoney-monthly-ai\n\n# Node.js dependencies\nnpm install\n\n# Python dependencies (research\u002FML)\npip install -r requirements.txt\n\n# Download Kronos pretrained weights (MIT License)\npython kronos\u002Fdownload_weights.py\n```\n\n### Chrome Extension\n1. Open `chrome:\u002F\u002Fextensions\u002F`\n2. Enable \"Developer mode\"\n3. Click \"Load unpacked\" → select the project root\n4. Navigate to any stock page on Eastmoney\n\n### CLI Analysis\n```bash\nnode cli\u002Findex.js analyze 600519    # Analyze a single stock\nnode cli\u002Findex.js batch             # Batch analysis\n```\n\n---\n\n## Acknowledgments & References\n\n### Code-level References\n\n- **[Kronos](https:\u002F\u002Fgithub.com\u002Fshiyu-coder\u002FKronos)** — Financial K-line foundation model (AAAI 2026, [arXiv:2508.02739](https:\u002F\u002Farxiv.org\u002Fabs\u002F2508.02739)). Core prediction modules reproduced from this project. Pretrained weights from [HuggingFace](https:\u002F\u002Fhuggingface.co\u002FNeoQuasar\u002FKronos-base). MIT License. See `kronos\u002FLICENSE`.\n- **[Microsoft Qlib](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib)** — AI-oriented quantitative investment platform. Used as architecture reference and A-share daily performance benchmark for LSTM\u002FALSTM models. MIT License.\n- **[Baostock](http:\u002F\u002Fbaostock.com)** — Free, open-source A-share market data provider including delisted stock history. Primary data source for unbiased evaluation.\n- **[AkShare](https:\u002F\u002Fakshare.akfamily.xyz)** — Free financial data interface library. Used for industry classification data. MIT License.\n\n### Methodology References\n\n- López de Prado, M. (2018). *Advances in Financial Machine Learning*. Wiley. — Triple-Barrier labeling method.\n- Qin, Y. et al. (2017). A Dual-Stage Attention-Based RNN for Time Series Prediction. IJCAI 2017. [arXiv:1704.02971](https:\u002F\u002Farxiv.org\u002Fabs\u002F1704.02971) — ALSTM architecture reference.\n- Xu, W. et al. (2021). HIST: A Graph-based Framework for Stock Trend Forecasting. [arXiv:2110.13716](https:\u002F\u002Farxiv.org\u002Fabs\u002F2110.13716) — Concept-oriented architecture reference.\n- TradingAgents (2024). [arXiv:2412.20138](https:\u002F\u002Farxiv.org\u002Fabs\u002F2412.20138) — Multi-agent debate architecture inspiration.\n\n### Architecture Design References\n\nSee `docs\u002Fregime-adaptive-moe-architecture.md` for the complete architecture document with full literature references, including:\nGupta et al. 2025 (HMM ensemble voting), Vallarino 2025 (MoE framework, [arXiv:2508.02686](https:\u002F\u002Farxiv.org\u002Fabs\u002F2508.02686)), LLMoE 2025 ([arXiv:2501.09636](https:\u002F\u002Farxiv.org\u002Fabs\u002F2501.09636)), Meta-LMPS 2025, AEDL 2025, PortRSMs 2025, and others.\n\n---\n\n## ⚠️ Disclaimer\n\nThis software is provided for **educational and research purposes only**. It is not financial advice, and no part of this system constitutes a recommendation to buy, sell, or hold any security.\n\n**This tool is designed to help identify risk, not to generate trading signals.** Telling you when NOT to act is its primary function. If you use any output from this system as the sole basis for trading decisions, you do so entirely at your own risk.\n\nThe author makes no warranties regarding accuracy, completeness, or reliability of any analysis produced by this system. Past statistical validation does not guarantee future performance. Markets are inherently unpredictable.\n\n---\n\n## License\n\nThis project's own code is released under the [MIT License](LICENSE).\n\nThird-party components retain their original licenses:\n- `kronos\u002F` — MIT License (Copyright © 2025 ShiYu). See [`kronos\u002FLICENSE`](kronos\u002FLICENSE).\n- Pretrained weights ([NeoQuasar\u002FKronos-base](https:\u002F\u002Fhuggingface.co\u002FNeoQuasar\u002FKronos-base)) — MIT License.\n",2,"2026-06-11 04:12:10","CREATED_QUERY"]