From 24a73103ed789928a2f3f07c7145d2354f15065b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=9F=A5=E5=BE=AE?= Date: Fri, 3 Jul 2026 10:19:09 +0800 Subject: [PATCH] =?UTF-8?q?price=5Fmonitor=E6=B8=AF=E8=82=A1=E5=B8=81?= =?UTF-8?q?=E7=A7=8D=E4=BF=AE=E5=A4=8D+calc=5Ftotal=5Fmv=E6=B1=87=E5=85=91?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 问题链: price_monitor 从东方财富/腾讯拿HK股价(HKD) → x0.87转CNY写portfolio → DB存CNY→下游混读→建滔显示-24%浮亏(实为-0.6%) 修复: price_monitor不转CNY,港股存HKD原值 calc_total_mv()增加币种判断:HK股用get_hk_rate()转CNY再汇总 portfolio.json/watchlist的HK股价全部HKD原值 DB同步修正所有HK股价格为HKD price_monitor DB写入加3次重试+database locked timeout 验证: 建滔 87.7 HKD 浮亏-0.6%(不是-24%) 现金 132,121.93 总资产 956,714.68 --- data/decisions.json | 1046 +++++++++++++++++++------------------- data/mofin.db-shm | Bin 32768 -> 32768 bytes data/mofin.db-wal | Bin 70072 -> 70072 bytes data/multi_tf_cache.json | 78 +-- data/portfolio.json | 655 ++++-------------------- data/price_events.json | 70 +++ data/price_history.json | 38 +- mo_models.py | 16 +- price_monitor.py | 8 +- 9 files changed, 765 insertions(+), 1146 deletions(-) diff --git a/data/decisions.json b/data/decisions.json index 33b6be8..86b2838 100644 --- a/data/decisions.json +++ b/data/decisions.json @@ -3,21 +3,21 @@ { "code": "000657", "name": "中钨高新", - "price": 89.0, + "price": 88.5, "cost": 0, "shares": 0, "avg_price": 0, - "action": "盈利持有 | 目标104.56 | 止损86.04 | 买入区87.22~90.78", - "stop_loss": 86.04, - "entry_low": 87.22, - "entry_high": 90.78, - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:主动买盘占优 强撑:78.02 弱撑:86.04 弱压:97.03 强压:104.56 | MA5=96.75 MA10=99.88 MA20=89.04 MA60=68.13", + "action": "盈利持有 | 目标104.56 | 止损85.44 | 买入区86.73~90.27", + "stop_loss": 85.44, + "entry_low": 86.73, + "entry_high": 90.27, + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:主动买盘占优 强撑:77.4 弱撑:85.44 弱压:97.03 强压:104.56 | MA5=96.75 MA10=99.88 MA20=89.04 MA60=68.13", "timing_signal": "信号不充分", - "rr_ratio": 5.26, + "rr_ratio": 5.25, "status": "updated", "note": "", - "timestamp": "2026-07-03 10:10", - "updated_at": "2026-07-03 10:10", + "timestamp": "2026-07-03 10:14", + "updated_at": "2026-07-03 10:14", "type": "自选策略", "source": "auto", "sector_context": "", @@ -25,18 +25,18 @@ "position_advice": "中等仓位", "time_horizon": "2~6周", "trigger": { - "stop_loss": 86.04, - "entry_zone": "87.22~90.78", + "stop_loss": 85.44, + "entry_zone": "86.73~90.27", "take_profit_zone": "0~104.56" }, - "created_at": "2026-07-03 10:10", + "created_at": "2026-07-03 10:14", "take_profit": 104.56, "changelog": [ { - "date": "2026-07-03 10:10", + "date": "2026-07-03 10:14", "old_action": "", - "new_action": "盈利持有 | 目标104.56 | 止损86.04 | 买入区87.22~90.78", - "reason": "初始策略创建 | 形态:光头光脚阴线/bearish 量价:主动买盘占优 强撑:78.02 弱撑:86.04 弱压:97.03 强压:10", + "new_action": "盈利持有 | 目标104.56 | 止损85.44 | 买入区86.73~90.27", + "reason": "初始策略创建 | 形态:光头光脚阴线/bearish 量价:主动买盘占优 强撑:77.4 弱撑:85.44 弱压:97.03 强压:104", "trigger": "初始创建" } ] @@ -44,21 +44,21 @@ { "code": "000700", "name": "模塑科技", - "price": 17.38, + "price": 17.31, "cost": 14.83, "shares": 0, "avg_price": 0, - "action": "盈利良好 | ⚠️盈亏比极低,关注 | 止损16.86 | 目标0 | 买入区15.64~18.25 | 信号:持有", - "stop_loss": 16.86, - "entry_low": 15.64, - "entry_high": 18.25, + "action": "盈利良好 | ⚠️盈亏比极低,关注 | 止损16.79 | 目标0 | 买入区15.58~18.18 | 信号:持有", + "stop_loss": 16.79, + "entry_low": 15.58, + "entry_high": 18.18, "tech_snapshot": "形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None | MA5=14.99 MA10=14.9 MA20=15.45 MA60=13.81", "timing_signal": "持有", "rr_ratio": 0.0, "status": "updated", "note": "⚠️盈亏比极低,关注", - "timestamp": "2026-07-03 10:10", - "updated_at": "2026-07-03 10:10", + "timestamp": "2026-07-03 10:14", + "updated_at": "2026-07-03 10:14", "type": "持仓策略", "source": "auto", "sector_context": "行业汽车零部件大涨+3.7%,可适度积极", @@ -66,16 +66,16 @@ "position_advice": "中等仓位", "time_horizon": "2~6周", "trigger": { - "stop_loss": 16.86, - "entry_zone": "15.64~18.25" + "stop_loss": 16.79, + "entry_zone": "15.58~18.18" }, - "created_at": "2026-07-03 10:10", + "created_at": "2026-07-03 10:14", "take_profit": 0, "changelog": [ { - "date": "2026-07-03 10:10", + "date": "2026-07-03 10:14", "old_action": "", - "new_action": "盈利良好 | ⚠️盈亏比极低,关注 | 止损16.86 | 目标0 | 买入区15.64~18.25 | 信号:持有", + "new_action": "盈利良好 | ⚠️盈亏比极低,关注 | 止损16.79 | 目标0 | 买入区15.58~18.18 | 信号:持有", "reason": "初始策略创建 | 形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None |", "trigger": "初始创建" } @@ -84,21 +84,21 @@ { "code": "000711", "name": "ST京蓝", - "price": 5.26, + "price": 5.25, "cost": 0, "shares": 0, "avg_price": 0, - "action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标5.63 | 止损5.1 | 买入区5.15~5.26 | 信号:观望", - "stop_loss": 5.1, - "entry_low": 5.15, + "action": "盈利持有 | ⚠️盈亏比偏低(1:1.6),谨慎买入 | 目标5.63 | 止损5.09 | 买入区5.14~5.26 | 信号:观望", + "stop_loss": 5.09, + "entry_low": 5.14, "entry_high": 5.26, "tech_snapshot": "形态:带下影阳线/bullish 量价:主动卖盘占优 强撑:4.79 弱撑:5.01 弱压:5.31 强压:5.63 | MA5=4.64 MA10=4.87 MA20=5.25 MA60=5.15", "timing_signal": "观望", - "rr_ratio": 1.48, - "status": "review", - "note": "⚠️盈亏比不足1:1.5,不建议买入", - "timestamp": "2026-07-03 10:10", - "updated_at": "2026-07-03 10:10", + "rr_ratio": 1.58, + "status": "updated", + "note": "⚠️盈亏比偏低(1:1.6),谨慎买入", + "timestamp": "2026-07-03 10:14", + "updated_at": "2026-07-03 10:14", "type": "自选策略", "source": "auto", "sector_context": "行业房地产上涨+1.2%,正常", @@ -106,17 +106,17 @@ "position_advice": "减仓或观望", "time_horizon": "观望", "trigger": { - "stop_loss": 5.1, - "entry_zone": "5.15~5.26", + "stop_loss": 5.09, + "entry_zone": "5.14~5.26", "take_profit_zone": "0~5.63" }, - "created_at": "2026-07-03 10:10", + "created_at": "2026-07-03 10:14", "take_profit": 5.63, "changelog": [ { - "date": "2026-07-03 10:10", + "date": "2026-07-03 10:14", "old_action": "", - "new_action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标5.63 | 止损5.1 | 买入区5.15~5.26 | 信号:观望", + "new_action": "盈利持有 | ⚠️盈亏比偏低(1:1.6),谨慎买入 | 目标5.63 | 止损5.09 | 买入区5.14~5.26 | 信号:观望", "reason": "初始策略创建 | 形态:带下影阳线/bullish 量价:主动卖盘占优 强撑:4.79 弱撑:5.01 弱压:5.31 强压:5.63 |", "trigger": "初始创建" } @@ -125,21 +125,21 @@ { "code": "001309", "name": "德明利", - "price": 843.03, + "price": 835.0, "cost": 0, "shares": 0, "avg_price": 0, - "action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标892.1 | 止损809.34 | 买入区826.17~842.44 | 信号:买入", - "stop_loss": 809.34, - "entry_low": 826.17, - "entry_high": 842.44, - "tech_snapshot": "形态:光头光脚阳线/bullish 量价:主动买盘占优 强撑:751.62 弱撑:809.34 弱压:863.89 强压:892.1 | MA5=913.62 MA10=847.32 MA20=744.16 MA60=628.45", - "timing_signal": "信号不充分", - "rr_ratio": 1.46, - "status": "review", - "note": "⚠️盈亏比不足1:1.5,不建议买入", - "timestamp": "2026-07-03 10:10", - "updated_at": "2026-07-03 10:10", + "action": "盈利持有 | ⚠️盈亏比偏低(1:1.8),谨慎买入 | 目标892.1 | 止损803.09 | 买入区818.3~838.69 | 信号:买入", + "stop_loss": 803.09, + "entry_low": 818.3, + "entry_high": 838.69, + "tech_snapshot": "形态:光头光脚阳线/bullish 量价:主动买盘占优 强撑:748.49 弱撑:803.09 弱压:857.64 强压:892.1 | MA5=913.62 MA10=847.32 MA20=744.16 MA60=628.45", + "timing_signal": "买入", + "rr_ratio": 1.79, + "status": "updated", + "note": "⚠️盈亏比偏低(1:1.8),谨慎买入", + "timestamp": "2026-07-03 10:14", + "updated_at": "2026-07-03 10:14", "type": "自选策略", "source": "auto", "sector_context": "行业半导体-1.0%,中性", @@ -147,18 +147,18 @@ "position_advice": "中等仓位", "time_horizon": "2~6周", "trigger": { - "stop_loss": 809.34, - "entry_zone": "826.17~842.44", + "stop_loss": 803.09, + "entry_zone": "818.3~838.69", "take_profit_zone": "0~892.1" }, - "created_at": "2026-07-03 10:10", + "created_at": "2026-07-03 10:14", "take_profit": 892.1, "changelog": [ { - "date": "2026-07-03 10:10", + "date": "2026-07-03 10:14", "old_action": "", - "new_action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标892.1 | 止损809.34 | 买入区826.17~842.44 | 信号:买入", - "reason": "初始策略创建 | 形态:光头光脚阳线/bullish 量价:主动买盘占优 强撑:751.62 弱撑:809.34 弱压:863.89 强压", + "new_action": "盈利持有 | ⚠️盈亏比偏低(1:1.8),谨慎买入 | 目标892.1 | 止损803.09 | 买入区818.3~838.69 | 信号:买入", + "reason": "初始策略创建 | 形态:光头光脚阳线/bullish 量价:主动买盘占优 强撑:748.49 弱撑:803.09 弱压:857.64 强压", "trigger": "初始创建" } ] @@ -166,21 +166,21 @@ { "code": "002594", "name": "比亚迪", - "price": 86.74, + "price": 86.9, "cost": 0, "shares": 0, "avg_price": 0, - "action": "盈利持有 | ⚠️盈亏比偏低(1:1.6),谨慎买入 | 目标91.93 | 止损84.14 | 买入区85.01~86.91 | 信号:观望", - "stop_loss": 84.14, - "entry_low": 85.01, + "action": "盈利持有 | ⚠️盈亏比偏低(1:1.5),谨慎买入 | 目标91.93 | 止损84.29 | 买入区85.16~86.91 | 信号:观望", + "stop_loss": 84.29, + "entry_low": 85.16, "entry_high": 86.91, - "tech_snapshot": "形态:光头光脚阳线/bullish 量价:主动卖盘占优 强撑:78.93 弱撑:83.57 弱压:88.15 强压:91.93 | MA5=98.63 MA10=97.78 MA20=96.0 MA60=96.51", + "tech_snapshot": "形态:光头光脚阳线/bullish 量价:主动卖盘占优 强撑:78.97 弱撑:83.57 弱压:88.24 强压:91.93 | MA5=98.63 MA10=97.78 MA20=96.0 MA60=96.51", "timing_signal": "观望", - "rr_ratio": 1.64, + "rr_ratio": 1.51, "status": "updated", - "note": "⚠️盈亏比偏低(1:1.6),谨慎买入", - "timestamp": "2026-07-03 10:10", - "updated_at": "2026-07-03 10:10", + "note": "⚠️盈亏比偏低(1:1.5),谨慎买入", + "timestamp": "2026-07-03 10:14", + "updated_at": "2026-07-03 10:14", "type": "自选策略", "source": "auto", "sector_context": "行业汽车整车上涨+1.7%,正常", @@ -188,18 +188,18 @@ "position_advice": "减仓或观望", "time_horizon": "观望", "trigger": { - "stop_loss": 84.14, - "entry_zone": "85.01~86.91", + "stop_loss": 84.29, + "entry_zone": "85.16~86.91", "take_profit_zone": "0~91.93" }, - "created_at": "2026-07-03 10:10", + "created_at": "2026-07-03 10:14", "take_profit": 91.93, "changelog": [ { - "date": "2026-07-03 10:10", + "date": "2026-07-03 10:14", "old_action": "", - "new_action": "盈利持有 | ⚠️盈亏比偏低(1:1.6),谨慎买入 | 目标91.93 | 止损84.14 | 买入区85.01~86.91 | 信号:观望", - "reason": "初始策略创建 | 形态:光头光脚阳线/bullish 量价:主动卖盘占优 强撑:78.93 弱撑:83.57 弱压:88.15 强压:91", + "new_action": "盈利持有 | ⚠️盈亏比偏低(1:1.5),谨慎买入 | 目标91.93 | 止损84.29 | 买入区85.16~86.91 | 信号:观望", + "reason": "初始策略创建 | 形态:光头光脚阳线/bullish 量价:主动卖盘占优 强撑:78.97 弱撑:83.57 弱压:88.24 强压:91", "trigger": "初始创建" } ] @@ -207,21 +207,21 @@ { "code": "00700", "name": "腾讯", - "price": 444.6, + "price": 443.8, "cost": 0, "shares": 0, "avg_price": 0, - "action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 损426.82 | 盈0 | 买435.71~453.49", - "stop_loss": 431.26, - "entry_low": 435.71, - "entry_high": 453.49, + "action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 损426.05 | 盈0 | 买434.92~452.68", + "stop_loss": 430.49, + "entry_low": 434.92, + "entry_high": 452.68, "tech_snapshot": "形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None | MA5=624.1 MA10=623.7 MA20=615.5 MA60=559.52", "timing_signal": "信号不充分", "rr_ratio": 0.0, "status": "review", "note": "⚠️盈亏比不足1:1.5,不建议买入", - "timestamp": "2026-07-03 10:10", - "updated_at": "2026-07-03 10:10", + "timestamp": "2026-07-03 10:15", + "updated_at": "2026-07-03 10:15", "type": "持仓策略", "source": "auto", "sector_context": "行业软件开发+0.9%,中性", @@ -229,16 +229,16 @@ "position_advice": "减仓或观望", "time_horizon": "观望", "trigger": { - "stop_loss": 431.26, - "entry_zone": "435.71~453.49" + "stop_loss": 430.49, + "entry_zone": "434.92~452.68" }, - "created_at": "2026-07-03 10:10", + "created_at": "2026-07-03 10:15", "take_profit": 0, "changelog": [ { - "date": "2026-07-03 10:10", + "date": "2026-07-03 10:15", "old_action": "", - "new_action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 损426.82 | 盈0 | 买435.71~453.49", + "new_action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 损426.05 | 盈0 | 买434.92~452.68", "reason": "初始策略创建 | 形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None |", "trigger": "初始创建" } @@ -247,21 +247,21 @@ { "code": "00968", "name": "信义光能", - "price": 2.1, + "price": 2.12, "cost": 0, "shares": 0, "avg_price": 0, - "action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标2.27 | 止损2.02 | 买入区2.06~2.1 | 信号:弱势持有", - "stop_loss": 2.02, - "entry_low": 2.06, - "entry_high": 2.1, - "tech_snapshot": "形态:带下影阳线/bullish 量价:数据不足 强撑:1.9 弱撑:2.06 弱压:2.12 强压:2.27 | MA5=3.16 MA10=3.16 MA20=3.24 MA60=3.33", + "action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标2.22 | 止损2.04 | 买入区2.08~2.09 | 信号:弱势持有", + "stop_loss": 2.04, + "entry_low": 2.08, + "entry_high": 2.09, + "tech_snapshot": "形态:光头光脚阳线/bullish 量价:数据不足 强撑:1.98 弱撑:2.07 弱压:2.14 强压:2.22 | MA5=3.16 MA10=3.16 MA20=3.24 MA60=3.33", "timing_signal": "弱势持有", - "rr_ratio": 1.42, + "rr_ratio": 0.83, "status": "review", "note": "⚠️盈亏比不足1:1.5,不建议买入", - "timestamp": "2026-07-03 10:10", - "updated_at": "2026-07-03 10:10", + "timestamp": "2026-07-03 10:15", + "updated_at": "2026-07-03 10:15", "type": "自选策略", "source": "auto", "sector_context": "行业电力-0.3%,中性", @@ -269,18 +269,18 @@ "position_advice": "减仓或观望", "time_horizon": "观望", "trigger": { - "stop_loss": 2.02, - "entry_zone": "2.06~2.1", - "take_profit_zone": "0~2.27" + "stop_loss": 2.04, + "entry_zone": "2.08~2.09", + "take_profit_zone": "0~2.22" }, - "created_at": "2026-07-03 10:10", - "take_profit": 2.27, + "created_at": "2026-07-03 10:15", + "take_profit": 2.22, "changelog": [ { - "date": "2026-07-03 10:10", + "date": "2026-07-03 10:15", "old_action": "", - "new_action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标2.27 | 止损2.02 | 买入区2.06~2.1 | 信号:弱势持有", - "reason": "初始策略创建 | 形态:带下影阳线/bullish 量价:数据不足 强撑:1.9 弱撑:2.06 弱压:2.12 强压:2.27 | MA", + "new_action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标2.22 | 止损2.04 | 买入区2.08~2.09 | 信号:弱势持有", + "reason": "初始策略创建 | 形态:光头光脚阳线/bullish 量价:数据不足 强撑:1.98 弱撑:2.07 弱压:2.14 强压:2.22 | ", "trigger": "初始创建" } ] @@ -288,21 +288,21 @@ { "code": "00981", "name": "中芯国际", - "price": 78.8, + "price": 78.85, "cost": 75.94, "shares": 0, "avg_price": 0, - "action": "盈利持有 | ⚠️盈亏比极低,关注 | 止损73.5 | 目标0 | 买入区70.92~82.74 | 信号:持有", - "stop_loss": 73.5, - "entry_low": 70.92, - "entry_high": 82.74, + "action": "盈利持有 | ⚠️盈亏比极低,关注 | 止损73.55 | 目标0 | 买入区70.97~82.79 | 信号:持有", + "stop_loss": 73.55, + "entry_low": 70.97, + "entry_high": 82.79, "tech_snapshot": "形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None | MA5=84.12 MA10=81.44 MA20=78.5 MA60=71.93", "timing_signal": "持有", "rr_ratio": 0.0, "status": "updated", "note": "⚠️盈亏比极低,关注", - "timestamp": "2026-07-03 10:10", - "updated_at": "2026-07-03 10:10", + "timestamp": "2026-07-03 10:15", + "updated_at": "2026-07-03 10:15", "type": "持仓策略", "source": "auto", "sector_context": "行业半导体-1.0%,中性", @@ -310,16 +310,16 @@ "position_advice": "中等仓位", "time_horizon": "2~6周", "trigger": { - "stop_loss": 73.5, - "entry_zone": "70.92~82.74" + "stop_loss": 73.55, + "entry_zone": "70.97~82.79" }, - "created_at": "2026-07-03 10:10", + "created_at": "2026-07-03 10:15", "take_profit": 0, "changelog": [ { - "date": "2026-07-03 10:10", + "date": "2026-07-03 10:15", "old_action": "", - "new_action": "盈利持有 | ⚠️盈亏比极低,关注 | 止损73.5 | 目标0 | 买入区70.92~82.74 | 信号:持有", + "new_action": "盈利持有 | ⚠️盈亏比极低,关注 | 止损73.55 | 目标0 | 买入区70.97~82.79 | 信号:持有", "reason": "初始策略创建 | 形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None |", "trigger": "初始创建" } @@ -341,8 +341,8 @@ "rr_ratio": 1.56, "status": "updated", "note": "⚠️盈亏比偏低(1:1.6),谨慎买入", - "timestamp": "2026-07-03 10:10", - "updated_at": "2026-07-03 10:10", + "timestamp": "2026-07-03 10:15", + "updated_at": "2026-07-03 10:15", "type": "自选策略", "source": "auto", "sector_context": "行业消费电子上涨+2.2%,正常", @@ -354,11 +354,11 @@ "entry_zone": "12.86~13.13", "take_profit_zone": "0~14.1" }, - "created_at": "2026-07-03 10:10", + "created_at": "2026-07-03 10:15", "take_profit": 14.1, "changelog": [ { - "date": "2026-07-03 10:10", + "date": "2026-07-03 10:15", "old_action": "", "new_action": "盈利持有 | ⚠️盈亏比偏低(1:1.6),谨慎买入 | 目标14.1 | 止损12.73 | 买入区12.86~13.13 | 信号:弱势持有", "reason": "初始策略创建 | 形态:光头光脚阳线/bullish 量价:数据不足 强撑:12.0 弱撑:12.83 弱压:13.26 强压:14.1 ", @@ -369,21 +369,21 @@ { "code": "01088", "name": "中国神华", - "price": 39.84, + "price": 39.92, "cost": 45.89, "shares": 0, "avg_price": 0, - "action": "持有观察 | ⚠️盈亏比极低,关注 | 止损37.16 | 目标0 | 买入区35.86~41.83 | 信号:持有", - "stop_loss": 37.16, - "entry_low": 35.86, - "entry_high": 41.83, + "action": "持有观察 | ⚠️盈亏比极低,关注 | 止损37.24 | 目标0 | 买入区35.93~41.92 | 信号:持有", + "stop_loss": 37.24, + "entry_low": 35.93, + "entry_high": 41.92, "tech_snapshot": "形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None | MA5=39.82 MA10=40.55 MA20=41.11 MA60=43.93", "timing_signal": "持有", "rr_ratio": 0.0, "status": "updated", "note": "⚠️盈亏比极低,关注", - "timestamp": "2026-07-03 10:11", - "updated_at": "2026-07-03 10:11", + "timestamp": "2026-07-03 10:15", + "updated_at": "2026-07-03 10:15", "type": "持仓策略", "source": "auto", "sector_context": "行业煤炭开采加工+0.5%,中性", @@ -391,16 +391,16 @@ "position_advice": "减仓或观望", "time_horizon": "观望", "trigger": { - "stop_loss": 37.16, - "entry_zone": "35.86~41.83" + "stop_loss": 37.24, + "entry_zone": "35.93~41.92" }, - "created_at": "2026-07-03 10:11", + "created_at": "2026-07-03 10:15", "take_profit": 0, "changelog": [ { - "date": "2026-07-03 10:11", + "date": "2026-07-03 10:15", "old_action": "", - "new_action": "持有观察 | ⚠️盈亏比极低,关注 | 止损37.16 | 目标0 | 买入区35.86~41.83 | 信号:持有", + "new_action": "持有观察 | ⚠️盈亏比极低,关注 | 止损37.24 | 目标0 | 买入区35.93~41.92 | 信号:持有", "reason": "初始策略创建 | 形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None |", "trigger": "初始创建" } @@ -422,8 +422,8 @@ "rr_ratio": 0.0, "status": "updated", "note": "深套持有", - "timestamp": "2026-07-03 10:11", - "updated_at": "2026-07-03 10:11", + "timestamp": "2026-07-03 10:15", + "updated_at": "2026-07-03 10:15", "type": "持仓策略", "source": "auto", "sector_context": "行业汽车整车上涨+1.7%,正常", @@ -434,11 +434,11 @@ "stop_loss": 75.87, "entry_zone": "74.3~86.68" }, - "created_at": "2026-07-03 10:11", + "created_at": "2026-07-03 10:15", "take_profit": 0, "changelog": [ { - "date": "2026-07-03 10:11", + "date": "2026-07-03 10:15", "old_action": "", "new_action": "深套持有 | 深套持有 | 止损75.87 | 目标0 | 买入区74.3~86.68 | 信号:持有", "reason": "初始策略创建 | 形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None |", @@ -449,21 +449,21 @@ { "code": "01478", "name": "丘钛科技", - "price": 6.95, + "price": 6.96, "cost": 13.47, "shares": 0, "avg_price": 0, - "action": "深套持有 | 深套持有 | 止损6.39 | 目标0 | 买入区6.25~7.3 | 信号:持有", - "stop_loss": 6.39, - "entry_low": 6.25, - "entry_high": 7.3, + "action": "深套持有 | 深套持有 | 止损6.41 | 目标0 | 买入区6.26~7.31 | 信号:持有", + "stop_loss": 6.41, + "entry_low": 6.26, + "entry_high": 7.31, "tech_snapshot": "形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None | MA5=9.11 MA10=9.29 MA20=9.5 MA60=8.86", "timing_signal": "持有", "rr_ratio": 0.0, "status": "updated", "note": "深套持有", - "timestamp": "2026-07-03 10:11", - "updated_at": "2026-07-03 10:11", + "timestamp": "2026-07-03 10:15", + "updated_at": "2026-07-03 10:15", "type": "持仓策略", "source": "auto", "sector_context": "行业消费电子上涨+2.2%,正常", @@ -471,16 +471,16 @@ "position_advice": "不补不割", "time_horizon": "长期", "trigger": { - "stop_loss": 6.39, - "entry_zone": "6.25~7.3" + "stop_loss": 6.41, + "entry_zone": "6.26~7.31" }, - "created_at": "2026-07-03 10:11", + "created_at": "2026-07-03 10:15", "take_profit": 0, "changelog": [ { - "date": "2026-07-03 10:11", + "date": "2026-07-03 10:15", "old_action": "", - "new_action": "深套持有 | 深套持有 | 止损6.39 | 目标0 | 买入区6.25~7.3 | 信号:持有", + "new_action": "深套持有 | 深套持有 | 止损6.41 | 目标0 | 买入区6.26~7.31 | 信号:持有", "reason": "初始策略创建 | 形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None |", "trigger": "初始创建" } @@ -489,21 +489,21 @@ { "code": "01888", "name": "建滔积层板", - "price": 84.85, + "price": 85.9, "cost": 88.23, "shares": 0, "avg_price": 0, - "action": "持有观察 | ⚠️盈亏比极低,关注 | 止损79.15 | 目标0 | 买入区76.36~89.09 | 信号:持有", - "stop_loss": 79.15, - "entry_low": 76.36, - "entry_high": 89.09, + "action": "持有观察 | ⚠️盈亏比极低,关注 | 止损80.13 | 目标0 | 买入区77.31~90.2 | 信号:持有", + "stop_loss": 80.13, + "entry_low": 77.31, + "entry_high": 90.2, "tech_snapshot": "形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None | MA5=96.4 MA10=93.52 MA20=78.64 MA60=51.2", "timing_signal": "持有", "rr_ratio": 0.0, "status": "updated", "note": "⚠️盈亏比极低,关注", - "timestamp": "2026-07-03 10:11", - "updated_at": "2026-07-03 10:11", + "timestamp": "2026-07-03 10:15", + "updated_at": "2026-07-03 10:15", "type": "持仓策略", "source": "auto", "sector_context": "行业元件+0.3%,中性", @@ -511,16 +511,16 @@ "position_advice": "中等仓位", "time_horizon": "2~6周", "trigger": { - "stop_loss": 79.15, - "entry_zone": "76.36~89.09" + "stop_loss": 80.13, + "entry_zone": "77.31~90.2" }, - "created_at": "2026-07-03 10:11", + "created_at": "2026-07-03 10:15", "take_profit": 0, "changelog": [ { - "date": "2026-07-03 10:11", + "date": "2026-07-03 10:15", "old_action": "", - "new_action": "持有观察 | ⚠️盈亏比极低,关注 | 止损79.15 | 目标0 | 买入区76.36~89.09 | 信号:持有", + "new_action": "持有观察 | ⚠️盈亏比极低,关注 | 止损80.13 | 目标0 | 买入区77.31~90.2 | 信号:持有", "reason": "初始策略创建 | 形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None |", "trigger": "初始创建" } @@ -529,21 +529,21 @@ { "code": "02202", "name": "万科企业", - "price": 2.32, + "price": 2.35, "cost": 4.67, "shares": 0, "avg_price": 0, - "action": "深套持有 | 深套持有 | 止损2.13 | 目标0 | 买入区2.09~2.44 | 信号:持有", - "stop_loss": 2.13, - "entry_low": 2.09, - "entry_high": 2.44, + "action": "深套持有 | 深套持有 | 止损2.16 | 目标0 | 买入区2.12~2.47 | 信号:持有", + "stop_loss": 2.16, + "entry_low": 2.12, + "entry_high": 2.47, "tech_snapshot": "形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None | MA5=3.41 MA10=3.42 MA20=3.53 MA60=3.51", "timing_signal": "持有", "rr_ratio": 0.0, "status": "updated", "note": "深套持有", - "timestamp": "2026-07-03 10:11", - "updated_at": "2026-07-03 10:11", + "timestamp": "2026-07-03 10:15", + "updated_at": "2026-07-03 10:15", "type": "持仓策略", "source": "auto", "sector_context": "行业房地产上涨+1.2%,正常", @@ -551,16 +551,16 @@ "position_advice": "不补不割", "time_horizon": "长期", "trigger": { - "stop_loss": 2.13, - "entry_zone": "2.09~2.44" + "stop_loss": 2.16, + "entry_zone": "2.12~2.47" }, - "created_at": "2026-07-03 10:11", + "created_at": "2026-07-03 10:15", "take_profit": 0, "changelog": [ { - "date": "2026-07-03 10:11", + "date": "2026-07-03 10:15", "old_action": "", - "new_action": "深套持有 | 深套持有 | 止损2.13 | 目标0 | 买入区2.09~2.44 | 信号:持有", + "new_action": "深套持有 | 深套持有 | 止损2.16 | 目标0 | 买入区2.12~2.47 | 信号:持有", "reason": "初始策略创建 | 形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None |", "trigger": "初始创建" } @@ -569,21 +569,21 @@ { "code": "02318", "name": "中国平安", - "price": 52.55, + "price": 52.65, "cost": 0, "shares": 0, "avg_price": 0, - "action": "盈利持有 | ⚠️盈亏比偏低(1:1.7),谨慎买入 | 目标55.23 | 止损50.97 | 买入区51.5~52.67 | 信号:弱势持有", - "stop_loss": 50.97, - "entry_low": 51.5, - "entry_high": 52.67, - "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:数据不足 强撑:49.97 弱撑:52.2 弱压:52.95 强压:55.23 | MA5=69.74 MA10=69.55 MA20=69.3 MA60=67.19", + "action": "盈利持有 | ⚠️盈亏比偏低(1:1.6),谨慎买入 | 目标55.25 | 止损51.07 | 买入区51.6~52.74 | 信号:弱势持有", + "stop_loss": 51.07, + "entry_low": 51.6, + "entry_high": 52.74, + "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:数据不足 强撑:49.99 弱撑:52.23 弱压:52.98 强压:55.25 | MA5=69.74 MA10=69.55 MA20=69.3 MA60=67.19", "timing_signal": "弱势持有", - "rr_ratio": 1.7, + "rr_ratio": 1.65, "status": "updated", - "note": "⚠️盈亏比偏低(1:1.7),谨慎买入", - "timestamp": "2026-07-03 10:11", - "updated_at": "2026-07-03 10:11", + "note": "⚠️盈亏比偏低(1:1.6),谨慎买入", + "timestamp": "2026-07-03 10:15", + "updated_at": "2026-07-03 10:15", "type": "自选策略", "source": "auto", "sector_context": "行业保险-0.5%,中性", @@ -591,18 +591,18 @@ "position_advice": "减仓或观望", "time_horizon": "观望", "trigger": { - "stop_loss": 50.97, - "entry_zone": "51.5~52.67", - "take_profit_zone": "0~55.23" + "stop_loss": 51.07, + "entry_zone": "51.6~52.74", + "take_profit_zone": "0~55.25" }, - "created_at": "2026-07-03 10:11", - "take_profit": 55.23, + "created_at": "2026-07-03 10:15", + "take_profit": 55.25, "changelog": [ { - "date": "2026-07-03 10:11", + "date": "2026-07-03 10:15", "old_action": "", - "new_action": "盈利持有 | ⚠️盈亏比偏低(1:1.7),谨慎买入 | 目标55.23 | 止损50.97 | 买入区51.5~52.67 | 信号:弱势持有", - "reason": "初始策略创建 | 形态:倒T线/射击之星/bearish 量价:数据不足 强撑:49.97 弱撑:52.2 弱压:52.95 强压:55.", + "new_action": "盈利持有 | ⚠️盈亏比偏低(1:1.6),谨慎买入 | 目标55.25 | 止损51.07 | 买入区51.6~52.74 | 信号:弱势持有", + "reason": "初始策略创建 | 形态:倒T线/射击之星/bearish 量价:数据不足 强撑:49.99 弱撑:52.23 弱压:52.98 强压:55", "trigger": "初始创建" } ] @@ -610,21 +610,21 @@ { "code": "02359", "name": "药明康德", - "price": 153.2, + "price": 153.1, "cost": 0, "shares": 0, "avg_price": 0, - "action": "盈利持有 | ⚠️盈亏比偏低(1:1.7),谨慎买入 | 目标161.25 | 止损148.48 | 买入区150.14~153.59 | 信号:买入", - "stop_loss": 148.48, - "entry_low": 150.14, - "entry_high": 153.59, - "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:数据不足 强撑:145.95 弱撑:150.8 弱压:155.8 强压:161.25 | MA5=149.96 MA10=140.63 MA20=131.92 MA60=130.66", + "action": "盈利持有 | ⚠️盈亏比偏低(1:1.7),谨慎买入 | 目标161.29 | 止损148.38 | 买入区150.04~153.54 | 信号:买入", + "stop_loss": 148.38, + "entry_low": 150.04, + "entry_high": 153.54, + "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:数据不足 强撑:145.98 弱撑:150.87 弱压:155.87 强压:161.29 | MA5=149.96 MA10=140.63 MA20=131.92 MA60=130.66", "timing_signal": "买入", - "rr_ratio": 1.71, + "rr_ratio": 1.74, "status": "updated", "note": "⚠️盈亏比偏低(1:1.7),谨慎买入", - "timestamp": "2026-07-03 10:11", - "updated_at": "2026-07-03 10:11", + "timestamp": "2026-07-03 10:15", + "updated_at": "2026-07-03 10:15", "type": "自选策略", "source": "auto", "sector_context": "行业医疗服务-0.1%,中性", @@ -632,18 +632,18 @@ "position_advice": "中等仓位", "time_horizon": "2~6周", "trigger": { - "stop_loss": 148.48, - "entry_zone": "150.14~153.59", - "take_profit_zone": "0~161.25" + "stop_loss": 148.38, + "entry_zone": "150.04~153.54", + "take_profit_zone": "0~161.29" }, - "created_at": "2026-07-03 10:11", - "take_profit": 161.25, + "created_at": "2026-07-03 10:15", + "take_profit": 161.29, "changelog": [ { - "date": "2026-07-03 10:11", + "date": "2026-07-03 10:15", "old_action": "", - "new_action": "盈利持有 | ⚠️盈亏比偏低(1:1.7),谨慎买入 | 目标161.25 | 止损148.48 | 买入区150.14~153.59 | 信号:买入", - "reason": "初始策略创建 | 形态:倒T线/射击之星/bearish 量价:数据不足 强撑:145.95 弱撑:150.8 弱压:155.8 强压:1", + "new_action": "盈利持有 | ⚠️盈亏比偏低(1:1.7),谨慎买入 | 目标161.29 | 止损148.38 | 买入区150.04~153.54 | 信号:买入", + "reason": "初始策略创建 | 形态:倒T线/射击之星/bearish 量价:数据不足 强撑:145.98 弱撑:150.87 弱压:155.87 强压", "trigger": "初始创建" } ] @@ -664,8 +664,8 @@ "rr_ratio": 1.61, "status": "updated", "note": "⚠️盈亏比偏低(1:1.6),谨慎买入", - "timestamp": "2026-07-03 10:11", - "updated_at": "2026-07-03 10:11", + "timestamp": "2026-07-03 10:15", + "updated_at": "2026-07-03 10:15", "type": "自选策略", "source": "auto", "sector_context": "行业银行+0.3%,中性", @@ -677,11 +677,11 @@ "entry_zone": "41.9~42.82", "take_profit_zone": "0~44.82" }, - "created_at": "2026-07-03 10:11", + "created_at": "2026-07-03 10:15", "take_profit": 44.82, "changelog": [ { - "date": "2026-07-03 10:11", + "date": "2026-07-03 10:15", "old_action": "", "new_action": "盈利持有 | ⚠️盈亏比偏低(1:1.6),谨慎买入 | 目标44.82 | 止损41.48 | 买入区41.9~42.82 | 信号:弱势持有", "reason": "初始策略创建 | 形态:光头光脚阳线/bullish 量价:数据不足 强撑:40.54 弱撑:42.3 弱压:42.94 强压:44.82", @@ -692,21 +692,21 @@ { "code": "02628", "name": "中国人寿", - "price": 28.44, + "price": 28.64, "cost": 0, "shares": 0, "avg_price": 0, - "action": "盈利持有 | ⚠️盈亏比偏低(1:2.0),谨慎买入 | 目标30.16 | 止损27.58 | 买入区27.87~28.61 | 信号:弱势持有", - "stop_loss": 27.58, - "entry_low": 27.87, - "entry_high": 28.61, - "tech_snapshot": "形态:带上影阳线/neutral 量价:数据不足 强撑:27.0 弱撑:28.08 弱压:29.06 强压:30.16 | MA5=30.54 MA10=31.35 MA20=32.21 MA60=31.07", + "action": "盈利持有 | ⚠️盈亏比偏低(1:1.8),谨慎买入 | 目标30.17 | 止损27.78 | 买入区28.07~28.74 | 信号:弱势持有", + "stop_loss": 27.78, + "entry_low": 28.07, + "entry_high": 28.74, + "tech_snapshot": "形态:带上影阳线/neutral 量价:数据不足 强撑:27.01 弱撑:28.08 弱压:29.09 强压:30.17 | MA5=30.54 MA10=31.35 MA20=32.21 MA60=31.07", "timing_signal": "弱势持有", - "rr_ratio": 2.0, + "rr_ratio": 1.78, "status": "updated", - "note": "⚠️盈亏比偏低(1:2.0),谨慎买入", - "timestamp": "2026-07-03 10:11", - "updated_at": "2026-07-03 10:11", + "note": "⚠️盈亏比偏低(1:1.8),谨慎买入", + "timestamp": "2026-07-03 10:15", + "updated_at": "2026-07-03 10:15", "type": "自选策略", "source": "auto", "sector_context": "行业保险-0.5%,中性", @@ -714,18 +714,18 @@ "position_advice": "减仓或观望", "time_horizon": "观望", "trigger": { - "stop_loss": 27.58, - "entry_zone": "27.87~28.61", - "take_profit_zone": "0~30.16" + "stop_loss": 27.78, + "entry_zone": "28.07~28.74", + "take_profit_zone": "0~30.17" }, - "created_at": "2026-07-03 10:11", - "take_profit": 30.16, + "created_at": "2026-07-03 10:15", + "take_profit": 30.17, "changelog": [ { - "date": "2026-07-03 10:11", + "date": "2026-07-03 10:15", "old_action": "", - "new_action": "盈利持有 | ⚠️盈亏比偏低(1:2.0),谨慎买入 | 目标30.16 | 止损27.58 | 买入区27.87~28.61 | 信号:弱势持有", - "reason": "初始策略创建 | 形态:带上影阳线/neutral 量价:数据不足 强撑:27.0 弱撑:28.08 弱压:29.06 强压:30.16 ", + "new_action": "盈利持有 | ⚠️盈亏比偏低(1:1.8),谨慎买入 | 目标30.17 | 止损27.78 | 买入区28.07~28.74 | 信号:弱势持有", + "reason": "初始策略创建 | 形态:带上影阳线/neutral 量价:数据不足 强撑:27.01 弱撑:28.08 弱压:29.09 强压:30.17", "trigger": "初始创建" } ] @@ -733,21 +733,21 @@ { "code": "06160", "name": "百济神州", - "price": 182.4, + "price": 183.4, "cost": 0, "shares": 0, "avg_price": 0, - "action": "盈利持有 | ⚠️盈亏比偏低(1:1.8),谨慎买入 | 目标195.93 | 止损174.7 | 买入区178.75~183.19", + "action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标196.3 | 止损174.7 | 买入区179.73~183.34 | 信号:买入", "stop_loss": 174.7, - "entry_low": 178.75, - "entry_high": 183.19, - "tech_snapshot": "形态:带上影阳线/neutral 量价:数据不足 强撑:166.8 弱撑:174.7 弱压:184.53 强压:195.93 | MA5=193.84 MA10=198.45 MA20=200.76 MA60=193.12", + "entry_low": 179.73, + "entry_high": 183.34, + "tech_snapshot": "形态:光头光脚阳线/bullish 量价:数据不足 强撑:167.03 弱撑:174.7 弱压:185.13 强压:196.3 | MA5=193.84 MA10=198.45 MA20=200.76 MA60=193.12", "timing_signal": "信号不充分", - "rr_ratio": 1.76, - "status": "updated", - "note": "⚠️盈亏比偏低(1:1.8),谨慎买入", - "timestamp": "2026-07-03 10:11", - "updated_at": "2026-07-03 10:11", + "rr_ratio": 1.48, + "status": "review", + "note": "⚠️盈亏比不足1:1.5,不建议买入", + "timestamp": "2026-07-03 10:15", + "updated_at": "2026-07-03 10:15", "type": "自选策略", "source": "auto", "sector_context": "行业生物制品+0.4%,中性", @@ -756,17 +756,17 @@ "time_horizon": "2周~3月", "trigger": { "stop_loss": 174.7, - "entry_zone": "178.75~183.19", - "take_profit_zone": "0~195.93" + "entry_zone": "179.73~183.34", + "take_profit_zone": "0~196.3" }, - "created_at": "2026-07-03 10:11", - "take_profit": 195.93, + "created_at": "2026-07-03 10:15", + "take_profit": 196.3, "changelog": [ { - "date": "2026-07-03 10:11", + "date": "2026-07-03 10:15", "old_action": "", - "new_action": "盈利持有 | ⚠️盈亏比偏低(1:1.8),谨慎买入 | 目标195.93 | 止损174.7 | 买入区178.75~183.19", - "reason": "初始策略创建 | 形态:带上影阳线/neutral 量价:数据不足 强撑:166.8 弱撑:174.7 弱压:184.53 强压:195.", + "new_action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标196.3 | 止损174.7 | 买入区179.73~183.34 | 信号:买入", + "reason": "初始策略创建 | 形态:光头光脚阳线/bullish 量价:数据不足 强撑:167.03 弱撑:174.7 弱压:185.13 强压:19", "trigger": "初始创建" } ] @@ -774,21 +774,21 @@ { "code": "06869", "name": "长飞光纤光缆", - "price": 200.6, + "price": 198.4, "cost": 263.72, "shares": 0, "avg_price": 0, - "action": "深套持有 | 深套持有 | 止损184.35 | 目标0 | 买入区180.54~210.63 | 信号:持有", - "stop_loss": 184.35, - "entry_low": 180.54, - "entry_high": 210.63, + "action": "深套持有 | 深套持有 | 止损182.34 | 目标0 | 买入区178.56~208.32 | 信号:持有", + "stop_loss": 182.34, + "entry_low": 178.56, + "entry_high": 208.32, "tech_snapshot": "形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None | MA5=246.26 MA10=248.81 MA20=244.56 MA60=231.58", "timing_signal": "持有", "rr_ratio": 0.0, "status": "updated", "note": "深套持有", - "timestamp": "2026-07-03 10:11", - "updated_at": "2026-07-03 10:11", + "timestamp": "2026-07-03 10:15", + "updated_at": "2026-07-03 10:15", "type": "持仓策略", "source": "auto", "sector_context": "行业通信设备上涨+1.5%,正常", @@ -796,16 +796,16 @@ "position_advice": "不补不割", "time_horizon": "长期", "trigger": { - "stop_loss": 184.35, - "entry_zone": "180.54~210.63" + "stop_loss": 182.34, + "entry_zone": "178.56~208.32" }, - "created_at": "2026-07-03 10:11", + "created_at": "2026-07-03 10:15", "take_profit": 0, "changelog": [ { - "date": "2026-07-03 10:11", + "date": "2026-07-03 10:15", "old_action": "", - "new_action": "深套持有 | 深套持有 | 止损184.35 | 目标0 | 买入区180.54~210.63 | 信号:持有", + "new_action": "深套持有 | 深套持有 | 止损182.34 | 目标0 | 买入区178.56~208.32 | 信号:持有", "reason": "初始策略创建 | 形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None |", "trigger": "初始创建" } @@ -814,21 +814,21 @@ { "code": "09868", "name": "小鹏汽车-W", - "price": 50.45, + "price": 50.75, "cost": 0, "shares": 0, "avg_price": 0, - "action": "盈利持有 | ⚠️盈亏比偏低(1:1.7),谨慎买入 | 目标54.87 | 止损48.81 | 买入区49.44~50.66 | 信号:关注", - "stop_loss": 48.81, - "entry_low": 49.44, - "entry_high": 50.66, - "tech_snapshot": "形态:锤子线/T字线/neutral 量价:数据不足 强撑:45.76 弱撑:49.78 弱压:51.8 强压:54.87 | MA5=78.77 MA10=79.8 MA20=78.25 MA60=72.85", - "timing_signal": "关注", - "rr_ratio": 1.7, + "action": "盈利持有 | ⚠️盈亏比偏低(1:1.5),谨慎买入 | 目标54.75 | 止损49.11 | 买入区49.73~50.79", + "stop_loss": 49.11, + "entry_low": 49.73, + "entry_high": 50.79, + "tech_snapshot": "形态:锤子线/T字线/neutral 量价:数据不足 强撑:45.95 弱撑:49.65 弱压:51.8 强压:54.75 | MA5=78.77 MA10=79.8 MA20=78.25 MA60=72.85", + "timing_signal": "信号不充分", + "rr_ratio": 1.54, "status": "updated", - "note": "⚠️盈亏比偏低(1:1.7),谨慎买入", - "timestamp": "2026-07-03 10:11", - "updated_at": "2026-07-03 10:11", + "note": "⚠️盈亏比偏低(1:1.5),谨慎买入", + "timestamp": "2026-07-03 10:15", + "updated_at": "2026-07-03 10:15", "type": "自选策略", "source": "auto", "sector_context": "行业汽车整车上涨+1.7%,正常", @@ -836,18 +836,18 @@ "position_advice": "减仓或观望", "time_horizon": "观望", "trigger": { - "stop_loss": 48.81, - "entry_zone": "49.44~50.66", - "take_profit_zone": "0~54.87" + "stop_loss": 49.11, + "entry_zone": "49.73~50.79", + "take_profit_zone": "0~54.75" }, - "created_at": "2026-07-03 10:11", - "take_profit": 54.87, + "created_at": "2026-07-03 10:15", + "take_profit": 54.75, "changelog": [ { - "date": "2026-07-03 10:11", + "date": "2026-07-03 10:15", "old_action": "", - "new_action": "盈利持有 | ⚠️盈亏比偏低(1:1.7),谨慎买入 | 目标54.87 | 止损48.81 | 买入区49.44~50.66 | 信号:关注", - "reason": "初始策略创建 | 形态:锤子线/T字线/neutral 量价:数据不足 强撑:45.76 弱撑:49.78 弱压:51.8 强压:54.8", + "new_action": "盈利持有 | ⚠️盈亏比偏低(1:1.5),谨慎买入 | 目标54.75 | 止损49.11 | 买入区49.73~50.79", + "reason": "初始策略创建 | 形态:锤子线/T字线/neutral 量价:数据不足 强撑:45.95 弱撑:49.65 弱压:51.8 强压:54.7", "trigger": "初始创建" } ] @@ -855,21 +855,21 @@ { "code": "09988", "name": "阿里巴巴-W", - "price": 95.7, + "price": 95.75, "cost": 0, "shares": 0, "avg_price": 0, - "action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标100.79 | 止损91.04 | 买入区93.79~94.94 | 信号:弱势持有", - "stop_loss": 91.04, - "entry_low": 93.79, - "entry_high": 94.94, - "tech_snapshot": "形态:光头光脚阳线/bullish 量价:数据不足 强撑:89.54 弱撑:94.48 弱压:96.33 强压:100.79 | MA5=148.22 MA10=153.54 MA20=160.0 MA60=147.22", + "action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标101.32 | 止损91.09 | 买入区93.83~95.18 | 信号:弱势持有", + "stop_loss": 91.09, + "entry_low": 93.83, + "entry_high": 95.18, + "tech_snapshot": "形态:光头光脚阳线/bullish 量价:数据不足 强撑:89.15 弱撑:94.47 弱压:96.47 强压:101.32 | MA5=148.22 MA10=153.54 MA20=160.0 MA60=147.22", "timing_signal": "弱势持有", - "rr_ratio": 1.09, + "rr_ratio": 1.2, "status": "review", "note": "⚠️盈亏比不足1:1.5,不建议买入", - "timestamp": "2026-07-03 10:11", - "updated_at": "2026-07-03 10:11", + "timestamp": "2026-07-03 10:15", + "updated_at": "2026-07-03 10:15", "type": "自选策略", "source": "auto", "sector_context": "行业软件开发+0.9%,中性", @@ -877,18 +877,18 @@ "position_advice": "减仓或观望", "time_horizon": "观望", "trigger": { - "stop_loss": 91.04, - "entry_zone": "93.79~94.94", - "take_profit_zone": "0~100.79" + "stop_loss": 91.09, + "entry_zone": "93.83~95.18", + "take_profit_zone": "0~101.32" }, - "created_at": "2026-07-03 10:11", - "take_profit": 100.79, + "created_at": "2026-07-03 10:15", + "take_profit": 101.32, "changelog": [ { - "date": "2026-07-03 10:11", + "date": "2026-07-03 10:15", "old_action": "", - "new_action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标100.79 | 止损91.04 | 买入区93.79~94.94 | 信号:弱势持有", - "reason": "初始策略创建 | 形态:光头光脚阳线/bullish 量价:数据不足 强撑:89.54 弱撑:94.48 弱压:96.33 强压:100.", + "new_action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标101.32 | 止损91.09 | 买入区93.83~95.18 | 信号:弱势持有", + "reason": "初始策略创建 | 形态:光头光脚阳线/bullish 量价:数据不足 强撑:89.15 弱撑:94.47 弱压:96.47 强压:101.", "trigger": "初始创建" } ] @@ -896,21 +896,21 @@ { "code": "300035", "name": "中科电气", - "price": 14.38, + "price": 14.49, "cost": 22.29, "shares": 0, "avg_price": 0, - "action": "深套持有 | 深套持有 | 止损12.95 | 目标0 | 买入区12.94~15.1 | 信号:持有", - "stop_loss": 12.95, - "entry_low": 12.94, - "entry_high": 15.1, + "action": "深套持有 | 深套持有 | 止损13.06 | 目标0 | 买入区13.04~15.21 | 信号:持有", + "stop_loss": 13.06, + "entry_low": 13.04, + "entry_high": 15.21, "tech_snapshot": "形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None | MA5=21.7 MA10=21.88 MA20=22.15 MA60=21.44", "timing_signal": "持有", "rr_ratio": 0.0, "status": "updated", "note": "深套持有", - "timestamp": "2026-07-03 10:11", - "updated_at": "2026-07-03 10:11", + "timestamp": "2026-07-03 10:15", + "updated_at": "2026-07-03 10:15", "type": "持仓策略", "source": "auto", "sector_context": "行业电池+0.5%,中性", @@ -918,16 +918,16 @@ "position_advice": "不补不割", "time_horizon": "长期", "trigger": { - "stop_loss": 12.95, - "entry_zone": "12.94~15.1" + "stop_loss": 13.06, + "entry_zone": "13.04~15.21" }, - "created_at": "2026-07-03 10:11", + "created_at": "2026-07-03 10:15", "take_profit": 0, "changelog": [ { - "date": "2026-07-03 10:11", + "date": "2026-07-03 10:15", "old_action": "", - "new_action": "深套持有 | 深套持有 | 止损12.95 | 目标0 | 买入区12.94~15.1 | 信号:持有", + "new_action": "深套持有 | 深套持有 | 止损13.06 | 目标0 | 买入区13.04~15.21 | 信号:持有", "reason": "初始策略创建 | 形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None |", "trigger": "初始创建" } @@ -936,21 +936,21 @@ { "code": "300124", "name": "汇川技术", - "price": 71.13, + "price": 71.23, "cost": 0, "shares": 0, "avg_price": 0, - "action": "盈利持有 | ⚠️盈亏比偏低(1:1.7),谨慎买入 | 目标75.73 | 止损69.0 | 买入区69.71~71.33 | 信号:观望", - "stop_loss": 69.0, - "entry_low": 69.71, - "entry_high": 71.33, - "tech_snapshot": "形态:光头光脚阳线/neutral 量价:主动卖盘占优 强撑:64.32 弱撑:68.4 弱压:72.65 强压:75.73 | MA5=76.83 MA10=77.47 MA20=78.08 MA60=73.46", + "action": "盈利持有 | ⚠️盈亏比偏低(1:1.6),谨慎买入 | 目标75.77 | 止损69.09 | 买入区69.81~71.35 | 信号:观望", + "stop_loss": 69.09, + "entry_low": 69.81, + "entry_high": 71.35, + "tech_snapshot": "形态:光头光脚阳线/neutral 量价:主动卖盘占优 强撑:64.37 弱撑:68.4 弱压:72.74 强压:75.77 | MA5=76.83 MA10=77.47 MA20=78.08 MA60=73.46", "timing_signal": "观望", - "rr_ratio": 1.68, + "rr_ratio": 1.6, "status": "updated", - "note": "⚠️盈亏比偏低(1:1.7),谨慎买入", - "timestamp": "2026-07-03 10:11", - "updated_at": "2026-07-03 10:11", + "note": "⚠️盈亏比偏低(1:1.6),谨慎买入", + "timestamp": "2026-07-03 10:15", + "updated_at": "2026-07-03 10:15", "type": "自选策略", "source": "auto", "sector_context": "行业自动化设备上涨+2.9%,正常", @@ -958,18 +958,18 @@ "position_advice": "减仓或观望", "time_horizon": "观望", "trigger": { - "stop_loss": 69.0, - "entry_zone": "69.71~71.33", - "take_profit_zone": "0~75.73" + "stop_loss": 69.09, + "entry_zone": "69.81~71.35", + "take_profit_zone": "0~75.77" }, - "created_at": "2026-07-03 10:11", - "take_profit": 75.73, + "created_at": "2026-07-03 10:15", + "take_profit": 75.77, "changelog": [ { - "date": "2026-07-03 10:11", + "date": "2026-07-03 10:15", "old_action": "", - "new_action": "盈利持有 | ⚠️盈亏比偏低(1:1.7),谨慎买入 | 目标75.73 | 止损69.0 | 买入区69.71~71.33 | 信号:观望", - "reason": "初始策略创建 | 形态:光头光脚阳线/neutral 量价:主动卖盘占优 强撑:64.32 弱撑:68.4 弱压:72.65 强压:75.", + "new_action": "盈利持有 | ⚠️盈亏比偏低(1:1.6),谨慎买入 | 目标75.77 | 止损69.09 | 买入区69.81~71.35 | 信号:观望", + "reason": "初始策略创建 | 形态:光头光脚阳线/neutral 量价:主动卖盘占优 强撑:64.37 弱撑:68.4 弱压:72.74 强压:75.", "trigger": "初始创建" } ] @@ -977,21 +977,21 @@ { "code": "300308", "name": "中际旭创", - "price": 1154.67, + "price": 1141.9, "cost": 1316.53, "shares": 0, "avg_price": 0, - "action": "持有观察 | ⚠️盈亏比极低,关注 | 止损1077.08 | 目标0 | 买入区1039.2~1212.4 | 信号:持有", - "stop_loss": 1077.08, - "entry_low": 1039.2, - "entry_high": 1212.4, + "action": "持有观察 | ⚠️盈亏比极低,关注 | 止损1065.16 | 目标0 | 买入区1027.71~1199.0 | 信号:持有", + "stop_loss": 1065.16, + "entry_low": 1027.71, + "entry_high": 1199.0, "tech_snapshot": "形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None | MA5=1222.01 MA10=1280.59 MA20=1239.5 MA60=1033.3", "timing_signal": "持有", "rr_ratio": 0.0, "status": "updated", "note": "⚠️盈亏比极低,关注", - "timestamp": "2026-07-03 10:11", - "updated_at": "2026-07-03 10:11", + "timestamp": "2026-07-03 10:16", + "updated_at": "2026-07-03 10:16", "type": "持仓策略", "source": "auto", "sector_context": "", @@ -999,16 +999,16 @@ "position_advice": "中等仓位", "time_horizon": "2~6周", "trigger": { - "stop_loss": 1077.08, - "entry_zone": "1039.2~1212.4" + "stop_loss": 1065.16, + "entry_zone": "1027.71~1199.0" }, - "created_at": "2026-07-03 10:11", + "created_at": "2026-07-03 10:16", "take_profit": 0, "changelog": [ { - "date": "2026-07-03 10:11", + "date": "2026-07-03 10:16", "old_action": "", - "new_action": "持有观察 | ⚠️盈亏比极低,关注 | 止损1077.08 | 目标0 | 买入区1039.2~1212.4 | 信号:持有", + "new_action": "持有观察 | ⚠️盈亏比极低,关注 | 止损1065.16 | 目标0 | 买入区1027.71~1199.0 | 信号:持有", "reason": "初始策略创建 | 形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None |", "trigger": "初始创建" } @@ -1017,21 +1017,21 @@ { "code": "300548", "name": "长芯博创", - "price": 225.11, + "price": 224.76, "cost": 231.46, "shares": 0, "avg_price": 0, - "action": "持有观察 | ⚠️盈亏比极低,关注 | 止损209.99 | 目标0 | 买入区202.6~236.37 | 信号:持有", - "stop_loss": 209.99, - "entry_low": 202.6, - "entry_high": 236.37, + "action": "持有观察 | ⚠️盈亏比极低,关注 | 止损209.66 | 目标0 | 买入区202.28~236.0 | 信号:持有", + "stop_loss": 209.66, + "entry_low": 202.28, + "entry_high": 236.0, "tech_snapshot": "形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None | MA5=253.97 MA10=270.01 MA20=255.06 MA60=248.13", "timing_signal": "持有", "rr_ratio": 0.0, "status": "updated", "note": "⚠️盈亏比极低,关注", - "timestamp": "2026-07-03 10:11", - "updated_at": "2026-07-03 10:11", + "timestamp": "2026-07-03 10:16", + "updated_at": "2026-07-03 10:16", "type": "持仓策略", "source": "auto", "sector_context": "行业光学光电子-0.7%,中性", @@ -1039,16 +1039,16 @@ "position_advice": "减仓或观望", "time_horizon": "观望", "trigger": { - "stop_loss": 209.99, - "entry_zone": "202.6~236.37" + "stop_loss": 209.66, + "entry_zone": "202.28~236.0" }, - "created_at": "2026-07-03 10:11", + "created_at": "2026-07-03 10:16", "take_profit": 0, "changelog": [ { - "date": "2026-07-03 10:11", + "date": "2026-07-03 10:16", "old_action": "", - "new_action": "持有观察 | ⚠️盈亏比极低,关注 | 止损209.99 | 目标0 | 买入区202.6~236.37 | 信号:持有", + "new_action": "持有观察 | ⚠️盈亏比极低,关注 | 止损209.66 | 目标0 | 买入区202.28~236.0 | 信号:持有", "reason": "初始策略创建 | 形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None |", "trigger": "初始创建" } @@ -1057,21 +1057,21 @@ { "code": "300750", "name": "宁德时代", - "price": 384.0, + "price": 386.33, "cost": 401.78, "shares": 0, "avg_price": 0, - "action": "持有观察 | ⚠️盈亏比极低,关注 | 止损358.2 | 目标0 | 买入区345.6~403.2 | 信号:持有", - "stop_loss": 358.2, - "entry_low": 345.6, - "entry_high": 403.2, + "action": "持有观察 | ⚠️盈亏比极低,关注 | 止损360.37 | 目标0 | 买入区347.7~405.65 | 信号:持有", + "stop_loss": 360.37, + "entry_low": 347.7, + "entry_high": 405.65, "tech_snapshot": "形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None | MA5=386.51 MA10=392.29 MA20=394.64 MA60=413.88", "timing_signal": "持有", "rr_ratio": 0.0, "status": "updated", "note": "⚠️盈亏比极低,关注", - "timestamp": "2026-07-03 10:11", - "updated_at": "2026-07-03 10:11", + "timestamp": "2026-07-03 10:16", + "updated_at": "2026-07-03 10:16", "type": "持仓策略", "source": "auto", "sector_context": "行业电池+0.5%,中性", @@ -1079,16 +1079,16 @@ "position_advice": "减仓或观望", "time_horizon": "观望", "trigger": { - "stop_loss": 358.2, - "entry_zone": "345.6~403.2" + "stop_loss": 360.37, + "entry_zone": "347.7~405.65" }, - "created_at": "2026-07-03 10:11", + "created_at": "2026-07-03 10:16", "take_profit": 0, "changelog": [ { - "date": "2026-07-03 10:11", + "date": "2026-07-03 10:16", "old_action": "", - "new_action": "持有观察 | ⚠️盈亏比极低,关注 | 止损358.2 | 目标0 | 买入区345.6~403.2 | 信号:持有", + "new_action": "持有观察 | ⚠️盈亏比极低,关注 | 止损360.37 | 目标0 | 买入区347.7~405.65 | 信号:持有", "reason": "初始策略创建 | 形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None |", "trigger": "初始创建" } @@ -1097,21 +1097,21 @@ { "code": "301308", "name": "江波龙", - "price": 608.23, + "price": 602.0, "cost": 0, "shares": 0, "avg_price": 0, - "action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标参考0 | 止损583.9 | 买入区596.07~620.39", - "stop_loss": 583.9, - "entry_low": 596.07, - "entry_high": 620.39, + "action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标参考0 | 止损577.92 | 买入区589.96~614.04", + "stop_loss": 577.92, + "entry_low": 589.96, + "entry_high": 614.04, "tech_snapshot": "形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None | MA5=674.71 MA10=646.08 MA20=586.34 MA60=501.02", "timing_signal": "信号不充分", "rr_ratio": 0.0, "status": "review", "note": "⚠️盈亏比不足1:1.5,不建议买入", - "timestamp": "2026-07-03 10:11", - "updated_at": "2026-07-03 10:11", + "timestamp": "2026-07-03 10:16", + "updated_at": "2026-07-03 10:16", "type": "自选策略", "source": "auto", "sector_context": "", @@ -1119,16 +1119,16 @@ "position_advice": "中等仓位", "time_horizon": "2~6周", "trigger": { - "stop_loss": 583.9, - "entry_zone": "596.07~620.39" + "stop_loss": 577.92, + "entry_zone": "589.96~614.04" }, - "created_at": "2026-07-03 10:11", + "created_at": "2026-07-03 10:16", "take_profit": 0, "changelog": [ { - "date": "2026-07-03 10:11", + "date": "2026-07-03 10:16", "old_action": "", - "new_action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标参考0 | 止损583.9 | 买入区596.07~620.39", + "new_action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标参考0 | 止损577.92 | 买入区589.96~614.04", "reason": "初始策略创建 | 形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None |", "trigger": "初始创建" } @@ -1150,8 +1150,8 @@ "rr_ratio": 0.0, "status": "updated", "note": "深套持有", - "timestamp": "2026-07-03 10:11", - "updated_at": "2026-07-03 10:11", + "timestamp": "2026-07-03 10:16", + "updated_at": "2026-07-03 10:16", "type": "持仓策略", "source": "auto", "sector_context": "行业贵金属大涨+6.0%,可适度积极", @@ -1162,11 +1162,11 @@ "stop_loss": 8.21, "entry_zone": "7.81~9.12" }, - "created_at": "2026-07-03 10:11", + "created_at": "2026-07-03 10:16", "take_profit": 0, "changelog": [ { - "date": "2026-07-03 10:11", + "date": "2026-07-03 10:16", "old_action": "", "new_action": "深套持有 | 深套持有 | 止损8.21 | 目标0 | 买入区7.81~9.12 | 信号:持有", "reason": "初始策略创建 | 形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None |", @@ -1177,21 +1177,21 @@ { "code": "600519", "name": "贵州茅台", - "price": 1198.96, + "price": 1204.0, "cost": 0, "shares": 0, "avg_price": 0, - "action": "盈利持有 | ⚠️盈亏比偏低(1:1.8),谨慎买入 | 目标1262.28 | 止损1162.99 | 买入区1174.98~1202.71 | 信号:关注", - "stop_loss": 1162.99, - "entry_low": 1174.98, - "entry_high": 1202.71, - "tech_snapshot": "形态:带上影阴线/bearish 量价:主动买盘占优 强撑:1142.22 弱撑:1194.36 弱压:1208.44 强压:1262.28 | MA5=1380.83 MA10=1382.77 MA20=1355.23 MA60=1398.7", + "action": "盈利持有 | ⚠️盈亏比偏低(1:1.6),谨慎买入 | 目标1263.52 | 止损1167.88 | 买入区1179.92~1206.14 | 信号:关注", + "stop_loss": 1167.88, + "entry_low": 1179.92, + "entry_high": 1206.14, + "tech_snapshot": "形态:锤子线/T字线/bullish 量价:主动买盘占优 强撑:1143.14 弱撑:1196.52 弱压:1210.6 强压:1263.52 | MA5=1380.83 MA10=1382.77 MA20=1355.23 MA60=1398.7", "timing_signal": "关注", - "rr_ratio": 1.76, + "rr_ratio": 1.65, "status": "updated", - "note": "⚠️盈亏比偏低(1:1.8),谨慎买入", - "timestamp": "2026-07-03 10:11", - "updated_at": "2026-07-03 10:11", + "note": "⚠️盈亏比偏低(1:1.6),谨慎买入", + "timestamp": "2026-07-03 10:16", + "updated_at": "2026-07-03 10:16", "type": "自选策略", "source": "auto", "sector_context": "", @@ -1199,18 +1199,18 @@ "position_advice": "减仓或观望", "time_horizon": "观望", "trigger": { - "stop_loss": 1162.99, - "entry_zone": "1174.98~1202.71", - "take_profit_zone": "0~1262.28" + "stop_loss": 1167.88, + "entry_zone": "1179.92~1206.14", + "take_profit_zone": "0~1263.52" }, - "created_at": "2026-07-03 10:11", - "take_profit": 1262.28, + "created_at": "2026-07-03 10:16", + "take_profit": 1263.52, "changelog": [ { - "date": "2026-07-03 10:11", + "date": "2026-07-03 10:16", "old_action": "", - "new_action": "盈利持有 | ⚠️盈亏比偏低(1:1.8),谨慎买入 | 目标1262.28 | 止损1162.99 | 买入区1174.98~1202.71 | 信号:关注", - "reason": "初始策略创建 | 形态:带上影阴线/bearish 量价:主动买盘占优 强撑:1142.22 弱撑:1194.36 弱压:1208.44 ", + "new_action": "盈利持有 | ⚠️盈亏比偏低(1:1.6),谨慎买入 | 目标1263.52 | 止损1167.88 | 买入区1179.92~1206.14 | 信号:关注", + "reason": "初始策略创建 | 形态:锤子线/T字线/bullish 量价:主动买盘占优 强撑:1143.14 弱撑:1196.52 弱压:1210.6", "trigger": "初始创建" } ] @@ -1218,21 +1218,21 @@ { "code": "600563", "name": "法拉电子", - "price": 158.51, + "price": 157.92, "cost": 147.18, "shares": 0, "avg_price": 0, - "action": "盈利良好 | ⚠️盈亏比极低,关注 | 止损153.75 | 目标0 | 买入区142.66~166.44 | 信号:持有", - "stop_loss": 153.75, - "entry_low": 142.66, - "entry_high": 166.44, + "action": "盈利良好 | ⚠️盈亏比极低,关注 | 止损153.18 | 目标0 | 买入区142.13~165.82 | 信号:持有", + "stop_loss": 153.18, + "entry_low": 142.13, + "entry_high": 165.82, "tech_snapshot": "形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None | MA5=183.16 MA10=178.82 MA20=169.12 MA60=145.24", "timing_signal": "持有", "rr_ratio": 0.0, "status": "updated", "note": "⚠️盈亏比极低,关注", - "timestamp": "2026-07-03 10:11", - "updated_at": "2026-07-03 10:11", + "timestamp": "2026-07-03 10:16", + "updated_at": "2026-07-03 10:16", "type": "持仓策略", "source": "auto", "sector_context": "行业元件+0.3%,中性", @@ -1240,16 +1240,16 @@ "position_advice": "中等仓位", "time_horizon": "2~6周", "trigger": { - "stop_loss": 153.75, - "entry_zone": "142.66~166.44" + "stop_loss": 153.18, + "entry_zone": "142.13~165.82" }, - "created_at": "2026-07-03 10:11", + "created_at": "2026-07-03 10:16", "take_profit": 0, "changelog": [ { - "date": "2026-07-03 10:11", + "date": "2026-07-03 10:16", "old_action": "", - "new_action": "盈利良好 | ⚠️盈亏比极低,关注 | 止损153.75 | 目标0 | 买入区142.66~166.44 | 信号:持有", + "new_action": "盈利良好 | ⚠️盈亏比极低,关注 | 止损153.18 | 目标0 | 买入区142.13~165.82 | 信号:持有", "reason": "初始策略创建 | 形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None |", "trigger": "初始创建" } @@ -1258,21 +1258,21 @@ { "code": "601318", "name": "中国平安", - "price": 48.96, + "price": 49.1, "cost": 0, "shares": 0, "avg_price": 0, - "action": "盈利持有 | 目标53.15 | 止损47.49 | 买入区47.98~49.75 | 信号:观望", - "stop_loss": 47.49, - "entry_low": 47.98, - "entry_high": 49.75, - "tech_snapshot": "形态:带上影阴线/neutral 量价:主动卖盘占优 强撑:45.31 弱撑:48.67 弱压:49.54 强压:53.15 | MA5=69.72 MA10=68.2 MA20=65.99 MA60=62.55", + "action": "盈利持有 | 目标53.16 | 止损47.63 | 买入区48.12~49.84 | 信号:观望", + "stop_loss": 47.63, + "entry_low": 48.12, + "entry_high": 49.84, + "tech_snapshot": "形态:带上影阴线/neutral 量价:主动卖盘占优 强撑:45.32 弱撑:48.69 弱压:49.56 强压:53.16 | MA5=69.72 MA10=68.2 MA20=65.99 MA60=62.55", "timing_signal": "观望", - "rr_ratio": 2.85, + "rr_ratio": 2.76, "status": "updated", "note": "", - "timestamp": "2026-07-03 10:12", - "updated_at": "2026-07-03 10:12", + "timestamp": "2026-07-03 10:16", + "updated_at": "2026-07-03 10:16", "type": "自选策略", "source": "auto", "sector_context": "", @@ -1280,18 +1280,18 @@ "position_advice": "减仓或观望", "time_horizon": "观望", "trigger": { - "stop_loss": 47.49, - "entry_zone": "47.98~49.75", - "take_profit_zone": "0~53.15" + "stop_loss": 47.63, + "entry_zone": "48.12~49.84", + "take_profit_zone": "0~53.16" }, - "created_at": "2026-07-03 10:12", - "take_profit": 53.15, + "created_at": "2026-07-03 10:16", + "take_profit": 53.16, "changelog": [ { - "date": "2026-07-03 10:12", + "date": "2026-07-03 10:16", "old_action": "", - "new_action": "盈利持有 | 目标53.15 | 止损47.49 | 买入区47.98~49.75 | 信号:观望", - "reason": "初始策略创建 | 形态:带上影阴线/neutral 量价:主动卖盘占优 强撑:45.31 弱撑:48.67 弱压:49.54 强压:53.", + "new_action": "盈利持有 | 目标53.16 | 止损47.63 | 买入区48.12~49.84 | 信号:观望", + "reason": "初始策略创建 | 形态:带上影阴线/neutral 量价:主动卖盘占优 强撑:45.32 弱撑:48.69 弱压:49.56 强压:53.", "trigger": "初始创建" } ] @@ -1299,21 +1299,21 @@ { "code": "601899", "name": "紫金矿业", - "price": 27.69, + "price": 27.99, "cost": 39.89, "shares": 0, "avg_price": 0, - "action": "深套持有 | 深套持有 | 止损25.45 | 目标0 | 买入区24.92~29.07 | 信号:持有", - "stop_loss": 25.45, - "entry_low": 24.92, - "entry_high": 29.07, + "action": "深套持有 | 深套持有 | 止损25.72 | 目标0 | 买入区25.19~29.39 | 信号:持有", + "stop_loss": 25.72, + "entry_low": 25.19, + "entry_high": 29.39, "tech_snapshot": "形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None | MA5=35.14 MA10=36.13 MA20=37.18 MA60=36.52", "timing_signal": "持有", "rr_ratio": 0.0, "status": "updated", "note": "深套持有", - "timestamp": "2026-07-03 10:12", - "updated_at": "2026-07-03 10:12", + "timestamp": "2026-07-03 10:16", + "updated_at": "2026-07-03 10:16", "type": "持仓策略", "source": "auto", "sector_context": "行业工业金属上涨+1.3%,正常", @@ -1321,16 +1321,16 @@ "position_advice": "不补不割", "time_horizon": "长期", "trigger": { - "stop_loss": 25.45, - "entry_zone": "24.92~29.07" + "stop_loss": 25.72, + "entry_zone": "25.19~29.39" }, - "created_at": "2026-07-03 10:12", + "created_at": "2026-07-03 10:16", "take_profit": 0, "changelog": [ { - "date": "2026-07-03 10:12", + "date": "2026-07-03 10:16", "old_action": "", - "new_action": "深套持有 | 深套持有 | 止损25.45 | 目标0 | 买入区24.92~29.07 | 信号:持有", + "new_action": "深套持有 | 深套持有 | 止损25.72 | 目标0 | 买入区25.19~29.39 | 信号:持有", "reason": "初始策略创建 | 形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None |", "trigger": "初始创建" } @@ -1339,21 +1339,21 @@ { "code": "688411", "name": "海博思创", - "price": 257.5, + "price": 259.0, "cost": 266.95, "shares": 0, "avg_price": 0, - "action": "持有观察 | ⚠️盈亏比极低,关注 | 止损240.2 | 目标0 | 买入区231.75~270.38 | 信号:持有", - "stop_loss": 240.2, - "entry_low": 231.75, - "entry_high": 270.38, + "action": "持有观察 | ⚠️盈亏比极低,关注 | 止损241.6 | 目标0 | 买入区233.1~271.95 | 信号:持有", + "stop_loss": 241.6, + "entry_low": 233.1, + "entry_high": 271.95, "tech_snapshot": "形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None | MA5=270.94 MA10=273.7 MA20=265.98 MA60=254.7", "timing_signal": "持有", "rr_ratio": 0.0, "status": "updated", "note": "⚠️盈亏比极低,关注", - "timestamp": "2026-07-03 10:12", - "updated_at": "2026-07-03 10:12", + "timestamp": "2026-07-03 10:16", + "updated_at": "2026-07-03 10:16", "type": "持仓策略", "source": "auto", "sector_context": "行业光伏设备-0.3%,中性", @@ -1361,16 +1361,16 @@ "position_advice": "中等仓位", "time_horizon": "2~6周", "trigger": { - "stop_loss": 240.2, - "entry_zone": "231.75~270.38" + "stop_loss": 241.6, + "entry_zone": "233.1~271.95" }, - "created_at": "2026-07-03 10:12", + "created_at": "2026-07-03 10:16", "take_profit": 0, "changelog": [ { - "date": "2026-07-03 10:12", + "date": "2026-07-03 10:16", "old_action": "", - "new_action": "持有观察 | ⚠️盈亏比极低,关注 | 止损240.2 | 目标0 | 买入区231.75~270.38 | 信号:持有", + "new_action": "持有观察 | ⚠️盈亏比极低,关注 | 止损241.6 | 目标0 | 买入区233.1~271.95 | 信号:持有", "reason": "初始策略创建 | 形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None |", "trigger": "初始创建" } @@ -1379,21 +1379,21 @@ { "code": "688630", "name": "芯碁微装", - "price": 484.02, + "price": 484.9, "cost": 0, "shares": 0, "avg_price": 0, - "action": "盈利持有 | ⚠️盈亏比偏低(1:1.7),谨慎买入 | 目标528.26 | 止损467.37 | 买入区474.34~486.23 | 信号:买入", - "stop_loss": 467.37, - "entry_low": 474.34, - "entry_high": 486.23, - "tech_snapshot": "形态:带下影阳线/bullish 量价:主动买盘占优 强撑:417.46 弱撑:458.21 弱压:501.18 强压:528.26 | MA5=518.14 MA10=511.3 MA20=462.1 MA60=333.6", + "action": "盈利持有 | ⚠️盈亏比偏低(1:1.6),谨慎买入 | 目标529.15 | 止损466.67 | 买入区475.2~486.17 | 信号:买入", + "stop_loss": 466.67, + "entry_low": 475.2, + "entry_high": 486.17, + "tech_snapshot": "形态:带下影阳线/bullish 量价:主动买盘占优 强撑:418.35 弱撑:457.52 弱压:502.94 强压:529.15 | MA5=518.14 MA10=511.3 MA20=462.1 MA60=333.6", "timing_signal": "买入", - "rr_ratio": 1.71, + "rr_ratio": 1.62, "status": "updated", - "note": "⚠️盈亏比偏低(1:1.7),谨慎买入", - "timestamp": "2026-07-03 10:12", - "updated_at": "2026-07-03 10:12", + "note": "⚠️盈亏比偏低(1:1.6),谨慎买入", + "timestamp": "2026-07-03 10:16", + "updated_at": "2026-07-03 10:16", "type": "自选策略", "source": "auto", "sector_context": "行业专用设备上涨+1.6%,正常", @@ -1401,18 +1401,18 @@ "position_advice": "中等仓位", "time_horizon": "2~6周", "trigger": { - "stop_loss": 467.37, - "entry_zone": "474.34~486.23", - "take_profit_zone": "0~528.26" + "stop_loss": 466.67, + "entry_zone": "475.2~486.17", + "take_profit_zone": "0~529.15" }, - "created_at": "2026-07-03 10:12", - "take_profit": 528.26, + "created_at": "2026-07-03 10:16", + "take_profit": 529.15, "changelog": [ { - "date": "2026-07-03 10:12", + "date": "2026-07-03 10:16", "old_action": "", - "new_action": "盈利持有 | ⚠️盈亏比偏低(1:1.7),谨慎买入 | 目标528.26 | 止损467.37 | 买入区474.34~486.23 | 信号:买入", - "reason": "初始策略创建 | 形态:带下影阳线/bullish 量价:主动买盘占优 强撑:417.46 弱撑:458.21 弱压:501.18 强压:", + "new_action": "盈利持有 | ⚠️盈亏比偏低(1:1.6),谨慎买入 | 目标529.15 | 止损466.67 | 买入区475.2~486.17 | 信号:买入", + "reason": "初始策略创建 | 形态:带下影阳线/bullish 量价:主动买盘占优 强撑:418.35 弱撑:457.52 弱压:502.94 强压:", "trigger": "初始创建" } ] @@ -1420,21 +1420,21 @@ { "code": "688639", "name": "华恒生物", - "price": 16.73, + "price": 16.75, "cost": 21.51, "shares": 0, "avg_price": 0, - "action": "深套持有 | 深套持有 | 止损14.47 | 目标0 | 买入区15.06~17.57 | 信号:持有", - "stop_loss": 14.47, - "entry_low": 15.06, - "entry_high": 17.57, + "action": "深套持有 | 深套持有 | 止损14.49 | 目标0 | 买入区15.08~17.59 | 信号:持有", + "stop_loss": 14.49, + "entry_low": 15.08, + "entry_high": 17.59, "tech_snapshot": "形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None | MA5=33.68 MA10=35.7 MA20=36.69 MA60=34.28", "timing_signal": "持有", "rr_ratio": 0.0, "status": "updated", "note": "深套持有", - "timestamp": "2026-07-03 10:12", - "updated_at": "2026-07-03 10:12", + "timestamp": "2026-07-03 10:16", + "updated_at": "2026-07-03 10:16", "type": "持仓策略", "source": "auto", "sector_context": "行业化学制品下跌-1.0%,适度防御", @@ -1442,16 +1442,16 @@ "position_advice": "不补不割", "time_horizon": "长期", "trigger": { - "stop_loss": 14.47, - "entry_zone": "15.06~17.57" + "stop_loss": 14.49, + "entry_zone": "15.08~17.59" }, - "created_at": "2026-07-03 10:12", + "created_at": "2026-07-03 10:16", "take_profit": 0, "changelog": [ { - "date": "2026-07-03 10:12", + "date": "2026-07-03 10:16", "old_action": "", - "new_action": "深套持有 | 深套持有 | 止损14.47 | 目标0 | 买入区15.06~17.57 | 信号:持有", + "new_action": "深套持有 | 深套持有 | 止损14.49 | 目标0 | 买入区15.08~17.59 | 信号:持有", "reason": "初始策略创建 | 形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None |", "trigger": "初始创建" } @@ -1460,21 +1460,21 @@ { "code": "688795", "name": "摩尔线程-U", - "price": 645.5, + "price": 642.0, "cost": 0, "shares": 0, "avg_price": 0, - "action": "盈利持有 | 目标697.18 | 止损626.13 | 买入区632.59~654.55 | 信号:观望", - "stop_loss": 626.13, - "entry_low": 632.59, - "entry_high": 654.55, - "tech_snapshot": "形态:锤子线/T字线/bullish 量价:主动卖盘占优 强撑:588.82 弱撑:635.01 弱压:653.0 强压:697.18 | MA5=681.57 MA10=685.62 MA20=656.21 MA60=660.88", + "action": "盈利持有 | 目标696.03 | 止损622.74 | 买入区629.16~652.06 | 信号:观望", + "stop_loss": 622.74, + "entry_low": 629.16, + "entry_high": 652.06, + "tech_snapshot": "形态:锤子线/T字线/bullish 量价:主动卖盘占优 强撑:587.97 弱撑:633.01 弱压:651.0 强压:696.03 | MA5=681.57 MA10=685.62 MA20=656.21 MA60=660.88", "timing_signal": "观望", - "rr_ratio": 2.67, + "rr_ratio": 2.81, "status": "updated", "note": "", - "timestamp": "2026-07-03 10:12", - "updated_at": "2026-07-03 10:12", + "timestamp": "2026-07-03 10:16", + "updated_at": "2026-07-03 10:16", "type": "自选策略", "source": "auto", "sector_context": "行业半导体-1.0%,中性", @@ -1482,18 +1482,18 @@ "position_advice": "减仓或观望", "time_horizon": "观望", "trigger": { - "stop_loss": 626.13, - "entry_zone": "632.59~654.55", - "take_profit_zone": "0~697.18" + "stop_loss": 622.74, + "entry_zone": "629.16~652.06", + "take_profit_zone": "0~696.03" }, - "created_at": "2026-07-03 10:12", - "take_profit": 697.18, + "created_at": "2026-07-03 10:16", + "take_profit": 696.03, "changelog": [ { - "date": "2026-07-03 10:12", + "date": "2026-07-03 10:16", "old_action": "", - "new_action": "盈利持有 | 目标697.18 | 止损626.13 | 买入区632.59~654.55 | 信号:观望", - "reason": "初始策略创建 | 形态:锤子线/T字线/bullish 量价:主动卖盘占优 强撑:588.82 弱撑:635.01 弱压:653.0 强压", + "new_action": "盈利持有 | 目标696.03 | 止损622.74 | 买入区629.16~652.06 | 信号:观望", + "reason": "初始策略创建 | 形态:锤子线/T字线/bullish 量价:主动卖盘占优 强撑:587.97 弱撑:633.01 弱压:651.0 强压", "trigger": "初始创建" } ] @@ -1501,21 +1501,21 @@ { "code": "688802", "name": "沐曦股份-U", - "price": 725.25, + "price": 718.22, "cost": 0, "shares": 0, "avg_price": 0, - "action": "盈利持有 | 目标794.98 | 止损703.49 | 买入区710.75~739.75 | 信号:关注", - "stop_loss": 703.49, - "entry_low": 710.75, - "entry_high": 739.75, - "tech_snapshot": "形态:带下影阴线/neutral 量价:数据不足 强撑:652.98 弱撑:713.98 弱压:734.97 强压:794.98 | MA5=771.28 MA10=769.4 MA20=740.96 MA60=719.77", + "action": "盈利持有 | 目标794.73 | 止损696.67 | 买入区703.86~732.58 | 信号:关注", + "stop_loss": 696.67, + "entry_low": 703.86, + "entry_high": 732.58, + "tech_snapshot": "形态:带下影阴线/neutral 量价:数据不足 强撑:652.73 弱撑:713.46 弱压:734.45 强压:794.73 | MA5=771.28 MA10=769.4 MA20=740.96 MA60=719.77", "timing_signal": "关注", - "rr_ratio": 3.2, + "rr_ratio": 3.55, "status": "updated", "note": "", - "timestamp": "2026-07-03 10:12", - "updated_at": "2026-07-03 10:12", + "timestamp": "2026-07-03 10:16", + "updated_at": "2026-07-03 10:16", "type": "自选策略", "source": "auto", "sector_context": "行业半导体-1.0%,中性", @@ -1523,18 +1523,18 @@ "position_advice": "中等仓位", "time_horizon": "2~6周", "trigger": { - "stop_loss": 703.49, - "entry_zone": "710.75~739.75", - "take_profit_zone": "0~794.98" + "stop_loss": 696.67, + "entry_zone": "703.86~732.58", + "take_profit_zone": "0~794.73" }, - "created_at": "2026-07-03 10:12", - "take_profit": 794.98, + "created_at": "2026-07-03 10:16", + "take_profit": 794.73, "changelog": [ { - "date": "2026-07-03 10:12", + "date": "2026-07-03 10:16", "old_action": "", - "new_action": "盈利持有 | 目标794.98 | 止损703.49 | 买入区710.75~739.75 | 信号:关注", - "reason": "初始策略创建 | 形态:带下影阴线/neutral 量价:数据不足 强撑:652.98 弱撑:713.98 弱压:734.97 强压:79", + "new_action": "盈利持有 | 目标794.73 | 止损696.67 | 买入区703.86~732.58 | 信号:关注", + "reason": "初始策略创建 | 形态:带下影阴线/neutral 量价:数据不足 强撑:652.73 弱撑:713.46 弱压:734.45 强压:79", "trigger": "初始创建" } ] @@ -1542,21 +1542,21 @@ { "code": "688981", "name": "中芯国际", - "price": 142.51, + "price": 141.08, "cost": 126.07, "shares": 0, "avg_price": 0, - "action": "盈利良好 | ⚠️盈亏比极低,关注 | 止损138.23 | 目标0 | 买入区128.26~149.64 | 信号:持有", - "stop_loss": 138.23, - "entry_low": 128.26, - "entry_high": 149.64, + "action": "盈利良好 | ⚠️盈亏比极低,关注 | 止损136.85 | 目标0 | 买入区126.97~148.13 | 信号:持有", + "stop_loss": 136.85, + "entry_low": 126.97, + "entry_high": 148.13, "tech_snapshot": "形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None | MA5=151.43 MA10=149.35 MA20=138.9 MA60=125.49", "timing_signal": "持有", "rr_ratio": 0.0, "status": "updated", "note": "⚠️盈亏比极低,关注", - "timestamp": "2026-07-03 10:12", - "updated_at": "2026-07-03 10:12", + "timestamp": "2026-07-03 10:17", + "updated_at": "2026-07-03 10:17", "type": "持仓策略", "source": "auto", "sector_context": "行业半导体-1.0%,中性", @@ -1564,16 +1564,16 @@ "position_advice": "中等仓位", "time_horizon": "2~6周", "trigger": { - "stop_loss": 138.23, - "entry_zone": "128.26~149.64" + "stop_loss": 136.85, + "entry_zone": "126.97~148.13" }, - "created_at": "2026-07-03 10:12", + "created_at": "2026-07-03 10:17", "take_profit": 0, "changelog": [ { - "date": "2026-07-03 10:12", + "date": "2026-07-03 10:17", "old_action": "", - "new_action": "盈利良好 | ⚠️盈亏比极低,关注 | 止损138.23 | 目标0 | 买入区128.26~149.64 | 信号:持有", + "new_action": "盈利良好 | ⚠️盈亏比极低,关注 | 止损136.85 | 目标0 | 买入区126.97~148.13 | 信号:持有", "reason": "初始策略创建 | 形态:unknown/neutral 量价:数据不足 强撑:None 弱撑:None 弱压:None 强压:None |", "trigger": "初始创建" } @@ -1581,5 +1581,5 @@ } ], "total": 39, - "regenerated_at": "2026-07-03 10:12" + "regenerated_at": "2026-07-03 10:17" } \ No newline at end of file diff --git a/data/mofin.db-shm b/data/mofin.db-shm index 0bf5e7f5f5d5694ade454236a6d3586b618d78b9..a0bb87f1570bc0268bbb2e02d863a0d1796997a7 100644 GIT binary patch delta 77 zcmZo@U}|V!;+1%$%K!t66E8}OTChv7nNGgVi7p`slYpsan3yTQ@xd2|jSpJv09`8) A#Q*>R delta 247 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 P2)`LC 0: - # 港股:API返回HKD,需转RMB - if is_hk_stock(s['code']): - price = round(price * HK_RATE, 2) + # 港股API返回HKD,直接存HKD原值。calc_total_mv统一做CNY折算 old = s.get('price', 0) if abs(old - price) > 0.001: s['price'] = round(price, 2) s['change_pct'] = float(change_pct) if change_pct else 0 + s['currency'] = 'HKD' if is_hk_stock(s['code']) else 'CNY' updated += 1 changed = True if changed: @@ -298,9 +297,6 @@ def refresh_data_prices(): if s['code'] in prices: price, _, change_pct = prices[s['code']] if price > 0: - # 港股:API返回HKD,需转RMB - if is_hk_stock(s['code']): - price = round(price * HK_RATE, 2) old = s.get('price', 0) if abs(old - price) > 0.001: s['price'] = round(price, 2)