3.3 KiB
3.3 KiB
MoFin 架构改革 — 变更日志
日期:2026-06-29 ~ 2026-07-03 执行:Sisyphus (小小莫) + Zhiwei (知微)
2026-07-03 — JSON 彻底移除 + 币种架构修正
JSON→DB 全面迁移 (32+ 文件)
数据层
mo_data.py:删除所有 JSON fallback,纯 SQLite 读取mofin_db.py:write_holding_strategy改为 DELETE+INSERT(旧 ON CONFLICT 静默失败)holding_strategies新增 10 列:avg_price, decision_timestamp, note, quality_check, quality_checked_at, quality_issues_json, position_advice, signal_factors_json, time_horizon, decision_type- 新增
live_prices/mtf_cache/capital_flow_cache三张表 + 读写函数 - 已有
market_snapshots表接替 market.json
server.py
- 新增
_save_portfolio/_save_decision/_save_watchlist写函数 - 所有 13 个 API 写端点切到 DB,读端点删除 JSON fallback
脚本层
- 15 个文件
json.load → mo_data.read_*() - 12 个文件
json.dump → mofin_db.write_*()或直接删除 - strategy_lifecycle JSON 冷备行全部删除
- branch_scanner / prune_branches 切到 DB
- system_audit / stale_push_wlin / refresh_mtf_cache JSON→DB
LLM Prompt
- evaluation-daily v2:
evaluation.json→ DB 表 - knowledge-extraction v1:
decisions.json→ DB 表 - analytics.py:删除 JSON 路径常量
已移除的 JSON 文件(不再被任何代码读写)
- portfolio.json / decisions.json / watchlist.json
- live_prices.json / multi_tf_cache.json / market.json / capital_flow_cache.json
币种架构
港股 — 个股 price/cost/stop_loss 存 HKD,currency='HKD'
A股 — 个股 price/cost/stop_loss 存 CNY,currency='CNY'
总资产 — calc_total_assets() 汇总时港股 HKD×汇率→CNY
| 场景 | 港股 | A股 |
|---|---|---|
| 个股显示(股软对照) | HKD | CNY |
| 技术位(止损/止盈/买入区) | HKD | CNY |
| 总资产 / 总市值 / P&L | CNY(汇总时转换) | CNY |
关键修复
- 根
price_monitor.py与scripts/price_monitor.py不一致(前者存 HKD,后者转 CNY)→ 统一:存 HKD,不转换 s.get('price', 0)在 price 为 None 时返回 None 导致 TypeError → 改为s.get('price') or 0- 东财 API 限流(之前 0.1s 间隔疯狂刷被封)→ 第一只失败立刻切腾讯兜底
验证
holdings: 19 (8 HKD + 11 CNY)
decisions: 19 (8 HKD + 11 CNY)
total_assets: stored = calculated ✅
2026-07-01 — 统一读取层 + 现金日志
新增
mo_data.py—read_portfolio()/read_decisions()/read_watchlist()mofin_db.py—cash_log表 +write_cash_log/query_cash_log
修改
- 16 个文件
json.load → mo_data.read_*() - HK 股成本 HKD→CNY 修复(import_holding_xls 导入时转换)
2026-06-30 — 初始架构重构
新增
mo_models.py—calc_total_assets(),is_hk_stock(),get_hk_rate(),to_cny(),validate_portfolio()mo_config.py— 配置单例mo_bridge.py— DSA 集成桥mo_provider.py— DSA 数据源适配器scripts/data_validate.py,holdings_reconciliation.py,process_trade.py(知微)- DSA Web UI:
http://192.168.1.246:8001
修改
price_monitor.py:港股腾讯→东方财富 + 统一 total_assets- 8 个文件散落
is_hk_stock/total_assets统一到 mo_models