Commit Graph
99 Commits
Author SHA1 Message Date
hmo 6ad5c30ab1 fix: 证伪标记数据驱动——strategy_research加deprecated字段,前后端从数据读(替代硬编码),strategy_router排除证伪策略 2026-08-15 08:21:06 +08:00
hmo 0fef75fb05 fix: 研究Tab港股策略可见——_active_set合并A股顶层+港股markets.hk.active激活集合,港股策略不再折叠在历史组 2026-08-15 08:04:14 +08:00
hmo 7972f6031e fix: 激活策略始终在列表中——默认2y周期下其他激活策略(s2_panic/v_lurk_v3/v_mr/v_mr4/v_mr_sel)无回测记录被过滤, 现用10y数据补全加入列表 2026-08-13 12:44:39 +08:00
hmo 35bd408251 fix: 温区行所有列显示该温区数据——regime_perf v2为每策略x温区跑组合模拟(portfolio_sim 100万/10槽), 表扩展total_return/cagr/max_dd/capital_final/sharpe/profit_factor; server.py返回温区级完整指标; 前端温区行全列用温区数据(v_oversold trend_down年化29.1%/资产323万 vs choppy -0.2%/99万) 2026-08-13 12:04:36 +08:00
hmo 9f1185fc0d feat: 研究Tab重构——策略子Tab按适应温区展开多行(每策略每温区一行+温区列+温区胜率/均盈/样本), 当前使用改为当前温区激活(regime_weights.active), 移除组合子Tab(温区动态激活替代固定组合方案), /api/research/strategies返回regime_winrates+regime_active 2026-08-13 11:41:01 +08:00
hmo dec30896c3 feat: 温区自适应前端横幅+router v5+overview API——概览页置顶显示温区/温度/激活策略, server.py /api/overview 返回 regime_weights, strategy_router v5 动态策略库 2026-08-13 10:55:46 +08:00
hmo 7d75d54734 feat: 新增文档Tab(📚文档)——开源项目式文档体系(VERSIONS.md运营者版本变更+INDEX.md目录树+docs.json spec),让知微通过文档理解系统变化 2026-08-11 10:26:00 +08:00
xxm 98236c440c feat: 研究Tab组合方案展示 — 市场阶段分工(v_next4趋势+v_mr超跌)可视化
- 后端: evolution_api.py 新增 get_combo_dashboard() (regime+组合回测+成员指标+routing)
- 后端: server.py 新增 /api/evolution/combo 路由
- 前端: 研究Tab加子Tab(策略/组合), 组合Tab展示当前regime路由+成员策略10y指标+v_combo回测列表+组合自我进化
- 前端: 策略表格名称列启用换行(whitespace-normal), 消除长名称撑出水平滚动条
- 修复: market_regime 查询用 date 排序(id列不存在)
2026-08-02 23:17:34 +08:00
xxm 95ad45c096 feat: 研究Tab支持10年回测区间(v_mr 10y成绩可见)
- server.py: /api/research/backtest days映射补 5y(1825)/10y(3650),修复5y静默回退185天bug
- static/index.html: 时间区间下拉加近10年选项 + ptMap加10y
- 附带: mr_scanner v_mr实盘扫描器 + market_watch接入(2af2e934已含)
2026-08-02 22:52:55 +08:00
hmo a89e9fa8c0 feat: 自我进化模块——health_monitor+lesson_extractor+evolution_api+Dashboard+auto_iterator 2026-08-01 00:30:02 +08:00
hmo a3d23c9450 feat: 策略说明库+API返回description+列表说明列(全策略算法/思路/证据详尽记录) 2026-07-30 18:18:53 +08:00
hmo 6f4be02a90 feat: API+UI近5年区间切换(补) 2026-07-30 10:05:16 +08:00
hmo fdaff1cd50 feat: 港股策略研究体系——253只港股通宇宙回填+v7.1港股基线(61.5%胜率26笔)+h1.0过拟合教训+h1.1三强信号版+引擎/ API/UI分市场开关(全部/A股/港股) 2026-07-29 11:03:27 +08:00
hmo 3acbd6f4fd feat: 策略实验室多版本体系 — v1~v4.1迭代+12维上下文(大盘/趋势变化)+因子归因+版本对比列表 2026-07-28 23:57:23 +08:00
hmo 63b53f5c56 feat: 策略研究Tab全流程回测框架 + API端点 + 前端渲染 + 盘中大跌分析日志 2026-07-28 22:53:29 +08:00
hmo c572bbc3ef feat: 策略追踪评估系统(版本化+理论盈亏+浮盈/浮亏+自动SL/TP检测+30s刷新) 2026-07-27 19:03:05 +08:00
hmo 27d8d997d4 feat: 五维推荐评分 + 优中选优Top5 + exec gate评分驱动 + 自动补tag + XMPP完整策略 2026-07-27 14:03:09 +08:00
hmo f0407f3a98 fix(ui): 右上角时间改为同时显示价格数据时间+页面刷新时间,各带图标和标签 2026-07-27 09:42:06 +08:00
hmo a6ad0f6f9e fix: negation scan covers position-advice line + exec requires explicit position pct 2026-07-24 13:51:58 +08:00
hmo 481acfb18f feat: 优中选优机制(老爸:阈值太低+存量清洗+直接删)
- enqueue_recommend加严: RR>=2.0+仓位必须明确%+买入区有效+不追高(防今早RR1.49/仓位观望/区缺失的垃圾digest)
- promote: score>=7(原4=91%通过率)+ST排除+RR>=2.0
- watchlist_auto_exit: 新增死水3连退+RR<1.5退; 退出方式改为直接DELETE(非inactive)
- 盯盘可执行门槛1.5→2.0
2026-07-24 11:00:41 +08:00
hmo 12f7f87a2e fix: 弱信号不可执行+rr_low/rr_high防DELETE+INSERT冲零
- /api/watch: 信号不充分/关注/弱势持有/观望/持有 的推荐永远排队不徽章可执行
  (tag是LLM行动信号时遗留,技术路径降级信号后无权摘tag,徽章层自卡信号)
- write_holding_strategy: INSERT补rr_low/rr_high列,调用方不提供时保留旧值
  (盘中per_stock技术路径每次DELETE+INSERT把两个计算列冲成0,昨晚回填全灭)
2026-07-23 14:11:22 +08:00
hmo 440ce56b0b fix(ui): 盯盘推荐区RR三值+个股弹窗DB化
- /api/stock/<code>: 从holding_strategies读策略/三值RR/action/full_analysis
  (原先只读data/stocks/{code}.json, 与DB脱节, 弹窗打开=空白)
- openStock弹窗: 新增当前策略卡(信号/区间/损盈/三值RR/仓位/操作建议)+12维分析折叠区
- 盯盘推荐区RR列: 中值下方小字显示下沿~上沿(上次改错表了, renderWatchlist≠盯盘推荐区)
2026-07-22 23:25:34 +08:00
hmo 0f2c6555df fix(action): 12维操作建议写入action+技术路径action权限保护+RR区间显示修复
- batch parse_response提取【操作建议】→ save_result写action(根治: action字段只有技术路径写,
  旧'盈亏比不足不建议买入'与12维买入分析同框矛盾)
- write_holding_strategy: 技术路径不得覆盖新鲜(<20h)12维 action(与信号权威同级)
- 前端: rr_high>0即显示低~高区间(rr_low=0是合法信息: 区下沿=止损贴底即损)
- server: SEND_FILE_MAX_AGE_DEFAULT=0 禁静态缓存
2026-07-22 23:16:43 +08:00
hmo f7f7fe3ca0 fix(parser): 节标题锚定解析+脏区间清洗+三值RR
- parse_response: 只认行首【买入区间】【综合结论】等节行(原先取首个关键词行,
  命中修改点段落引用的旧脏值→95~99区间反复写回,17只股票受害);
  信号锚定】后首词,防'观望(不建议买入)'误判; 【买入区间】无→显式清空
- save_result: 区间-现价距离门禁(eh<0.5px或el>1.5px→拒写并清空,不再保留原值养脏)
- recompute_rr: 三值RR(rr_low/rr_ratio中/rr_high,分别对应区下沿/中值/上沿入场)
- 迁移: holding_strategies+rr_low/rr_high列; digest显示RR中(低~高); watch API+前端展示
2026-07-22 22:59:18 +08:00
hmo 9bcf3e5e63 fix(rec): RR系统自算落库+卖出不占买入预算+RR>=1.5门槛
- mofin_db.recompute_rr: 用现价+止损止盈重算RR, sync_recommend_tag入口统一调用
  (根治: prompt没让LLM输出RR, parse不解析, save不落库 → rr_ratio永远0)
- flush_rec_digest: 卖出/止盈单独一组排最前, 不占现金预算; 买入加RR>=1.5可执行门槛
- server.py/api/watch: 卖出永远可执行; 买入RR>=1.5才给可执行徽章
  (根治: 卖出默认吃8%预算被排队, RR=0的5%仓位反而挤进预算)
2026-07-22 20:31:47 +08:00
hmo f35144f3f1 feat(盯盘): 推荐区全展示+可执行/排队徽章(预算内标可执行,不再降级隐藏) 2026-07-22 10:53:32 +08:00
hmo c1b38d3d7b feat(盯盘): 推荐操作精选层——72h新鲜度+RR降序+现金预算贪心装入(上限5只)
老爸: 太多推荐=没有推荐。机制:
- 候选: tag非空 且 reassessed_at 72h内(陈旧信号不算推荐)
- 排序: rr_ratio 降序
- 预算: 从 portfolio_summary 读现金/总资产, 每只建议仓位
  (position_advice解析%或默认8%) 贪心累加, 耗尽即止, 最多5只
- 落选者降回持仓/自选自然组
- /api/watch 返回 cash/budget_pct/rec_used_pct, 前端显示预算条
- 推荐行仓位列显示'建议X%'
2026-07-22 00:16:35 +08:00
hmo 5b44086c8a fix: reports匹配链修正(标题匹配不再是死代码) + strategy_history空历史时降级当前行 2026-07-20 23:58:45 +08:00
hmo de9927a627 重评核心重构:ds-v4-pro + 原策略全文 + strategy_history + 前端三改造
后端(重评管线):
- 新增 llm_client.py 共享客户端: REASSESS_MODEL=deepseek-v4-pro 单点,
  gateway预检(fail-fast), 150s超时+1次重试, 永不抛异常
- batch_reassess/per_stock_reassess: curl/urllib -> call_llm,
  prompt传入原策略全文+当前参数+最近3条变更, 输出 维持/修改判断+
  修改点理由+最终新策略, max_tokens 4096
- mofin_db: 新增 strategy_history 表 + snapshot_strategy_history(),
  write_holding_strategy 覆写前自动快照(保留20条/code)
- mofin_db: holding_strategies 补 tag 列迁移 + 写入保留
  (tag缺席=保留旧值, 显式传''=允许清除), 修复推荐标签被静默丢弃
- mo_data.read_decisions: SELECT 补 tag
- stale_detector/promote_candidates: 子进程超时 240/60 -> 480s

前端:
- 移除 报告Tab -> mofin_health 全部流程/Cron 表加 最后十次 列
  (modal列表->详情), /api/reports 支持 cron+script 多路匹配
  (jobs.json name->id 解析 + 文件名/标题子串兜底)
- 移除 决策库Tab
- 盯盘Tab 重构: 全部持仓+自选, sort_group 分组(推荐/持仓/自选),
  推荐行琥珀高亮+🔥badge+行内策略, 新增 操作策略 列查看
  最近3次完整策略(/api/strategy_history/<code>, 表缺失时降级当前行)
- 提示词Tab: registry.py 数据路径改回 /home/hmo/MoFin/data/prompts
  (红线: 数据只在规范数据根), 空态提示初始化命令
2026-07-20 23:51:24 +08:00
知微 0190c02064 chore: capture live morning state before session merge 2026-07-20 08:50:29 +08:00
知微 e366a6359a fix(bot): 防递归重连 guard - 防止 on_disconnect → reconnect → disconnect 无限递归导致栈溢出 2026-07-19 20:59:18 +08:00
知微 9239ab40c0 docs: 更新CHANGELOG + 开发日志记录07/13全部变更
- XMPP Bot非阻塞/本地XMPP/MUC修复
- price_monitor推送冷却持久化
- 深套股规则重构+换股规划swap-plan
- 周月线技术分析增强
- 健康Tab写无读清零
- stale_push_wlin/per_stock_reassess/promote_candidates更新
- static/index.html + mofin_health.json + server.py同步
2026-07-13 12:09:25 +08:00
知微 016258bc09 feat: 批量LLM九维分析+仓位建议列+Dashboard显示 2026-07-09 23:16:47 +08:00
知微 14690a64e5 fix: 自选按信号优先级排序+策略显示tech_snapshot/sector_context 2026-07-09 20:24:43 +08:00
知微 ffef8cdd29 fix: 自选Tab显示策略数据(买入区间/信号/策略)+live_prices涨跌 2026-07-09 19:49:07 +08:00
知微 a83c0ea11e fix: watchlist API改用holding_strategies+市场Tabtrend变量 2026-07-09 19:24:45 +08:00
知微 057e87f0ab feat: Dashboard市场Tab候选管道+S4资金流(外盘/内盘)+全链路测试通过 2026-07-09 19:07:08 +08:00
知微 3e2f0315eb 完全DB版: 移除JSON写入/回退,所有操作直走SQLite
- price_monitor: 完全DB版,不再读写 portfolio.json/watchlist.json
  - holdings代码从DB读取(SELECT code FROM holdings WHERE is_active=1)
  - 价格写入DB holdings表 + portfolio_summary + live_prices
  - 3次重试+指数退避防锁
- server.py: 移除API的JSON回退,DB失败直接返回500
- mofin_db.py: execute_with_retry/commit_with_retry + 15s timeout + busy_timeout
- mo_data.py: 已是纯DB模式(无JSON fallback)

这是推进的完全DB化。下一步可删除 data/portfolio.json data/decisions.json data/watchlist.json 等遗留JSON。
2026-07-06 12:08:08 +08:00
知微 b3bedc8024 migrate: remove JSON, DB-only — mo_data, server, scripts, prompts (27 files) 2026-07-03 12:12:05 +08:00
知微 8ed755bff9 feat: strategy_lifecycle + stale_detector + server — DB-first price reads, Tencent API as fallback only 2026-07-01 22:48:48 +08:00
hmo 6abc2e45b0 refactor: phase 0-2 MoFin architecture reform — single source of truth
Phase 0 (止血):
- mo_models.py: unified calc_total_assets(), is_hk_stock(), get_hk_rate() — single source of truth
- Fixed 3 files missing frozen_cash: holdings_reconciliation, server, import_holding_xls
- Fixed stale_push_wlin: unified is_hk_stock detection, removed hardcoded 0.866
- Fixed price_monitor: consolidated 2 duplicate total_assets blocks into mo_models calls
- Fixed stock_scorer: replaced broken len()<=5 is_hk_stock heuristic
- Fixed strategy_lifecycle: replaced non-existent currency_utils import with mo_models

Phase 1 (DSA adapter):
- mo_provider.py: wraps DSA DataFetcherManager (16 fetchers, auto-fallback)
  - TDX relay as primary, DSA as backup for realtime/kline/news/fundamentals

Phase 2 (Integration):
- mo_bridge.py: injects DSA market review + news context into MoFin analysis prompts
- Graceful degradation if DSA not installed

Infrastructure:
- mo_config.py: centralized Config singleton replacing scattered hardcoded paths
- All 11 changed files pass python compile check

Impact: total_assets now computed in ONE place (mo_models).
        is_hk_stock now ONE implementation (no more false negatives).
        HK rate now ONE source (hk_rate API → cache → 0.87 fallback).
        No more hardcoded 0.866/0.8664/0.8700 divergence.
2026-06-29 23:25:54 +08:00
知微 0ecdfbc861 上传OCR切换:小果GLM-OCR-8bit优先,Tesseract降级
MoFin/server.py 的 _ocr_image 改为:
1. 优先调小果 gateway (192.168.1.122:18003) 的 GLM-OCR-8bit
2. 失败/无响应则自动降级到本地 Tesseract(预处理+chi_sim+eng)
3. fallback逻辑保留原预处理管道(放大/锐化/二值化)

ocr_client.py 模块独立可调用,兼作CLI工具
2026-06-24 13:48:40 +08:00
知微 ce687a4216 fix: xiaoguo_scanner 榜单更新+看空榜持仓预警
- 修bug:stock_rank_cxd_ths 实为'创新低',改为 stock_rank_lxsz_ths '连续上涨'
- 新增6个看多榜(险资举牌)+ 5个看空榜(创新低/持续缩量/量价齐跌/连续下跌/向下突破)
- 看空榜自动比对持仓,命中写入 xiaoguo_risk 信号
- 东财热榜静默降级(502不可修)
- 看空榜不跳过已扫描,每轮全检
2026-06-22 19:13:55 +08:00
知微 a8c3ec5db9 三修:建议去重+闭环跟踪+模糊用词禁令
server.py:
- /api/advice/record 加去重(同天+同方向+同摘要前40字=跳过)
- /api/advice/confirm 支持 executed 动作+自动打 evaluated 标记

cron prompts:
- MoFin盘前中监控 + 午后监控 加入 advice/record 调用指令
- 模糊用词禁令嵌入 cron prompt
2026-06-21 23:00:53 +08:00
知微 70514bf542 Dashboard: 信号tab + API(signals + xiaoguo-scan),前端展示 2026-06-21 02:44:05 +08:00
hmo 25f8c6ec67 refactor: 消费者切 SQLite 优先读取
切换策略: SQLite 优先 → 失败回退 JSON

price_events (100%覆盖):
- strategy_feedback.py: run() 优先 query_price_events()
- system_health_check.py: 优先 query_price_events() + query_price_events_by_date()

stock_sector_map (100%覆盖):
- strategy_lifecycle.py: load_stock_sector_map() 优先 stock_sectors 表

market.json (85%覆盖):
- strategy_lifecycle.py: load_market_context() 优先 query_latest_market()
- market_insight.py: generate() 优先 query_latest_market()

portfolio.json + watchlist.json (70%覆盖):
- strategy_lifecycle.py: regenerate_all() 优先 query_holdings() + query_watchlist()
- server.py: /api/portfolio, /api/watchlist, /api/overview, /api/market 优先 SQLite

所有改动保留 JSON 回退路径,SQLite 不可用时自动降级
2026-06-20 17:50:15 +08:00
知微 66a8f24e17 加回 .gitignore 2026-06-20 12:43:24 +08:00
知微 (MoFin) 33df400c01 目录重组:web/ scripts/ config/ tests/ 标准化 2026-06-20 12:11:33 +08:00
知微 (MoFin) aa0f740381 MoFin 初始提交
完整数据采集+分析管道:
- market_watch.py:90行业板块采集(同花顺/东方财富)
- 市场精选推荐 cron:全市场分析+候选池+星级推荐
- price_monitor.py:持仓/自选高频价格监控
- refresh_mtf_cache.py:多周期K线缓存
- 策略评估/知识萃取管道

文档:docs/ 含完整需求+架构设计
注意:尚未配置 git remote,笑笑接手后自行配置
2026-06-20 12:04:21 +08:00