3.9 KiB
3.9 KiB
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 | 初始架构重构 |