hmo
08dd66c7e1
fix: 交易数列改执行数——显示实际参与组合的笔数/信号总数(v1.0:870/11k而非虚假的10246)
2026-07-29 23:19:40 +08:00
hmo
0bbc489a1b
feat: 列表双口径——新增全参与收益主列(单仓≥5万公平基线),集中仓为辅列,v11.0现原形(全参与仅+28.9%)
2026-07-29 15:32:54 +08:00
hmo
260354bdd3
feat: 全参与可行仓位模型(单仓≥5万地板,消除上车运气)+排序刷新丢失修复(综合分先算后排)
2026-07-29 15:26:57 +08:00
hmo
c90ffe78cc
fix: 列排序被港股沉底默认排序覆盖——默认排序仅在未选列排序时生效
2026-07-29 15:01:50 +08:00
hmo
c570fb9aab
feat: 策略列表全列可点击排序(升降切换+方向箭头)
2026-07-29 14:48:11 +08:00
hmo
f69cab552b
feat: 仓位模型内生化(STRATEGY_SIZING)+次日开盘入场杜绝未来幻觉+列表仓位列——波段策略3仓/固定出场4-5仓,v11.0以3仓+115.4%居首
2026-07-29 13:40:31 +08:00
hmo
a1090c17e0
fix: 市场筛选语义修正(港股筛选只显示港股)+当前徽章仅A股v7.1+港股版本沉底排序——v7.1身份不再被港股分身混淆
2026-07-29 11:32:06 +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
c9e7079ee6
feat: 三维共振层落地(技术×资金×消息合成+signal_veto_log全程记录) + 综合评分列(收益30/胜率20/夏普20/盈亏比15/回撤15) + 普适性列(月份分布熵)
2026-07-29 03:23:25 +08:00
hmo
94b8942749
feat: v7.1全线对齐 — 新买入信号硬闸门(v71_gate.py),入场17条件+出场15%/1.5ATR机械对齐,研究Tab色条+当前策略高亮
2026-07-29 02:26:56 +08:00
hmo
224f4e58c2
ui: 研究Tab列表加回交易数列+新增均持仓周期列(周转率核心指标),表格横向可滚动
2026-07-29 02:08:44 +08:00
hmo
1a5951c13c
feat: 组合级资产对比 — portfolio_sim(100万/10等分仓/24月),v7.1以+60.8%总收益夺冠(周转率胜过单笔收益),研究Tab新增总收益/最终资产/年化/资产回撤四列
2026-07-29 02:03:50 +08:00
hmo
c7aa01a5da
feat: v7家族 — 分批止盈引擎+亏损尸检因子(hl结构/RSI增量),v7.1双赢73%/+8.01%,v7.2达79.7%胜率,v7.3达85.7%/回撤9.68%
2026-07-29 01:45:40 +08:00
hmo
45cd076a2e
ui: 研究Tab周期选择器加近2年选项(默认)
2026-07-29 01:35:05 +08:00
hmo
3acbd6f4fd
feat: 策略实验室多版本体系 — v1~v4.1迭代+12维上下文(大盘/趋势变化)+因子归因+版本对比列表
2026-07-28 23:57:23 +08:00
hmo
62305cb062
fix: Chrome 22G 内存泄漏 — renderEvaluation interval 竞态泄漏 + Chart.js 未 destroy
2026-07-28 23:03:58 +08:00
hmo
63b53f5c56
feat: 策略研究Tab全流程回测框架 + API端点 + 前端渲染 + 盘中大跌分析日志
2026-07-28 22:53:29 +08:00
hmo
f3043891f2
fix: 盯盘刷新间隔统一60s
2026-07-28 11:53:33 +08:00
hmo
88c6ea456b
fix: 盯盘防闪烁(watchRendering守卫+60s刷新)
2026-07-28 11:50:24 +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
844f556545
feat: 买入区间中值突出显示(金色加粗,上下限之间) + XMPP同步 + no-cache
2026-07-27 13:28:04 +08:00
hmo
eaeb6c2401
fix: 盯盘买入区间加中值(修正为renderWatch主表格)
2026-07-27 12:41:41 +08:00
hmo
5d043627ff
feat: 买入区间加中值显示(XMPP+盯盘)
2026-07-27 12:24:11 +08:00
hmo
3284e14e4b
fix(ui): price_monitor 运行监控——开盘期间数据>5分钟未更新则红色闪烁告警
2026-07-27 09:45:13 +08:00
hmo
f0407f3a98
fix(ui): 右上角时间改为同时显示价格数据时间+页面刷新时间,各带图标和标签
2026-07-27 09:42:06 +08:00
hmo
52b2a67a90
fix(ui): 当前操作策略列去掉line-clamp-2截断,全文显示
2026-07-24 16:36:38 +08:00
hmo
5667c89943
fix(ui): 买入区显示2位小数(5.96~6.02不再被round成6.0~6.0)
2026-07-24 12:29:54 +08:00
hmo
cf039b2770
feat(prompt): 技术位锚定+止损门禁+12维命名统一
...
- collect_data: 现算technical_analysis.full_analysis(强撑/弱撑/枢轴/弱压/强压/有效区间/MA)
- prompt: 【技术位锚】独立高亮段+锚定纪律(止损<区下沿,锚弱撑下方1-3%/强撑;止盈锚弱压强压;
偏离须说明理由)+输出纪律第4条+【参数自检】节
- save_result: sl>=el时用弱撑x0.985/强撑x0.99自动修正并留痕,无技术位拒写
- 命名: 九维→12维全局统一(prompt/docstring/前端弹窗)
2026-07-22 23:43:45 +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
f35144f3f1
feat(盯盘): 推荐区全展示+可执行/排队徽章(预算内标可执行,不再降级隐藏)
2026-07-22 10:53:32 +08:00
hmo
a42e3a16e5
feat(盯盘): 筛选/排序控制条——信号多选chips+排序下拉(RR升降/涨跌升降)+RR下限过滤+重置
2026-07-22 09:31:19 +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
9914ff9457
feat(盯盘): 推荐操作区域置顶独立 + tag与XMPP动作级信号自动同步
...
- mofin_db: write_holding_strategy 内置tag同步语义——动作级信号
(买入/可买入/可加仓/卖出/止盈)→current_recommend; 信号降级→
清除current_recommend; active_manual人工标记永不被自动流覆盖/清除
- 新增 sync_recommend_tag() 供裸SQL调用方
- batch_reassess.save_result / per_stock stage-2 调用同步
- 盯盘Tab: '重点推荐'更名'推荐操作', 区域独立琥珀色视觉, 置顶
同步语义: XMPP买入信号(ACTION级告警)的个股=推荐操作区域个股,
信号消失(重评降级)时区域同步消失
2026-07-21 23:31:57 +08:00
hmo
a69b246c57
feat(guard): 部署一致性守卫 deploy_guard.py + 知微运维纪律 + 健康JSON移出跟踪
...
- deploy_guard.py (15min cron): 代码漂移自动回滚(仅未提交改动)+
session-work可快进时自动merge部署+幂等重链+cron引用完整性,
状态落盘JSON, 有动作即XMPP报备
- docs/zhiwei-ops-discipline.md: 知微纪律——禁止直接编辑被跟踪代码/
禁stale提交/禁直调gateway批量LLM; 自愈白名单(rerun/restart/
sync/switch_key)本不改代码, 与纪律不矛盾; 紧急热修走git流程,
提交到session-work后guard 15min自动部署
- dev-spec 红线#6 补充部署守卫机制
- static/mofin_health.json 移出git跟踪(运行时产物, 常驻dirty
会废掉漂移检测)
2026-07-21 01:17:01 +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
知微
90f07b4eba
chore: sync
2026-07-20 22:05:03 +08:00
知微
3eb214f3a6
chore: sync
2026-07-20 21:43:03 +08:00
知微
2b79c1dc44
chore: sync
2026-07-20 21:21:25 +08:00
知微
c971d6bced
chore: watchdog fix
2026-07-20 20:55:34 +08:00
知微
dae60bb92f
chore: sync before briefing merge
2026-07-20 20:37:20 +08:00
知微
9f7198dc9c
chore: deploy pipeline auto-sync
2026-07-20 20:27:15 +08:00
知微
e69109fde9
merge: L0-L4 self-check architecture
2026-07-20 19:40:24 +08:00
知微
135bfced5a
chore: deployed L0-L4 self-check system
2026-07-20 19:40:23 +08:00
hmo
08eef1e181
feat(self-check): L0-L4 layered self-check architecture with LLM auto-repair
...
User directive: daily not weekly; clear responsibilities per layer with no
overlap; functional criteria (does the function WORK) not process liveness;
problems get FIXED via LLM with file-and-report discipline (act first,
report after); plus a meta-layer watching the watchers; deeply integrated
into F健康.
Architecture (responsibility matrix in dev-spec.md):
- L0 agents_health_check (5min): port/HTTP/DB liveness + auto_heal executor
- L1 functional_health_check (15min trading): per-module FUNCTIONAL
criteria — output freshness/validity per REGISTRY (live_prices/market_
snapshots/mtf_cache/macro_context/bot/LLM/cron engine), not process alive
- L2 system_hygiene_audit (daily 08:20, was weekly): divergence/hardlink/
zombie/orphan/dead-cron/db-freshness
- L3 self_repair (30min): reads L1/L2 failures -> LLM diagnoses -> executes
WHITELISTED repair actions directly (rerun_script/restart_service/
sync_links/switch_llm_key/none) -> repair_log.jsonl + XMPP report.
Max 2 repairs/module/day anti-loop. LLM unavailable -> rule fallback.
- L4 meta_watchdog (hourly): checks L0-L3 output freshness + L3 cron
registration + XMPP bridge; direct XMPP alert as last resort
Retired (overlap): Cron监护-高频 (cron_watchdog -> L3), 全局cron健康监控
(cron_health_monitor -> L1).
Dashboard: mofin_health.py now emits self_check section (functional/meta/
hygiene/recent_repairs); mofin_health.html new '🩺 自检体系' tab rendering
L4 layers, L1 module checks, L2 issues, L3 repair history.
E2E verified: stopped xmpp bot -> L1 flagged fail -> systemd recovered ->
L3 LLM correctly diagnosed 'none needed' and logged; rerun_script whitelist
path executes real scripts successfully; meta_watchdog all-green after fix.
2026-07-20 19:39:58 +08:00
知微
5d3b8e6fdd
chore: capture deployed state
2026-07-20 17:30:43 +08:00
hmo
a05c118cbc
feat(dashboard): restore lost monitoring + add 开发原则 tab (AgentsMeeting parity)
...
Two regressions fixed:
1. RESTORED: original health monitoring (功能树/全部Cron/数据实体/数据流)
was an iframe to /mofin_health.html — refactor replaced it with a
minimal services-only panel and lost all of it. mofin_health.json
(86KB, fresh) was still being generated the whole time.
- 健康 tab: XMPP panel (native) + restored iframe below
2. ADDED: 开发原则 parent tab replicating AgentsMeeting structure:
- G 规范: /api/spec renders docs/dev-spec.md + git history
- K 测试: /api/tests renders agents_health_check report as pass/fail
- F 健康: iframe to /mofin_health.html + link to 健康 tab
- H 需求: /api/prd (placeholder — prd.md not yet created)
- mdRender() ported from AgentsMeeting dashboard
2026-07-20 00:40:32 +08:00
hmo
058c42ce27
feat(health): recent XMPP conversation log panel + stale error fix
...
User requirement: health tab should show recent XMPP conversations.
- bot hooks log_xmpp on inbound (on_msg) and outbound (_deliver_loop)
so real chats land in xmpp_messages.jsonl (was: only cron/scanner)
- index.html health tab: new '最近对话' panel (last 10 msgs, dir arrow,
preview, status, time); refreshHealth updates it incrementally
- last_error now shows age and resolved state: once a successful
outbound happens after an error, it's shown gray as '已恢复'
instead of alarming red forever; unresolved errors still red
- health() status no longer degraded by errors that were later
resolved by successful outbound
2026-07-20 00:07:28 +08:00