现金更正:20230元(Dad截图确认) + strategy_lifecycle写回保护

截图显示可用(含天添利)=20,230.10元。之前80,476是错误数据。
strategy_lifecycle.regenerate_all 写portfolio.json时改为 merge现有字段,
不再清空 cash/total_assets/total_pl 等非holdings字段。
这样下次regenerate_all运行时不会丢数据。

现状:
  现金 20,230元 | 市值 930,200元 | 总资产 950,430元
  仓位 97.9% | 累计盈亏 -164,810元
  25只持仓(14A/11H)
This commit is contained in:
知微
2026-06-24 11:33:51 +08:00
parent eb294f05a5
commit b145dd47c3
6 changed files with 1521 additions and 832 deletions
Binary file not shown.
+875 -592
View File
File diff suppressed because it is too large Load Diff
+42 -42
View File
@@ -1281,7 +1281,7 @@
"amplitude": 8.42,
"turnover_rate": 8.56
},
"updated_at": 1782271700.6953611
"updated_at": 1782271986.1769738
},
"01478": {
"daily": [
@@ -2562,7 +2562,7 @@
"high_52w": 16.44,
"low_52w": 6.4
},
"updated_at": 1782271687.3830402
"updated_at": 1782271974.62817
},
"601899": {
"daily": [
@@ -3846,7 +3846,7 @@
"amplitude": 2.74,
"turnover_rate": 1.08
},
"updated_at": 1782271708.4815621
"updated_at": 1782271992.455598
},
"600739": {
"daily": [
@@ -5130,7 +5130,7 @@
"amplitude": 1.93,
"turnover_rate": 0.67
},
"updated_at": 1782271708.1176724
"updated_at": 1782271991.3710291
},
"09988": {
"daily": [
@@ -6411,7 +6411,7 @@
"high_52w": 185.173,
"low_52w": 100.773
},
"updated_at": 1782271693.2914903
"updated_at": 1782271980.3005385
},
"688411": {
"daily": [
@@ -7695,7 +7695,7 @@
"amplitude": 6.7,
"turnover_rate": 4.53
},
"updated_at": 1782271711.5193114
"updated_at": 1782271993.7442012
},
"02202": {
"daily": [
@@ -8976,7 +8976,7 @@
"high_52w": 5.99,
"low_52w": 2.48
},
"updated_at": 1782271687.8076062
"updated_at": 1782271975.622513
},
"01211": {
"daily": [
@@ -10257,7 +10257,7 @@
"high_52w": 135.889,
"low_52w": 81.35
},
"updated_at": 1782271685.924404
"updated_at": 1782271973.038804
},
"02388": {
"daily": [
@@ -11538,7 +11538,7 @@
"high_52w": 49.36,
"low_52w": 32.261
},
"updated_at": 1782271689.165997
"updated_at": 1782271976.707011
},
"300750": {
"daily": [
@@ -12822,7 +12822,7 @@
"amplitude": 1.91,
"turnover_rate": 0.59
},
"updated_at": 1782271702.3871303
"updated_at": 1782271989.1492848
},
"603259": {
"daily": [
@@ -14106,7 +14106,7 @@
"amplitude": 2.33,
"turnover_rate": 1.11
},
"updated_at": 1782271709.3074281
"updated_at": 1782271993.329413
},
"00700": {
"daily": [
@@ -15387,7 +15387,7 @@
"high_52w": 677.7,
"low_52w": 420.4
},
"updated_at": 1782271677.0676646
"updated_at": 1782271970.018609
},
"688981": {
"daily": [
@@ -16671,7 +16671,7 @@
"amplitude": 6.3,
"turnover_rate": 4.82
},
"updated_at": 1782271716.6743104
"updated_at": 1782272002.9992282
},
"600110": {
"daily": [
@@ -19228,7 +19228,7 @@
"high_52w": 93.5,
"low_52w": 38.65
},
"updated_at": 1782271678.5392773
"updated_at": 1782271971.148625
},
"600563": {
"daily": [
@@ -20512,7 +20512,7 @@
"amplitude": 3.97,
"turnover_rate": 4.21
},
"updated_at": 1782271706.2994509
"updated_at": 1782271990.5802712
},
"600036": {
"daily": [
@@ -21796,7 +21796,7 @@
"amplitude": 1.84,
"turnover_rate": 0.32
},
"updated_at": 1782271703.3982394
"updated_at": 1782271989.5131092
},
"300035": {
"daily": [
@@ -23080,7 +23080,7 @@
"amplitude": 2.1,
"turnover_rate": 3.34
},
"updated_at": 1782271694.607376
"updated_at": 1782271980.988022
},
"518880": {
"daily": [
@@ -24364,7 +24364,7 @@
"amplitude": 0.59,
"turnover_rate": 2.43
},
"updated_at": 1782271703.1981661
"updated_at": 1782271989.3181236
},
"01888": {
"daily": [
@@ -25645,7 +25645,7 @@
"high_52w": 91.8,
"low_52w": 8.08
},
"updated_at": 1782271687.572735
"updated_at": 1782271975.3785288
},
"01088": {
"daily": [
@@ -26926,7 +26926,7 @@
"high_52w": 49.62,
"low_52w": 29.076
},
"updated_at": 1782271685.0751767
"updated_at": 1782271972.2897353
},
"002594": {
"daily": [
@@ -28210,7 +28210,7 @@
"amplitude": 2.57,
"turnover_rate": 1.42
},
"updated_at": 1782271675.48275
"updated_at": 1782271969.826424
},
"09868": {
"daily": [
@@ -29491,7 +29491,7 @@
"high_52w": 110.8,
"low_52w": 52.65
},
"updated_at": 1782271693.106234
"updated_at": 1782271978.9626293
},
"688795": {
"daily": [
@@ -30735,7 +30735,7 @@
"amplitude": 3.09,
"turnover_rate": 7.33
},
"updated_at": 1782271715.7423553
"updated_at": 1782272000.9816368
},
"688802": {
"daily": [
@@ -31979,7 +31979,7 @@
"amplitude": 4.81,
"turnover_rate": 12.26
},
"updated_at": 1782271716.438669
"updated_at": 1782272002.1974125
},
"02359": {
"daily": [
@@ -33260,7 +33260,7 @@
"high_52w": 146.197,
"low_52w": 69.713
},
"updated_at": 1782271688.9286106
"updated_at": 1782271976.5314515
},
"02628": {
"daily": [
@@ -34541,7 +34541,7 @@
"high_52w": 36.16,
"low_52w": 16.827
},
"updated_at": 1782271689.7820618
"updated_at": 1782271977.606375
},
"00968": {
"daily": [
@@ -35822,7 +35822,7 @@
"high_52w": 4.092,
"low_52w": 2.21
},
"updated_at": 1782271677.7161567
"updated_at": 1782271970.2378178
},
"06869": {
"daily": [
@@ -37103,7 +37103,7 @@
"high_52w": 283.0,
"low_52w": 16.146
},
"updated_at": 1782271692.9287608
"updated_at": 1782271978.0875947
},
"02318": {
"daily": [
@@ -38384,7 +38384,7 @@
"high_52w": 72.689,
"low_52w": 42.648
},
"updated_at": 1782271688.4141698
"updated_at": 1782271975.8428571
},
"688639": {
"daily": [
@@ -39668,7 +39668,7 @@
"amplitude": 2.69,
"turnover_rate": 1.5
},
"updated_at": 1782271714.98799
"updated_at": 1782271998.1110723
},
"300124": {
"daily": [
@@ -40952,7 +40952,7 @@
"amplitude": 2.32,
"turnover_rate": 1.28
},
"updated_at": 1782271696.566684
"updated_at": 1782271981.8655262
},
"01070": {
"daily": [
@@ -42233,7 +42233,7 @@
"high_52w": 16.19,
"low_52w": 8.802
},
"updated_at": 1782271681.2713692
"updated_at": 1782271972.0267563
},
"001309": {
"daily": [
@@ -43517,7 +43517,7 @@
"amplitude": 13.19,
"turnover_rate": 10.41
},
"updated_at": 1782271674.2331069
"updated_at": 1782271969.633416
},
"06160": {
"daily": [
@@ -44798,7 +44798,7 @@
"high_52w": 229.4,
"low_52w": 144.1
},
"updated_at": 1782271692.3807895
"updated_at": 1782271977.8301327
},
"000700": {
"daily": [
@@ -46082,7 +46082,7 @@
"amplitude": 4.41,
"turnover_rate": 7.65
},
"updated_at": 1782271671.0273736
"updated_at": 1782271968.4753194
},
"000711": {
"daily": [
@@ -47366,7 +47366,7 @@
"amplitude": 2.65,
"turnover_rate": 3.98
},
"updated_at": 1782271671.5259438
"updated_at": 1782271969.4452164
},
"__index__sh000001": {
"name": "上证指数",
@@ -48664,7 +48664,7 @@
"volume": 108482337.0
}
],
"updated_at": 1782271713.894362
"updated_at": 1782271994.7046375
},
"300690": {
"daily": [
@@ -49937,7 +49937,7 @@
"volume": 457244.0
}
],
"updated_at": 1782271701.2542915
"updated_at": 1782271987.1830163
},
"000657": {
"daily": [
@@ -51210,7 +51210,7 @@
"volume": 15817777.0
}
],
"updated_at": 1782271670.1859558
"updated_at": 1782271967.3822916
},
"300308": {
"daily": [
@@ -52483,7 +52483,7 @@
"volume": 4488584.0
}
],
"updated_at": 1782271699.4866962
"updated_at": 1782271984.8144066
},
"600519": {
"daily": [
@@ -53756,7 +53756,7 @@
"volume": 583696.0
}
],
"updated_at": 1782271703.6053793
"updated_at": 1782271989.7092607
},
"601318": {
"daily": [
@@ -55029,7 +55029,7 @@
"volume": 13423033.0
}
],
"updated_at": 1782271708.2934575
"updated_at": 1782271991.569929
},
"sh000001": {
"daily": [
+556 -156
View File
@@ -4,283 +4,683 @@
"code": "001309",
"name": "德明利",
"shares": 100,
"price": 788.0,
"cost_price": 737.04,
"currency": "CNY",
"market_val": 78800.0,
"cost_amount": 73703.74,
"exchange_rate": 0.8664
"cost": 737.04,
"position_pct": 8.29,
"is_active": 1,
"stop_loss": null,
"take_profit": null,
"entry_low": null,
"entry_high": null,
"action": null,
"strategy_updated": null,
"analysis": {
"stop_loss": 724.0,
"take_profit": 810.78,
"entry_low": 762.44,
"entry_high": 758.71,
"action": "盈利良好 | ⚠️盈亏比偏低(1:0.9),不建议加仓 | 止损724.0 | 目标810.78 | 买入区762.44~758.71 | 信号:持有",
"tech_snapshot": "形态:带上影阳线/neutral 量价:主动买盘占优 强撑:679.51 弱撑:753.07 弱压:825.56 强压:830.51",
"reassessed_at": "2026-06-24 11:32",
"status": "manual",
"rr_ratio": 0.24,
"action_note": "⚠️盈亏比偏低(1:0.9),不建议加仓",
"timing_signal": "持有"
}
},
{
"code": "01478",
"name": "丘钛科技",
"shares": 11000,
"price": 7.57,
"cost_price": 13.81,
"currency": "HKD",
"market_val": 72120.15,
"cost_amount": 131558.75,
"exchange_rate": 0.8661
"cost": 13.81,
"position_pct": 7.59,
"is_active": 1,
"stop_loss": 7.33,
"take_profit": 10.39,
"entry_low": 7.88,
"entry_high": 9.19,
"action": "深套持有 | 深套持有 | 止损7.33 | 目标10.39 | 买入区7.88~9.19 | 信号:持有",
"strategy_updated": "2026-06-19 16:01",
"analysis": {
"stop_loss": 5.54,
"take_profit": 9.57,
"entry_low": 6.78,
"entry_high": 7.91,
"action": "深套持有 | 深套持有 | 止损5.54 | 目标9.57 | 买入区6.78~7.91 | 信号:持有",
"tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:5.71 弱撑:7.4 弱压:7.88 强压:9.57",
"reassessed_at": "2026-06-24 11:32",
"status": "updated",
"rr_ratio": 1.12,
"action_note": "深套持有",
"timing_signal": "持有"
}
},
{
"code": "600739",
"name": "辽宁成大",
"shares": 6600,
"price": 10.5,
"cost_price": 12.29,
"currency": "CNY",
"market_val": 69300.0,
"cost_amount": 81089.02,
"exchange_rate": 0.8664
"cost": 12.29,
"position_pct": 7.29,
"is_active": 1,
"stop_loss": 9.1,
"take_profit": 11.19,
"entry_low": 10.0,
"entry_high": 10.12,
"action": "持有观察 | ⚠️盈亏比偏低(1:1.1),不建议加仓 | 止损9.1 | 目标11.19 | 买入区10.0~10.12 | 信号:持有",
"strategy_updated": "2026-06-19 16:01",
"analysis": {
"stop_loss": 8.56,
"take_profit": 10.51,
"entry_low": 10.32,
"entry_high": 10.63,
"action": "持有观察 | ⚠️盈亏比偏低(1:1.3),不建议加仓 | 止损8.56 | 目标10.51 | 买入区10.32~10.63 | 信号:持有",
"tech_snapshot": "形态:带上影阴线/bearish 量价:主动买盘占优 强撑:9.59 弱撑:10.32 弱压:10.74 强压:11.68",
"reassessed_at": "2026-06-24 11:33",
"status": "updated",
"rr_ratio": 1.35,
"action_note": "⚠️盈亏比偏低(1:1.3),不建议加仓",
"timing_signal": "持有"
}
},
{
"code": "601899",
"name": "紫金矿业",
"shares": 2400,
"price": 27.53,
"cost_price": 40.27,
"currency": "CNY",
"market_val": 66072.0,
"cost_amount": 96644.29,
"exchange_rate": 0.8664
"cost": 40.27,
"position_pct": 6.95,
"is_active": 1,
"stop_loss": 24.48,
"take_profit": 34.47,
"entry_low": 26.72,
"entry_high": 31.17,
"action": "深套持有 | 深套持有 | 止损24.48 | 目标34.47 | 买入区26.72~31.17 | 信号:持有",
"strategy_updated": "2026-06-19 16:01",
"analysis": {
"stop_loss": 22.68,
"take_profit": 30.53,
"entry_low": 24.75,
"entry_high": 28.88,
"action": "深套持有 | 深套持有 | 止损22.68 | 目标30.53 | 买入区24.75~28.88 | 信号:持有",
"tech_snapshot": "形态:倒T线/射击之星/neutral 量价:主动买盘占优 强撑:24.98 弱撑:27.23 弱压:27.87 强压:30.53",
"reassessed_at": "2026-06-24 11:33",
"status": "updated",
"rr_ratio": 0.74,
"action_note": "深套持有",
"timing_signal": "持有"
}
},
{
"code": "688639",
"name": "华恒生物",
"shares": 2800,
"price": 21.46,
"cost_price": 21.51,
"currency": "CNY",
"market_val": 60088.0,
"cost_amount": 60223.75,
"exchange_rate": 0.8664
"cost": 21.51,
"position_pct": 6.32,
"is_active": 1,
"stop_loss": null,
"take_profit": null,
"entry_low": null,
"entry_high": null,
"action": null,
"strategy_updated": null,
"analysis": {
"stop_loss": 16.83,
"take_profit": 21.83,
"entry_low": 21.08,
"entry_high": 21.56,
"action": "持有观察 | ⚠️盈亏比偏低(1:1.1),不建议加仓 | 止损16.83 | 目标21.83 | 买入区21.08~21.56 | 信号:持有",
"tech_snapshot": "形态:光头光脚阴线/bearish 量价:主动买盘占优 强撑:18.86 弱撑:21.08 弱压:21.91 强压:24.26",
"reassessed_at": "2026-06-24 11:33",
"status": "updated",
"rr_ratio": 1.09,
"action_note": "⚠️盈亏比偏低(1:1.1),不建议加仓",
"timing_signal": "持有"
}
},
{
"code": "09988",
"name": "阿里巴巴-W",
"shares": 700,
"price": 98.8,
"cost_price": 126.15,
"currency": "HKD",
"market_val": 59899.48,
"cost_amount": 76481.96,
"exchange_rate": 0.8661
"cost": 126.15,
"position_pct": 6.3,
"is_active": 1,
"stop_loss": 90.82,
"take_profit": 118.69,
"entry_low": 102.87,
"entry_high": 104.43,
"action": "持有观察 | ⚠️盈亏比偏低(1:0.9),不建议加仓 | 止损90.82 | 目标118.69 | 买入区102.87~104.43 | 信号:持有",
"strategy_updated": "2026-06-19 16:01",
"analysis": {
"stop_loss": 74.09,
"take_profit": 102.71,
"entry_low": 88.29,
"entry_high": 103.0,
"action": "深套持有 | 深套持有 | 止损74.09 | 目标102.71 | 买入区88.29~103.0 | 信号:持有",
"tech_snapshot": "形态:带上影阴线/bearish 量价:数据不足 强撑:83.02 弱撑:97.18 弱压:99.48 强压:114.12",
"reassessed_at": "2026-06-24 11:33",
"status": "updated",
"rr_ratio": 1.06,
"action_note": "深套持有",
"timing_signal": "持有"
}
},
{
"code": "603259",
"name": "药明康德",
"shares": 400,
"price": 116.94,
"cost_price": 96.2,
"currency": "CNY",
"market_val": 46776.0,
"cost_amount": 38480.38,
"exchange_rate": 0.8664
"cost": 96.2,
"position_pct": 4.92,
"is_active": 1,
"stop_loss": 97.16,
"take_profit": 111.26,
"entry_low": 98.2,
"entry_high": 103.11,
"action": "盈利良好 | ⚠️盈亏比偏低(1:1.2),不建议加仓 | 止损97.16 | 目标111.26 | 买入区98.2~103.11 | 信号:持有",
"strategy_updated": "2026-06-19 16:01",
"analysis": {
"stop_loss": 113.15,
"take_profit": 139.5,
"entry_low": 106.31,
"entry_high": 111.63,
"action": "盈利良好 | 止损113.15 | 目标139.5 | 买入区106.31~111.63 | 信号:持有",
"tech_snapshot": "形态:光头光脚阳线/bullish 量价:买卖均衡 强撑:95.68 弱撑:106.31 弱压:120.29 强压:135.44",
"reassessed_at": "2026-06-24 11:33",
"status": "updated",
"rr_ratio": 3.16,
"action_note": "",
"timing_signal": "持有"
}
},
{
"code": "688981",
"name": "中芯国际",
"shares": 300,
"price": 149.98,
"cost_price": 126.07,
"currency": "CNY",
"market_val": 44994.0,
"cost_amount": 37820.42,
"exchange_rate": 0.8664
"cost": 126.07,
"position_pct": 4.73,
"is_active": 1,
"stop_loss": 132.76,
"take_profit": 164.45,
"entry_low": 134.18,
"entry_high": 140.89,
"action": "盈利良好 | 止损132.76 | 目标164.45 | 买入区134.18~140.89 | 信号:持有",
"strategy_updated": "2026-06-19 16:01",
"analysis": {
"stop_loss": 142.12,
"take_profit": 170.04,
"entry_low": 141.7,
"entry_high": 148.78,
"action": "盈利良好 | 止损142.12 | 目标170.04 | 买入区141.7~148.78 | 信号:持有",
"tech_snapshot": "形态:光头光脚阳线/bullish 量价:买卖均衡 强撑:119.75 弱撑:141.7 弱压:158.85 强压:170.04",
"reassessed_at": "2026-06-24 11:33",
"status": "updated",
"rr_ratio": 2.05,
"action_note": "",
"timing_signal": "持有"
}
},
{
"code": "01888",
"name": "建滔积层板",
"shares": 500,
"price": 93.95,
"cost_price": 88.39,
"currency": "HKD",
"market_val": 40685.05,
"cost_amount": 38275.35,
"exchange_rate": 0.8661
"cost": 88.39,
"position_pct": 4.28,
"is_active": 1,
"stop_loss": 86.34,
"take_profit": 141.9,
"entry_low": 85.82,
"entry_high": 90.11,
"action": "盈利持有 | 短炒强趋势持 | 止损86.34 | 目标141.9 | 买入区85.82~90.11 | 信号:强趋势持",
"strategy_updated": "2026-06-19 16:01",
"analysis": {
"stop_loss": 90.42,
"take_profit": 132.85,
"entry_low": 87.25,
"entry_high": 91.61,
"action": "盈利良好 | 短炒强趋势持 | 止损90.42 | 目标132.85 | 买入区87.25~91.61 | 信号:持有",
"tech_snapshot": "形态:带上影阳线/neutral 量价:数据不足 强撑:56.68 弱撑:87.25 弱压:98.07 强压:128.98",
"reassessed_at": "2026-06-24 11:32",
"status": "updated",
"rr_ratio": 7.61,
"action_note": "短炒强趋势持",
"timing_signal": "持有"
}
},
{
"code": "02202",
"name": "万科企业",
"shares": 19700,
"price": 2.37,
"cost_price": 4.68,
"currency": "HKD",
"market_val": 40437.34,
"cost_amount": 79782.13,
"exchange_rate": 0.8661
"cost": 4.68,
"position_pct": 4.25,
"is_active": 1,
"stop_loss": 2.0,
"take_profit": 2.85,
"entry_low": 2.18,
"entry_high": 2.54,
"action": "深套持有 | 深套持有 | 止损2.0 | 目标2.85 | 买入区2.18~2.54 | 信号:持有",
"strategy_updated": "2026-06-19 16:01",
"analysis": {
"stop_loss": 1.78,
"take_profit": 2.49,
"entry_low": 2.12,
"entry_high": 2.48,
"action": "深套持有 | 深套持有 | 止损1.78 | 目标2.49 | 买入区2.12~2.48 | 信号:持有",
"tech_snapshot": "形态:带下影阴线/neutral 量价:数据不足 强撑:1.99 弱撑:2.3 弱压:2.43 强压:2.77",
"reassessed_at": "2026-06-24 11:32",
"status": "updated",
"rr_ratio": 1.11,
"action_note": "深套持有",
"timing_signal": "持有"
}
},
{
"code": "02388",
"name": "中银香港",
"shares": 1000,
"price": 46.16,
"cost_price": 43.79,
"currency": "HKD",
"market_val": 39979.18,
"cost_amount": 37925.79,
"exchange_rate": 0.8661
"cost": 43.79,
"position_pct": 4.21,
"is_active": 1,
"stop_loss": 43.49,
"take_profit": 50.1,
"entry_low": 47.51,
"entry_high": 48.95,
"action": "盈利良好 | 止损43.49 | 目标50.1 | 买入区47.51~48.95 | 信号:持有",
"strategy_updated": "2026-06-19 16:01",
"analysis": {
"stop_loss": 40.01,
"take_profit": 45.24,
"entry_low": 45.57,
"entry_high": 47.55,
"action": "盈利良好 | 止损40.01 | 目标45.24 | 买入区45.57~47.55 | 信号:持有",
"tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:42.87 弱撑:45.57 弱压:47.25 强压:50.27",
"reassessed_at": "2026-06-24 11:32",
"status": "updated",
"rr_ratio": 2.91,
"action_note": "",
"timing_signal": "持有"
}
},
{
"code": "300750",
"name": "宁德时代",
"shares": 100,
"price": 391.15,
"cost_price": 401.78,
"currency": "CNY",
"market_val": 39115.0,
"cost_amount": 40178.03,
"exchange_rate": 0.8664
"cost": 401.78,
"position_pct": 4.12,
"is_active": 1,
"stop_loss": 345.04,
"take_profit": 414.6,
"entry_low": 384.35,
"entry_high": 397.12,
"action": "持有观察 | 止损345.04 | 目标414.6 | 买入区384.35~397.12 | 信号:弱势持有",
"strategy_updated": "2026-06-19 16:01",
"analysis": {
"stop_loss": 350.5,
"take_profit": 422.82,
"entry_low": 389.36,
"entry_high": 392.08,
"action": "持有观察 | ⚠️盈亏比偏低(1:0.8),不建议加仓 | 止损350.5 | 目标422.82 | 买入区389.36~392.08 | 信号:弱势持有",
"tech_snapshot": "形态:带下影阳线/bullish 量价:买卖均衡 强撑:361.34 弱撑:389.36 弱压:397.49 强压:422.82",
"reassessed_at": "2026-06-24 11:33",
"status": "updated",
"rr_ratio": 0.84,
"action_note": "⚠️盈亏比偏低(1:0.8),不建议加仓",
"timing_signal": "弱势持有"
}
},
{
"code": "01211",
"name": "比亚迪股份",
"shares": 600,
"price": 75.15,
"cost_price": 105.05,
"currency": "HKD",
"market_val": 39052.45,
"cost_amount": 54592.42,
"exchange_rate": 0.8661
"cost": 105.05,
"position_pct": 4.11,
"is_active": 1,
"stop_loss": 63.99,
"take_profit": 87.07,
"entry_low": 72.77,
"entry_high": 84.89,
"action": "深套持有 | 深套持有 | 止损63.99 | 目标87.07 | 买入区72.77~84.89 | 信号:持有",
"strategy_updated": "2026-06-19 16:01",
"analysis": {
"stop_loss": 59.54,
"take_profit": 88.88,
"entry_low": 66.87,
"entry_high": 78.02,
"action": "深套持有 | 深套持有 | 止损59.54 | 目标88.88 | 买入区66.87~78.02 | 信号:持有",
"tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:61.38 弱撑:73.42 弱压:76.02 强压:88.88",
"reassessed_at": "2026-06-24 11:32",
"status": "updated",
"rr_ratio": 1.13,
"action_note": "深套持有",
"timing_signal": "持有"
}
},
{
"code": "00700",
"name": "腾讯控股",
"shares": 100,
"price": 420.4,
"cost_price": 443.9,
"currency": "HKD",
"market_val": 36410.84,
"cost_amount": 38446.39,
"exchange_rate": 0.8661
"cost": 443.9,
"position_pct": 3.83,
"is_active": 1,
"stop_loss": 387.49,
"take_profit": 496.33,
"entry_low": 435.13,
"entry_high": 440.67,
"action": "持有观察 | ⚠️盈亏比偏低(1:1.0),不建议加仓 | 止损387.49 | 目标496.33 | 买入区435.13~440.67 | 信号:持有",
"strategy_updated": "2026-06-19 16:01",
"analysis": {
"stop_loss": 314.9,
"take_profit": 433.14,
"entry_low": 412.53,
"entry_high": 417.07,
"action": "持有观察 | ⚠️盈亏比偏低(1:1.0),不建议加仓 | 止损314.9 | 目标433.14 | 买入区412.53~417.07 | 信号:持有",
"tech_snapshot": "形态:带上影阳线/neutral 量价:数据不足 强撑:352.87 弱撑:412.53 弱压:421.53 强压:481.27",
"reassessed_at": "2026-06-24 11:32",
"status": "updated",
"rr_ratio": 1.0,
"action_note": "⚠️盈亏比偏低(1:1.0),不建议加仓",
"timing_signal": "持有"
}
},
{
"code": "00981",
"name": "中芯国际",
"shares": 500,
"price": 83.35,
"cost_price": 76.07,
"currency": "HKD",
"market_val": 36094.72,
"cost_amount": 32943.17,
"exchange_rate": 0.8661
"cost": 76.07,
"position_pct": 3.8,
"is_active": 1,
"stop_loss": 67.69,
"take_profit": 87.26,
"entry_low": 73.68,
"entry_high": 76.57,
"action": "盈利持有 | ⚠️盈亏比偏低(1:1.0),不建议加仓 | 止损67.69 | 目标87.26 | 买入区73.68~76.57 | 信号:持有",
"strategy_updated": "2026-06-19 16:01",
"analysis": {
"stop_loss": 76.44,
"take_profit": 95.42,
"entry_low": 77.85,
"entry_high": 81.74,
"action": "盈利良好 | 止损76.44 | 目标95.42 | 买入区77.85~81.74 | 信号:持有",
"tech_snapshot": "形态:光头光脚阳线/bullish 量价:数据不足 强撑:68.22 弱撑:77.85 弱压:86.03 强压:95.42",
"reassessed_at": "2026-06-24 11:32",
"status": "updated",
"rr_ratio": 3.0,
"action_note": "",
"timing_signal": "持有"
}
},
{
"code": "09868",
"name": "小鹏集团-W",
"shares": 700,
"price": 50.25,
"cost_price": 51.36,
"currency": "HKD",
"market_val": 30465.07,
"cost_amount": 31140.69,
"exchange_rate": 0.8661
"cost": 51.36,
"position_pct": 3.21,
"is_active": 1,
"stop_loss": null,
"take_profit": null,
"entry_low": null,
"entry_high": null,
"action": null,
"strategy_updated": null,
"analysis": {
"stop_loss": 49.83,
"take_profit": 60.53,
"entry_low": 50.52,
"entry_high": 52.58,
"action": "持有观察 | ⚠️盈亏比偏低(1:1.0),不建议加仓 | 止损49.83 | 目标60.53 | 买入区50.52~52.58 | 信号:持有",
"tech_snapshot": "形态:小阴线/neutral 量价:数据不足 强撑:40.05 弱撑:48.67 弱压:50.63 强压:59.41",
"reassessed_at": "2026-06-24 11:33",
"status": "manual",
"rr_ratio": 22.09,
"action_note": "⚠️盈亏比偏低(1:1.0),不建议加仓",
"timing_signal": "持有"
}
},
{
"code": "600036",
"name": "招商银行",
"shares": 800,
"price": 37.1,
"cost_price": 38.16,
"currency": "CNY",
"market_val": 29680.0,
"cost_amount": 30526.53,
"exchange_rate": 0.8664
"cost": 38.16,
"position_pct": 3.12,
"is_active": 1,
"stop_loss": 32.21,
"take_profit": 39.68,
"entry_low": 36.95,
"entry_high": 37.57,
"action": "持有观察 | ⚠️盈亏比偏低(1:1.2),不建议加仓 | 止损32.21 | 目标39.68 | 买入区36.95~37.57 | 信号:弱势持有",
"strategy_updated": "2026-06-19 16:01",
"analysis": {
"stop_loss": 30.54,
"take_profit": 36.13,
"entry_low": 36.79,
"entry_high": 37.19,
"action": "持有观察 | ⚠️盈亏比偏低(1:1.1),不建议加仓 | 止损30.54 | 目标36.13 | 买入区36.79~37.19 | 信号:弱势持有",
"tech_snapshot": "形态:光头光脚阴线/bearish 量价:买卖均衡 强撑:34.22 弱撑:36.79 弱压:37.43 强压:40.15",
"reassessed_at": "2026-06-24 11:33",
"status": "updated",
"rr_ratio": 1.1,
"action_note": "⚠️盈亏比偏低(1:1.1),不建议加仓",
"timing_signal": "弱势持有"
}
},
{
"code": "300548",
"name": "长芯博创",
"shares": 100,
"price": 279.12,
"cost_price": 231.46,
"currency": "CNY",
"market_val": 27912.0,
"cost_amount": 23146.0,
"exchange_rate": 0.8664
"cost": 231.46,
"position_pct": 2.94,
"is_active": 1,
"stop_loss": 251.24,
"take_profit": 413.9,
"entry_low": 269.8,
"entry_high": 283.29,
"action": "盈利良好 | 短炒强趋势持 | 止损251.24 | 目标413.9 | 买入区269.8~283.29 | 信号:强趋势持",
"strategy_updated": "2026-06-19 16:01",
"analysis": {
"stop_loss": 240.35,
"take_profit": 308.9,
"entry_low": 269.33,
"entry_high": 282.8,
"action": "盈利良好 | 短炒强趋势持 | 止损240.35 | 目标308.9 | 买入区269.33~282.8 | 信号:持有",
"tech_snapshot": "形态:带上影阴线/bearish 量价:主动买盘占优 强撑:228.82 弱撑:269.33 弱压:293.44 强压:343.22",
"reassessed_at": "2026-06-24 11:33",
"status": "updated",
"rr_ratio": 7.41,
"action_note": "短炒强趋势持",
"timing_signal": "持有"
}
},
{
"code": "02318",
"name": "中国平安",
"shares": 500,
"price": 52.75,
"cost_price": 54.82,
"currency": "HKD",
"market_val": 22843.39,
"cost_amount": 23739.74,
"exchange_rate": 0.8661
"cost": 54.82,
"position_pct": 2.4,
"is_active": 1,
"stop_loss": null,
"take_profit": null,
"entry_low": null,
"entry_high": null,
"action": null,
"strategy_updated": null,
"analysis": {
"stop_loss": 53.3,
"take_profit": 60.72,
"entry_low": 53.85,
"entry_high": 56.05,
"action": "持有观察 | ⚠️盈亏比偏低(1:1.2),不建议加仓 | 止损53.3 | 目标60.72 | 买入区53.85~56.05 | 信号:持有",
"tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:46.43 弱撑:51.87 弱压:53.6 强压:59.33",
"reassessed_at": "2026-06-24 11:32",
"status": "manual",
"rr_ratio": 15.88,
"action_note": "⚠️盈亏比偏低(1:1.2),不建议加仓",
"timing_signal": "持有"
}
},
{
"code": "300035",
"name": "中科电气",
"shares": 1400,
"price": 16.03,
"cost_price": 22.29,
"currency": "CNY",
"market_val": 22442.0,
"cost_amount": 31207.91,
"exchange_rate": 0.8664
"cost": 22.29,
"position_pct": 2.36,
"is_active": 1,
"stop_loss": 13.74,
"take_profit": 19.0,
"entry_low": 15.63,
"entry_high": 18.24,
"action": "深套持有 | 深套持有 | 止损13.74 | 目标19.0 | 买入区15.63~18.24 | 信号:持有",
"strategy_updated": "2026-06-19 16:01",
"analysis": {
"stop_loss": 13.96,
"take_profit": 18.99,
"entry_low": 14.52,
"entry_high": 16.94,
"action": "深套持有 | 深套持有 | 止损13.96 | 目标18.99 | 买入区14.52~16.94 | 信号:持有",
"tech_snapshot": "形态:带下影阴线/neutral 量价:主动卖盘占优 强撑:13.9 弱撑:15.92 弱压:16.37 强压:18.44",
"reassessed_at": "2026-06-24 11:33",
"status": "updated",
"rr_ratio": 0.95,
"action_note": "深套持有",
"timing_signal": "持有"
}
},
{
"code": "000700",
"name": "模塑科技",
"shares": 1400,
"price": 14.6,
"cost_price": 14.83,
"currency": "CNY",
"market_val": 20440.0,
"cost_amount": 20767.0,
"exchange_rate": 0.8664
"cost": 14.83,
"position_pct": 2.15,
"is_active": 1,
"stop_loss": null,
"take_profit": null,
"entry_low": null,
"entry_high": null,
"action": null,
"strategy_updated": null,
"analysis": {
"stop_loss": 13.91,
"take_profit": 17.0,
"entry_low": 14.53,
"entry_high": 15.26,
"action": "持有观察 | 止损13.91 | 目标17.0 | 买入区14.53~15.26 | 信号:持有",
"tech_snapshot": "形态:带下影阴线/neutral 量价:主动买盘占优 强撑:13.48 弱撑:14.22 弱压:15.14 强压:16.48",
"reassessed_at": "2026-06-24 11:32",
"status": "manual",
"rr_ratio": 3.23,
"action_note": "",
"timing_signal": "持有"
}
},
{
"code": "518880",
"name": "黄金ETF华安",
"shares": 2400,
"price": 8.449,
"cost_price": 12.19,
"currency": "CNY",
"market_val": 20277.6,
"cost_amount": 29259.64,
"exchange_rate": 0.8664
"cost": 12.19,
"position_pct": 2.13,
"is_active": 1,
"stop_loss": 7.05,
"take_profit": 9.17,
"entry_low": 8.02,
"entry_high": 9.35,
"action": "深套持有 | 深套持有 | 止损7.05 | 目标9.17 | 买入区8.02~9.35 | 信号:持有",
"strategy_updated": "2026-06-19 16:01",
"analysis": {
"stop_loss": 6.4,
"take_profit": 8.23,
"entry_low": 7.6,
"entry_high": 8.86,
"action": "深套持有 | 深套持有 | 止损6.4 | 目标8.23 | 买入区7.6~8.86 | 信号:持有",
"tech_snapshot": "形态:带上影阴线/bearish 量价:数据不足 强撑:7.79 弱撑:8.4 弱压:8.54 强压:9.14",
"reassessed_at": "2026-06-24 11:33",
"status": "updated",
"rr_ratio": 0.55,
"action_note": "深套持有",
"timing_signal": "持有"
}
},
{
"code": "01088",
"name": "中国神华",
"shares": 500,
"price": 41.9,
"cost_price": 45.97,
"currency": "HKD",
"market_val": 18144.8,
"cost_amount": 19909.06,
"exchange_rate": 0.8661
"cost": 45.97,
"position_pct": 1.91,
"is_active": 1,
"stop_loss": 35.09,
"take_profit": 42.9,
"entry_low": 41.66,
"entry_high": 42.8,
"action": "持有观察 | ⚠️盈亏比偏低(1:1.3),不建议加仓 | 止损35.09 | 目标42.9 | 买入区41.66~42.8 | 信号:持有",
"strategy_updated": "2026-06-19 16:01",
"analysis": {
"stop_loss": 33.35,
"take_profit": 41.45,
"entry_low": 41.23,
"entry_high": 41.71,
"action": "持有观察 | ⚠️盈亏比偏低(1:1.0),不建议加仓 | 止损33.35 | 目标41.45 | 买入区41.23~41.71 | 信号:持有",
"tech_snapshot": "形态:带下影阴线/neutral 量价:数据不足 强撑:37.37 弱撑:41.23 弱压:42.15 强压:46.05",
"reassessed_at": "2026-06-24 11:32",
"status": "updated",
"rr_ratio": 1.01,
"action_note": "⚠️盈亏比偏低(1:1.0),不建议加仓",
"timing_signal": "持有"
}
},
{
"code": "600563",
"name": "法拉电子",
"shares": 100,
"price": 174.57,
"cost_price": 146.95,
"currency": "CNY",
"market_val": 17457.0,
"cost_amount": 14695.0,
"exchange_rate": 0.8664
"cost": 146.95,
"position_pct": 1.84,
"is_active": 1,
"stop_loss": 161.41,
"take_profit": 192.67,
"entry_low": 165.51,
"entry_high": 173.79,
"action": "盈利良好 | 止损161.41 | 目标192.67 | 买入区165.51~173.79 | 信号:持有",
"strategy_updated": "2026-06-19 16:01",
"analysis": {
"stop_loss": 172.96,
"take_profit": 216.73,
"entry_low": 162.51,
"entry_high": 170.64,
"action": "盈利良好 | 止损172.96 | 目标216.73 | 买入区162.51~170.64 | 信号:持有",
"tech_snapshot": "形态:光头光脚阳线/bullish 量价:买卖均衡 强撑:146.26 弱撑:162.51 弱压:184.36 强压:210.42",
"reassessed_at": "2026-06-24 11:33",
"status": "updated",
"rr_ratio": 3.54,
"action_note": "",
"timing_signal": "持有"
}
},
{
"code": "300690",
"name": "双一科技",
"shares": 400,
"price": 22.78,
"cost_price": 27.18,
"currency": "CNY",
"market_val": 9112.0,
"cost_amount": 10871.2,
"exchange_rate": 0.8664
"cost": 27.18,
"position_pct": 0.96,
"is_active": 1,
"stop_loss": 22.1,
"take_profit": 25.93,
"entry_low": 23.57,
"entry_high": 23.98,
"action": "持有观察 | ⚠️盈亏比偏低(1:1.2),不建议加仓 | 止损22.1 | 目标25.93 | 买入区23.57~23.98 | 信号:持有",
"strategy_updated": "2026-06-19 16:01",
"analysis": {
"stop_loss": 18.95,
"take_profit": 22.41,
"entry_low": 22.48,
"entry_high": 23.07,
"action": "持有观察 | ⚠️盈亏比偏低(1:1.2),不建议加仓 | 止损18.95 | 目标22.41 | 买入区22.48~23.07 | 信号:持有",
"tech_snapshot": "形态:光头光脚阴线/bearish 量价:主动卖盘占优 强撑:21.24 弱撑:22.48 弱压:23.63 强压:24.9",
"reassessed_at": "2026-06-24 11:33",
"status": "updated",
"rr_ratio": 1.25,
"action_note": "⚠️盈亏比偏低(1:1.2),不建议加仓",
"timing_signal": "持有"
}
}
],
"cash": 20230.1,
"total_market_value": 988512.96,
"total_assets": 1008860.62,
"total_pl": -164895.4,
"position_pct": 97.98,
"updated_at": "2026-06-24 11:29",
"source": "/home/hmo/stocks/holding.xls + 截图校核"
"total_market_value": 930199.93,
"total_assets": 950430.03,
"total_pl": -164810.3,
"position_pct": 97.87,
"updated_at": "2026-06-24 11:33",
"source": "/home/hmo/stocks/holding.xls"
}
+40 -40
View File
@@ -164,7 +164,7 @@
"date": "2026-06-24",
"high": 432.4,
"low": 412.6,
"close": 418.8
"close": 417.0
}
],
"000700": [
@@ -220,7 +220,7 @@
"date": "2026-06-24",
"high": 15.6,
"low": 14.3,
"close": 14.65
"close": 14.64
}
],
"001309": [
@@ -276,7 +276,7 @@
"date": "2026-06-24",
"high": 816.0,
"low": 706.0,
"close": 793.0
"close": 794.1
}
],
"00968": [
@@ -332,7 +332,7 @@
"date": "2026-06-24",
"high": 2.26,
"low": 1.93,
"close": 1.99
"close": 1.97
}
],
"00981": [
@@ -388,7 +388,7 @@
"date": "2026-06-24",
"high": 84.9,
"low": 76.5,
"close": 83.5
"close": 82.95
}
],
"01070": [
@@ -444,7 +444,7 @@
"date": "2026-06-24",
"high": 13.47,
"low": 12.55,
"close": 13.1
"close": 13.04
}
],
"01088": [
@@ -500,7 +500,7 @@
"date": "2026-06-24",
"high": 43.14,
"low": 41.26,
"close": 41.72
"close": 41.68
}
],
"01211": [
@@ -555,8 +555,8 @@
{
"date": "2026-06-24",
"high": 78.3,
"low": 74.3,
"close": 74.6
"low": 74.25,
"close": 74.3
}
],
"01478": [
@@ -612,7 +612,7 @@
"date": "2026-06-24",
"high": 8.54,
"low": 7.51,
"close": 7.57
"close": 7.53
}
],
"01888": [
@@ -780,7 +780,7 @@
"date": "2026-06-24",
"high": 55.5,
"low": 52.3,
"close": 52.55
"close": 52.45
}
],
"02359": [
@@ -836,7 +836,7 @@
"date": "2026-06-24",
"high": 145.0,
"low": 130.0,
"close": 144.6
"close": 143.2
}
],
"02388": [
@@ -892,7 +892,7 @@
"date": "2026-06-24",
"high": 47.86,
"low": 45.9,
"close": 46.26
"close": 46.24
}
],
"02628": [
@@ -947,8 +947,8 @@
{
"date": "2026-06-24",
"high": 30.56,
"low": 28.18,
"close": 28.22
"low": 28.06,
"close": 28.06
}
],
"06160": [
@@ -1004,7 +1004,7 @@
"date": "2026-06-24",
"high": 168.6,
"low": 160.0,
"close": 168.0
"close": 166.8
}
],
"06869": [
@@ -1060,7 +1060,7 @@
"date": "2026-06-24",
"high": 305.0,
"low": 251.2,
"close": 256.0
"close": 255.2
}
],
"09868": [
@@ -1116,7 +1116,7 @@
"date": "2026-06-24",
"high": 52.3,
"low": 48.82,
"close": 49.98
"close": 49.56
}
],
"09988": [
@@ -1172,7 +1172,7 @@
"date": "2026-06-24",
"high": 103.4,
"low": 97.65,
"close": 98.4
"close": 98.1
}
],
"300035": [
@@ -1228,7 +1228,7 @@
"date": "2026-06-24",
"high": 17.1,
"low": 15.96,
"close": 16.1
"close": 16.13
}
],
"300124": [
@@ -1284,7 +1284,7 @@
"date": "2026-06-24",
"high": 68.8,
"low": 65.74,
"close": 66.37
"close": 66.49
}
],
"300548": [
@@ -1756,7 +1756,7 @@
"date": "2026-06-24",
"high": 309.6,
"low": 275.86,
"close": 277.4
"close": 278.12
}
],
"300750": [
@@ -1812,7 +1812,7 @@
"date": "2026-06-24",
"high": 414.04,
"low": 386.66,
"close": 393.18
"close": 394.78
}
],
"518880": [
@@ -1868,7 +1868,7 @@
"date": "2026-06-24",
"high": 8.674,
"low": 8.426,
"close": 8.442
"close": 8.44
}
],
"600036": [
@@ -1930,7 +1930,7 @@
"date": "2026-06-24",
"high": 38.19,
"low": 36.94,
"close": 37.03
"close": 37.04
}
],
"600110": [
@@ -2086,7 +2086,7 @@
"date": "2026-06-24",
"high": 11.0,
"low": 10.43,
"close": 10.46
"close": 10.48
}
],
"601899": [
@@ -2148,7 +2148,7 @@
"date": "2026-06-24",
"high": 30.0,
"low": 27.33,
"close": 27.48
"close": 27.5
}
],
"688411": [
@@ -2204,7 +2204,7 @@
"date": "2026-06-24",
"high": 285.98,
"low": 261.8,
"close": 265.9
"close": 266.17
}
],
"688639": [
@@ -2260,7 +2260,7 @@
"date": "2026-06-24",
"high": 22.47,
"low": 20.99,
"close": 21.41
"close": 21.44
}
],
"688795": [
@@ -2316,7 +2316,7 @@
"date": "2026-06-24",
"high": 745.2,
"low": 660.01,
"close": 685.4
"close": 686.0
}
],
"688802": [
@@ -2372,7 +2372,7 @@
"date": "2026-06-24",
"high": 808.0,
"low": 726.1,
"close": 744.0
"close": 745.0
}
],
"688981": [
@@ -2426,9 +2426,9 @@
},
{
"date": "2026-06-24",
"high": 153.6,
"high": 154.71,
"low": 139.6,
"close": 153.58
"close": 154.23
}
],
"000711": [
@@ -2466,7 +2466,7 @@
"date": "2026-06-24",
"high": 5.38,
"low": 4.86,
"close": 5.16
"close": 5.14
}
],
"688630": [
@@ -2498,7 +2498,7 @@
"date": "2026-06-24",
"high": 500.0,
"low": 455.55,
"close": 499.5
"close": 499.05
}
],
"300690": [
@@ -2530,7 +2530,7 @@
"date": "2026-06-24",
"high": 24.39,
"low": 22.68,
"close": 22.83
"close": 22.87
}
],
"000657": [
@@ -2550,7 +2550,7 @@
"date": "2026-06-24",
"high": 113.99,
"low": 94.79,
"close": 98.85
"close": 98.98
}
],
"300308": [
@@ -2570,7 +2570,7 @@
"date": "2026-06-24",
"high": 1395.0,
"low": 1296.0,
"close": 1308.32
"close": 1311.92
}
],
"600519": [
@@ -2590,7 +2590,7 @@
"date": "2026-06-24",
"high": 1264.0,
"low": 1209.11,
"close": 1214.99
"close": 1216.06
}
],
"601318": [
@@ -2610,7 +2610,7 @@
"date": "2026-06-24",
"high": 52.43,
"low": 49.03,
"close": 49.32
"close": 49.36
}
],
"002171": [
+8 -2
View File
@@ -1716,8 +1716,14 @@ def regenerate_all(stdout=True):
if stdout:
print(f"{name}({code}): {e}")
# 写回数据文件
json.dump(pf, open(PORTFOLIO_PATH, "w"), ensure_ascii=False, indent=2)
# 写回数据文件 — 保留现有字段(现金、总资产等)不丢
try:
existing_pf = json.load(open(PORTFOLIO_PATH))
except Exception:
existing_pf = {}
existing_pf["holdings"] = pf.get("holdings", [])
existing_pf["updated_at"] = datetime.now().strftime('%Y-%m-%d %H:%M')
json.dump(existing_pf, open(PORTFOLIO_PATH, "w"), ensure_ascii=False, indent=2)
json.dump(wl, open(WATCHLIST_PATH, "w"), ensure_ascii=False, indent=2)
# 写 decisions.json