From a76240b52d833c764d89c125912ed1277baff6f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=9F=A5=E5=BE=AE?= Date: Wed, 24 Jun 2026 20:44:36 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20TODO=E8=BF=81=E7=A7=BB=E5=88=B0DB=20+?= =?UTF-8?q?=20no=5Fagent=E8=87=AA=E6=84=88=E6=89=A7=E8=A1=8C=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 创建 mofin.db → todos 表(含fix_action/verification_check/retry机制) - 创建 scripts/self_todo_executor.py(no_agent,纯代码逻辑,无LLM) - 修改 morning_health_check.py:TODO写入DB而非JSON,新增derive_fix_action() - cron替换:LLM cron → no_agent脚本,*/10 8-22高频轮询 - 成本:无pending时仅sqlite查询,约0.01s/次 处理链: health_check(8:00) → 可修直接自动修 → 不可修写DB(todos表) → 自愈执行器(每10分) → 有fix_action就执行 → 无fix_action标blocked留待人工 --- data/evaluation_input.json | 1696 ++++++++++++++----------------- scripts/morning_health_check.py | 106 +- scripts/self_todo_executor.py | 156 +++ 3 files changed, 1007 insertions(+), 951 deletions(-) create mode 100644 scripts/self_todo_executor.py diff --git a/data/evaluation_input.json b/data/evaluation_input.json index 1e80a5f..d4b07fe 100644 --- a/data/evaluation_input.json +++ b/data/evaluation_input.json @@ -1,53 +1,53 @@ { - "collected_at": "2026-06-23T20:30:47.189949", - "total_stocks": 42, + "collected_at": "2026-06-24T20:30:28.408463", + "total_stocks": 39, "summary": { - "up_count": 5, - "down_count": 37, - "deep_loss_count": 5, - "holdings_count": 24, - "watchlist_count": 18 + "up_count": 17, + "down_count": 22, + "deep_loss_count": 6, + "holdings_count": 23, + "watchlist_count": 16 }, "index_data": { "上证指数": { - "price": 4106.25, - "prev_close": 4163.1, - "change_pct": -1.37, - "high": 4175.35, - "low": 4085.59, - "timestamp": "20260623161419" + "price": 4110.81, + "prev_close": 4106.25, + "change_pct": 0.11, + "high": 4117.28, + "low": 4075.49, + "timestamp": "20260624161419" }, "深证成指": { - "price": 15854.2, - "prev_close": 16372.5, - "change_pct": -3.17, - "high": 16355.95, - "low": 15756.41, - "timestamp": "20260623161457" + "price": 16051.32, + "prev_close": 15854.2, + "change_pct": 1.24, + "high": 16068.41, + "low": 15730.16, + "timestamp": "20260624161454" }, "创业板指": { - "price": 4192.19, - "prev_close": 4359.39, - "change_pct": -3.84, - "high": 4350.06, - "low": 4159.48, - "timestamp": "20260623161412" + "price": 4251.42, + "prev_close": 4192.19, + "change_pct": 1.41, + "high": 4257.25, + "low": 4161.58, + "timestamp": "20260624161409" }, "恒生指数": { - "price": 23336.28, - "prev_close": 23768.52, - "change_pct": -1.82, - "high": 23825.81, - "low": 23252.13, - "timestamp": "2026/06/23 18:31:17" + "price": 23412.18, + "prev_close": 23336.28, + "change_pct": 0.33, + "high": 23565.65, + "low": 23248.87, + "timestamp": "2026/06/24 18:31:01" }, "恒生科技": { - "price": 4399.22, - "prev_close": 4549.41, - "change_pct": -3.3, - "high": 4559.59, - "low": 4380.76, - "timestamp": "2026/06/23 16:08:48" + "price": 4479.02, + "prev_close": 4399.22, + "change_pct": 1.81, + "high": 4543.67, + "low": 4411.91, + "timestamp": "2026/06/24 16:08:26" } }, "sector_groups": { @@ -55,63 +55,63 @@ { "code": "000657", "name": "中钨高新", - "change_pct": -5.38, + "change_pct": -2.36, "pnl_pct": null, "type": "自选策略" }, { "code": "000700", "name": "模塑科技", - "change_pct": -1.32, - "pnl_pct": 0.99, + "change_pct": -3.07, + "pnl_pct": -2.09, "type": "持仓策略" }, { "code": "000711", "name": "ST京蓝", - "change_pct": -5.01, + "change_pct": -1.56, "pnl_pct": null, "type": "自选策略" }, { "code": "00981", "name": "中芯国际", - "change_pct": -1.33, - "pnl_pct": 18.15, + "change_pct": 8.93, + "pnl_pct": 11.48, "type": "持仓策略" }, { "code": "300308", "name": "中际旭创", - "change_pct": -5.23, + "change_pct": 0.17, "pnl_pct": null, "type": "自选策略" }, { "code": "600519", "name": "贵州茅台", - "change_pct": -1.53, + "change_pct": -1.21, "pnl_pct": null, "type": "自选策略" }, { "code": "601318", "name": "中国平安", - "change_pct": -3.04, + "change_pct": -2.54, "pnl_pct": null, "type": "自选策略" }, { "code": "603259", "name": "药明康德", - "change_pct": -0.49, - "pnl_pct": 10.51, + "change_pct": 8.55, + "pnl_pct": 19.96, "type": "持仓策略" }, { "code": "688630", "name": "芯碁微装", - "change_pct": -5.15, + "change_pct": 11.02, "pnl_pct": null, "type": "自选策略" } @@ -120,8 +120,8 @@ { "code": "001309", "name": "德明利", - "change_pct": 2.43, - "pnl_pct": 2.44, + "change_pct": 7.28, + "pnl_pct": 9.9, "type": "自选" } ], @@ -129,29 +129,29 @@ { "code": "002594", "name": "比亚迪", - "change_pct": -2.96, + "change_pct": -2.0, "pnl_pct": null, "type": "自选" }, { "code": "01211", "name": "比亚迪股份", - "change_pct": -3.19, - "pnl_pct": -16.64, + "change_pct": 0.13, + "pnl_pct": -27.7, "type": "持仓" }, { "code": "09868", "name": "小鹏集团-W", - "change_pct": -4.25, - "pnl_pct": 10.95, + "change_pct": -0.45, + "pnl_pct": -4.32, "type": "自选" }, { "code": "300750", "name": "宁德时代", - "change_pct": -4.03, - "pnl_pct": -2.31, + "change_pct": 0.73, + "pnl_pct": -1.6, "type": "持仓" } ], @@ -159,15 +159,15 @@ { "code": "00700", "name": "腾讯控股", - "change_pct": -4.2, - "pnl_pct": 7.89, + "change_pct": 3.38, + "pnl_pct": -3.4, "type": "持仓" }, { "code": "09988", "name": "阿里巴巴-W", - "change_pct": -3.84, - "pnl_pct": -9.44, + "change_pct": 0.45, + "pnl_pct": null, "type": "持仓" } ], @@ -175,7 +175,7 @@ { "code": "00968", "name": "信义光能", - "change_pct": -7.96, + "change_pct": -3.85, "pnl_pct": null, "type": "自选" } @@ -184,7 +184,7 @@ { "code": "01070", "name": "TCL电子", - "change_pct": 0.84, + "change_pct": 3.13, "pnl_pct": null, "type": "自选" } @@ -193,8 +193,8 @@ { "code": "01088", "name": "中国神华", - "change_pct": -1.22, - "pnl_pct": 5.63, + "change_pct": -0.38, + "pnl_pct": -8.85, "type": "自选" } ], @@ -202,8 +202,8 @@ { "code": "01478", "name": "丘钛科技", - "change_pct": -5.97, - "pnl_pct": -34.11, + "change_pct": -2.41, + "pnl_pct": -44.32, "type": "持仓" } ], @@ -211,8 +211,8 @@ { "code": "01888", "name": "建滔积层板", - "change_pct": -5.11, - "pnl_pct": 13.98, + "change_pct": 7.22, + "pnl_pct": 5.84, "type": "自选" } ], @@ -220,8 +220,8 @@ { "code": "02202", "name": "万科企业", - "change_pct": -2.83, - "pnl_pct": -40.74, + "change_pct": -3.75, + "pnl_pct": -50.64, "type": "持仓" } ], @@ -229,8 +229,8 @@ { "code": "02318", "name": "中国平安", - "change_pct": -2.46, - "pnl_pct": 12.89, + "change_pct": -1.4, + "pnl_pct": -3.59, "type": "自选" } ], @@ -238,7 +238,7 @@ { "code": "02359", "name": "药明康德", - "change_pct": -1.51, + "change_pct": 8.33, "pnl_pct": null, "type": "自选" } @@ -247,15 +247,8 @@ { "code": "02388", "name": "中银香港", - "change_pct": -1.26, - "pnl_pct": 23.91, - "type": "持仓" - }, - { - "code": "600036", - "name": "招商银行", - "change_pct": -0.66, - "pnl_pct": -1.99, + "change_pct": -1.02, + "pnl_pct": 6.23, "type": "持仓" } ], @@ -263,7 +256,7 @@ { "code": "02628", "name": "中国人寿", - "change_pct": -3.17, + "change_pct": -3.34, "pnl_pct": null, "type": "自选" } @@ -272,7 +265,7 @@ { "code": "06160", "name": "百济神州", - "change_pct": -0.19, + "change_pct": 2.67, "pnl_pct": null, "type": "持仓" } @@ -281,8 +274,8 @@ { "code": "06869", "name": "长飞光纤光缆", - "change_pct": -7.48, - "pnl_pct": null, + "change_pct": -1.28, + "pnl_pct": -1.08, "type": "自选" } ], @@ -290,8 +283,8 @@ { "code": "300035", "name": "中科电气", - "change_pct": -4.61, - "pnl_pct": -26.61, + "change_pct": -1.71, + "pnl_pct": -27.86, "type": "持仓" } ], @@ -299,7 +292,7 @@ { "code": "300124", "name": "汇川技术", - "change_pct": -3.09, + "change_pct": -0.76, "pnl_pct": null, "type": "自选" } @@ -308,26 +301,17 @@ { "code": "300548", "name": "长芯博创", - "change_pct": -4.05, - "pnl_pct": 23.57, + "change_pct": -1.33, + "pnl_pct": 21.93, "type": "自选" } ], - "复合材料": [ - { - "code": "300690", - "name": "双一科技", - "change_pct": -2.19, - "pnl_pct": -13.05, - "type": "持仓" - } - ], "商品/贵金属": [ { "code": "518880", "name": "黄金ETF华安", - "change_pct": -2.05, - "pnl_pct": -29.98, + "change_pct": -0.26, + "pnl_pct": -30.15, "type": "持仓" } ], @@ -335,17 +319,8 @@ { "code": "600563", "name": "法拉电子", - "change_pct": -6.03, - "pnl_pct": 10.59, - "type": "持仓" - } - ], - "医药流通/供应链": [ - { - "code": "600739", - "name": "辽宁成大", - "change_pct": -0.84, - "pnl_pct": -13.32, + "change_pct": 10.0, + "pnl_pct": 21.65, "type": "持仓" } ], @@ -353,8 +328,8 @@ { "code": "601899", "name": "紫金矿业", - "change_pct": -8.84, - "pnl_pct": -31.09, + "change_pct": -0.36, + "pnl_pct": -31.34, "type": "持仓" } ], @@ -362,8 +337,8 @@ { "code": "688411", "name": "海博思创", - "change_pct": -5.14, - "pnl_pct": null, + "change_pct": -2.22, + "pnl_pct": -0.26, "type": "持仓" } ], @@ -371,8 +346,8 @@ { "code": "688639", "name": "华恒生物", - "change_pct": 3.95, - "pnl_pct": null, + "change_pct": -1.97, + "pnl_pct": -0.51, "type": "持仓" } ], @@ -380,14 +355,14 @@ { "code": "688795", "name": "摩尔线程-U", - "change_pct": 5.0, + "change_pct": 0.11, "pnl_pct": null, "type": "自选" }, { "code": "688802", "name": "沐曦股份-U", - "change_pct": 1.45, + "change_pct": 0.16, "pnl_pct": null, "type": "自选" } @@ -396,8 +371,8 @@ { "code": "688981", "name": "中芯国际", - "change_pct": -2.67, - "pnl_pct": 12.4, + "change_pct": 6.94, + "pnl_pct": 20.2, "type": "自选" } ] @@ -410,29 +385,29 @@ "type": "自选策略", "sector": "", "business": "", - "price": 102.5, - "prev_close": 108.33, - "open": 113.99, - "high": 113.99, - "low": 101.08, - "change_pct": -5.38, - "volume": 1383866.0, - "pe": 119.16, - "total_market_cap": 1489.25, - "high_52w": 97.5, - "low_52w": 1.31, - "turnover_rate": 9.52, - "amplitude": 11.92, + "price": 100.08, + "prev_close": 102.5, + "open": 99.86, + "high": 101.96, + "low": 94.79, + "change_pct": -2.36, + "volume": 1198902.0, + "pe": 112.75, + "total_market_cap": 1454.09, + "high_52w": 92.25, + "low_52w": 1.1, + "turnover_rate": 8.25, + "amplitude": 7.0, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标119.16 | 止损102.39 | 买入区103.88~108.12", - "entry_zone": "", - "stop_loss": 102.39, - "take_profit": 119.16, + "action": "盈利持有 | 目标112.75 | 止损95.93 | 买入区98.08~102.08", + "entry_zone": "98.08~102.08", + "stop_loss": 95.93, + "take_profit": 112.75, "type": "自选策略", - "tech_snapshot": "形态:光头光脚阴线/neutral 量价:主动买盘占优 强撑:97.5 弱撑:102.39 弱压:111.8 强压:119.16" + "tech_snapshot": "形态:锤子线/T字线/neutral 量价:主动买盘占优 强撑:92.25 弱撑:95.93 弱压:103.1 强压:112.75" }, "pnl_pct": null }, @@ -443,31 +418,31 @@ "type": "持仓策略", "sector": "", "business": "", - "price": 14.98, - "prev_close": 15.18, - "open": 15.03, - "high": 15.6, - "low": 14.75, - "change_pct": -1.32, - "volume": 729693.0, - "pe": 16.7, - "total_market_cap": 137.52, - "high_52w": 13.66, - "low_52w": 1.04, - "turnover_rate": 7.95, - "amplitude": 5.6, - "cost": 14.8336, + "price": 14.52, + "prev_close": 14.98, + "open": 15.2, + "high": 15.22, + "low": 14.3, + "change_pct": -3.07, + "volume": 629381.0, + "pe": 16.48, + "total_market_cap": 133.3, + "high_52w": 13.48, + "low_52w": 0.83, + "turnover_rate": 6.86, + "amplitude": 6.14, + "cost": 14.83, "shares": 1400, - "position_pct": 2.1, + "position_pct": 0.0, "strategy": { - "action": "盈利持有 | 止损参考13.91 | 买入区14.53~15.26", - "entry_zone": "", + "action": "持有观察 | 止损13.91 | 目标17.0 | 买入区14.53~15.26 | 信号:持有", + "entry_zone": "14.53~15.26", "stop_loss": 13.91, "take_profit": 17.0, "type": "持仓策略", - "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:主动买盘占优 强撑:13.66 弱撑:14.74 弱压:15.56 强压:16.7" + "tech_snapshot": "形态:光头光脚阴线/neutral 量价:主动买盘占优 强撑:13.48 弱撑:14.14 弱压:15.06 强压:16.48" }, - "pnl_pct": 0.99 + "pnl_pct": -2.09 }, { "code": "000711", @@ -476,29 +451,29 @@ "type": "自选策略", "sector": "", "business": "", - "price": 5.12, - "prev_close": 5.39, - "open": 5.34, - "high": 5.38, - "low": 5.12, - "change_pct": -5.01, - "volume": 779357.0, - "pe": 5.66, - "total_market_cap": 121.92, - "high_52w": 5.12, - "low_52w": 0.93, - "turnover_rate": 3.27, - "amplitude": 4.82, + "price": 5.04, + "prev_close": 5.12, + "open": 5.04, + "high": 5.25, + "low": 4.86, + "change_pct": -1.56, + "volume": 1056901.0, + "pe": 5.38, + "total_market_cap": 120.02, + "high_52w": 4.86, + "low_52w": 1.26, + "turnover_rate": 4.44, + "amplitude": 7.62, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标5.66 | 止损5.06 | 买入区5.12~5.3 | 信号:放量下跌,等企稳再入", - "entry_zone": "", - "stop_loss": 5.06, - "take_profit": 5.66, + "action": "盈利持有 | ⚠️盈亏比偏低(1:1.8),谨慎买入 | 目标5.38 | 止损4.33 | 买入区4.94~5.06 | 信号:观望", + "entry_zone": "4.94~5.06", + "stop_loss": 4.33, + "take_profit": 5.38, "type": "自选策略", - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:主动卖盘占优 强撑:4.54 弱撑:5.13 弱压:5.39 强压:5.66" + "tech_snapshot": "形态:十字星/neutral 量价:主动卖盘占优 强撑:4.86 弱撑:4.85 弱压:5.24 强压:5.38" }, "pnl_pct": null }, @@ -509,31 +484,31 @@ "type": "自选", "sector": "半导体/存储", "business": "存储芯片(闪存主控/NAND/DRAM模组),嵌入式存储解决方案", - "price": 755.01, - "prev_close": 737.07, - "open": 730.0, - "high": 796.0, - "low": 706.0, - "change_pct": 2.43, - "volume": 171855.0, - "pe": 810.78, - "total_market_cap": 1245.12, - "high_52w": 663.36, - "low_52w": 1.2, - "turnover_rate": 10.42, - "amplitude": 12.21, - "cost": 737.0374, + "price": 810.0, + "prev_close": 755.01, + "open": 759.0, + "high": 816.88, + "low": 743.51, + "change_pct": 7.28, + "volume": 182022.0, + "pe": 830.51, + "total_market_cap": 1335.81, + "high_52w": 679.51, + "low_52w": 1.17, + "turnover_rate": 11.04, + "amplitude": 9.72, + "cost": 737.04, "shares": 100, - "position_pct": 7.55, + "position_pct": 0.0, "strategy": { - "action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标810.78 | 止损724.0 | 买入区762.44~758.71 | 信号:量价齐升,可买入", - "entry_zone": "", + "action": "盈利良好 | ⚠️盈亏比偏低(1:0.5),不建议加仓 | 止损724.0 | 目标810.78 | 买入区762.44~758.71 | 信号:持有", + "entry_zone": "762.44~758.71", "stop_loss": 724.0, "take_profit": 810.78, "type": "持仓策略", - "tech_snapshot": "形态:光头光脚阳线/bullish 量价:主动买盘占优 强撑:663.36 弱撑:724.0 弱压:814.0 强压:810.78" + "tech_snapshot": "形态:光头光脚阳线/bullish 量价:主动买盘占优 强撑:679.51 弱撑:755.01 弱压:836.75 强压:830.51" }, - "pnl_pct": 2.44 + "pnl_pct": 9.9 }, { "code": "002594", @@ -542,29 +517,29 @@ "type": "自选", "sector": "新能源汽车", "business": "新能源整车(乘用车/商用车),动力电池(弗迪电池),半导体(比亚迪半导体)", - "price": 85.0, - "prev_close": 87.59, - "open": 86.91, - "high": 88.32, - "low": 84.75, - "change_pct": -2.96, - "volume": 466217.0, - "pe": 96.35, - "total_market_cap": 2963.62, - "high_52w": 78.83, - "low_52w": 1.05, - "turnover_rate": 1.34, - "amplitude": 4.08, + "price": 83.3, + "prev_close": 85.0, + "open": 84.5, + "high": 84.7, + "low": 82.78, + "change_pct": -2.0, + "volume": 455735.0, + "pe": 93.5, + "total_market_cap": 2904.35, + "high_52w": 76.5, + "low_52w": 0.96, + "turnover_rate": 1.31, + "amplitude": 2.26, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标94.0 | 止损83.36 | 买入区84.22~87.62 | 信号:放量下跌,等企稳再入", - "entry_zone": "", - "stop_loss": 83.36, - "take_profit": 94.0, + "action": "盈利持有 | 目标92.71 | 止损75.24 | 买入区81.63~84.97 | 信号:观望", + "entry_zone": "81.63~84.97", + "stop_loss": 75.24, + "take_profit": 92.71, "type": "自选策略", - "tech_snapshot": "形态:带上影阴线/bearish 量价:主动卖盘占优 强撑:79.4 弱撑:85.09 弱压:87.59 强压:94.0" + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:主动卖盘占优 强撑:76.5 弱撑:82.49 弱压:85.0 强压:92.71" }, "pnl_pct": null }, @@ -575,31 +550,31 @@ "type": "持仓", "sector": "互联网", "business": "社交(微信/QQ),游戏,云服务,AI,投资", - "price": 414.8, - "prev_close": 433.0, + "price": 428.8, + "prev_close": 414.8, "open": null, - "high": 432.4, - "low": 413.6, - "change_pct": -4.2, - "volume": 43435789.0, - "pe": 14.36, - "total_market_cap": 9108129079.0, + "high": 439.8, + "low": 412.6, + "change_pct": 3.38, + "volume": 39958288.0, + "pe": 14.84, + "total_market_cap": 9108192913.0, "high_52w": 677.7, - "low_52w": 413.6, + "low_52w": 412.6, "turnover_rate": null, "amplitude": null, - "cost": 384.46, + "cost": 443.9, "shares": 100, - "position_pct": 3.59, + "position_pct": 5.33, "strategy": { - "action": "持有观察 | ⚠️盈亏比偏低(1:1.1),不建议加仓 | 止损357.8 | 目标484.2 | 买入区409.6~421.0 | 信号:持有", - "entry_zone": "", - "stop_loss": 357.8, - "take_profit": 484.2, + "action": "持有观察 | ⚠️盈亏比偏低(1:0.9),不建议加仓 | 止损337.9 | 目标473.71 | 买入区414.33~427.07 | 信号:持有", + "entry_zone": "414.33~427.07", + "stop_loss": 337.9, + "take_profit": 473.71, "type": "持仓策略", - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:357.8 弱撑:409.6 弱压:433.0 强压:484.2" + "tech_snapshot": "形态:带上影阳线/neutral 量价:数据不足 强撑:362.87 弱撑:414.33 弱压:441.53 强压:491.27" }, - "pnl_pct": 7.89 + "pnl_pct": -3.4 }, { "code": "00968", @@ -608,29 +583,29 @@ "type": "自选", "sector": "新能源/光伏", "business": "光伏玻璃全球龙头,太阳能发电站运营,EVA胶膜", - "price": 2.08, - "prev_close": 2.26, + "price": 2.0, + "prev_close": 2.08, "open": null, - "high": 2.26, - "low": 2.04, - "change_pct": -7.96, - "volume": 116153342.0, - "pe": 20.35, + "high": 2.08, + "low": 1.93, + "change_pct": -3.85, + "volume": 129704120.0, + "pe": 19.57, "total_market_cap": 9147043615.0, "high_52w": 4.092, - "low_52w": 2.04, + "low_52w": 1.93, "turnover_rate": null, "amplitude": null, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标2.57 | 止损2.05 | 买入区2.07~2.15", - "entry_zone": "", - "stop_loss": 2.05, - "take_profit": 2.57, + "action": "盈利持有 | 目标2.58 | 止损1.8 | 买入区1.96~2.04", + "entry_zone": "1.96~2.04", + "stop_loss": 1.8, + "take_profit": 2.58, "type": "自选策略", - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:1.73 弱撑:2.05 弱压:2.26 强压:2.57" + "tech_snapshot": "形态:带下影阴线/neutral 量价:数据不足 强撑:1.42 弱撑:1.93 弱压:2.08 强压:2.58" }, "pnl_pct": null }, @@ -641,31 +616,31 @@ "type": "持仓策略", "sector": "", "business": "", - "price": 77.85, - "prev_close": 78.9, + "price": 84.8, + "prev_close": 77.85, "open": null, - "high": 84.1, - "low": 76.5, - "change_pct": -1.33, - "volume": 182963530.0, - "pe": 100.79, - "total_market_cap": 8013494877.0, + "high": 86.45, + "low": 77.6, + "change_pct": 8.93, + "volume": 218098916.0, + "pe": 117.29, + "total_market_cap": 8560677950.0, "high_52w": 93.5, - "low_52w": 41.0, + "low_52w": 41.5, "turnover_rate": null, "amplitude": null, - "cost": 65.89, + "cost": 76.07, "shares": 500, - "position_pct": 3.37, + "position_pct": 5.21, "strategy": { - "action": "盈利持有 | ⚠️盈亏比偏低(1:1.2),不建议加仓 | 止损69.51 | 目标93.75 | 买入区77.8~80.95 | 信号:持有", - "entry_zone": "", - "stop_loss": 69.51, - "take_profit": 93.75, + "action": "盈利良好 | 止损82.05 | 目标102.56 | 买入区77.85~81.74 | 信号:持有", + "entry_zone": "77.85~81.74", + "stop_loss": 82.05, + "take_profit": 102.56, "type": "持仓策略", - "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:数据不足 强撑:68.15 弱撑:77.8 弱压:83.15 强压:93.75" + "tech_snapshot": "形态:光头光脚阳线/bullish 量价:数据不足 强撑:67.8 弱撑:77.85 弱压:88.3 强压:98.1" }, - "pnl_pct": 18.15 + "pnl_pct": 11.48 }, { "code": "01070", @@ -674,29 +649,29 @@ "type": "自选", "sector": "消费电子/家电", "business": "电视机/显示器全球出货前列,光伏储能,智能家居", - "price": 13.2, - "prev_close": 13.09, + "price": 13.1, + "prev_close": 12.702, "open": null, - "high": 13.47, - "low": 12.98, - "change_pct": 0.84, - "volume": 10686427.0, - "pe": 23.15, + "high": 13.29, + "low": 12.55, + "change_pct": 3.13, + "volume": 10763019.0, + "pe": 22.98, "total_market_cap": 2520935155.0, - "high_52w": 16.19, - "low_52w": 8.802, + "high_52w": 15.692, + "low_52w": 8.304, "turnover_rate": null, "amplitude": null, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标15.29 | 止损12.71 | 买入区12.84~13.36 | 信号:接近支撑位,关注", - "entry_zone": "", - "stop_loss": 12.71, - "take_profit": 15.29, + "action": "盈利持有 | 目标15.51 | 止损12.29 | 买入区12.84~13.36 | 信号:弱势持有", + "entry_zone": "12.84~13.36", + "stop_loss": 12.29, + "take_profit": 15.51, "type": "自选策略", - "tech_snapshot": "形态:光头光脚阴线/neutral 量价:数据不足 强撑:11.07 弱撑:12.9 弱压:13.39 强压:15.29" + "tech_snapshot": "形态:锤子线/T字线/bullish 量价:数据不足 强撑:10.45 弱撑:12.67 弱压:13.41 强压:15.51" }, "pnl_pct": null }, @@ -707,31 +682,31 @@ "type": "自选", "sector": "煤炭/能源", "business": "煤炭开采(动力煤/焦煤),煤化工,铁路/港口运输", - "price": 42.06, - "prev_close": 42.58, + "price": 41.9, + "prev_close": 42.06, "open": null, - "high": 43.14, - "low": 41.92, - "change_pct": -1.22, - "volume": 14552856.0, - "pe": 16.94, + "high": 42.18, + "low": 41.26, + "change_pct": -0.38, + "volume": 11563654.0, + "pe": 16.88, "total_market_cap": 21689434304.0, "high_52w": 49.62, "low_52w": 29.076, "turnover_rate": null, "amplitude": null, - "cost": 39.82, + "cost": 45.97, "shares": 500, - "position_pct": 1.82, + "position_pct": 2.58, "strategy": { - "action": "持有观察 | ⚠️盈亏比偏低(1:1.0),不建议加仓 | 止损39.42 | 目标46.77 | 买入区42.27~42.71 | 信号:持有", - "entry_zone": "", - "stop_loss": 39.42, - "take_profit": 46.77, + "action": "持有观察 | ⚠️盈亏比偏低(1:0.9),不建议加仓 | 止损33.41 | 目标42.13 | 买入区41.38~41.78 | 信号:持有", + "entry_zone": "41.38~41.78", + "stop_loss": 33.41, + "take_profit": 42.13, "type": "持仓策略", - "tech_snapshot": "形态:锤子线/T字线/bullish 量价:数据不足 强撑:38.65 弱撑:42.27 弱压:43.15 强压:46.77" + "tech_snapshot": "形态:锤子线/T字线/bullish 量价:数据不足 强撑:37.44 弱撑:41.38 弱压:42.3 强压:46.12" }, - "pnl_pct": 5.63 + "pnl_pct": -8.85 }, { "code": "01211", @@ -740,31 +715,31 @@ "type": "持仓", "sector": "新能源汽车", "business": "新能源整车(乘用车/商用车),动力电池,电机电控", - "price": 75.85, - "prev_close": 78.35, + "price": 75.95, + "prev_close": 75.85, "open": null, - "high": 78.3, - "low": 75.6, - "change_pct": -3.19, - "volume": 38196800.0, - "pe": 37.37, + "high": 76.85, + "low": 74.2, + "change_pct": 0.13, + "volume": 27127739.0, + "pe": 37.42, "total_market_cap": 9117197565.0, "high_52w": 135.889, - "low_52w": 75.6, + "low_52w": 74.2, "turnover_rate": null, "amplitude": null, - "cost": 90.99, + "cost": 105.05, "shares": 600, - "position_pct": 3.94, + "position_pct": 5.64, "strategy": { - "action": "深套持有 | 深套持有 | 止损65.02 | 目标88.87 | 买入区68.85~80.33 | 信号:持有", - "entry_zone": "", - "stop_loss": 65.02, - "take_profit": 88.87, + "action": "深套持有 | 深套持有 | 止损57.61 | 目标86.27 | 买入区68.36~79.75 | 信号:持有", + "entry_zone": "68.36~79.75", + "stop_loss": 57.61, + "take_profit": 86.27, "type": "持仓策略", - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:65.07 弱撑:75.63 弱压:78.35 强压:88.87" + "tech_snapshot": "形态:锤子线/T字线/bullish 量价:数据不足 强撑:61.87 弱撑:74.48 弱压:77.13 强压:89.47" }, - "pnl_pct": -16.64 + "pnl_pct": -27.7 }, { "code": "01478", @@ -773,31 +748,31 @@ "type": "持仓", "sector": "消费电子", "business": "摄像头模组(CCM),指纹识别模组,车载摄像头", - "price": 7.88, - "prev_close": 8.38, + "price": 7.69, + "prev_close": 7.88, "open": null, - "high": 8.54, - "low": 7.8, - "change_pct": -5.97, - "volume": 8016500.0, - "pe": 5.69, + "high": 7.88, + "low": 7.51, + "change_pct": -2.41, + "volume": 5927000.0, + "pe": 5.56, "total_market_cap": 1194890725.0, "high_52w": 16.44, - "low_52w": 6.82, + "low_52w": 6.9, "turnover_rate": null, "amplitude": null, - "cost": 11.96, + "cost": 13.81, "shares": 11000, - "position_pct": 7.49, + "position_pct": 10.48, "strategy": { - "action": "深套持有 | 深套持有 | 止损6.8 | 目标9.64 | 买入区7.3~8.52 | 信号:持有", - "entry_zone": "", - "stop_loss": 6.8, - "take_profit": 9.64, + "action": "深套持有 | 深套持有 | 止损5.59 | 目标9.76 | 买入区6.92~8.07 | 信号:持有", + "entry_zone": "6.92~8.07", + "stop_loss": 5.59, + "take_profit": 9.76, "type": "持仓策略", - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:6.8 弱撑:7.9 弱压:8.42 强压:9.64" + "tech_snapshot": "形态:带下影阴线/neutral 量价:数据不足 强撑:5.76 弱撑:7.51 弱压:7.88 强压:9.62" }, - "pnl_pct": -34.11 + "pnl_pct": -44.32 }, { "code": "01888", @@ -806,31 +781,31 @@ "type": "自选", "sector": "电子/覆铜板", "business": "覆铜板(CCL)全球龙头,印刷线路板(PCB),玻璃纤维布", - "price": 87.25, - "prev_close": 91.95, + "price": 93.55, + "prev_close": 87.25, "open": null, - "high": 91.95, - "low": 83.7, - "change_pct": -5.11, - "volume": 85228668.0, - "pe": 112.59, + "high": 97.4, + "low": 87.6, + "change_pct": 7.22, + "volume": 75292855.0, + "pe": 120.72, "total_market_cap": 3151450000.0, "high_52w": 99.65, - "low_52w": 8.29, + "low_52w": 8.39, "turnover_rate": null, "amplitude": null, - "cost": 76.55, + "cost": 88.39, "shares": 500, - "position_pct": 3.77, + "position_pct": 5.82, "strategy": { - "action": "持有观察 | 短炒强趋势持 | 止损75.7 | 目标82.76 | 买入区82.28~86.39 | 信号:强趋势持", - "entry_zone": "", - "stop_loss": 75.7, - "take_profit": 82.76, + "action": "盈利良好 | 短炒强趋势持 | 止损90.51 | 目标134.87 | 买入区87.25~91.61 | 信号:持有", + "entry_zone": "87.25~91.61", + "stop_loss": 90.51, + "take_profit": 134.87, "type": "持仓策略", - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:50.97 弱撑:82.28 弱压:91.95 强压:123.27" + "tech_snapshot": "形态:带上影阳线/neutral 量价:数据不足 强撑:56.7 弱撑:87.25 弱压:98.1 强压:129.0" }, - "pnl_pct": 13.98 + "pnl_pct": 5.84 }, { "code": "02202", @@ -839,31 +814,31 @@ "type": "持仓", "sector": "房地产", "business": "住宅开发,物业服务(万物云),商业地产,长租", - "price": 2.4, - "prev_close": 2.47, + "price": 2.31, + "prev_close": 2.4, "open": null, - "high": 2.53, - "low": 2.37, - "change_pct": -2.83, - "volume": 23503824.0, - "pe": -1.06, + "high": 2.45, + "low": 2.31, + "change_pct": -3.75, + "volume": 24322680.0, + "pe": -1.02, "total_market_cap": 11930709471.0, "high_52w": 5.99, - "low_52w": 2.35, + "low_52w": 2.31, "turnover_rate": null, "amplitude": null, - "cost": 4.05, + "cost": 4.68, "shares": 19700, - "position_pct": 4.1, + "position_pct": 5.73, "strategy": { - "action": "深套持有 | 深套持有 | 止损2.08 | 目标2.81 | 买入区2.16~2.52 | 信号:持有", - "entry_zone": "", - "stop_loss": 2.08, - "take_profit": 2.81, + "action": "深套持有 | 深套持有 | 止损1.75 | 目标2.52 | 买入区2.08~2.43 | 信号:持有", + "entry_zone": "2.08~2.43", + "stop_loss": 1.75, + "take_profit": 2.52, "type": "持仓策略", - "tech_snapshot": "形态:带上影阴线/bearish 量价:数据不足 强撑:2.09 弱撑:2.36 弱压:2.49 强压:2.81" + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:1.96 弱撑:2.26 弱压:2.4 强压:2.76" }, - "pnl_pct": -40.74 + "pnl_pct": -50.64 }, { "code": "02318", @@ -872,31 +847,31 @@ "type": "自选", "sector": "金融/保险", "business": "综合金融(保险/银行/证券/信托),科技金融", - "price": 53.6, - "prev_close": 54.95, + "price": 52.85, + "prev_close": 53.6, "open": null, - "high": 55.5, - "low": 53.3, - "change_pct": -2.46, - "volume": 44484166.0, - "pe": 8.56, + "high": 53.9, + "low": 52.3, + "change_pct": -1.4, + "volume": 38675933.0, + "pe": 8.44, "total_market_cap": 18107641995.0, "high_52w": 72.689, - "low_52w": 44.848, + "low_52w": 45.648, "turnover_rate": null, "amplitude": null, - "cost": 47.48, + "cost": 54.82, "shares": 500, - "position_pct": 2.32, + "position_pct": 3.26, "strategy": { - "action": "盈利持有 | 止损参考53.3 | 买入区53.85~56.05 | 信号:接近支撑位,关注", - "entry_zone": "", + "action": "持有观察 | ⚠️盈亏比偏低(1:1.1),不建议加仓 | 止损53.3 | 目标60.72 | 买入区53.85~56.05 | 信号:持有", + "entry_zone": "53.85~56.05", "stop_loss": 53.3, "take_profit": 60.72, "type": "持仓策略", - "tech_snapshot": "形态:带上影阴线/bearish 量价:数据不足 强撑:48.23 弱撑:53.27 弱压:55.07 强压:60.53" + "tech_snapshot": "形态:带下影阴线/neutral 量价:数据不足 强撑:46.57 弱撑:52.13 弱压:53.73 强压:59.47" }, - "pnl_pct": 12.89 + "pnl_pct": -3.59 }, { "code": "02359", @@ -905,29 +880,29 @@ "type": "自选", "sector": "医药/CRO", "business": "小分子药物发现/临床前CRO,化学药/生物药CDMO", - "price": 130.8, - "prev_close": 132.8, + "price": 141.7, + "prev_close": 130.8, "open": null, - "high": 135.7, - "low": 130.0, - "change_pct": -1.51, - "volume": 5315637.0, - "pe": 18.4, + "high": 145.0, + "low": 131.3, + "change_pct": 8.33, + "volume": 12471512.0, + "pe": 19.93, "total_market_cap": 2963608255.0, "high_52w": 146.197, - "low_52w": 72.463, + "low_52w": 72.813, "turnover_rate": null, "amplitude": null, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标147.67 | 止损127.85 | 买入区129.16~134.44 | 信号:接近支撑位,关注", - "entry_zone": "", - "stop_loss": 127.85, - "take_profit": 147.67, + "action": "盈利持有 | ⚠️盈亏比偏低(1:2.0),谨慎买入 | 目标163.23 | 止损126.88 | 买入区138.87~143.77 | 信号:买入", + "entry_zone": "138.87~143.77", + "stop_loss": 126.88, + "take_profit": 163.23, "type": "自选策略", - "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:数据不足 强撑:118.47 弱撑:130.43 弱压:134.53 强压:147.67" + "tech_snapshot": "形态:光头光脚阳线/bullish 量价:数据不足 强撑:115.43 弱撑:130.8 弱压:147.37 强压:163.23" }, "pnl_pct": null }, @@ -938,31 +913,31 @@ "type": "持仓", "sector": "银行", "business": "香港发钞行之一,零售银行,财富管理,跨境业务", - "price": 47.0, - "prev_close": 47.6, + "price": 46.52, + "prev_close": 47.0, "open": null, - "high": 47.86, - "low": 46.9, - "change_pct": -1.26, - "volume": 14056638.0, - "pe": 12.39, + "high": 47.58, + "low": 45.9, + "change_pct": -1.02, + "volume": 21371928.0, + "pe": 12.26, "total_market_cap": 10572780266.0, "high_52w": 49.36, "low_52w": 32.63, "turnover_rate": null, "amplitude": null, - "cost": 37.93, + "cost": 43.79, "shares": 1000, - "position_pct": 4.06, + "position_pct": 5.76, "strategy": { - "action": "盈利良好 | 止损45.98 | 目标51.25 | 买入区47.06~48.61 | 信号:持有", - "entry_zone": "", - "stop_loss": 45.98, - "take_profit": 51.25, + "action": "盈利良好 | 止损42.02 | 目标48.59 | 买入区45.75~47.75 | 信号:持有", + "entry_zone": "45.75~47.75", + "stop_loss": 42.02, + "take_profit": 48.59, "type": "持仓策略", - "tech_snapshot": "形态:锤子线/T字线/bullish 量价:数据不足 强撑:43.67 弱撑:47.06 弱压:47.82 强压:51.25" + "tech_snapshot": "形态:带下影阴线/neutral 量价:数据不足 强撑:42.95 弱撑:45.75 弱压:47.43 强压:50.39" }, - "pnl_pct": 23.91 + "pnl_pct": 6.23 }, { "code": "02628", @@ -971,14 +946,14 @@ "type": "自选", "sector": "保险", "business": "人身保险(寿险/健康险/意外险),养老保险", - "price": 29.3, - "prev_close": 30.26, + "price": 28.32, + "prev_close": 29.3, "open": null, - "high": 30.56, - "low": 29.0, - "change_pct": -3.17, - "volume": 37947073.0, - "pe": 9.37, + "high": 29.48, + "low": 28.06, + "change_pct": -3.34, + "volume": 46680956.0, + "pe": 9.06, "total_market_cap": 28264705000.0, "high_52w": 36.16, "low_52w": 17.72, @@ -988,12 +963,12 @@ "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标33.9 | 止损28.61 | 买入区28.91~30.09 | 信号:接近支撑位,关注", - "entry_zone": "", - "stop_loss": 28.61, - "take_profit": 33.9, + "action": "盈利持有 | 目标32.72 | 止损25.58 | 买入区27.75~28.89", + "entry_zone": "27.75~28.89", + "stop_loss": 25.58, + "take_profit": 32.72, "type": "自选策略", - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:25.7 弱撑:29.04 弱压:30.26 强压:33.9" + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:24.52 弱撑:27.76 弱压:29.3 强压:32.72" }, "pnl_pct": null }, @@ -1004,14 +979,14 @@ "type": "持仓", "sector": "生物医药", "business": "创新药(肿瘤/免疫),泽布替尼/替雷利珠单抗,全球化", - "price": 160.9, - "prev_close": 161.2, + "price": 165.2, + "prev_close": 160.9, "open": null, - "high": 168.3, - "low": 160.0, - "change_pct": -0.19, - "volume": 3779021.0, - "pe": 34.8, + "high": 168.6, + "low": 163.8, + "change_pct": 2.67, + "volume": 4955410.0, + "pe": 35.73, "total_market_cap": 1541419108.0, "high_52w": 229.4, "low_52w": 144.1, @@ -1021,12 +996,12 @@ "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标178.73 | 止损158.59 | 买入区160.23~166.65 | 信号:接近支撑位,关注", - "entry_zone": "", - "stop_loss": 158.59, - "take_profit": 178.73, + "action": "盈利持有 | 目标180.64 | 止损149.22 | 买入区161.9~168.4", + "entry_zone": "161.9~168.4", + "stop_loss": 149.22, + "take_profit": 180.64, "type": "自选策略", - "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:数据不足 强撑:151.13 弱撑:161.2 弱压:166.97 强压:178.73" + "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:数据不足 强撑:151.1 弱撑:160.9 弱压:167.93 强压:180.64" }, "pnl_pct": null }, @@ -1037,31 +1012,31 @@ "type": "自选", "sector": "通信/光缆", "business": "光纤预制棒/光纤/光缆全球龙头,通信线缆,数据中心", - "price": 264.6, - "prev_close": 286.0, + "price": 261.2, + "prev_close": 264.6, "open": null, - "high": 305.0, - "low": 260.2, - "change_pct": -7.48, - "volume": 32256541.0, - "pe": 97.66, + "high": 273.2, + "low": 251.2, + "change_pct": -1.28, + "volume": 22363188.0, + "pe": 96.41, "total_market_cap": 827905108.0, "high_52w": 305.0, - "low_52w": 16.726, + "low_52w": 17.306, "turnover_rate": null, "amplitude": null, - "cost": 0, - "shares": 0, - "position_pct": 0, + "cost": 264.06, + "shares": 500, + "position_pct": 16.3, "strategy": { - "action": "盈利持有 | 目标367.2 | 止损251.8 | 买入区262.25~272.95", - "entry_zone": "", - "stop_loss": 251.8, - "take_profit": 367.2, - "type": "自选策略", - "tech_snapshot": "形态:带上影阴线/neutral 量价:数据不足 强撑:189.6 弱撑:251.8 弱压:293.8 强压:367.2" + "action": "持有观察 | 短炒强趋势持 | 止损243.01 | 目标355.93 | 买入区250.53~263.06 | 信号:持有", + "entry_zone": "250.53~263.06", + "stop_loss": 243.01, + "take_profit": 355.93, + "type": "持仓策略", + "tech_snapshot": "形态:锤子线/T字线/bullish 量价:数据不足 强撑:173.07 弱撑:250.53 弱压:272.53 强压:350.67" }, - "pnl_pct": null + "pnl_pct": -1.08 }, { "code": "09868", @@ -1070,31 +1045,31 @@ "type": "自选", "sector": "新能源汽车", "business": "智能电动汽车(SUV/轿车),自动驾驶技术(XNGP),飞行汽车", - "price": 49.36, - "prev_close": 51.55, + "price": 49.14, + "prev_close": 49.36, "open": null, - "high": 52.3, - "low": 48.82, - "change_pct": -4.25, - "volume": 19692832.0, - "pe": -11.69, - "total_market_cap": 1914427023.0, + "high": 50.8, + "low": 48.84, + "change_pct": -0.45, + "volume": 12109518.0, + "pe": -11.65, + "total_market_cap": 1916069323.0, "high_52w": 110.8, "low_52w": 48.82, "turnover_rate": null, "amplitude": null, - "cost": 44.49, + "cost": 51.36, "shares": 700, - "position_pct": 2.99, + "position_pct": 4.31, "strategy": { - "action": "盈利持有 | 止损参考49.83 | 买入区50.52~52.58 | 信号:接近支撑位,关注", - "entry_zone": "", + "action": "持有观察 | ⚠️盈亏比偏低(1:1.1),不建议加仓 | 止损49.83 | 目标60.53 | 买入区50.52~52.58 | 信号:持有", + "entry_zone": "50.52~52.58", "stop_loss": 49.83, "take_profit": 60.53, "type": "持仓策略", - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:41.33 弱撑:49.28 弱压:51.66 强压:60.25" + "tech_snapshot": "形态:带上影阴线/neutral 量价:数据不足 强撑:39.91 弱撑:48.39 弱压:50.35 强压:59.27" }, - "pnl_pct": 10.95 + "pnl_pct": -4.32 }, { "code": "09988", @@ -1103,31 +1078,31 @@ "type": "持仓", "sector": "互联网", "business": "电商(淘宝/天猫),云计算(阿里云),本地生活(饿了么/高德)", - "price": 98.95, - "prev_close": 102.9, + "price": 99.4, + "prev_close": 98.95, "open": null, - "high": 103.4, - "low": 98.7, - "change_pct": -3.84, - "volume": 98049349.0, - "pe": 16.2, + "high": 101.5, + "low": 97.65, + "change_pct": 0.45, + "volume": 103216499.0, + "pe": 16.27, "total_market_cap": 19206078670.0, "high_52w": 185.173, - "low_52w": 98.7, + "low_52w": 97.65, "turnover_rate": null, "amplitude": null, - "cost": 109.26, - "shares": 700, - "position_pct": 5.99, + "cost": 0, + "shares": 0, + "position_pct": 0, "strategy": { - "action": "深套持有 | 深套持有 | 止损84.66 | 目标114.73 | 买入区89.64~104.58 | 信号:持有", - "entry_zone": "", - "stop_loss": 84.66, - "take_profit": 114.73, - "type": "持仓策略", - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:86.73 弱撑:98.07 弱压:102.9 强压:114.73" + "action": "盈利持有 | 目标115.07 | 止损89.79 | 买入区97.41~101.39 | 信号:关注", + "entry_zone": "97.41~101.39", + "stop_loss": 89.79, + "take_profit": 115.07, + "type": "自选策略", + "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:数据不足 强撑:83.97 弱撑:97.53 弱压:101.38 强压:115.07" }, - "pnl_pct": -9.44 + "pnl_pct": null }, { "code": "300035", @@ -1136,31 +1111,31 @@ "type": "持仓", "sector": "新能源材料", "business": "锂电负极材料(石墨化/硅碳),电磁屏蔽设备", - "price": 16.36, - "prev_close": 17.15, - "open": 17.1, - "high": 17.1, - "low": 16.29, - "change_pct": -4.61, - "volume": 209392.0, - "pe": 20.58, - "total_market_cap": 95.44, - "high_52w": 13.72, - "low_52w": 0.84, - "turnover_rate": 3.59, - "amplitude": 4.72, - "cost": 22.2914, + "price": 16.08, + "prev_close": 16.36, + "open": 16.32, + "high": 16.41, + "low": 15.96, + "change_pct": -1.71, + "volume": 158967.0, + "pe": 19.63, + "total_market_cap": 93.8, + "high_52w": 13.09, + "low_52w": 0.65, + "turnover_rate": 2.73, + "amplitude": 2.75, + "cost": 22.29, "shares": 1400, - "position_pct": 2.29, + "position_pct": 0.0, "strategy": { - "action": "深套持有 | 深套持有 | 止损13.53 | 目标17.78 | 买入区14.92~17.41 | 信号:持有", - "entry_zone": "", - "stop_loss": 13.53, - "take_profit": 17.78, + "action": "深套持有 | 深套持有 | 止损13.26 | 目标18.7 | 买入区14.47~16.88 | 信号:持有", + "entry_zone": "14.47~16.88", + "stop_loss": 13.26, + "take_profit": 18.7, "type": "持仓策略", - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:主动卖盘占优 强撑:14.74 弱撑:16.36 弱压:17.15 强压:18.72" + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:主动卖盘占优 强撑:13.88 弱撑:15.89 弱压:16.36 强压:18.42" }, - "pnl_pct": -26.61 + "pnl_pct": -27.86 }, { "code": "300124", @@ -1169,29 +1144,29 @@ "type": "自选", "sector": "工控自动化", "business": "工业自动化(伺服系统/PLC/变频器),新能源汽车电驱系统", - "price": 66.82, - "prev_close": 68.95, - "open": 68.3, - "high": 68.8, - "low": 66.57, - "change_pct": -3.09, - "volume": 364751.0, - "pe": 82.74, - "total_market_cap": 1610.57, - "high_52w": 55.16, - "low_52w": 0.97, - "turnover_rate": 1.51, - "amplitude": 3.23, + "price": 66.31, + "prev_close": 66.82, + "open": 66.64, + "high": 67.49, + "low": 65.74, + "change_pct": -0.76, + "volume": 309215.0, + "pe": 80.18, + "total_market_cap": 1598.28, + "high_52w": 53.46, + "low_52w": 0.81, + "turnover_rate": 1.28, + "amplitude": 2.62, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标73.65 | 止损65.78 | 买入区66.45~68.93 | 信号:放量下跌,等企稳再入", - "entry_zone": "", - "stop_loss": 65.78, - "take_profit": 73.65, + "action": "盈利持有 | 目标73.13 | 止损62.39 | 买入区64.98~67.64 | 信号:观望", + "entry_zone": "64.98~67.64", + "stop_loss": 62.39, + "take_profit": 73.13, "type": "自选策略", - "tech_snapshot": "形态:锤子线/T字线/bullish 量价:主动卖盘占优 强撑:61.97 弱撑:66.82 弱压:68.95 强压:73.65" + "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:主动卖盘占优 强撑:59.89 弱撑:65.54 弱压:67.29 强压:73.13" }, "pnl_pct": null }, @@ -1202,29 +1177,29 @@ "type": "自选策略", "sector": "", "business": "", - "price": 1310.01, - "prev_close": 1382.33, - "open": 1395.0, - "high": 1395.0, - "low": 1300.0, - "change_pct": -5.23, - "volume": 291773.0, - "pe": 1658.8, - "total_market_cap": 14540.32, - "high_52w": 1105.86, - "low_52w": 1.07, - "turnover_rate": 2.63, - "amplitude": 6.87, + "price": 1312.18, + "prev_close": 1310.01, + "open": 1313.61, + "high": 1344.88, + "low": 1282.15, + "change_pct": 0.17, + "volume": 262257.0, + "pe": 1572.01, + "total_market_cap": 14564.41, + "high_52w": 1048.01, + "low_52w": 1.0, + "turnover_rate": 2.36, + "amplitude": 4.79, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标1453.2 | 止损1287.32 | 买入区1300.59~1353.67", - "entry_zone": "", - "stop_loss": 1287.32, - "take_profit": 1453.2, + "action": "盈利持有 | 目标1447.8 | 止损1272.81 | 买入区1285.94~1338.42", + "entry_zone": "1285.94~1338.42", + "stop_loss": 1272.81, + "take_profit": 1447.8, "type": "自选策略", - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:主动买盘占优 强撑:1240.86 弱撑:1299.06 弱压:1382.33 强压:1453.2" + "tech_snapshot": "形态:十字星/neutral 量价:主动买盘占优 强撑:1178.34 弱撑:1281.26 弱压:1343.99 强压:1447.8" }, "pnl_pct": null }, @@ -1235,64 +1210,31 @@ "type": "自选", "sector": "光通信/光器件", "business": "光无源器件(分路器/波分复用),光有源器件,数据中心光互联", - "price": 286.02, - "prev_close": 298.09, - "open": 290.0, - "high": 309.6, - "low": 282.9, - "change_pct": -4.05, - "volume": 229808.0, - "pe": 357.71, - "total_market_cap": 779.01, - "high_52w": 238.47, - "low_52w": 0.86, - "turnover_rate": 8.44, - "amplitude": 8.96, + "price": 282.23, + "prev_close": 286.02, + "open": 288.42, + "high": 299.97, + "low": 275.86, + "change_pct": -1.33, + "volume": 211377.0, + "pe": 343.22, + "total_market_cap": 768.69, + "high_52w": 228.82, + "low_52w": 0.81, + "turnover_rate": 7.76, + "amplitude": 8.43, "cost": 231.46, "shares": 100, - "position_pct": 2.86, + "position_pct": 0.0, "strategy": { - "action": "盈利良好 | 短炒强趋势持 | 止损282.57 | 目标357.71 | 买入区282.57~296.7 | 信号:强趋势持", - "entry_zone": "", - "stop_loss": 282.57, - "take_profit": 357.71, + "action": "盈利良好 | 短炒强趋势持 | 止损263.91 | 目标348.37 | 买入区272.07~285.67 | 信号:持有", + "entry_zone": "272.07~285.67", + "stop_loss": 263.91, + "take_profit": 348.37, "type": "持仓策略", - "tech_snapshot": "形态:倒T线/射击之星/neutral 量价:主动买盘占优 强撑:238.47 弱撑:282.57 弱压:306.99 强压:357.71" + "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:主动买盘占优 强撑:228.82 弱撑:272.07 弱压:296.18 强压:343.22" }, - "pnl_pct": 23.57 - }, - { - "code": "300690", - "name": "双一科技", - "market": "A股", - "type": "持仓", - "sector": "复合材料", - "business": "风电叶片模具/机舱罩,车辆轻量化复合材料", - "price": 23.63, - "prev_close": 24.16, - "open": 23.88, - "high": 24.39, - "low": 23.53, - "change_pct": -2.19, - "volume": 30549.0, - "pe": 28.99, - "total_market_cap": 26.19, - "high_52w": 19.33, - "low_52w": 0.88, - "turnover_rate": 2.76, - "amplitude": 3.56, - "cost": 27.178, - "shares": 400, - "position_pct": 0.95, - "strategy": { - "action": "持有观察 | ⚠️盈亏比偏低(1:1.2),不建议加仓 | 止损22.15 | 目标25.82 | 买入区23.58~23.98 | 信号:持有", - "entry_zone": "", - "stop_loss": 22.15, - "take_profit": 25.82, - "type": "持仓策略", - "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:主动卖盘占优 强撑:22.15 弱撑:23.58 弱压:24.2 强压:25.82" - }, - "pnl_pct": -13.05 + "pnl_pct": 21.93 }, { "code": "300750", @@ -1301,31 +1243,31 @@ "type": "持仓", "sector": "新能源汽车", "business": "动力电池(全球第一),储能电池,电池回收", - "price": 392.51, - "prev_close": 408.98, - "open": 411.0, - "high": 414.04, - "low": 390.73, - "change_pct": -4.03, - "volume": 373741.0, - "pe": 490.78, - "total_market_cap": 16709.2, - "high_52w": 327.18, - "low_52w": 0.97, - "turnover_rate": 0.88, - "amplitude": 5.7, - "cost": 401.7803, + "price": 395.36, + "prev_close": 392.51, + "open": 392.0, + "high": 399.27, + "low": 386.66, + "change_pct": 0.73, + "volume": 344271.0, + "pe": 471.01, + "total_market_cap": 16830.52, + "high_52w": 314.01, + "low_52w": 0.88, + "turnover_rate": 0.81, + "amplitude": 3.21, + "cost": 401.78, "shares": 100, - "position_pct": 3.93, + "position_pct": 0.0, "strategy": { - "action": "持有观察 | ⚠️盈亏比偏低(1:1.2),不建议加仓 | 止损359.17 | 目标413.84 | 买入区395.72~404.88 | 信号:缩量回踩弱支撑,可加仓", - "entry_zone": "", - "stop_loss": 359.17, - "take_profit": 413.84, + "action": "持有观察 | ⚠️盈亏比偏低(1:0.9),不建议加仓 | 止损352.13 | 目标430.87 | 买入区388.26~393.76 | 信号:弱势持有", + "entry_zone": "388.26~393.76", + "stop_loss": 352.13, + "take_profit": 430.87, "type": "持仓策略", - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:买卖均衡 强撑:374.14 弱撑:395.72 弱压:410.75 强压:435.62" + "tech_snapshot": "形态:锤子线/T字线/bullish 量价:买卖均衡 强撑:363.02 弱撑:388.26 弱压:400.87 强压:424.5" }, - "pnl_pct": -2.31 + "pnl_pct": -1.6 }, { "code": "518880", @@ -1334,64 +1276,31 @@ "type": "持仓", "sector": "商品/贵金属", "business": "黄金ETF,跟踪国内黄金现货价格", - "price": 8.537, - "prev_close": 8.716, - "open": 8.668, - "high": 8.674, - "low": 8.525, - "change_pct": -2.05, - "volume": 4256305.0, - "pe": 9.588, - "total_market_cap": 917.8, - "high_52w": 7.844, - "low_52w": 1.2, - "turnover_rate": 3.96, - "amplitude": 1.71, - "cost": 12.1915, + "price": 8.515, + "prev_close": 8.537, + "open": 8.485, + "high": 8.53, + "low": 8.426, + "change_pct": -0.26, + "volume": 4029970.0, + "pe": 9.391, + "total_market_cap": 908.43, + "high_52w": 7.683, + "low_52w": 1.18, + "turnover_rate": 3.78, + "amplitude": 1.22, + "cost": 12.19, "shares": 2400, - "position_pct": 2.05, + "position_pct": 2.53, "strategy": { - "action": "深套持有 | 深套持有 | 止损6.72 | 目标8.37 | 买入区7.73~9.02 | 信号:持有", - "entry_zone": "", - "stop_loss": 6.72, - "take_profit": 8.37, + "action": "深套持有 | 深套持有 | 止损7.02 | 目标9.31 | 买入区7.66~8.94 | 信号:持有", + "entry_zone": "7.66~8.94", + "stop_loss": 7.02, + "take_profit": 9.31, "type": "持仓策略", - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:7.92 弱撑:8.55 弱压:8.72 强压:9.3" + "tech_snapshot": "形态:锤子线/T字线/bullish 量价:数据不足 强撑:7.81 弱撑:8.45 弱压:8.55 强压:9.17" }, - "pnl_pct": -29.98 - }, - { - "code": "600036", - "name": "招商银行", - "market": "A股", - "type": "持仓", - "sector": "银行", - "business": "零售银行标杆,财富管理,信用卡,私人银行", - "price": 37.4, - "prev_close": 37.65, - "open": 37.65, - "high": 38.19, - "low": 37.35, - "change_pct": -0.66, - "volume": 1008007.0, - "pe": 41.42, - "total_market_cap": 7715.23, - "high_52w": 33.89, - "low_52w": 1.11, - "turnover_rate": 0.49, - "amplitude": 2.23, - "cost": 38.1582, - "shares": 800, - "position_pct": 2.99, - "strategy": { - "action": "持有观察 | ⚠️盈亏比偏低(1:1.1),不建议加仓 | 止损36.13 | 目标40.26 | 买入区37.5~37.84 | 信号:弱势持有", - "entry_zone": "", - "stop_loss": 36.13, - "take_profit": 40.26, - "type": "持仓策略", - "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:买卖均衡 强撑:35.42 弱撑:37.5 弱压:38.13 强压:40.26" - }, - "pnl_pct": -1.99 + "pnl_pct": -30.15 }, { "code": "600519", @@ -1400,29 +1309,29 @@ "type": "自选策略", "sector": "", "business": "", - "price": 1222.45, - "prev_close": 1241.41, - "open": 1239.0, - "high": 1264.0, - "low": 1217.0, - "change_pct": -1.53, - "volume": 58004.0, - "pe": 1365.55, - "total_market_cap": 15281.62, - "high_52w": 1117.27, - "low_52w": 1.22, - "turnover_rate": 0.46, - "amplitude": 3.79, + "price": 1207.68, + "prev_close": 1222.45, + "open": 1222.65, + "high": 1241.87, + "low": 1207.51, + "change_pct": -1.21, + "volume": 45335.0, + "pe": 1344.7, + "total_market_cap": 15096.99, + "high_52w": 1100.21, + "low_52w": 0.89, + "turnover_rate": 0.36, + "amplitude": 2.81, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | ⚠️盈亏比偏低(1:2.0),谨慎买入 | 目标1300.67 | 止损1191.75 | 买入区1204.04~1235.32 | 信号:接近支撑位,关注", - "entry_zone": "", - "stop_loss": 1191.75, - "take_profit": 1300.67, + "action": "盈利持有 | 目标1320.83 | 止损1171.45 | 买入区1183.53~1231.2 | 信号:关注", + "entry_zone": "1183.53~1231.2", + "stop_loss": 1171.45, + "take_profit": 1320.83, "type": "自选策略", - "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:主动买盘占优 强撑:1177.81 弱撑:1214.47 弱压:1253.37 强压:1300.67" + "tech_snapshot": "形态:带上影阴线/bearish 量价:主动买盘占优 强撑:1117.21 弱撑:1196.17 弱压:1230.53 强压:1320.83" }, "pnl_pct": null }, @@ -1433,64 +1342,31 @@ "type": "持仓", "sector": "电子元器件", "business": "薄膜电容器(全球前三),新能源车/风光/工控用电容", - "price": 162.51, - "prev_close": 172.94, - "open": 172.0, - "high": 172.0, - "low": 160.6, - "change_pct": -6.03, - "volume": 100728.0, - "pe": 190.23, - "total_market_cap": 365.65, - "high_52w": 155.65, - "low_52w": 0.93, - "turnover_rate": 4.48, - "amplitude": 6.59, + "price": 178.76, + "prev_close": 162.51, + "open": 162.45, + "high": 178.76, + "low": 161.95, + "change_pct": 10.0, + "volume": 165524.0, + "pe": 178.76, + "total_market_cap": 402.21, + "high_52w": 146.26, + "low_52w": 1.5, + "turnover_rate": 7.36, + "amplitude": 10.34, "cost": 146.95, "shares": 100, - "position_pct": 1.63, + "position_pct": 2.21, "strategy": { - "action": "盈利良好 | 止损147.72 | 目标171.21 | 买入区160.56~168.59 | 信号:持有", - "entry_zone": "", - "stop_loss": 147.72, - "take_profit": 171.21, + "action": "盈利良好 | 止损172.96 | 目标219.99 | 买入区162.51~170.64 | 信号:持有", + "entry_zone": "162.51~170.64", + "stop_loss": 172.96, + "take_profit": 219.99, "type": "持仓策略", - "tech_snapshot": "形态:带下影阴线/neutral 量价:买卖均衡 强撑:155.65 弱撑:160.56 弱压:172.94 强压:190.23" + "tech_snapshot": "形态:光头光脚阳线/bullish 量价:买卖均衡 强撑:146.26 弱撑:162.51 弱压:184.36 强压:210.42" }, - "pnl_pct": 10.59 - }, - { - "code": "600739", - "name": "辽宁成大", - "market": "A股", - "type": "持仓", - "sector": "医药流通/供应链", - "business": "医药流通,供应链服务,生物制品", - "price": 10.65, - "prev_close": 10.74, - "open": 10.72, - "high": 11.0, - "low": 10.6, - "change_pct": -0.84, - "volume": 212403.0, - "pe": 11.81, - "total_market_cap": 162.13, - "high_52w": 9.67, - "low_52w": 1.33, - "turnover_rate": 1.4, - "amplitude": 3.72, - "cost": 12.2862, - "shares": 6600, - "position_pct": 7.03, - "strategy": { - "action": "持有观察 | ⚠️盈亏比偏低(1:0.9),不建议加仓 | 止损10.22 | 目标12.16 | 买入区10.65~10.77 | 信号:持有", - "entry_zone": "", - "stop_loss": 10.22, - "take_profit": 12.16, - "type": "持仓策略", - "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:主动买盘占优 强撑:9.73 弱撑:10.65 弱压:11.0 强压:11.81" - }, - "pnl_pct": -13.32 + "pnl_pct": 21.65 }, { "code": "601318", @@ -1499,29 +1375,29 @@ "type": "自选策略", "sector": "", "business": "", - "price": 50.4, - "prev_close": 51.98, - "open": 51.46, - "high": 52.43, - "low": 50.11, - "change_pct": -3.04, - "volume": 1220116.0, - "pe": 57.18, - "total_market_cap": 5372.67, - "high_52w": 46.78, - "low_52w": 0.96, - "turnover_rate": 1.14, - "amplitude": 4.46, + "price": 49.12, + "prev_close": 50.4, + "open": 50.69, + "high": 50.88, + "low": 49.03, + "change_pct": -2.54, + "volume": 1094158.0, + "pe": 55.44, + "total_market_cap": 5236.22, + "high_52w": 45.36, + "low_52w": 0.83, + "turnover_rate": 1.03, + "amplitude": 3.67, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 止损参考49.42 | 买入区49.93~51.97 | 信号:放量下跌,等企稳再入", - "entry_zone": "", - "stop_loss": 49.42, - "take_profit": 55.97, + "action": "盈利持有 | 目标53.61 | 止损47.65 | 买入区48.14~50.03 | 信号:观望", + "entry_zone": "48.14~50.03", + "stop_loss": 47.65, + "take_profit": 53.61, "type": "自选策略", - "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:主动卖盘占优 强撑:46.88 弱撑:50.46 弱压:52.01 强压:56.0" + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:主动卖盘占优 强撑:45.75 弱撑:48.47 弱压:50.4 强压:53.61" }, "pnl_pct": null }, @@ -1532,31 +1408,31 @@ "type": "持仓", "sector": "有色金属", "business": "铜矿/金矿/锌矿开采冶炼,全球布局(刚果金/塞尔维亚)", - "price": 27.75, - "prev_close": 30.44, - "open": 29.95, - "high": 30.0, - "low": 27.64, - "change_pct": -8.84, - "volume": 4947402.0, - "pe": 33.48, - "total_market_cap": 5717.0, - "high_52w": 27.4, - "low_52w": 1.34, - "turnover_rate": 2.4, - "amplitude": 7.75, - "cost": 40.2685, + "price": 27.65, + "prev_close": 27.75, + "open": 27.41, + "high": 27.97, + "low": 27.33, + "change_pct": -0.36, + "volume": 2846096.0, + "pe": 30.53, + "total_market_cap": 5696.4, + "high_52w": 24.98, + "low_52w": 0.81, + "turnover_rate": 1.38, + "amplitude": 2.31, + "cost": 40.27, "shares": 2400, - "position_pct": 6.66, + "position_pct": 8.19, "strategy": { - "action": "深套持有 | 深套持有 | 止损22.13 | 目标29.15 | 买入区25.47~29.72 | 信号:持有", - "entry_zone": "", - "stop_loss": 22.13, - "take_profit": 29.15, + "action": "深套持有 | 深套持有 | 止损22.79 | 目标30.99 | 买入区24.88~29.03 | 信号:持有", + "entry_zone": "24.88~29.03", + "stop_loss": 22.79, + "take_profit": 30.99, "type": "持仓策略", - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:主动买盘占优 强撑:27.4 弱撑:27.7 弱压:30.44 强压:32.39" + "tech_snapshot": "形态:带上影阳线/neutral 量价:主动买盘占优 强撑:24.98 弱撑:27.33 弱压:27.97 强压:30.53" }, - "pnl_pct": -31.09 + "pnl_pct": -31.34 }, { "code": "603259", @@ -1565,31 +1441,31 @@ "type": "持仓策略", "sector": "", "business": "", - "price": 106.31, - "prev_close": 106.83, - "open": 107.0, - "high": 109.36, - "low": 105.76, - "change_pct": -0.49, - "volume": 525084.0, - "pe": 117.51, - "total_market_cap": 2629.34, - "high_52w": 96.15, - "low_52w": 1.28, - "turnover_rate": 2.12, - "amplitude": 3.37, - "cost": 96.201, + "price": 115.4, + "prev_close": 106.31, + "open": 106.9, + "high": 116.94, + "low": 106.9, + "change_pct": 8.55, + "volume": 1098058.0, + "pe": 116.94, + "total_market_cap": 2854.17, + "high_52w": 95.68, + "low_52w": 2.48, + "turnover_rate": 4.44, + "amplitude": 9.44, + "cost": 96.2, "shares": 400, - "position_pct": 4.25, + "position_pct": 5.69, "strategy": { - "action": "盈利良好 | 止损104.51 | 目标117.51 | 买入区106.25~111.01 | 信号:持有", - "entry_zone": "", - "stop_loss": 104.51, - "take_profit": 117.51, + "action": "盈利良好 | 止损106.34 | 目标136.95 | 买入区106.31~111.63 | 信号:持有", + "entry_zone": "106.31~111.63", + "stop_loss": 106.34, + "take_profit": 136.95, "type": "持仓策略", - "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:买卖均衡 强撑:96.15 弱撑:106.25 弱压:109.29 强压:117.51" + "tech_snapshot": "形态:光头光脚阳线/bullish 量价:买卖均衡 强撑:95.68 弱撑:106.31 弱压:119.26 强压:134.93" }, - "pnl_pct": 10.51 + "pnl_pct": 19.96 }, { "code": "688411", @@ -1598,31 +1474,31 @@ "type": "持仓", "sector": "储能/电力系统", "business": "电化学储能系统集成,电力辅助服务,新能源配储", - "price": 272.24, - "prev_close": 286.98, - "open": 283.4, - "high": 285.98, - "low": 269.0, - "change_pct": -5.14, - "volume": 6073977.0, - "pe": 344.38, - "total_market_cap": 360.92, - "high_52w": 229.58, - "low_52w": 1.04, - "turnover_rate": 4.58, - "amplitude": 5.92, - "cost": 0, - "shares": 0, - "position_pct": 0, + "price": 266.19, + "prev_close": 272.24, + "open": 272.09, + "high": 272.09, + "low": 261.8, + "change_pct": -2.22, + "volume": 4520241.0, + "pe": 326.69, + "total_market_cap": 352.9, + "high_52w": 217.79, + "low_52w": 0.79, + "turnover_rate": 3.41, + "amplitude": 3.78, + "cost": 266.89, + "shares": 200, + "position_pct": 6.62, "strategy": { - "action": "盈利良好 | 目标323.7 | 止损271.71 | 买入区274.51~285.71 | 信号:缩量回踩支撑,可买入", - "entry_zone": "", - "stop_loss": 271.71, - "take_profit": 323.7, - "type": "自选策略", - "tech_snapshot": "形态:锤子线/T字线/bullish 量价:买卖均衡 强撑:234.62 弱撑:272.35 弱压:286.98 强压:323.7" + "action": "持有观察 | ⚠️盈亏比偏低(1:1.0),不建议加仓 | 止损206.87 | 目标300.1 | 买入区261.3~266.69 | 信号:加仓", + "entry_zone": "261.3~266.69", + "stop_loss": 206.87, + "take_profit": 300.1, + "type": "持仓策略", + "tech_snapshot": "形态:带下影阴线/neutral 量价:买卖均衡 强撑:222.15 弱撑:261.3 弱压:272.24 强压:311.23" }, - "pnl_pct": null + "pnl_pct": -0.26 }, { "code": "688630", @@ -1631,29 +1507,29 @@ "type": "自选策略", "sector": "", "business": "", - "price": 462.89, - "prev_close": 488.0, - "open": 485.55, - "high": 487.99, - "low": 458.16, - "change_pct": -5.15, - "volume": 4975139.0, - "pe": 585.6, - "total_market_cap": 609.81, - "high_52w": 390.4, - "low_52w": 0.82, - "turnover_rate": 3.78, - "amplitude": 6.11, + "price": 513.88, + "prev_close": 462.89, + "open": 459.0, + "high": 515.85, + "low": 455.55, + "change_pct": 11.02, + "volume": 5958289.0, + "pe": 555.47, + "total_market_cap": 676.99, + "high_52w": 370.31, + "low_52w": 1.06, + "turnover_rate": 4.52, + "amplitude": 13.03, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标526.57 | 止损457.52 | 买入区461.84~480.7", - "entry_zone": "", - "stop_loss": 457.52, - "take_profit": 526.57, + "action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标555.39 | 止损431.04 | 买入区503.6~499.89 | 信号:买入", + "entry_zone": "503.6~499.89", + "stop_loss": 431.04, + "take_profit": 555.39, "type": "自选策略", - "tech_snapshot": "形态:带下影阴线/neutral 量价:主动买盘占优 强撑:418.93 弱撑:457.52 弱压:488.0 强压:526.57" + "tech_snapshot": "形态:光头光脚阳线/bullish 量价:主动买盘占优 强撑:434.79 弱撑:462.89 弱压:534.64 强压:555.39" }, "pnl_pct": null }, @@ -1664,31 +1540,31 @@ "type": "持仓", "sector": "化工/生物制造", "business": "生物法丙氨酸/缬氨酸等氨基酸产品,合成生物学平台技术", - "price": 21.83, - "prev_close": 21.0, - "open": 20.99, - "high": 22.47, - "low": 20.99, - "change_pct": 3.95, - "volume": 8399254.0, - "pe": 25.2, - "total_market_cap": 54.6, - "high_52w": 16.8, - "low_52w": 1.86, - "turnover_rate": 3.36, - "amplitude": 7.05, - "cost": 0, - "shares": 0, - "position_pct": 0, + "price": 21.4, + "prev_close": 21.83, + "open": 22.03, + "high": 22.03, + "low": 21.2, + "change_pct": -1.97, + "volume": 4683966.0, + "pe": 26.2, + "total_market_cap": 53.52, + "high_52w": 17.46, + "low_52w": 0.91, + "turnover_rate": 1.87, + "amplitude": 3.8, + "cost": 21.51, + "shares": 2800, + "position_pct": 7.42, "strategy": { - "action": "盈利持有 | 目标24.5 | 止损21.27 | 买入区21.49~22.37", - "entry_zone": "", - "stop_loss": 21.27, - "take_profit": 24.5, - "type": "自选策略", - "tech_snapshot": "形态:带上影阳线/neutral 量价:主动买盘占优 强撑:19.1 弱撑:21.0 弱压:22.6 强压:24.5" + "action": "持有观察 | ⚠️盈亏比偏低(1:1.1),不建议加仓 | 止损18.27 | 目标24.6 | 买入区21.06~21.54 | 信号:持有", + "entry_zone": "21.06~21.54", + "stop_loss": 18.27, + "take_profit": 24.6, + "type": "持仓策略", + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:主动买盘占优 强撑:18.84 弱撑:21.06 弱压:21.89 强压:24.24" }, - "pnl_pct": null + "pnl_pct": -0.51 }, { "code": "688795", @@ -1697,29 +1573,29 @@ "type": "自选", "sector": "半导体/GPU", "business": "国产GPU芯片设计,AI训练/推理芯片,图形渲染芯片", - "price": 704.03, - "prev_close": 670.5, - "open": 661.0, - "high": 745.2, - "low": 660.01, - "change_pct": 5.0, - "volume": 5309392.0, - "pe": 804.6, - "total_market_cap": 212.8, - "high_52w": 536.4, - "low_52w": 1.85, - "turnover_rate": 17.57, - "amplitude": 12.71, + "price": 704.8, + "prev_close": 704.03, + "open": 690.03, + "high": 717.58, + "low": 669.0, + "change_pct": 0.11, + "volume": 3496502.0, + "pe": 844.84, + "total_market_cap": 213.03, + "high_52w": 563.22, + "low_52w": 1.0, + "turnover_rate": 11.57, + "amplitude": 6.9, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | ⚠️盈亏比偏低(1:1.8),谨慎买入 | 目标804.6 | 止损683.91 | 买入区704.31~724.14 | 信号:放量下跌,等企稳再入", - "entry_zone": "", - "stop_loss": 683.91, - "take_profit": 804.6, + "action": "盈利持有 | 目标831.78 | 止损683.66 | 买入区690.7~718.9 | 信号:观望", + "entry_zone": "690.7~718.9", + "stop_loss": 683.66, + "take_profit": 831.78, "type": "自选策略", - "tech_snapshot": "形态:带上影阳线/neutral 量价:主动卖盘占优 强撑:573.31 弱撑:670.5 弱压:755.92 强压:804.6" + "tech_snapshot": "形态:带下影阳线/neutral 量价:主动卖盘占优 强撑:563.22 弱撑:676.67 弱压:725.25 强压:831.78" }, "pnl_pct": null }, @@ -1730,29 +1606,29 @@ "type": "自选", "sector": "半导体/GPU", "business": "国产GPU芯片设计,图形渲染/通用计算芯片", - "price": 768.98, - "prev_close": 758.0, - "open": 744.0, - "high": 808.0, - "low": 731.01, - "change_pct": 1.45, - "volume": 3079810.0, - "pe": 909.6, - "total_market_cap": 142.48, - "high_52w": 606.4, - "low_52w": 1.27, - "turnover_rate": 16.62, - "amplitude": 10.16, + "price": 770.19, + "prev_close": 768.98, + "open": 749.97, + "high": 779.0, + "low": 726.1, + "change_pct": 0.16, + "volume": 2190140.0, + "pe": 922.78, + "total_market_cap": 142.71, + "high_52w": 615.18, + "low_52w": 0.81, + "turnover_rate": 11.82, + "amplitude": 6.88, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标899.0 | 止损756.85 | 买入区770.28~801.72", - "entry_zone": "", - "stop_loss": 756.85, - "take_profit": 899.0, + "action": "盈利持有 | 目标882.43 | 止损747.08 | 买入区754.79~785.59", + "entry_zone": "754.79~785.59", + "stop_loss": 747.08, + "take_profit": 882.43, "type": "自选策略", - "tech_snapshot": "形态:光头光脚阳线/neutral 量价:数据不足 强撑:651.0 弱撑:742.01 弱压:819.0 强压:899.0" + "tech_snapshot": "形态:带下影阳线/neutral 量价:数据不足 强撑:634.43 弱撑:737.86 弱压:790.76 强压:882.43" }, "pnl_pct": null }, @@ -1763,31 +1639,31 @@ "type": "自选", "sector": "半导体/晶圆代工", "business": "集成电路晶圆代工,先进制程(14nm/28nm及以上),成熟制程", - "price": 141.7, - "prev_close": 145.59, - "open": 143.58, - "high": 148.3, - "low": 139.6, - "change_pct": -2.67, - "volume": 91820109.0, - "pe": 174.71, - "total_market_cap": 2833.38, - "high_52w": 116.47, - "low_52w": 0.97, - "turnover_rate": 4.59, - "amplitude": 5.98, - "cost": 126.0681, + "price": 151.53, + "prev_close": 141.7, + "open": 141.5, + "high": 156.35, + "low": 141.32, + "change_pct": 6.94, + "volume": 141162383.0, + "pe": 170.04, + "total_market_cap": 3029.94, + "high_52w": 113.36, + "low_52w": 1.43, + "turnover_rate": 7.06, + "amplitude": 10.61, + "cost": 126.07, "shares": 300, - "position_pct": 4.25, + "position_pct": 5.64, "strategy": { - "action": "盈利良好 | 止损139.7 | 目标168.27 | 买入区140.39~147.41 | 信号:持有", - "entry_zone": "", - "stop_loss": 139.7, - "take_profit": 168.27, + "action": "盈利良好 | 止损146.61 | 目标177.77 | 买入区141.7~148.78 | 信号:持有", + "entry_zone": "141.7~148.78", + "stop_loss": 146.61, + "take_profit": 177.77, "type": "持仓策略", - "tech_snapshot": "形态:倒T线/射击之星/neutral 量价:买卖均衡 强撑:120.41 弱撑:140.39 弱压:147.98 强压:168.27" + "tech_snapshot": "形态:带上影阳线/neutral 量价:买卖均衡 强撑:117.75 弱撑:141.7 弱压:158.15 强压:170.04" }, - "pnl_pct": 12.4 + "pnl_pct": 20.2 } ] } \ No newline at end of file diff --git a/scripts/morning_health_check.py b/scripts/morning_health_check.py index 53ffc24..6b85592 100755 --- a/scripts/morning_health_check.py +++ b/scripts/morning_health_check.py @@ -40,6 +40,21 @@ HERMES_CRON_DIR = Path("/home/hmo/.hermes/profiles/position-analyst/cron") TODO_PATH = Path("/home/hmo/.hermes/profiles/position-analyst/todo.json") +def derive_fix_action(detail, msg): + """根据issue信息推导可执行的修复命令""" + # 小果扫描 error → 脚本已更新,只验证 + if "xiaoguo_scanner" in msg or "小果扫描" in msg: + return f"cd {BASE} && python3 xiaoguo_scanner.py --test 2>&1 | head -5" + # system-audit error → 验证拷贝 + if "system_audit" in msg or "系统审计" in msg: + return f"ls -la /home/hmo/.hermes/profiles/position-analyst/scripts/system_audit.py 2>&1" + # 港股汇率 → 刷新 + if "港股汇率" in msg: + return f"cd {BASE} && python3 hk_rate.py 2>&1" + # delivery目标 → 无自动修复 + return None + + def auto_fix_issue(issue): """对明确可自动修复的问题执行修复,返回 (fixed, fix_msg)""" item_id = issue.get("detail", "") @@ -105,52 +120,61 @@ def write_todos_for_issues(): for issue, fix_msg in fixed_issues: print(f" ✅ {issue['category']}: {fix_msg}") - # 剩余的无法自动修复的→写TODO + # 剩余的无法自动修复的→写TODO到数据库 if not remaining: return - # 读现有 TODO - existing = [] - if TODO_PATH.exists(): - try: - existing = json.loads(TODO_PATH.read_text()) - except: - existing = [] - - existing_titles = {t.get("title", "") for t in existing} - todo_priority = {"critical": "high", "error": "medium", "warn": "low"} - - new_items = [] - for issue in remaining: - title = f"[体检发现] {issue['msg']}" - # 去重 - if title in existing_titles: - for t in existing: - if t.get("title") == title: - if t.get("status") == "completed": - t["status"] = "pending" - t["priority"] = todo_priority.get(issue["level"], "medium") - t["note"] = f"重新打开: {ctx['started_at'].isoformat()}" - continue + try: + conn = sqlite3.connect(str(DB_PATH)) + todo_priority = {"critical": "high", "error": "medium", "warn": "low"} + new_count = 0 - existing_titles.add(title) - new_items.append({ - "title": title, - "desc": f"体检发现于 {ctx['started_at'].strftime('%Y-%m-%d %H:%M')},分类: {issue['category']},详情: {issue.get('detail', '')}", - "status": "pending", - "priority": todo_priority.get(issue["level"], "medium"), - "created": ctx["started_at"].isoformat(), - "target": "health_check_fix", - }) - - if new_items: - existing.extend(new_items) - TODO_PATH.write_text(json.dumps(existing, ensure_ascii=False, indent=2)) + for issue in remaining: + title = f"[体检发现] {issue['msg']}" + level = issue["level"] + pri = todo_priority.get(level, "medium") + + # 去重:检查是否已有相同 title + existing = conn.execute( + "SELECT id, status FROM todos WHERE title=? AND status IN ('pending','in_progress','blocked')", + (title,) + ).fetchone() + + if existing: + if existing["status"] == "blocked": + # 已阻塞的重新打开 + conn.execute( + "UPDATE todos SET status='pending', priority=?, note='已重新打开', updated_at=CURRENT_TIMESTAMP WHERE id=?", + (pri, existing["id"]) + ) + else: + # 生成fix_action(如果可推导) + fix_action = derive_fix_action(issue.get("detail", ""), issue.get("msg", "")) + conn.execute( + "INSERT INTO todos (title, description, priority, source, status, fix_action) " + "VALUES (?, ?, ?, 'health_check', 'pending', ?)", + (title, + f"体检发现于 {ctx['started_at'].strftime('%Y-%m-%d %H:%M')}\n分类: {issue['category']}\n详情: {issue.get('detail', '')}", + pri, fix_action) + ) + new_count += 1 - print() - print("📋 已加入TODO(待处理):") - for item in new_items: - print(f" [{item['priority']}] {item['title'][:70]}") + conn.commit() + conn.close() + + if new_count > 0: + print() + print(f"📋 已加入TODO({new_count}条):") + # 重新查刚插入的pending记录 + cur2 = conn.cursor() + for r2 in cur2.execute( + "SELECT title, priority FROM todos WHERE status='pending' AND source='health_check' " + "ORDER BY created_at DESC LIMIT ?", (new_count,) + ).fetchall(): + print(f" [{r2['priority']}] {r2['title'][:70]}") + conn.close() + except Exception as e: + print(f" TODO写入异常: {e}") except Exception as e: pass # TODO 写入失败不阻碍体检主流程 diff --git a/scripts/self_todo_executor.py b/scripts/self_todo_executor.py new file mode 100644 index 0000000..b8abcae --- /dev/null +++ b/scripts/self_todo_executor.py @@ -0,0 +1,156 @@ +#!/usr/bin/env python3 +"""self_todo_executor.py — TODO自动执行器 (no_agent模式) + +每10分钟轮询mofin.db中todos表的pending任务,执行fix_action命令。 +纯代码逻辑,不调LLM。 +有执行→输出摘要,无→SILENT。 +""" + +import json, os, sqlite3, subprocess, sys, time +from pathlib import Path +from datetime import datetime + +BASE = Path("/home/hmo/MoFin") +DB_PATH = BASE / "data" / "mofin.db" + + +def get_conn(): + conn = sqlite3.connect(str(DB_PATH)) + conn.row_factory = sqlite3.Row + return conn + + +def verify_fix(verification_check): + """运行验证命令,返回 (ok, output)""" + if not verification_check: + return True, "无验证命令" + try: + r = subprocess.run( + verification_check, + shell=True, capture_output=True, text=True, timeout=30 + ) + if r.returncode == 0: + return True, r.stdout.strip()[:200] + else: + return False, f"exit={r.returncode}: {r.stderr.strip()[:200]}" + except Exception as e: + return False, str(e)[:200] + + +def execute_fix(fix_action): + """执行修复命令,返回 (ok, output)""" + if not fix_action: + return False, "无修复命令" + try: + r = subprocess.run( + fix_action, + shell=True, capture_output=True, text=True, timeout=60 + ) + if r.returncode == 0: + return True, r.stdout.strip()[:300] or "ok" + else: + return False, f"exit={r.returncode}: {r.stderr.strip()[:300]}" + except subprocess.TimeoutExpired: + return False, "执行超时(60s)" + except Exception as e: + return False, str(e)[:200] + + +def main(): + start = time.time() + conn = get_conn() + cur = conn.cursor() + + # 读所有pending任务(按优先级排序) + rows = cur.execute( + "SELECT id, title, description, priority, fix_action, verification_check, " + "retry_count, max_retries, note FROM todos " + "WHERE status='pending' ORDER BY " + "CASE priority WHEN 'high' THEN 0 WHEN 'medium' THEN 1 ELSE 2 END, " + "created_at ASC LIMIT 10" + ).fetchall() + + if not rows: + conn.close() + print("[SILENT] 无待处理TODO") + return + + results = [] + for row in rows: + todo_id = row["id"] + title = row["title"] + fix_action = row["fix_action"] + verification = row["verification_check"] + retry_count = row["retry_count"] + max_retries = row["max_retries"] + + # 标记in_progress + cur.execute( + "UPDATE todos SET status='in_progress', updated_at=CURRENT_TIMESTAMP WHERE id=?", + (todo_id,) + ) + conn.commit() + + if fix_action: + # 执行修复 + ok, output = execute_fix(fix_action) + if not ok: + retry_count += 1 + if retry_count >= max_retries: + cur.execute( + "UPDATE todos SET status='blocked', retry_count=?, " + "note=?, updated_at=CURRENT_TIMESTAMP WHERE id=?", + (retry_count, f"重试{retry_count}次仍失败: {output}", todo_id) + ) + results.append(("⛔", f"{title}: 已阻塞({output[:60]})")) + else: + cur.execute( + "UPDATE todos SET status='pending', retry_count=?, " + "note=?, updated_at=CURRENT_TIMESTAMP WHERE id=?", + (retry_count, f"第{retry_count}次失败: {output}", todo_id) + ) + results.append(("🔄", f"{title}: 重试{retry_count}/{max_retries}({output[:60]})")) + conn.commit() + continue + + # 修复成功→验证 + v_ok, v_out = verify_fix(verification) + if v_ok: + cur.execute( + "UPDATE todos SET status='completed', note=?, " + "updated_at=CURRENT_TIMESTAMP WHERE id=?", + (f"已修复: {output[:200]}", todo_id) + ) + results.append(("✅", f"{title}: 已修复")) + else: + # 修复成功但验证失败→可能验证命令不准,标记需人工 + cur.execute( + "UPDATE todos SET status='completed', note=?, " + "updated_at=CURRENT_TIMESTAMP WHERE id=?", + (f"执行成功但验证异常: {v_out}", todo_id) + ) + results.append(("⚠️", f"{title}: 已执行但验证异常({v_out[:60]})")) + else: + # 无fix_action → 标记为无法自动修复 + cur.execute( + "UPDATE todos SET status='blocked', note='需人工处理(无修复命令)', " + "updated_at=CURRENT_TIMESTAMP WHERE id=?", + (todo_id,) + ) + results.append(("⛔", f"{title}: 无修复命令,已阻塞")) + + conn.commit() + + conn.close() + + elapsed = time.time() - start + if results: + print(f"自愈执行器 | {datetime.now().strftime('%H:%M')} | {len(results)}条 ({elapsed:.0f}s)") + for icon, msg in results: + print(f" {icon} {msg}") + else: + print("[SILENT] 无待处理TODO") + + +if __name__ == "__main__": + main()