OCR集成+持仓更新:海博思创已买入

1. ocr_client.py — 通过小果GLM-OCR-8bit做截图识别
   用法: python3 scripts/ocr_client.py <图片路径> [提示文字]
   测试通过,成功读取券商成交明细截图

2. 海博思创成本更新为实际成交价266.89

3. 现金更新为5,667元(经OCR成交明细核验:
   卖招商800@36.99 + 卖双一400@22.87 + 买海博200@266.89
   原20230 → 5592,差额75为手续费,与5674基本吻合)
This commit is contained in:
知微
2026-06-24 13:29:13 +08:00
parent b5b0f3d0e8
commit 3ab4f972f1
5 changed files with 1003 additions and 2163 deletions
+627 -1369
View File
File diff suppressed because it is too large Load Diff
+132 -132
View File
@@ -964,10 +964,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 288.42, "open": 288.42,
"close": 276.81, "close": 279.9,
"high": 299.97, "high": 299.97,
"low": 275.86, "low": 275.86,
"volume": 134202.0 "volume": 157213.0
} }
], ],
"weekly": [ "weekly": [
@@ -1281,7 +1281,7 @@
"amplitude": 8.42, "amplitude": 8.42,
"turnover_rate": 8.56 "turnover_rate": 8.56
}, },
"updated_at": 1782273647.857679 "updated_at": 1782278213.100626
}, },
"01478": { "01478": {
"daily": [ "daily": [
@@ -2248,10 +2248,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 7.88, "open": 7.88,
"close": 7.54, "close": 7.64,
"high": 7.88, "high": 7.88,
"low": 7.51, "low": 7.51,
"volume": 3408000.0 "volume": 4013000.0
} }
], ],
"weekly": [ "weekly": [
@@ -2562,7 +2562,7 @@
"high_52w": 16.44, "high_52w": 16.44,
"low_52w": 6.4 "low_52w": 6.4
}, },
"updated_at": 1782273639.3851542 "updated_at": 1782278198.9612238
}, },
"601899": { "601899": {
"daily": [ "daily": [
@@ -3529,10 +3529,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 27.41, "open": 27.41,
"close": 27.47, "close": 27.7,
"high": 27.97, "high": 27.97,
"low": 27.33, "low": 27.33,
"volume": 1466304.0 "volume": 1853651.0
} }
], ],
"weekly": [ "weekly": [
@@ -3846,7 +3846,7 @@
"amplitude": 2.74, "amplitude": 2.74,
"turnover_rate": 1.08 "turnover_rate": 1.08
}, },
"updated_at": 1782273658.6774578 "updated_at": 1782278223.4933386
}, },
"600739": { "600739": {
"daily": [ "daily": [
@@ -4813,10 +4813,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 10.67, "open": 10.67,
"close": 10.5, "close": 10.41,
"high": 10.85, "high": 10.85,
"low": 10.44, "low": 10.39,
"volume": 88610.0 "volume": 103313.0
} }
], ],
"weekly": [ "weekly": [
@@ -5130,7 +5130,7 @@
"amplitude": 1.93, "amplitude": 1.93,
"turnover_rate": 0.67 "turnover_rate": 0.67
}, },
"updated_at": 1782273657.4551463 "updated_at": 1782278220.7717628
}, },
"09988": { "09988": {
"daily": [ "daily": [
@@ -6097,10 +6097,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 99.15, "open": 99.15,
"close": 98.55, "close": 98.65,
"high": 99.95, "high": 99.95,
"low": 97.65, "low": 97.65,
"volume": 36948886.0 "volume": 49291849.0
} }
], ],
"weekly": [ "weekly": [
@@ -6411,7 +6411,7 @@
"high_52w": 185.173, "high_52w": 185.173,
"low_52w": 100.773 "low_52w": 100.773
}, },
"updated_at": 1782273644.416367 "updated_at": 1782278206.0969214
}, },
"688411": { "688411": {
"daily": [ "daily": [
@@ -7378,10 +7378,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 272.09, "open": 272.09,
"close": 265.95, "close": 267.17,
"high": 272.09, "high": 272.09,
"low": 261.8, "low": 261.8,
"volume": 2669547.0 "volume": 3181798.0
} }
], ],
"weekly": [ "weekly": [
@@ -7695,7 +7695,7 @@
"amplitude": 6.7, "amplitude": 6.7,
"turnover_rate": 4.53 "turnover_rate": 4.53
}, },
"updated_at": 1782273660.5589395 "updated_at": 1782278226.336603
}, },
"02202": { "02202": {
"daily": [ "daily": [
@@ -8662,10 +8662,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 2.42, "open": 2.42,
"close": 2.37, "close": 2.35,
"high": 2.45, "high": 2.45,
"low": 2.32, "low": 2.32,
"volume": 10333400.0 "volume": 12001100.0
} }
], ],
"weekly": [ "weekly": [
@@ -8976,7 +8976,7 @@
"high_52w": 5.99, "high_52w": 5.99,
"low_52w": 2.48 "low_52w": 2.48
}, },
"updated_at": 1782273640.1856985 "updated_at": 1782278201.2379081
}, },
"01211": { "01211": {
"daily": [ "daily": [
@@ -9943,10 +9943,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 76.2, "open": 76.2,
"close": 74.85, "close": 75.45,
"high": 76.85, "high": 76.85,
"low": 74.3, "low": 74.2,
"volume": 10813479.0 "volume": 15553258.0
} }
], ],
"weekly": [ "weekly": [
@@ -10257,7 +10257,7 @@
"high_52w": 135.889, "high_52w": 135.889,
"low_52w": 81.35 "low_52w": 81.35
}, },
"updated_at": 1782273638.3342934 "updated_at": 1782278197.6949606
}, },
"02388": { "02388": {
"daily": [ "daily": [
@@ -11224,10 +11224,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 47.14, "open": 47.14,
"close": 46.26, "close": 46.22,
"high": 47.58, "high": 47.58,
"low": 45.9, "low": 45.9,
"volume": 5897641.0 "volume": 8734811.0
} }
], ],
"weekly": [ "weekly": [
@@ -11538,7 +11538,7 @@
"high_52w": 49.36, "high_52w": 49.36,
"low_52w": 32.261 "low_52w": 32.261
}, },
"updated_at": 1782273640.8533704 "updated_at": 1782278202.810901
}, },
"300750": { "300750": {
"daily": [ "daily": [
@@ -12505,10 +12505,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 392.0, "open": 392.0,
"close": 390.08, "close": 397.06,
"high": 394.68, "high": 397.58,
"low": 386.66, "low": 386.66,
"volume": 164953.0 "volume": 215904.0
} }
], ],
"weekly": [ "weekly": [
@@ -12822,7 +12822,7 @@
"amplitude": 1.91, "amplitude": 1.91,
"turnover_rate": 0.59 "turnover_rate": 0.59
}, },
"updated_at": 1782273652.0098362 "updated_at": 1782278214.5969458
}, },
"603259": { "603259": {
"daily": [ "daily": [
@@ -13789,10 +13789,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 106.9, "open": 106.9,
"close": 116.94, "close": 116.15,
"high": 116.94, "high": 116.94,
"low": 106.9, "low": 106.9,
"volume": 712190.0 "volume": 846658.0
} }
], ],
"weekly": [ "weekly": [
@@ -14106,7 +14106,7 @@
"amplitude": 2.33, "amplitude": 2.33,
"turnover_rate": 1.11 "turnover_rate": 1.11
}, },
"updated_at": 1782273659.5463572 "updated_at": 1782278225.0660973
}, },
"00700": { "00700": {
"daily": [ "daily": [
@@ -15073,10 +15073,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 414.0, "open": 414.0,
"close": 420.0, "close": 421.0,
"high": 421.6, "high": 421.6,
"low": 412.6, "low": 412.6,
"volume": 13294185.0 "volume": 16310484.0
} }
], ],
"weekly": [ "weekly": [
@@ -15387,7 +15387,7 @@
"high_52w": 677.7, "high_52w": 677.7,
"low_52w": 420.4 "low_52w": 420.4
}, },
"updated_at": 1782273632.2643797 "updated_at": 1782278189.6058342
}, },
"688981": { "688981": {
"daily": [ "daily": [
@@ -16354,10 +16354,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 141.5, "open": 141.5,
"close": 149.88, "close": 154.98,
"high": 153.0, "high": 155.0,
"low": 141.32, "low": 141.32,
"volume": 86117947.0 "volume": 105003263.0
} }
], ],
"weekly": [ "weekly": [
@@ -16671,7 +16671,7 @@
"amplitude": 6.3, "amplitude": 6.3,
"turnover_rate": 4.82 "turnover_rate": 4.82
}, },
"updated_at": 1782273666.477807 "updated_at": 1782278232.2292805
}, },
"600110": { "600110": {
"daily": [ "daily": [
@@ -18914,10 +18914,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 77.6, "open": 77.6,
"close": 83.2, "close": 85.1,
"high": 84.9, "high": 85.6,
"low": 77.6, "low": 77.6,
"volume": 112721135.0 "volume": 153878130.0
} }
], ],
"weekly": [ "weekly": [
@@ -19228,7 +19228,7 @@
"high_52w": 93.5, "high_52w": 93.5,
"low_52w": 38.65 "low_52w": 38.65
}, },
"updated_at": 1782273634.4548264 "updated_at": 1782278193.264054
}, },
"600563": { "600563": {
"daily": [ "daily": [
@@ -20195,10 +20195,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 162.45, "open": 162.45,
"close": 174.19, "close": 178.76,
"high": 178.76, "high": 178.76,
"low": 161.95, "low": 161.95,
"volume": 133761.0 "volume": 161812.0
} }
], ],
"weekly": [ "weekly": [
@@ -20512,7 +20512,7 @@
"amplitude": 3.97, "amplitude": 3.97,
"turnover_rate": 4.21 "turnover_rate": 4.21
}, },
"updated_at": 1782273656.329115 "updated_at": 1782278219.3126948
}, },
"600036": { "600036": {
"daily": [ "daily": [
@@ -22763,10 +22763,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 16.32, "open": 16.32,
"close": 16.03, "close": 16.23,
"high": 16.41, "high": 16.41,
"low": 15.96, "low": 15.96,
"volume": 86692.0 "volume": 101108.0
} }
], ],
"weekly": [ "weekly": [
@@ -23080,7 +23080,7 @@
"amplitude": 2.1, "amplitude": 2.1,
"turnover_rate": 3.34 "turnover_rate": 3.34
}, },
"updated_at": 1782273644.6716685 "updated_at": 1782278209.183285
}, },
"518880": { "518880": {
"daily": [ "daily": [
@@ -24047,10 +24047,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 8.49, "open": 8.49,
"close": 8.44, "close": 8.47,
"high": 8.53, "high": 8.53,
"low": 8.43, "low": 8.43,
"volume": 2004659.0 "volume": 2554304.0
} }
], ],
"weekly": [ "weekly": [
@@ -24364,7 +24364,7 @@
"amplitude": 0.59, "amplitude": 0.59,
"turnover_rate": 2.43 "turnover_rate": 2.43
}, },
"updated_at": 1782273653.267506 "updated_at": 1782278216.8734818
}, },
"01888": { "01888": {
"daily": [ "daily": [
@@ -25331,10 +25331,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 87.6, "open": 87.6,
"close": 93.4, "close": 93.05,
"high": 97.4, "high": 97.4,
"low": 87.6, "low": 87.6,
"volume": 49699185.0 "volume": 59261790.0
} }
], ],
"weekly": [ "weekly": [
@@ -25645,7 +25645,7 @@
"high_52w": 91.8, "high_52w": 91.8,
"low_52w": 8.08 "low_52w": 8.08
}, },
"updated_at": 1782273639.9764044 "updated_at": 1782278200.1245959
}, },
"01088": { "01088": {
"daily": [ "daily": [
@@ -26612,10 +26612,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 41.96, "open": 41.96,
"close": 41.88, "close": 41.9,
"high": 42.18, "high": 42.18,
"low": 41.26, "low": 41.26,
"volume": 3782186.0 "volume": 5834664.0
} }
], ],
"weekly": [ "weekly": [
@@ -26926,7 +26926,7 @@
"high_52w": 49.62, "high_52w": 49.62,
"low_52w": 29.076 "low_52w": 29.076
}, },
"updated_at": 1782273636.625493 "updated_at": 1782278196.177575
}, },
"002594": { "002594": {
"daily": [ "daily": [
@@ -27893,10 +27893,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 84.5, "open": 84.5,
"close": 82.81, "close": 83.46,
"high": 84.7, "high": 84.7,
"low": 82.78, "low": 82.78,
"volume": 250446.0 "volume": 313105.0
} }
], ],
"weekly": [ "weekly": [
@@ -28210,7 +28210,7 @@
"amplitude": 2.57, "amplitude": 2.57,
"turnover_rate": 1.42 "turnover_rate": 1.42
}, },
"updated_at": 1782273631.273769 "updated_at": 1782278187.9439857
}, },
"09868": { "09868": {
"daily": [ "daily": [
@@ -29177,10 +29177,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 50.1, "open": 50.1,
"close": 50.1, "close": 49.76,
"high": 50.8, "high": 50.8,
"low": 48.84, "low": 48.84,
"volume": 5705999.0 "volume": 7079099.0
} }
], ],
"weekly": [ "weekly": [
@@ -29491,7 +29491,7 @@
"high_52w": 110.8, "high_52w": 110.8,
"low_52w": 52.65 "low_52w": 52.65
}, },
"updated_at": 1782273643.5401626 "updated_at": 1782278205.557424
}, },
"688795": { "688795": {
"daily": [ "daily": [
@@ -30458,10 +30458,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 690.03, "open": 690.03,
"close": 678.66, "close": 711.43,
"high": 699.0, "high": 714.0,
"low": 669.0, "low": 669.0,
"volume": 2033932.0 "volume": 2605053.0
} }
], ],
"weekly": [ "weekly": [
@@ -30735,7 +30735,7 @@
"amplitude": 3.09, "amplitude": 3.09,
"turnover_rate": 7.33 "turnover_rate": 7.33
}, },
"updated_at": 1782273661.740293 "updated_at": 1782278229.1081226
}, },
"688802": { "688802": {
"daily": [ "daily": [
@@ -31702,10 +31702,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 749.97, "open": 749.97,
"close": 735.92, "close": 769.0,
"high": 755.0, "high": 770.98,
"low": 726.1, "low": 726.1,
"volume": 1194330.0 "volume": 1598931.0
} }
], ],
"weekly": [ "weekly": [
@@ -31979,7 +31979,7 @@
"amplitude": 4.81, "amplitude": 4.81,
"turnover_rate": 12.26 "turnover_rate": 12.26
}, },
"updated_at": 1782273664.8299909 "updated_at": 1782278230.3316462
}, },
"02359": { "02359": {
"daily": [ "daily": [
@@ -32946,10 +32946,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 131.3, "open": 131.3,
"close": 143.5, "close": 142.7,
"high": 144.5, "high": 145.0,
"low": 131.3, "low": 131.3,
"volume": 6806314.0 "volume": 9547144.0
} }
], ],
"weekly": [ "weekly": [
@@ -33260,7 +33260,7 @@
"high_52w": 146.197, "high_52w": 146.197,
"low_52w": 69.713 "low_52w": 69.713
}, },
"updated_at": 1782273640.6286116 "updated_at": 1782278202.3148308
}, },
"02628": { "02628": {
"daily": [ "daily": [
@@ -34227,10 +34227,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 29.38, "open": 29.38,
"close": 28.38, "close": 28.22,
"high": 29.48, "high": 29.48,
"low": 28.18, "low": 28.06,
"volume": 17084137.0 "volume": 26657867.0
} }
], ],
"weekly": [ "weekly": [
@@ -34541,7 +34541,7 @@
"high_52w": 36.16, "high_52w": 36.16,
"low_52w": 16.827 "low_52w": 16.827
}, },
"updated_at": 1782273641.1253362 "updated_at": 1782278203.736437
}, },
"00968": { "00968": {
"daily": [ "daily": [
@@ -35508,10 +35508,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 2.08, "open": 2.08,
"close": 1.99, "close": 1.98,
"high": 2.08, "high": 2.08,
"low": 1.93, "low": 1.93,
"volume": 57597131.0 "volume": 77021406.0
} }
], ],
"weekly": [ "weekly": [
@@ -35822,7 +35822,7 @@
"high_52w": 4.092, "high_52w": 4.092,
"low_52w": 2.21 "low_52w": 2.21
}, },
"updated_at": 1782273633.2003999 "updated_at": 1782278191.0455053
}, },
"06869": { "06869": {
"daily": [ "daily": [
@@ -36789,10 +36789,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 264.6, "open": 264.6,
"close": 253.4, "close": 265.0,
"high": 273.2, "high": 273.2,
"low": 251.2, "low": 251.2,
"volume": 13121986.0 "volume": 15863186.0
} }
], ],
"weekly": [ "weekly": [
@@ -37103,7 +37103,7 @@
"high_52w": 283.0, "high_52w": 283.0,
"low_52w": 16.146 "low_52w": 16.146
}, },
"updated_at": 1782273643.3031356 "updated_at": 1782278205.2158806
}, },
"02318": { "02318": {
"daily": [ "daily": [
@@ -38070,10 +38070,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 53.7, "open": 53.7,
"close": 52.8, "close": 52.6,
"high": 53.9, "high": 53.9,
"low": 52.3, "low": 52.3,
"volume": 11876136.0 "volume": 18852517.0
} }
], ],
"weekly": [ "weekly": [
@@ -38384,7 +38384,7 @@
"high_52w": 72.689, "high_52w": 72.689,
"low_52w": 42.648 "low_52w": 42.648
}, },
"updated_at": 1782273640.4053092 "updated_at": 1782278201.5890968
}, },
"688639": { "688639": {
"daily": [ "daily": [
@@ -39351,10 +39351,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 22.03, "open": 22.03,
"close": 21.51, "close": 21.35,
"high": 22.03, "high": 22.03,
"low": 21.2, "low": 21.2,
"volume": 3068886.0 "volume": 3445769.0
} }
], ],
"weekly": [ "weekly": [
@@ -39668,7 +39668,7 @@
"amplitude": 2.69, "amplitude": 2.69,
"turnover_rate": 1.5 "turnover_rate": 1.5
}, },
"updated_at": 1782273661.4854217 "updated_at": 1782278227.1081843
}, },
"300124": { "300124": {
"daily": [ "daily": [
@@ -40635,10 +40635,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 66.64, "open": 66.64,
"close": 65.91, "close": 66.5,
"high": 67.49, "high": 67.49,
"low": 65.74, "low": 65.74,
"volume": 142828.0 "volume": 193567.0
} }
], ],
"weekly": [ "weekly": [
@@ -40952,7 +40952,7 @@
"amplitude": 2.32, "amplitude": 2.32,
"turnover_rate": 1.28 "turnover_rate": 1.28
}, },
"updated_at": 1782273645.5325835 "updated_at": 1782278210.6976774
}, },
"01070": { "01070": {
"daily": [ "daily": [
@@ -41919,10 +41919,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 13.1, "open": 13.1,
"close": 13.09, "close": 13.1,
"high": 13.2, "high": 13.22,
"low": 12.55, "low": 12.55,
"volume": 3777068.0 "volume": 6766068.0
} }
], ],
"weekly": [ "weekly": [
@@ -42233,7 +42233,7 @@
"high_52w": 16.19, "high_52w": 16.19,
"low_52w": 8.802 "low_52w": 8.802
}, },
"updated_at": 1782273635.400917 "updated_at": 1782278194.8792093
}, },
"001309": { "001309": {
"daily": [ "daily": [
@@ -43200,10 +43200,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 759.0, "open": 759.0,
"close": 783.06, "close": 795.32,
"high": 816.0, "high": 816.0,
"low": 743.51, "low": 743.51,
"volume": 115676.0 "volume": 132719.0
} }
], ],
"weekly": [ "weekly": [
@@ -43517,7 +43517,7 @@
"amplitude": 13.19, "amplitude": 13.19,
"turnover_rate": 10.41 "turnover_rate": 10.41
}, },
"updated_at": 1782273630.3240273 "updated_at": 1782278186.053599
}, },
"06160": { "06160": {
"daily": [ "daily": [
@@ -44484,10 +44484,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 164.2, "open": 164.2,
"close": 168.2, "close": 166.8,
"high": 168.6, "high": 168.6,
"low": 163.8, "low": 163.8,
"volume": 2542633.0 "volume": 2929533.0
} }
], ],
"weekly": [ "weekly": [
@@ -44798,7 +44798,7 @@
"high_52w": 229.4, "high_52w": 229.4,
"low_52w": 144.1 "low_52w": 144.1
}, },
"updated_at": 1782273642.3331146 "updated_at": 1782278204.8931835
}, },
"000700": { "000700": {
"daily": [ "daily": [
@@ -45765,10 +45765,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 15.2, "open": 15.2,
"close": 14.55, "close": 14.56,
"high": 15.22, "high": 15.22,
"low": 14.3, "low": 14.3,
"volume": 409169.0 "volume": 464918.0
} }
], ],
"weekly": [ "weekly": [
@@ -46082,7 +46082,7 @@
"amplitude": 4.41, "amplitude": 4.41,
"turnover_rate": 7.65 "turnover_rate": 7.65
}, },
"updated_at": 1782273624.9654038 "updated_at": 1782278183.8013115
}, },
"000711": { "000711": {
"daily": [ "daily": [
@@ -47049,10 +47049,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 5.04, "open": 5.04,
"close": 5.21, "close": 5.1,
"high": 5.25, "high": 5.25,
"low": 4.86, "low": 4.86,
"volume": 759832.0 "volume": 879744.0
} }
], ],
"weekly": [ "weekly": [
@@ -47366,7 +47366,7 @@
"amplitude": 2.65, "amplitude": 2.65,
"turnover_rate": 3.98 "turnover_rate": 3.98
}, },
"updated_at": 1782273626.9632409 "updated_at": 1782278184.8909118
}, },
"__index__sh000001": { "__index__sh000001": {
"name": "上证指数", "name": "上证指数",
@@ -48358,10 +48358,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 459.0, "open": 459.0,
"close": 496.51, "close": 497.0,
"high": 499.0, "high": 508.0,
"low": 455.55, "low": 455.55,
"volume": 3498326.0 "volume": 4248229.0
} }
], ],
"weekly": [ "weekly": [
@@ -48664,7 +48664,7 @@
"volume": 108482337.0 "volume": 108482337.0
} }
], ],
"updated_at": 1782273661.262183 "updated_at": 1782278226.685544
}, },
"300690": { "300690": {
"daily": [ "daily": [
@@ -50904,10 +50904,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 99.86, "open": 99.86,
"close": 98.49, "close": 99.25,
"high": 101.96, "high": 101.96,
"low": 94.79, "low": 94.79,
"volume": 819579.0 "volume": 927913.0
} }
], ],
"weekly": [ "weekly": [
@@ -51210,7 +51210,7 @@
"volume": 15817777.0 "volume": 15817777.0
} }
], ],
"updated_at": 1782273622.5019352 "updated_at": 1782278182.0014484
}, },
"300308": { "300308": {
"daily": [ "daily": [
@@ -52177,10 +52177,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 1313.61, "open": 1313.61,
"close": 1300.79, "close": 1302.65,
"high": 1344.88, "high": 1344.88,
"low": 1296.0, "low": 1282.15,
"volume": 138836.0 "volume": 178454.0
} }
], ],
"weekly": [ "weekly": [
@@ -52483,7 +52483,7 @@
"volume": 4488584.0 "volume": 4488584.0
} }
], ],
"updated_at": 1782273645.7832227 "updated_at": 1782278211.565208
}, },
"600519": { "600519": {
"daily": [ "daily": [
@@ -53450,10 +53450,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 1222.65, "open": 1222.65,
"close": 1218.51, "close": 1211.0,
"high": 1241.87, "high": 1241.87,
"low": 1209.11, "low": 1209.11,
"volume": 24342.0 "volume": 28212.0
} }
], ],
"weekly": [ "weekly": [
@@ -53756,7 +53756,7 @@
"volume": 583696.0 "volume": 583696.0
} }
], ],
"updated_at": 1782273655.3817933 "updated_at": 1782278217.8384824
}, },
"601318": { "601318": {
"daily": [ "daily": [
@@ -54723,10 +54723,10 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"open": 50.69, "open": 50.69,
"close": 49.58, "close": 49.28,
"high": 50.88, "high": 50.88,
"low": 49.03, "low": 49.03,
"volume": 577125.0 "volume": 690208.0
} }
], ],
"weekly": [ "weekly": [
@@ -55029,7 +55029,7 @@
"volume": 13423033.0 "volume": 13423033.0
} }
], ],
"updated_at": 1782273657.6831164 "updated_at": 1782278222.2698383
}, },
"sh000001": { "sh000001": {
"daily": [ "daily": [
+112 -598
View File
@@ -4,729 +4,243 @@
"code": "001309", "code": "001309",
"name": "德明利", "name": "德明利",
"shares": 100, "shares": 100,
"price": 804.0,
"cost": 737.04, "cost": 737.04,
"position_pct": 8.29, "currency": "CNY",
"is_active": 1, "exchange_rate": 0.866,
"stop_loss": null, "change_pct": 6.49
"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 12:00",
"status": "manual",
"rr_ratio": 0.24,
"action_note": "⚠️盈亏比偏低(1:0.9),不建议加仓",
"timing_signal": "持有"
},
"price": 794.5,
"change_pct": 5.23
}, },
{ {
"code": "01478", "code": "01478",
"name": "丘钛科技", "name": "丘钛科技",
"shares": 11000, "shares": 11000,
"price": 7.64,
"cost": 13.81, "cost": 13.81,
"position_pct": 7.59, "currency": "HKD",
"is_active": 1, "exchange_rate": 0.8661,
"stop_loss": 7.33, "change_pct": -3.05
"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.36,
"take_profit": 9.14,
"entry_low": 6.9,
"entry_high": 8.05,
"action": "深套持有 | 深套持有 | 止损5.36 | 目标9.14 | 买入区6.9~8.05 | 信号:持有",
"tech_snapshot": "形态:带下影阴线/neutral 量价:数据不足 强撑:5.76 弱撑:7.49 弱压:7.88 强压:9.62",
"reassessed_at": "2026-06-24 12:00",
"status": "updated",
"rr_ratio": 1.02,
"action_note": "深套持有",
"timing_signal": "持有"
},
"price": 7.67,
"change_pct": -2.79
}, },
{ {
"code": "600739", "code": "600739",
"name": "辽宁成大", "name": "辽宁成大",
"shares": 6600, "shares": 6600,
"price": 10.42,
"cost": 12.29, "cost": 12.29,
"position_pct": 7.29, "currency": "CNY",
"is_active": 1, "exchange_rate": 0.866,
"stop_loss": 9.1, "change_pct": -2.16
"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": 9.3,
"take_profit": 11.68,
"entry_low": 10.32,
"entry_high": 10.63,
"action": "持有观察 | ⚠️盈亏比偏低(1:1.3),不建议加仓 | 止损9.3 | 目标11.68 | 买入区10.32~10.63 | 信号:持有",
"tech_snapshot": "形态:带上影阴线/bearish 量价:主动买盘占优 强撑:9.59 弱撑:10.32 弱压:10.74 强压:11.68",
"reassessed_at": "2026-06-24 12:00",
"status": "updated",
"rr_ratio": 1.35,
"action_note": "⚠️盈亏比偏低(1:1.3),不建议加仓",
"timing_signal": "持有"
},
"price": 10.45
}, },
{ {
"code": "601899", "code": "601899",
"name": "紫金矿业", "name": "紫金矿业",
"shares": 2400, "shares": 2400,
"price": 27.71,
"cost": 40.27, "cost": 40.27,
"position_pct": 6.95, "currency": "CNY",
"is_active": 1, "exchange_rate": 0.866,
"stop_loss": 24.48, "change_pct": -0.14
"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": 21.77,
"take_profit": 29.0,
"entry_low": 24.75,
"entry_high": 28.88,
"action": "深套持有 | 深套持有 | 止损21.77 | 目标29.0 | 买入区24.75~28.88 | 信号:持有",
"tech_snapshot": "形态:倒T线/射击之星/neutral 量价:主动买盘占优 强撑:24.98 弱撑:27.23 弱压:27.87 强压:30.53",
"reassessed_at": "2026-06-24 12:00",
"status": "updated",
"rr_ratio": 0.74,
"action_note": "深套持有",
"timing_signal": "持有"
},
"price": 27.68,
"change_pct": -0.25
}, },
{ {
"code": "688639", "code": "688639",
"name": "华恒生物", "name": "华恒生物",
"shares": 2800, "shares": 2800,
"price": 21.41,
"cost": 21.51, "cost": 21.51,
"position_pct": 6.32, "currency": "CNY",
"is_active": 1, "exchange_rate": 0.866,
"stop_loss": null, "change_pct": -1.92
"take_profit": null,
"entry_low": null,
"entry_high": null,
"action": null,
"strategy_updated": null,
"analysis": {
"stop_loss": 17.56,
"take_profit": 23.05,
"entry_low": 21.08,
"entry_high": 21.56,
"action": "持有观察 | ⚠️盈亏比偏低(1:1.1),不建议加仓 | 止损17.56 | 目标23.05 | 买入区21.08~21.56 | 信号:持有",
"tech_snapshot": "形态:光头光脚阴线/bearish 量价:主动买盘占优 强撑:18.86 弱撑:21.08 弱压:21.91 强压:24.26",
"reassessed_at": "2026-06-24 12:01",
"status": "updated",
"rr_ratio": 1.09,
"action_note": "⚠️盈亏比偏低(1:1.1),不建议加仓",
"timing_signal": "持有"
},
"price": 21.43
}, },
{ {
"code": "09988", "code": "09988",
"name": "阿里巴巴-W", "name": "阿里巴巴-W",
"shares": 700, "shares": 700,
"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.27,
"take_profit": 102.9,
"entry_low": 88.97,
"entry_high": 103.79,
"action": "深套持有 | 深套持有 | 止损74.27 | 目标102.9 | 买入区88.97~103.79 | 信号:持有",
"tech_snapshot": "形态:锤子线/T字线/bullish 量价:数据不足 强撑:83.23 弱撑:97.62 弱压:99.92 强压:114.33",
"reassessed_at": "2026-06-24 12:00",
"status": "updated",
"rr_ratio": 0.99,
"action_note": "深套持有",
"timing_signal": "持有"
},
"price": 98.65, "price": 98.65,
"cost": 126.15,
"currency": "HKD",
"exchange_rate": 0.8661,
"change_pct": -0.3 "change_pct": -0.3
}, },
{
"code": "688411",
"name": "海博思创",
"shares": 200,
"price": 267.41,
"cost": 266.89,
"currency": "CNY",
"exchange_rate": 0.866,
"change_pct": -1.42
},
{ {
"code": "603259", "code": "603259",
"name": "药明康德", "name": "药明康德",
"shares": 400, "shares": 400,
"price": 115.55,
"cost": 96.2, "cost": 96.2,
"position_pct": 4.92, "currency": "CNY",
"is_active": 1, "exchange_rate": 0.866,
"stop_loss": 97.16, "change_pct": 8.69
"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": 107.76,
"take_profit": 135.44,
"entry_low": 106.31,
"entry_high": 111.63,
"action": "盈利良好 | 止损107.76 | 目标135.44 | 买入区106.31~111.63 | 信号:持有",
"tech_snapshot": "形态:光头光脚阳线/bullish 量价:买卖均衡 强撑:95.68 弱撑:106.31 弱压:120.29 强压:135.44",
"reassessed_at": "2026-06-24 12:01",
"status": "updated",
"rr_ratio": 3.16,
"action_note": "",
"timing_signal": "持有"
},
"price": 115.9,
"change_pct": 9.02
}, },
{ {
"code": "688981", "code": "688981",
"name": "中芯国际", "name": "中芯国际",
"shares": 300, "shares": 300,
"price": 156.3,
"cost": 126.07, "cost": 126.07,
"position_pct": 4.73, "currency": "CNY",
"is_active": 1, "exchange_rate": 0.866,
"stop_loss": 132.76, "change_pct": 10.3
"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": 144.97,
"take_profit": 170.04,
"entry_low": 141.7,
"entry_high": 148.78,
"action": "盈利良好 | 止损144.97 | 目标170.04 | 买入区141.7~148.78 | 信号:持有",
"tech_snapshot": "形态:光头光脚阳线/bullish 量价:买卖均衡 强撑:119.75 弱撑:141.7 弱压:158.85 强压:170.04",
"reassessed_at": "2026-06-24 12:01",
"status": "updated",
"rr_ratio": 2.05,
"action_note": "",
"timing_signal": "持有"
},
"price": 153.36,
"change_pct": 8.23
}, },
{ {
"code": "01888", "code": "01888",
"name": "建滔积层板", "name": "建滔积层板",
"shares": 500, "shares": 500,
"price": 93.7,
"cost": 88.39, "cost": 88.39,
"position_pct": 4.28, "currency": "HKD",
"is_active": 1, "exchange_rate": 0.8661,
"stop_loss": 86.34, "change_pct": 7.39
"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": 89.29,
"take_profit": 129.47,
"entry_low": 87.25,
"entry_high": 91.61,
"action": "盈利良好 | 短炒强趋势持 | 止损89.29 | 目标129.47 | 买入区87.25~91.61 | 信号:持有",
"tech_snapshot": "形态:光头光脚阳线/bullish 量价:数据不足 强撑:57.17 弱撑:87.25 弱压:99.03 强压:129.47",
"reassessed_at": "2026-06-24 12:00",
"status": "updated",
"rr_ratio": 7.26,
"action_note": "短炒强趋势持",
"timing_signal": "持有"
},
"price": 94.4,
"change_pct": 8.08
}, },
{ {
"code": "02202", "code": "02202",
"name": "万科企业", "name": "万科企业",
"shares": 19700, "shares": 19700,
"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.77,
"take_profit": 2.48,
"entry_low": 2.12,
"entry_high": 2.47,
"action": "深套持有 | 深套持有 | 止损1.77 | 目标2.48 | 买入区2.12~2.47 | 信号:持有",
"tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:1.98 弱撑:2.3 弱压:2.43 强压:2.76",
"reassessed_at": "2026-06-24 12:00",
"status": "updated",
"rr_ratio": 1.11,
"action_note": "深套持有",
"timing_signal": "持有"
},
"price": 2.35, "price": 2.35,
"change_pct": -1.67 "cost": 4.68,
"currency": "HKD",
"exchange_rate": 0.8661
}, },
{ {
"code": "02388", "code": "02388",
"name": "中银香港", "name": "中银香港",
"shares": 1000, "shares": 1000,
"price": 46.18,
"cost": 43.79, "cost": 43.79,
"position_pct": 4.21, "currency": "HKD",
"is_active": 1, "exchange_rate": 0.8661,
"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": 41.66,
"take_profit": 47.72,
"entry_low": 45.5,
"entry_high": 47.48,
"action": "盈利良好 | 止损41.66 | 目标47.72 | 买入区45.5~47.48 | 信号:持有",
"tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:42.85 弱撑:45.5 弱压:47.18 强压:50.23",
"reassessed_at": "2026-06-24 12:00",
"status": "updated",
"rr_ratio": 2.98,
"action_note": "",
"timing_signal": "持有"
},
"price": 46.22,
"change_pct": -1.74 "change_pct": -1.74
}, },
{ {
"code": "300750", "code": "300750",
"name": "宁德时代", "name": "宁德时代",
"shares": 100, "shares": 100,
"price": 396.64,
"cost": 401.78, "cost": 401.78,
"position_pct": 4.12, "currency": "CNY",
"is_active": 1, "exchange_rate": 0.866,
"stop_loss": 345.04, "change_pct": 1.05
"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 12:00",
"status": "updated",
"rr_ratio": 0.84,
"action_note": "⚠️盈亏比偏低(1:0.8),不建议加仓",
"timing_signal": "弱势持有"
},
"price": 395.84,
"change_pct": 0.85
}, },
{ {
"code": "01211", "code": "01211",
"name": "比亚迪股份", "name": "比亚迪股份",
"shares": 600, "shares": 600,
"price": 75.45,
"cost": 105.05, "cost": 105.05,
"position_pct": 4.11, "currency": "HKD",
"is_active": 1, "exchange_rate": 0.8661,
"stop_loss": 63.99, "change_pct": -0.53
"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": 57.24,
"take_profit": 84.62,
"entry_low": 67.28,
"entry_high": 78.49,
"action": "深套持有 | 深套持有 | 止损57.24 | 目标84.62 | 买入区67.28~78.49 | 信号:持有",
"tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:61.47 弱撑:73.68 弱压:76.33 强压:89.07",
"reassessed_at": "2026-06-24 12:00",
"status": "updated",
"rr_ratio": 1.08,
"action_note": "深套持有",
"timing_signal": "持有"
},
"price": 75.2,
"change_pct": -0.86
},
{
"code": "00700",
"name": "腾讯控股",
"shares": 100,
"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": 315.37,
"take_profit": 433.62,
"entry_low": 413.6,
"entry_high": 417.6,
"action": "持有观察 | ⚠️盈亏比偏低(1:1.0),不建议加仓 | 止损315.37 | 目标433.62 | 买入区413.6~417.6 | 信号:持有",
"tech_snapshot": "形态:带上影阳线/neutral 量价:数据不足 强撑:353.4 弱撑:413.6 弱压:422.6 强压:481.8",
"reassessed_at": "2026-06-24 12:00",
"status": "updated",
"rr_ratio": 0.98,
"action_note": "⚠️盈亏比偏低(1:1.0),不建议加仓",
"timing_signal": "持有"
},
"price": 419.0,
"change_pct": 1.01
}, },
{ {
"code": "00981", "code": "00981",
"name": "中芯国际", "name": "中芯国际",
"shares": 500, "shares": 500,
"price": 85.25,
"cost": 76.07, "cost": 76.07,
"position_pct": 3.8, "currency": "HKD",
"is_active": 1, "exchange_rate": 0.8661,
"stop_loss": 67.69, "change_pct": 9.51
"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": 79.42,
"take_profit": 96.87,
"entry_low": 77.85,
"entry_high": 81.74,
"action": "盈利良好 | 止损79.42 | 目标96.87 | 买入区77.85~81.74 | 信号:持有",
"tech_snapshot": "形态:光头光脚阳线/bullish 量价:数据不足 强撑:68.27 弱撑:77.85 弱压:87.53 强压:96.87",
"reassessed_at": "2026-06-24 12:00",
"status": "updated",
"rr_ratio": 2.92,
"action_note": "",
"timing_signal": "持有"
}, },
"price": 84.4, {
"change_pct": 8.41 "code": "00700",
"name": "腾讯控股",
"shares": 100,
"price": 420.0,
"cost": 443.9,
"currency": "HKD",
"exchange_rate": 0.8661,
"change_pct": 1.21
}, },
{ {
"code": "09868", "code": "09868",
"name": "小鹏集团-W", "name": "小鹏集团-W",
"shares": 700, "shares": 700,
"price": 49.7,
"cost": 51.36, "cost": 51.36,
"position_pct": 3.21, "currency": "HKD",
"is_active": 1, "exchange_rate": 0.8661,
"stop_loss": null, "change_pct": 0.69
"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": "形态:锤子线/T字线/neutral 量价:数据不足 强撑:40.15 弱撑:48.87 弱压:50.83 强压:59.51",
"reassessed_at": "2026-06-24 12:00",
"status": "manual",
"rr_ratio": 21.3,
"action_note": "⚠️盈亏比偏低(1:1.0),不建议加仓",
"timing_signal": "持有"
},
"price": 49.82,
"change_pct": 0.97
},
{
"code": "600036",
"name": "招商银行",
"shares": 800,
"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": 31.87,
"take_profit": 38.14,
"entry_low": 36.79,
"entry_high": 37.19,
"action": "持有观察 | ⚠️盈亏比偏低(1:1.1),不建议加仓 | 止损31.87 | 目标38.14 | 买入区36.79~37.19 | 信号:弱势持有",
"tech_snapshot": "形态:光头光脚阴线/bearish 量价:买卖均衡 强撑:34.22 弱撑:36.79 弱压:37.43 强压:40.15",
"reassessed_at": "2026-06-24 12:00",
"status": "updated",
"rr_ratio": 1.1,
"action_note": "⚠️盈亏比偏低(1:1.1),不建议加仓",
"timing_signal": "弱势持有"
},
"price": 37.01,
"change_pct": -1.04
}, },
{ {
"code": "300548", "code": "300548",
"name": "长芯博创", "name": "长芯博创",
"shares": 100, "shares": 100,
"price": 282.97,
"cost": 231.46, "cost": 231.46,
"position_pct": 2.94, "currency": "CNY",
"is_active": 1, "exchange_rate": 0.866,
"stop_loss": 251.24, "change_pct": -1.07
"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": 250.8,
"take_profit": 326.06,
"entry_low": 269.33,
"entry_high": 282.8,
"action": "盈利良好 | 短炒强趋势持 | 止损250.8 | 目标326.06 | 买入区269.33~282.8 | 信号:持有",
"tech_snapshot": "形态:带上影阴线/bearish 量价:主动买盘占优 强撑:228.82 弱撑:269.33 弱压:293.44 强压:343.22",
"reassessed_at": "2026-06-24 12:00",
"status": "updated",
"rr_ratio": 7.41,
"action_note": "短炒强趋势持",
"timing_signal": "持有"
},
"price": 278.58,
"change_pct": -2.6
}, },
{ {
"code": "02318", "code": "02318",
"name": "中国平安", "name": "中国平安",
"shares": 500, "shares": 500,
"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.1),不建议加仓 | 止损53.3 | 目标60.72 | 买入区53.85~56.05 | 信号:持有",
"tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:46.53 弱撑:52.07 弱压:53.67 强压:59.43",
"reassessed_at": "2026-06-24 12:00",
"status": "manual",
"rr_ratio": 15.0,
"action_note": "⚠️盈亏比偏低(1:1.1),不建议加仓",
"timing_signal": "持有"
},
"price": 52.65, "price": 52.65,
"change_pct": -1.68 "cost": 54.82,
"currency": "HKD",
"exchange_rate": 0.8661,
"change_pct": -1.77
}, },
{ {
"code": "300035", "code": "300035",
"name": "中科电气", "name": "中科电气",
"shares": 1400, "shares": 1400,
"price": 16.21,
"cost": 22.29, "cost": 22.29,
"position_pct": 2.36, "currency": "CNY",
"is_active": 1, "exchange_rate": 0.866,
"stop_loss": 13.74, "change_pct": -0.92
"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.3,
"take_profit": 18.44,
"entry_low": 14.52,
"entry_high": 16.94,
"action": "深套持有 | 深套持有 | 止损13.3 | 目标18.44 | 买入区14.52~16.94 | 信号:持有",
"tech_snapshot": "形态:带下影阴线/neutral 量价:主动卖盘占优 强撑:13.9 弱撑:15.92 弱压:16.37 强压:18.44",
"reassessed_at": "2026-06-24 12:00",
"status": "updated",
"rr_ratio": 0.95,
"action_note": "深套持有",
"timing_signal": "持有"
},
"price": 16.15
},
{
"code": "000700",
"name": "模塑科技",
"shares": 1400,
"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 12:00",
"status": "manual",
"rr_ratio": 3.23,
"action_note": "",
"timing_signal": "持有"
},
"price": 14.54,
"change_pct": -2.94
}, },
{ {
"code": "518880", "code": "518880",
"name": "黄金ETF华安", "name": "黄金ETF华安",
"shares": 2400, "shares": 2400,
"price": 8.47,
"cost": 12.19, "cost": 12.19,
"position_pct": 2.13, "currency": "CNY",
"is_active": 1, "exchange_rate": 0.866,
"stop_loss": 7.05, "change_pct": -0.75
"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.68,
"take_profit": 8.68,
"entry_low": 7.6,
"entry_high": 8.86,
"action": "深套持有 | 深套持有 | 止损6.68 | 目标8.68 | 买入区7.6~8.86 | 信号:持有",
"tech_snapshot": "形态:带上影阴线/bearish 量价:数据不足 强撑:7.79 弱撑:8.4 弱压:8.54 强压:9.14",
"reassessed_at": "2026-06-24 12:00",
"status": "updated",
"rr_ratio": 0.55,
"action_note": "深套持有",
"timing_signal": "持有"
}, },
"price": 8.45, {
"change_pct": -0.98 "code": "000700",
"name": "模塑科技",
"shares": 1400,
"price": 14.62,
"cost": 14.83,
"currency": "CNY",
"exchange_rate": 0.866,
"change_pct": -2.4
}, },
{ {
"code": "01088", "code": "01088",
"name": "中国神华", "name": "中国神华",
"shares": 500, "shares": 500,
"price": 41.92,
"cost": 45.97, "cost": 45.97,
"position_pct": 1.91, "currency": "HKD",
"is_active": 1, "exchange_rate": 0.8661,
"stop_loss": 35.09, "change_pct": -0.33
"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.38,
"take_profit": 41.47,
"entry_low": 41.3,
"entry_high": 41.74,
"action": "持有观察 | ⚠️盈亏比偏低(1:1.0),不建议加仓 | 止损33.38 | 目标41.47 | 买入区41.3~41.74 | 信号:持有",
"tech_snapshot": "形态:锤子线/T字线/bullish 量价:数据不足 强撑:37.4 弱撑:41.3 弱压:42.22 强压:46.08",
"reassessed_at": "2026-06-24 12:00",
"status": "updated",
"rr_ratio": 0.98,
"action_note": "⚠️盈亏比偏低(1:1.0),不建议加仓",
"timing_signal": "持有"
},
"price": 41.82,
"change_pct": -0.62
}, },
{ {
"code": "600563", "code": "600563",
"name": "法拉电子", "name": "法拉电子",
"shares": 100, "shares": 100,
"price": 178.76,
"cost": 146.95, "cost": 146.95,
"position_pct": 1.84, "currency": "CNY",
"is_active": 1, "exchange_rate": 0.866
"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": 168.02,
"take_profit": 210.42,
"entry_low": 162.51,
"entry_high": 170.64,
"action": "盈利良好 | 止损168.02 | 目标210.42 | 买入区162.51~170.64 | 信号:持有",
"tech_snapshot": "形态:光头光脚阳线/bullish 量价:买卖均衡 强撑:146.26 弱撑:162.51 弱压:184.36 强压:210.42",
"reassessed_at": "2026-06-24 12:00",
"status": "updated",
"rr_ratio": 3.54,
"action_note": "",
"timing_signal": "持有"
},
"price": 178.76
},
{
"code": "300690",
"name": "双一科技",
"shares": 400,
"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": 19.78,
"take_profit": 23.65,
"entry_low": 22.48,
"entry_high": 23.07,
"action": "持有观察 | ⚠️盈亏比偏低(1:1.2),不建议加仓 | 止损19.78 | 目标23.65 | 买入区22.48~23.07 | 信号:持有",
"tech_snapshot": "形态:光头光脚阴线/bearish 量价:主动卖盘占优 强撑:21.24 弱撑:22.48 弱压:23.63 强压:24.9",
"reassessed_at": "2026-06-24 12:00",
"status": "updated",
"rr_ratio": 1.25,
"action_note": "⚠️盈亏比偏低(1:1.2),不建议加仓",
"timing_signal": "持有"
},
"price": 22.9,
"change_pct": -3.09
} }
], ],
"cash": 20230.1, "cash": 5667,
"total_market_value": 930199.93, "total_market_value": 1008395.18,
"total_assets": 950430.03, "total_assets": 1014062.18,
"total_pl": -164810.3, "updated_at": "2026-06-24 13:18"
"position_pct": 97.87,
"updated_at": "2026-06-24 12:01",
"source": "/home/hmo/stocks/holding.xls"
} }
+41 -41
View File
@@ -52,7 +52,7 @@
"date": "2026-06-24", "date": "2026-06-24",
"high": 116.94, "high": 116.94,
"low": 105.76, "low": 105.76,
"close": 116.94 "close": 116.15
} }
], ],
"002594": [ "002594": [
@@ -108,7 +108,7 @@
"date": "2026-06-24", "date": "2026-06-24",
"high": 88.32, "high": 88.32,
"low": 82.78, "low": 82.78,
"close": 83.24 "close": 83.46
} }
], ],
"00700": [ "00700": [
@@ -164,7 +164,7 @@
"date": "2026-06-24", "date": "2026-06-24",
"high": 432.4, "high": 432.4,
"low": 412.6, "low": 412.6,
"close": 418.6 "close": 419.2
} }
], ],
"000700": [ "000700": [
@@ -220,7 +220,7 @@
"date": "2026-06-24", "date": "2026-06-24",
"high": 15.6, "high": 15.6,
"low": 14.3, "low": 14.3,
"close": 14.64 "close": 14.56
} }
], ],
"001309": [ "001309": [
@@ -276,7 +276,7 @@
"date": "2026-06-24", "date": "2026-06-24",
"high": 816.0, "high": 816.0,
"low": 706.0, "low": 706.0,
"close": 794.1 "close": 795.27
} }
], ],
"00968": [ "00968": [
@@ -332,7 +332,7 @@
"date": "2026-06-24", "date": "2026-06-24",
"high": 2.26, "high": 2.26,
"low": 1.93, "low": 1.93,
"close": 2.01 "close": 1.99
} }
], ],
"00981": [ "00981": [
@@ -388,7 +388,7 @@
"date": "2026-06-24", "date": "2026-06-24",
"high": 85.6, "high": 85.6,
"low": 76.5, "low": 76.5,
"close": 84.5 "close": 84.65
} }
], ],
"01070": [ "01070": [
@@ -444,7 +444,7 @@
"date": "2026-06-24", "date": "2026-06-24",
"high": 13.47, "high": 13.47,
"low": 12.55, "low": 12.55,
"close": 13.11 "close": 13.22
} }
], ],
"01088": [ "01088": [
@@ -500,7 +500,7 @@
"date": "2026-06-24", "date": "2026-06-24",
"high": 43.14, "high": 43.14,
"low": 41.26, "low": 41.26,
"close": 41.78 "close": 41.7
} }
], ],
"01211": [ "01211": [
@@ -556,7 +556,7 @@
"date": "2026-06-24", "date": "2026-06-24",
"high": 78.3, "high": 78.3,
"low": 74.2, "low": 74.2,
"close": 74.75 "close": 75.1
} }
], ],
"01478": [ "01478": [
@@ -668,7 +668,7 @@
"date": "2026-06-24", "date": "2026-06-24",
"high": 97.4, "high": 97.4,
"low": 83.7, "low": 83.7,
"close": 94.95 "close": 94.9
} }
], ],
"02202": [ "02202": [
@@ -780,7 +780,7 @@
"date": "2026-06-24", "date": "2026-06-24",
"high": 55.5, "high": 55.5,
"low": 52.3, "low": 52.3,
"close": 52.75 "close": 52.55
} }
], ],
"02359": [ "02359": [
@@ -836,7 +836,7 @@
"date": "2026-06-24", "date": "2026-06-24",
"high": 145.0, "high": 145.0,
"low": 130.0, "low": 130.0,
"close": 143.7 "close": 142.4
} }
], ],
"02388": [ "02388": [
@@ -892,7 +892,7 @@
"date": "2026-06-24", "date": "2026-06-24",
"high": 47.86, "high": 47.86,
"low": 45.9, "low": 45.9,
"close": 46.14 "close": 46.18
} }
], ],
"02628": [ "02628": [
@@ -948,7 +948,7 @@
"date": "2026-06-24", "date": "2026-06-24",
"high": 30.56, "high": 30.56,
"low": 28.06, "low": 28.06,
"close": 28.22 "close": 28.2
} }
], ],
"06160": [ "06160": [
@@ -1004,7 +1004,7 @@
"date": "2026-06-24", "date": "2026-06-24",
"high": 168.6, "high": 168.6,
"low": 160.0, "low": 160.0,
"close": 167.4 "close": 167.1
} }
], ],
"06869": [ "06869": [
@@ -1060,7 +1060,7 @@
"date": "2026-06-24", "date": "2026-06-24",
"high": 305.0, "high": 305.0,
"low": 251.2, "low": 251.2,
"close": 259.4 "close": 262.6
} }
], ],
"09868": [ "09868": [
@@ -1116,7 +1116,7 @@
"date": "2026-06-24", "date": "2026-06-24",
"high": 52.3, "high": 52.3,
"low": 48.82, "low": 48.82,
"close": 49.86 "close": 49.56
} }
], ],
"09988": [ "09988": [
@@ -1172,7 +1172,7 @@
"date": "2026-06-24", "date": "2026-06-24",
"high": 103.4, "high": 103.4,
"low": 97.65, "low": 97.65,
"close": 98.75 "close": 98.6
} }
], ],
"300035": [ "300035": [
@@ -1228,7 +1228,7 @@
"date": "2026-06-24", "date": "2026-06-24",
"high": 17.1, "high": 17.1,
"low": 15.96, "low": 15.96,
"close": 16.13 "close": 16.23
} }
], ],
"300124": [ "300124": [
@@ -1284,7 +1284,7 @@
"date": "2026-06-24", "date": "2026-06-24",
"high": 68.8, "high": 68.8,
"low": 65.74, "low": 65.74,
"close": 66.38 "close": 66.5
} }
], ],
"300548": [ "300548": [
@@ -1756,7 +1756,7 @@
"date": "2026-06-24", "date": "2026-06-24",
"high": 309.6, "high": 309.6,
"low": 275.86, "low": 275.86,
"close": 278.12 "close": 279.9
} }
], ],
"300750": [ "300750": [
@@ -1812,7 +1812,7 @@
"date": "2026-06-24", "date": "2026-06-24",
"high": 414.04, "high": 414.04,
"low": 386.66, "low": 386.66,
"close": 394.78 "close": 397.06
} }
], ],
"518880": [ "518880": [
@@ -1868,7 +1868,7 @@
"date": "2026-06-24", "date": "2026-06-24",
"high": 8.674, "high": 8.674,
"low": 8.426, "low": 8.426,
"close": 8.44 "close": 8.464
} }
], ],
"600036": [ "600036": [
@@ -2085,8 +2085,8 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"high": 11.0, "high": 11.0,
"low": 10.43, "low": 10.39,
"close": 10.48 "close": 10.41
} }
], ],
"601899": [ "601899": [
@@ -2148,7 +2148,7 @@
"date": "2026-06-24", "date": "2026-06-24",
"high": 30.0, "high": 30.0,
"low": 27.33, "low": 27.33,
"close": 27.5 "close": 27.69
} }
], ],
"688411": [ "688411": [
@@ -2204,7 +2204,7 @@
"date": "2026-06-24", "date": "2026-06-24",
"high": 285.98, "high": 285.98,
"low": 261.8, "low": 261.8,
"close": 266.17 "close": 267.17
} }
], ],
"688639": [ "688639": [
@@ -2260,7 +2260,7 @@
"date": "2026-06-24", "date": "2026-06-24",
"high": 22.47, "high": 22.47,
"low": 20.99, "low": 20.99,
"close": 21.44 "close": 21.35
} }
], ],
"688795": [ "688795": [
@@ -2316,7 +2316,7 @@
"date": "2026-06-24", "date": "2026-06-24",
"high": 745.2, "high": 745.2,
"low": 660.01, "low": 660.01,
"close": 696.0 "close": 711.43
} }
], ],
"688802": [ "688802": [
@@ -2372,7 +2372,7 @@
"date": "2026-06-24", "date": "2026-06-24",
"high": 808.0, "high": 808.0,
"low": 726.1, "low": 726.1,
"close": 745.0 "close": 768.88
} }
], ],
"688981": [ "688981": [
@@ -2426,9 +2426,9 @@
}, },
{ {
"date": "2026-06-24", "date": "2026-06-24",
"high": 154.71, "high": 155.0,
"low": 139.6, "low": 139.6,
"close": 154.23 "close": 154.86
} }
], ],
"000711": [ "000711": [
@@ -2466,7 +2466,7 @@
"date": "2026-06-24", "date": "2026-06-24",
"high": 5.38, "high": 5.38,
"low": 4.86, "low": 4.86,
"close": 5.14 "close": 5.1
} }
], ],
"688630": [ "688630": [
@@ -2496,9 +2496,9 @@
}, },
{ {
"date": "2026-06-24", "date": "2026-06-24",
"high": 500.0, "high": 508.0,
"low": 455.55, "low": 455.55,
"close": 499.05 "close": 497.0
} }
], ],
"300690": [ "300690": [
@@ -2550,7 +2550,7 @@
"date": "2026-06-24", "date": "2026-06-24",
"high": 113.99, "high": 113.99,
"low": 94.79, "low": 94.79,
"close": 98.98 "close": 99.25
} }
], ],
"300308": [ "300308": [
@@ -2569,8 +2569,8 @@
{ {
"date": "2026-06-24", "date": "2026-06-24",
"high": 1395.0, "high": 1395.0,
"low": 1296.0, "low": 1282.15,
"close": 1311.92 "close": 1302.3
} }
], ],
"600519": [ "600519": [
@@ -2590,7 +2590,7 @@
"date": "2026-06-24", "date": "2026-06-24",
"high": 1264.0, "high": 1264.0,
"low": 1209.11, "low": 1209.11,
"close": 1216.06 "close": 1211.05
} }
], ],
"601318": [ "601318": [
@@ -2610,7 +2610,7 @@
"date": "2026-06-24", "date": "2026-06-24",
"high": 52.43, "high": 52.43,
"low": 49.03, "low": 49.03,
"close": 49.33 "close": 49.28
} }
], ],
"002171": [ "002171": [
+68
View File
@@ -0,0 +1,68 @@
#!/usr/bin/env python3
"""
ocr_client.py — 通过小果网关(192.168.1.122:18003)的 GLM-OCR-8bit 做截图OCR
用法:
python3 ocr_client.py <image_path>
python3 ocr_client.py <image_path> "自定义提问"
返回 dict {"success": bool, "text": "...", "raw": "..."}
"""
import sys
import json
import base64
import urllib.request
OCR_URL = "http://192.168.1.122:18003/v1/chat/completions"
OCR_MODEL = "GLM-OCR-8bit"
def ocr_image(image_path, prompt="请详细识别这张图片中的所有文字,包括数字、股票名称、金额等。用中文回复。"):
"""发送截图到小果的GLM-OCR-8bit识别文字"""
try:
with open(image_path, 'rb') as f:
img_b64 = base64.b64encode(f.read()).decode()
except FileNotFoundError:
return {"success": False, "text": f"文件不存在: {image_path}"}
except Exception as e:
return {"success": False, "text": f"读取文件失败: {e}"}
payload = json.dumps({
"model": OCR_MODEL,
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": prompt},
{"type": "image_url", "image_url": {"url": f"data:image/png;base64,{img_b64}"}}
]
}],
"max_tokens": 1500,
"temperature": 0.1,
}).encode()
req = urllib.request.Request(OCR_URL, data=payload, headers={"Content-Type": "application/json"})
try:
resp = urllib.request.urlopen(req, timeout=60)
data = json.loads(resp.read().decode())
text = data.get("choices", [{}])[0].get("message", {}).get("content", "")
return {"success": True, "text": text, "raw": data}
except urllib.error.URLError as e:
return {"success": False, "text": f"请求失败: {e}"}
except Exception as e:
return {"success": False, "text": f"解析失败: {e}"}
if __name__ == "__main__":
args = sys.argv[1:]
if not args:
print("用法: python3 ocr_client.py <图片路径> [自定义提示]")
sys.exit(1)
img_path = args[0]
prompt = args[1] if len(args) > 1 else "请详细识别这张图片中的所有文字,包括数字、股票名称、金额等。用中文回复。"
result = ocr_image(img_path, prompt)
if result["success"]:
print(result["text"])
else:
print(f"OCR失败: {result['text']}", file=sys.stderr)
sys.exit(1)