Files
MoFin/SYSTEM_ARCHITECTURE.md
T

3.9 KiB
Raw Blame History

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.pyread_portfolio() / read_decisions() / read_watchlist()
  • 写入mofin_db.pywrite_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 初始架构重构