# MoFin 系统架构 > 最后更新:2026-07-03 > 维护人:Sisyphus (小小莫) + Zhiwei (知微) --- ## 一、数据层 ### 数据库 所有数据存储在 SQLite:`/home/hmo/web-dashboard/data/mofin.db` | 表 | 用途 | 写入方 | |----|------|--------| | `holdings` | 持仓列表 | price_monitor, import_holding_xls | | `portfolio_summary` | 总资产/市值/仓位 | price_monitor, regenerate_all | | `holding_strategies` | 策略/决策 | regenerate_all, server.py API | | `watchlist_stocks` | 自选股 | price_monitor, regenerate_all | | `cash_log` | 现金变更审计 | write_cash_log | | `market_snapshots` | 大盘数据 | market_watch | | `sector_snapshots` | 板块数据 | market_watch | | `live_prices` | 实时价格快照 | price_monitor | | `mtf_cache` | 多周期K线缓存 | multi_timeframe | | `capital_flow_cache` | 资金流缓存 | capital_flow_collector | | `price_events` | 价格触发事件 | price_monitor | ### 数据访问 - **读取**:`mo_data.py` — `read_portfolio()` / `read_decisions()` / `read_watchlist()` - **写入**:`mofin_db.py` — `write_holdings_batch()` / `write_holding_strategy()` / `write_portfolio_summary()` 等 JSON 文件已全部移除(portfolio.json, decisions.json, watchlist.json 等)。 ### 币种 | 品种 | 个股存储 | 汇总 | |------|---------|------| | 港股 | HKD (currency='HKD') | CNY (×汇率) | | A股 | CNY (currency='CNY') | CNY | `calc_total_assets()` 汇总时自动将港股 HKD 转 CNY。汇率由 `hk_rate.py` 实时获取。 --- ## 二、核心模块 ``` MoFin/ ├── mo_models.py # 统一数据模型:calc_total_assets, is_hk_stock, to_cny ├── mo_data.py # 统一读取层:read_portfolio, read_decisions, read_watchlist ├── mofin_db.py # DB 层:建表 + 写函数 + 查询函数 ├── mo_config.py # 配置单例 ├── price_monitor.py # 价格更新(cron: */2 9-16 1-5) ├── strategy_lifecycle.py # 策略生命周期(regenerate_all + quality gates) ├── server.py # Flask Web API(端口 8899) ├── market_watch.py # 大盘采集(cron: */30 9-15) ├── market_screener.py # 全市场筛选(cron: */30 9-15) ├── strategy_tree.py # 策略树/分支管理 ├── strategy_evaluator.py # 策略评估 ├── hk_rate.py # 港币汇率(API + 缓存) ├── multi_timeframe.py # 多周期K线分析 ├── stock_profile.py # 个股画像 ├── data_freshness.py # 数据新鲜度校验 ├── system_audit.py # 系统审计 ├── system_health_check.py# 系统健康检查 ├── prompt_manager/ # LLM Prompt 管理 ├── scripts/ # 工具/一次性脚本 └── docs/ # 文档 ``` --- ## 三、数据流 ``` 开盘 (9:00-16:00) │ ├── price_monitor (每2分钟) │ ├── 东财/腾讯 API → 拉价格 │ ├── write_holdings_batch → holdings 表 │ └── write_portfolio_summary → portfolio_summary 表 │ ├── market_watch (每30分钟) │ └── write_market_snapshot → market_snapshots + sector_snapshots │ ├── market_screener (每30分钟) │ └── 读 market_snapshots → 小果 LLM 筛选 → candidate_pool │ └── stale_push_wlin (每30分钟) └── 读持仓+决策 → 区间检测 → XMPP 推送 盘后 │ ├── system_audit (17:30) → 全局审计报告 ├── strategy_review (20:00) → 策略复盘 └── regenerate_all (手动/定时) → 全量策略重评 ``` --- ## 四、版本 | 版本 | 日期 | 关键变更 | |------|------|---------| | 5.0 | 2026-07-03 | JSON 彻底移除,纯 DB。币种修正(港股 HKD,汇总 CNY)。消除重复文件。 | | 4.0 | 2026-07-01 | mo_data 统一读取层,cash_log 表 | | 3.0 | 2026-06-30 | mo_models 统一数据模型,DSA 集成 | | 2.0 | 2026-06-29 | 初始架构重构 |