From 9709c43ccbf34cf21889ad6d0822ccc18159a6d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=9F=A5=E5=BE=AE?= Date: Mon, 29 Jun 2026 21:39:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=80=BB=E8=B5=84=E4=BA=A7=E6=9D=83=E5=A8=81?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=BA=90=E7=BB=9F=E4=B8=80=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 问题:总资产每次报告重新计算,数字不一致。 根因:cash字段错误(92664→73759),stale_push_wlin二次×0.866, 报告各算各的。 修复: 1. portfolio.json cash 修正为Dad截图确认值73,758.85 2. price_monitor 每轮写入 total_mv + total_assets 到portfolio.json (从此所有报告只读这个字段,不自算) 3. stale_push_wlin 删除重复的 hmv *= 0.866(数据已CNY) 4. portfolio.json 加 currency: CNY 标记防混淆 5. 日志记录本次修复 --- __pycache__/price_monitor.cpython-312.pyc | Bin 24125 -> 27213 bytes .../strategy_lifecycle.cpython-312.pyc | Bin 78043 -> 78711 bytes data/decisions.json | 539 +++++- data/evaluation_input.json | 1458 ++++++++--------- data/portfolio.json | 12 +- price_monitor.py | 5 + scripts/data_validate.py | 89 + scripts/holdings_reconciliation.py | 132 ++ 8 files changed, 1453 insertions(+), 782 deletions(-) create mode 100644 scripts/data_validate.py create mode 100644 scripts/holdings_reconciliation.py diff --git a/__pycache__/price_monitor.cpython-312.pyc b/__pycache__/price_monitor.cpython-312.pyc index 4d86e5926c142807361d6fee71c28a6681da91c9..c83b2935639351410835dbfcf59473c57de3238f 100644 GIT binary patch delta 6053 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 delta 3643 zcmd^BYj9J?72ds9x_bF-Nq&Hkz!)rSV;dPiAT<~;gTcu71sEG&E4s2RV@vKzjw!v0 zJ)Hz-tQiQ~NqI~PolIK5lqL}^r40!oWgtyM7@D@}Z3j$WQ`(uvCA1|O`q*=2fd?}E z(ZA7*zI*n(_U!K2bN0Ot@cGwq%Dc(QM#O$O*PrM&G`^a0FpcZe#g3=##u`Z*5ooC; zi`vpt=pk!CrY@q77-XHK*|7$p5RTfy7Fv^@O-ps=Y)P2F;0Ga69L|YT2qhG<3?;f9 z1x%J1o|TZvy724-y-SObq@Up8vplI6EjN2>43&( zdVlCo<|M-t%vd%MQ+VzJFNTDD081LCV^VdrQqrzugd$og*%}d|XEaC_h&!B@FzcUB z9r{^i3lrmqUnwQwP{vX!I1BR$X@3FjwwMoCEU9UU6-io2e=42Mx8&udCJf0w1DY|_ zB4%WnZZ$~3I53%j#dyyYU z*myr5MGyIGjH4Ctu``oa&Guxhb#i18I~E0(-DbB5-R5YDt!S}g93GN9VV@*=!U`Ta z!6`|;KxmlwL{G@;_bY-wAo&7e|5lb=&TLv?-$-Aw7mO0fT!jw=M-+W1OnSopL7$?L zh6jh#@sK)B4hO@Y0WswB1_M$^G5ABlo*)_Ygq=x>!80%*dV`WLq;Nw$3TB^?0Yw-h zelKI`rh`&+-ab#D*C&x?HFS}*sq@kXN0K&_#Ay1OW1%U+h#~e51$g><$LW}M-T}@q zY04OL-2?K`P3SW4e3f!+NYrfOfy=W>^7sfX0eY0T`pdg;x0m0&4Sy;Uv&s> zCx5kwbC<>LELg_r6(Q8;A-)hTb2e)CG21s{&pP+;c$6j=+i)i>EH23DV(hgebWz09Ktas`yGmXS~7-{;sJCr4iV|@vb>cq0twb}3z*KyDcVq&oi#bi zMjrjUSg%)OOH(lQ@6R!-P-baFt&=>!uOc^eH2?!F^nt!M+j#=D+Ce)?os-eN}Kj9 zBQ-R+svS?ndaHDtpvpRFc-af1Fvp|kSpq!upaVdGxuPEo_V@#$^dxx`cozWP0)f^$ z5DfX^$Db5G{&OJwApm4L`4PbD0P4JI-Xxsx%nOY!U#z{vi6<#@GvED_8bm?qpi*WbF+T{m{MKv?0+%B8%yq#$r}~8X6061Krs;7jL9j>+K8O z691ryl!gW7M*T?*&|o5Eaw*v)Go+J^`Sp!6beG7c{<>-986PQC+9a1AK~j@k#;{pl zas<67Bxb-!Hjy&9jJh{v**5x7f-kwDGfL@^q(F{b8p?`mjDDsD^Kec!twGzNA-f(v zD`Zz)Pa{(q?H39cr@E|7cZ}Pj%7U<`p*6$b%wY#$He(97gS|%wx1)h~A=4H6P`< z=y@7wvD3fqWw!0Pq@g7AYF&CuA>hz>s{Efs!n)YOZy&sb<^1Ki*nB?@ur;1%M-r*K)Y* z&?DJx4wHk_-CiU>{d88*vG&=8hd}QzsA$5(=Ti*C*TXtVAM0mOf)!r!dC4z9=>)yp z?p!beB-|wO9*B)P zBZk<8j%pou*GNx$|DChp;N0VLzgu*o=vrm{&ljyfPv#(sq48ccTiN+(dK5JpN{(p*vH1 zv)tUBqRpF3(Xzp$)zDqTPuk7h)%;|&meIEagC~Q(m5x0b^kz@19hOUsuu&!ewIyl> zJ^lc3FiAFT?k!FqV-jbHq7y|a=oLlcrTcqxT3-fzHKXnVr6z`&c|9=f15mpiG(W}Y z+d1S3NW&~yh}xgefcz7HdjN0|$UhPNSMQwB9YCv@tKLmD>vh0WF9GB~`8z;4fSR*v zhO0UI9Po|-KrRyK&jdOuQ5)A;prCccvtC_0EK|{oV!$)#V{0=adblqO7tq)GF6!zr y&iuHOqhIzfnb*YQ+&g^&hf}AFNRza8*L6PUR~r4ZYo~am$-OsKpGM#JKmA{dtx#0} diff --git a/__pycache__/strategy_lifecycle.cpython-312.pyc b/__pycache__/strategy_lifecycle.cpython-312.pyc index 64c33e51c247be4412dd09fe440dd655375f2f3a..56d64fee2a853d9b43ee78bdc05312012f6369fe 100644 GIT binary patch delta 4395 zcma)9d2~}%8h>A2l4j}NrhzU)O3M4MHblXLRRcfal4 z`+eX2?#-3!+JE2BMxKs{Fmdd2XX4~%EArlnJj26CY76fdyv<)PNM5bsxaUnWXXFGB zG&Ni;1fW(E&;aAmhwH4gY@%_n0R5SR0Pp8TXyi4VU*qTZ0y^b5!V6&mt#^o@r=a_l zR*X>z3-z5eCNr6d$uxpFpcTUX+Krr_-^gv|13D?3?i-d&sV+X&uM;BnMeb$mz)wK$ z*VDY4@pR4G25QNTr;BqPP7B=QeUeqTk4Zqm>eS z_|GQGcfugfp41Z@;3_$R4;WV(8~M<0L+=FklzNud;(kpx4({*#-PX<{`|`^wZ?^sM z+k?#=Z>?uE!3f(mieBL$LdDEjE?^}bJC2J_hEdw$H=ycxFD_hHof)&Tua<;BAf)4Cjf^(2C zgs%`fkqZjAMVu_OUIL6>o<>KMBt6lyzWunqY^Ku8?cjIh?}F_`e=6Bpvc2q6+o%Ie z&f6ZlV5?{^{~)IA>7#QF&1swWMNawoobpd|D!TVVX45&v13^cZ7oUS8bXv*MEb;*7 zj#47s^@Mo5?nY<5R9z#I`;4u|Trp3pt@9D7kPsgsH|g1uF_X;1fZ|>qatDXsA&f-8 z*pul9HxMcit}_rZpf;P0I!aR~8rWubNp=asKszO%F39R%?WFkeP*`Nb)_u}Ok7OtnpCQ7(eX-_h~WrY?>*n(qGK;KHrnaT+$a5|iGd zznoCbx9*Y$2omT_WtX3#-&`i;8p3jPw zWHTWd6?BU^ygnc4BD!yB#zxTRA%8NxySz{zgJdkt zUy-f1BH53wSm7|^c_0FUhrYKWSKsaE{)!a+P~_T!1N@}`<7jPQpxKF>xd`*=hQNIN zGe}N)ZRIfV(%~!TTIaE`q7iBpL#@kM=OU6wIL4xzS7w{1qHY!gaWQQzw9>AX6||@+ zNq3yF&IK1XRmSU1GID?L1PwxRI%*F>_>ch$k6NMm80dE?U7N1^h_Ty(?Q8F8EE$Yc zpz6`?z+!)Dy#qd>_t!reF#tV;kyGr4oTim;>`Fe3nmg@hG+}m{Co9WO=pL=u4$WF#kc){Zi9j4nj)QEzjkp%KR4)nz15`A9M z#Rl}1eO4N|GeLik4K&)|u${BD(YSiz!+2m*B&X=>dj^AzwlSPWzu9xFKNjU~)`XV* zvI)^+dxt|A{m0(%aEcDymofShx>BQ|Cob<|k3c>~&H?5?;p==NdB}!}7GQd}<^`Sf%Mn5@}8b6q6)?>Twc)q!#Wp~H6EyPB3hwU(c zW*(ja<@C3Q$HAwx?Qkkwpw|wkrhe9I(Ed)x3r9O%ZY7^13lG+}ZItbEK-)+dPfOcI zq^p_1e1tNi=4dz$WAMnS(jvOKZ3+;4WT8~3Q{YLln}`KH zB_LQ4ez^p+>4$~SB-O_%PskcNN%Cd-w@Ojuz*qZc-`FG^kT=34M@@> zr*@C|7xJSS-)8H0<>gyDTRPs~b943n@iw)BmYZxtMPH5JbV)e`i;av$m`^vI&Vql^ zv!^p7XEBDNb=6BgyM-L5rZXuycpS+`2*a6Uf;%R7FvzcPScFiBfTw`mL@EuT7~vij z&J;G)qhu*Us1G5v4aE&e&195fs&%=E&$*!5C58gE2jzQJk?6q~I9za4k0ZT-C1+^owTXK5kn?oJ zmx8XGX^6qKUq%muGxAOY*pe_%B!+obj14ZyT~$*pO5L?6UpK%&7%OXy&>Vql#>)%U zdHGc%B!ENSWrV@-x%{yas-avSXM$3CiggNv1VqgXA5VmS|E`3A!K z2)S~M84{W%qwj6VP^)G2j89L>k!l6G@$d(AOLAX370-h-x$%05y zaUu^w8iIf@kbzxK)bdgfOJw&Ubo;!LXPFdgpsJA|UyOhuFj{^P0SWpfv>qcTMuH&^uo38H lRTnb zL#mmT5{~bQYStM&%c>K2lcb+M3Cas`d>-9jV=N*M8o^)>9# zgo{%m+4G=UtoC_D)-|Lm@**;0+3rQD+PlcvD3xlTb!Nu%FrMOUobh0amP2b(KCgUtyP;A1RL~;@Kw@Zm& z&ADEbJOXa6j%-FB4%D>DHF3}{tG8v7Y~;>n@lbSFM=ml4850q55hfwz$$yT6?8GM- zt%R}4bGoY*g&Lw#R3m?hne<{_lgss-Ku%O$;J#=0A9H! z15(TjaXl;0bCvvh28@Vaj&vAu>ycV2U&??1bpv=?m@g$ z)H_3M-~<~e!F4DGr_<}I^*EjEjVSvv!D>3r*vyy{N6Bk4VYPlB#CMf|oR-D@p9kav HSup&+k*{;n delta 3879 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 diff --git a/data/decisions.json b/data/decisions.json index 100a5b9..7b18f3e 100644 --- a/data/decisions.json +++ b/data/decisions.json @@ -1687,14 +1687,14 @@ "cost": 14.83, "shares": 1400, "avg_price": 14.83, - "action": "持有观察 | ⚠️盈亏比偏低(1:1.5),不建议加仓 | 止损13.91 | 目标15.54 | 买入区13.33~14.09 | 信号:持有", + "action": "持有观察 | ⚠️盈亏比偏低(1:1.5),不建议加仓 | 止损13.91 | 目标15.54 | 买入区13.32~14.09 | 信号:持有", "stop_loss": 13.91, - "entry_low": 13.33, + "entry_low": 13.32, "entry_high": 14.09, - "tech_snapshot": "形态:小阴线/bearish 量价:主动买盘占优 强撑:12.72 弱撑:13.32 弱压:14.49 强压:15.54 | MA5=14.54 MA10=15.05 MA20=15.38 MA60=13.59", + "tech_snapshot": "形态:小阴线/bearish 量价:主动买盘占优 强撑:12.72 弱撑:13.32 弱压:14.49 强压:15.54 | MA5=14.28 MA10=14.99 MA20=15.37 MA60=13.62", "timing_signal": "持有", - "rr_ratio": 12.12, - "status": "manual", + "rr_ratio": 1.47, + "status": "updated", "note": "⚠️盈亏比偏低(1:1.5),不建议加仓", "timestamp": "2026-06-29 15:10", "updated_at": "2026-06-29 15:10", @@ -1710,7 +1710,7 @@ "take_profit_zone": "0~15.54" }, "created_at": "2026-06-23 09:00", - "last_reassessed_price": 13.69, + "last_reassessed_price": 13.86, "take_profit": 15.54, "changelog": [ { @@ -2332,6 +2332,109 @@ ], "execution": { "status": "none" + }, + "strategy_tree": { + "branches": [ + { + "id": "000700_stop_loss", + "condition": { + "price": "<13.91" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "000700_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=14.09", + "price_lower": ">=13.32" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 13.32, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "000700_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=15.54" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "000700_trim", + "condition": { + "scenario": "sharp_decline", + "loss_pct": "<-15%" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "急跌降风险" + }, + "priority": 3, + "rationale": "急跌市场,深套股减半仓减少敞口", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "000700_take_profit", + "condition": { + "price": ">=15.54" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "000700_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ] } }, { @@ -7279,7 +7382,8 @@ "reason": "技术面重评: 止损374.24→373.0, 止盈384.23→383.77 | 形态:带上影阳线/neutral 量价:数据不足 强撑:401.96 弱撑:411.8 弱压:431.13 强压:444", "trigger": "技术面重评" } - ] + ], + "currency": "HKD" }, { "code": "00968", @@ -8421,7 +8525,8 @@ "reason": "技术信号变化: 信号不充分: 止损1.74→1.75 | 形态:带上影阳线/neutral 量价:数据不足 强撑:1.92 弱撑:2.0 弱压:2.07 强压:2.14 | MA", "trigger": "技术信号变化: 信号不充分" } - ] + ], + "currency": "HKD" }, { "code": "00981", @@ -10410,7 +10515,8 @@ "reason": "技术面重评: 止损80.85→80.81, 止盈85.84→85.82 | 形态:光头光脚阳线/bullish 量价:数据不足 强撑:75.93 弱撑:80.0 弱压:85.98 强压:89.4 ", "trigger": "技术面重评" } - ] + ], + "currency": "HKD" }, { "code": "01070", @@ -11972,7 +12078,8 @@ "reason": "技术面重评: 止损11.83→11.82 | 形态:带下影阳线/bullish 量价:数据不足 强撑:11.71 弱撑:12.57 弱压:13.08 强压:13.78", "trigger": "技术面重评" } - ] + ], + "currency": "HKD" }, { "code": "01088", @@ -13799,7 +13906,8 @@ "reason": "技术面重评: 止损40.14→40.06, 止盈43.82→43.8 | 形态:光头光脚阳线/bullish 量价:数据不足 强撑:37.68 弱撑:40.49 弱压:41.79 强压:44.2", "trigger": "技术面重评" } - ] + ], + "currency": "HKD" }, { "code": "01211", @@ -15746,7 +15854,8 @@ "reason": "技术面重评: 止损65.38→65.47, 止盈76.8→76.78 | 形态:倒T线/射击之星/bearish 量价:数据不足 强撑:66.95 弱撑:72.33 弱压:74.48 强压:79", "trigger": "技术面重评" } - ] + ], + "currency": "HKD" }, { "code": "01478", @@ -17462,7 +17571,8 @@ "reason": "技术面重评: 止损6.16→6.17 | 形态:锤子线/T字线/bullish 量价:数据不足 强撑:6.3 弱撑:6.79 弱压:7.0 强压:7.44 | M", "trigger": "技术面重评" } - ] + ], + "currency": "HKD" }, { "code": "01888", @@ -19507,7 +19617,8 @@ "reason": "技术面重评: 止损84.33→85.43, 止盈95.18→95.43 | 形态:锤子线/T字线/neutral 量价:数据不足 强撑:81.55 弱撑:89.6 弱压:102.95 强压:110", "trigger": "技术面重评" } - ] + ], + "currency": "HKD" }, { "code": "02202", @@ -20900,7 +21011,8 @@ "reason": "技术面重评: 止损1.83→1.82 | 形态:长影星线/neutral 量价:数据不足 强撑:2.02 弱撑:2.16 弱压:2.28 强压:2.42 | MA", "trigger": "技术面重评" } - ] + ], + "currency": "HKD" }, { "code": "02318", @@ -21320,7 +21432,8 @@ "reason": "技术面重评: 策略文字调整", "trigger": "技术面重评" } - ] + ], + "currency": "HKD" }, { "code": "02359", @@ -23106,14 +23219,15 @@ "reason": "技术面重评: 止损149.38→149.19 | 形态:光头光脚阳线/bullish 量价:数据不足 强撑:138.63 弱撑:145.4 弱压:157.47 强压:16", "trigger": "技术面重评" } - ] + ], + "currency": "HKD" }, { "code": "02388", "name": "中银香港", "price": 43.68, "cost": 43.67, - "shares": 1000, + "shares": 0, "avg_price": 43.67, "action": "盈利持有 | 目标47.32 | 止损42.37 | 买入区42.81~44.35 | 信号:关注", "stop_loss": 42.37, @@ -24961,8 +25075,15 @@ "new_action": "盈利持有 | 目标47.32 | 止损42.37 | 买入区42.81~44.35 | 信号:关注", "reason": "技术面重评: 止损42.39→42.37 | 形态:光头光脚阴线/bearish 量价:数据不足 强撑:40.33 弱撑:43.25 弱压:44.3 强压:47.32", "trigger": "技术面重评" + }, + { + "time": "2026-06-29 21:29", + "from": 1000, + "to": 0, + "reason": "reconciliation: 不在券商持仓" } - ] + ], + "currency": "HKD" }, { "code": "02628", @@ -26741,7 +26862,8 @@ "reason": "技术面重评: 止损27.0→26.97 | 形态:带上影阳线/neutral 量价:数据不足 强撑:25.8 弱撑:26.92 弱压:28.38 强压:29.52 ", "trigger": "技术面重评" } - ] + ], + "currency": "HKD" }, { "code": "06160", @@ -28576,7 +28698,8 @@ "reason": "技术面重评: 策略文字调整", "trigger": "技术面重评" } - ] + ], + "currency": "HKD" }, { "code": "06869", @@ -30544,7 +30667,8 @@ "reason": "技术面重评: 止损176.03→175.78, 止盈260.52→260.3 | 形态:带下影阴线/neutral 量价:数据不足 强撑:182.07 弱撑:226.73 弱压:256.13 强压:30", "trigger": "技术面重评" } - ] + ], + "currency": "HKD" }, { "code": "09868", @@ -31069,7 +31193,8 @@ "reason": "技术面重评: 策略文字调整", "trigger": "技术面重评" } - ] + ], + "currency": "HKD" }, { "code": "09988", @@ -33100,7 +33225,8 @@ "reason": "技术面重评: 止损80.84→80.8 | 形态:带上影阳线/neutral 量价:数据不足 强撑:86.53 弱撑:89.5 弱压:95.52 强压:100.13", "trigger": "技术面重评" } - ] + ], + "currency": "HKD" }, { "code": "300035", @@ -38359,11 +38485,11 @@ "cost": 231.46, "shares": 100, "avg_price": 231.46, - "action": "盈利良好 | 止损223.68 | 目标257.59 | 买入区241.53~253.61 | 信号:持有", - "stop_loss": 223.68, + "action": "盈利良好 | 止损241.53 | 目标298.14 | 买入区241.53~253.61 | 信号:持有", + "stop_loss": 241.53, "entry_low": 241.53, "entry_high": 253.61, - "tech_snapshot": "形态:带下影阴线/neutral 量价:主动买盘占优 强撑:212.34 弱撑:241.53 弱压:266.91 强压:298.14 | MA5=282.18 MA10=273.89 MA20=252.1 MA60=241.84", + "tech_snapshot": "形态:带下影阴线/neutral 量价:主动买盘占优 强撑:212.34 弱撑:241.53 弱压:266.91 强压:298.14 | MA5=273.2 MA10=276.81 MA20=252.3 MA60=243.4", "timing_signal": "持有", "rr_ratio": 3.86, "status": "updated", @@ -38382,8 +38508,8 @@ "take_profit_zone": "0~257.59" }, "created_at": "2026-06-18 17:15", - "last_reassessed_price": 262.65, - "take_profit": 257.59, + "last_reassessed_price": 253.19, + "take_profit": 298.14, "changelog": [ { "date": "2026-06-18 11:31", @@ -40198,7 +40324,110 @@ "reason": "技术面重评: 止损223.6→223.68 | 形态:带下影阴线/neutral 量价:主动买盘占优 强撑:212.34 弱撑:241.53 弱压:266.91 强压:", "trigger": "技术面重评" } - ] + ], + "strategy_tree": { + "branches": [ + { + "id": "300548_stop_loss", + "condition": { + "price": "<241.53" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "300548_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=253.61", + "price_lower": ">=241.53" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 241.53, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "300548_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=298.14" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "300548_trim", + "condition": { + "scenario": "sharp_decline", + "loss_pct": "<-15%" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "急跌降风险" + }, + "priority": 3, + "rationale": "急跌市场,深套股减半仓减少敞口", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "300548_take_profit", + "condition": { + "price": ">=298.14" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "300548_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ] + } }, { "code": "300750", @@ -45091,9 +45320,9 @@ "name": "法拉电子", "price": 189.4, "cost": 147.18, - "shares": 0, + "shares": 100, "avg_price": 147.18, - "action": "盈利良好 | 止损167.33 | 目标179.4 | 买入区183.73~192.92 | 信号:持有", + "action": "盈利良好 | 止损167.33 | 目标207.64 | 买入区183.73~192.92 | 信号:持有", "stop_loss": 167.33, "entry_low": 183.73, "entry_high": 192.92, @@ -45101,7 +45330,7 @@ "timing_signal": "持有", "rr_ratio": 3.22, "status": "updated", - "note": "", + "note": "止盈上调至强压207.64,让利润奔跑", "timestamp": "2026-06-29 15:12", "updated_at": "2026-06-29 15:12", "type": "持仓策略", @@ -45113,11 +45342,11 @@ "trigger": { "stop_loss": 167.33, "entry_zone": "183.73~192.92", - "take_profit_zone": "0~179.4" + "take_profit_zone": "0~207.64" }, "created_at": "2026-06-18 17:15", "last_reassessed_price": 188.76, - "take_profit": 179.4, + "take_profit": 207.64, "changelog": [ { "date": "2026-06-18 11:31", @@ -46868,6 +47097,12 @@ "new_action": "盈利良好 | 止损167.33 | 目标179.4 | 买入区183.73~192.92 | 信号:持有", "reason": "技术面重评: 止损166.39→167.33 | 形态:倒T线/射击之星/neutral 量价:买卖均衡 强撑:170.17 弱撑:183.73 弱压:196.93 强压", "trigger": "技术面重评" + }, + { + "time": "2026-06-29 21:30", + "from": 0, + "to": 100, + "reason": "reconciliation: 股数与券商一致" } ] }, @@ -48544,7 +48779,7 @@ "cost": 40.27, "shares": 2400, "avg_price": 40.27, - "action": "深套持有 | 深套持有 | 止损23.01 | 目标26.51 | 买入区23.21~27.08 | 信号:持有", + "action": "深套持有 | 深套持有 | 止损23.01 | 目标27.61 | 买入区23.21~27.08 | 信号:持有", "stop_loss": 23.01, "entry_low": 23.21, "entry_high": 27.08, @@ -48567,8 +48802,8 @@ "take_profit_zone": "0~26.51" }, "created_at": "2026-06-18 17:15", - "last_reassessed_price": 25.1, - "take_profit": 26.51, + "last_reassessed_price": 25.79, + "take_profit": 27.61, "changelog": [ { "date": "2026-06-18 11:31", @@ -50299,7 +50534,110 @@ "reason": "技术面重评: 止损22.98→23.01 | 形态:带下影阳线/bullish 量价:主动买盘占优 强撑:23.51 弱撑:25.1 弱压:26.17 强压:27.6", "trigger": "技术面重评" } - ] + ], + "strategy_tree": { + "branches": [ + { + "id": "601899_stop_loss", + "condition": { + "price": "<23.01" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "601899_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=27.08", + "price_lower": ">=23.21" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 23.21, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "601899_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=27.61" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "601899_trim", + "condition": { + "scenario": "sharp_decline", + "loss_pct": "<-15%" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "急跌降风险" + }, + "priority": 3, + "rationale": "急跌市场,深套股减半仓减少敞口", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "601899_take_profit", + "condition": { + "price": ">=27.61" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "601899_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ] + } }, { "code": "688411", @@ -50308,7 +50646,7 @@ "cost": 266.95, "shares": 200, "avg_price": 266.95, - "action": "盈利良好 | 止损263.66 | 目标283.32 | 买入区258.88~271.82 | 信号:持有", + "action": "盈利良好 | 止损263.66 | 目标296.29 | 买入区258.88~271.82 | 信号:持有", "stop_loss": 263.66, "entry_low": 258.88, "entry_high": 271.82, @@ -50316,7 +50654,7 @@ "timing_signal": "持有", "rr_ratio": 1.72, "status": "updated", - "note": "", + "note": "止盈上调至弱压296.29,趋势完好让利润奔跑", "timestamp": "2026-06-29 15:12", "updated_at": "2026-06-29 15:12", "type": "持仓策略", @@ -50328,11 +50666,11 @@ "trigger": { "stop_loss": 263.66, "entry_zone": "258.88~271.82", - "take_profit_zone": "0~283.32" + "take_profit_zone": "0~296.29" }, "created_at": "2026-06-24 11:06", "last_reassessed_price": 283.6, - "take_profit": 283.32, + "take_profit": 296.29, "changelog": [ { "date": "2026-06-24 11:06", @@ -53829,8 +54167,8 @@ "cost": 21.51, "shares": 2800, "avg_price": 21.51, - "action": "深套持有 | 深套持有 | 止损13.5 | 目标15.97 | 买入区14.97~17.46 | 信号:持有", - "stop_loss": 13.5, + "action": "深套持有 | 深套持有 | 止损13.98 | 目标18.48 | 买入区14.97~17.46 | 信号:持有", + "stop_loss": 13.98, "entry_low": 14.97, "entry_high": 17.46, "tech_snapshot": "形态:光头光脚阳线/bullish 量价:主动买盘占优 强撑:13.98 弱撑:15.4 弱压:17.17 强压:18.48 | MA5=33.22 MA10=33.72 MA20=35.78 MA60=34.59", @@ -53852,8 +54190,8 @@ "take_profit_zone": "0~15.97" }, "created_at": "2026-06-18 17:15", - "last_reassessed_price": 15.4, - "take_profit": 15.97, + "last_reassessed_price": 16.63, + "take_profit": 18.48, "changelog": [ { "date": "2026-06-18 11:31", @@ -55171,7 +55509,110 @@ "reason": "技术面重评: 策略文字调整", "trigger": "技术面重评" } - ] + ], + "strategy_tree": { + "branches": [ + { + "id": "688639_stop_loss", + "condition": { + "price": "<13.98" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "688639_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=17.46", + "price_lower": ">=14.97" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 14.97, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "688639_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=18.48" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "688639_trim", + "condition": { + "scenario": "sharp_decline", + "loss_pct": "<-15%" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "急跌降风险" + }, + "priority": 3, + "rationale": "急跌市场,深套股减半仓减少敞口", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "688639_take_profit", + "condition": { + "price": ">=18.48" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "688639_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ] + } }, { "code": "688795", @@ -60263,5 +60704,5 @@ } ], "total": 38, - "regenerated_at": "2026-06-29 15:31" + "regenerated_at": "2026-06-29 21:07" } \ No newline at end of file diff --git a/data/evaluation_input.json b/data/evaluation_input.json index 34dea31..d0dfac6 100644 --- a/data/evaluation_input.json +++ b/data/evaluation_input.json @@ -1,53 +1,53 @@ { - "collected_at": "2026-06-26T20:30:58.826346", + "collected_at": "2026-06-29T20:30:20.603152", "total_stocks": 38, "summary": { - "up_count": 5, - "down_count": 33, + "up_count": 29, + "down_count": 8, "deep_loss_count": 7, - "holdings_count": 20, - "watchlist_count": 18 + "holdings_count": 19, + "watchlist_count": 19 }, "index_data": { "上证指数": { - "price": 4027.26, - "prev_close": 4120.28, - "change_pct": -2.26, - "high": 4099.78, - "low": 4007.86, - "timestamp": "20260626161419" + "price": 4073.9, + "prev_close": 4027.26, + "change_pct": 1.16, + "high": 4075.33, + "low": 3992.55, + "timestamp": "20260629161418" }, "深证成指": { - "price": 15782.22, - "prev_close": 16344.08, - "change_pct": -3.44, - "high": 16215.45, - "low": 15728.84, - "timestamp": "20260626161457" + "price": 15812.87, + "prev_close": 15782.22, + "change_pct": 0.19, + "high": 15938.23, + "low": 15487.92, + "timestamp": "20260629161442" }, "创业板指": { - "price": 4194.21, - "prev_close": 4371.99, - "change_pct": -4.07, - "high": 4328.7, - "low": 4175.38, - "timestamp": "20260626161412" + "price": 4216.7, + "prev_close": 4194.21, + "change_pct": 0.54, + "high": 4265.46, + "low": 4103.63, + "timestamp": "20260629161457" }, "恒生指数": { - "price": 22671.86, - "prev_close": 23076.91, - "change_pct": -1.76, - "high": 22962.46, - "low": 22518.0, - "timestamp": "2026/06/26 18:31:09" + "price": 23026.68, + "prev_close": 22671.86, + "change_pct": 1.57, + "high": 23183.17, + "low": 22783.64, + "timestamp": "2026/06/29 18:30:51" }, "恒生科技": { - "price": 4255.59, - "prev_close": 4405.92, - "change_pct": -3.41, - "high": 4371.54, - "low": 4229.94, - "timestamp": "2026/06/26 16:08:32" + "price": 4393.01, + "prev_close": 4255.59, + "change_pct": 3.23, + "high": 4431.39, + "low": 4320.85, + "timestamp": "2026/06/29 16:09:22" } }, "sector_groups": { @@ -55,56 +55,56 @@ { "code": "000657", "name": "中钨高新", - "change_pct": -5.84, + "change_pct": -3.96, "pnl_pct": null, "type": "自选策略" }, { "code": "000700", "name": "模塑科技", - "change_pct": 1.73, - "pnl_pct": -4.72, + "change_pct": -1.91, + "pnl_pct": -6.54, "type": "持仓策略" }, { "code": "000711", "name": "ST京蓝", - "change_pct": -5.01, + "change_pct": -5.05, "pnl_pct": null, "type": "自选策略" }, { "code": "00981", "name": "中芯国际", - "change_pct": -6.98, - "pnl_pct": 5.46, + "change_pct": 6.0, + "pnl_pct": 11.67, "type": "持仓策略" }, { "code": "300308", "name": "中际旭创", - "change_pct": -5.25, - "pnl_pct": -4.76, + "change_pct": -2.7, + "pnl_pct": -7.33, "type": "持仓策略" }, { "code": "600519", - "name": "XD贵州茅", - "change_pct": -1.3, + "name": "贵州茅台", + "change_pct": 2.25, "pnl_pct": null, "type": "自选策略" }, { "code": "601318", "name": "中国平安", - "change_pct": -4.2, + "change_pct": 2.9, "pnl_pct": null, "type": "自选策略" }, { "code": "688630", "name": "芯碁微装", - "change_pct": -4.96, + "change_pct": 3.81, "pnl_pct": null, "type": "自选策略" } @@ -113,7 +113,7 @@ { "code": "001309", "name": "德明利", - "change_pct": 6.73, + "change_pct": 2.0, "pnl_pct": null, "type": "自选" } @@ -122,29 +122,29 @@ { "code": "002594", "name": "比亚迪", - "change_pct": -4.87, + "change_pct": 1.84, "pnl_pct": null, "type": "自选" }, { "code": "01211", "name": "比亚迪股份", - "change_pct": -4.47, - "pnl_pct": -30.65, + "change_pct": 0.34, + "pnl_pct": -30.49, "type": "持仓" }, { "code": "09868", "name": "小鹏集团-W", - "change_pct": -4.84, + "change_pct": 3.99, "pnl_pct": null, "type": "自选" }, { "code": "300750", "name": "宁德时代", - "change_pct": -5.2, - "pnl_pct": -5.17, + "change_pct": 2.98, + "pnl_pct": -2.34, "type": "持仓" } ], @@ -152,14 +152,14 @@ { "code": "00700", "name": "腾讯控股", - "change_pct": -2.28, - "pnl_pct": -6.98, + "change_pct": 2.04, + "pnl_pct": -5.17, "type": "持仓" }, { "code": "09988", "name": "阿里巴巴-W", - "change_pct": -5.79, + "change_pct": 3.91, "pnl_pct": null, "type": "持仓" } @@ -168,7 +168,7 @@ { "code": "00968", "name": "信义光能", - "change_pct": -1.96, + "change_pct": 1.5, "pnl_pct": null, "type": "自选" } @@ -177,7 +177,7 @@ { "code": "01070", "name": "TCL电子", - "change_pct": -0.39, + "change_pct": 2.54, "pnl_pct": null, "type": "自选" } @@ -186,8 +186,8 @@ { "code": "01088", "name": "中国神华", - "change_pct": 0.1, - "pnl_pct": -11.41, + "change_pct": 1.18, + "pnl_pct": -10.44, "type": "自选" } ], @@ -195,8 +195,8 @@ { "code": "01478", "name": "丘钛科技", - "change_pct": -4.72, - "pnl_pct": -50.18, + "change_pct": 0.58, + "pnl_pct": -48.78, "type": "持仓" } ], @@ -204,8 +204,8 @@ { "code": "01888", "name": "建滔积层板", - "change_pct": -5.42, - "pnl_pct": 11.81, + "change_pct": -2.28, + "pnl_pct": 9.15, "type": "自选" } ], @@ -213,8 +213,8 @@ { "code": "02202", "name": "万科企业", - "change_pct": -2.22, - "pnl_pct": -52.79, + "change_pct": 0.45, + "pnl_pct": -52.68, "type": "持仓" } ], @@ -222,7 +222,7 @@ { "code": "02318", "name": "中国平安", - "change_pct": -2.69, + "change_pct": 2.67, "pnl_pct": null, "type": "自选" } @@ -231,7 +231,7 @@ { "code": "02359", "name": "药明康德", - "change_pct": 0.28, + "change_pct": 5.16, "pnl_pct": null, "type": "自选" } @@ -240,8 +240,8 @@ { "code": "02388", "name": "中银香港", - "change_pct": -1.64, - "pnl_pct": 4.33, + "change_pct": -1.59, + "pnl_pct": null, "type": "持仓" } ], @@ -249,7 +249,7 @@ { "code": "02628", "name": "中国人寿", - "change_pct": -5.48, + "change_pct": 2.67, "pnl_pct": null, "type": "自选" } @@ -258,7 +258,7 @@ { "code": "06160", "name": "百济神州", - "change_pct": -0.66, + "change_pct": 5.18, "pnl_pct": null, "type": "持仓" } @@ -267,8 +267,8 @@ { "code": "06869", "name": "长飞光纤光缆", - "change_pct": -12.87, - "pnl_pct": -4.88, + "change_pct": -4.47, + "pnl_pct": -9.22, "type": "自选" } ], @@ -276,7 +276,7 @@ { "code": "300035", "name": "中科电气", - "change_pct": -6.21, + "change_pct": 0.0, "pnl_pct": -36.34, "type": "持仓" } @@ -285,7 +285,7 @@ { "code": "300124", "name": "汇川技术", - "change_pct": -5.33, + "change_pct": 3.08, "pnl_pct": null, "type": "自选" } @@ -294,8 +294,8 @@ { "code": "300548", "name": "长芯博创", - "change_pct": -6.83, - "pnl_pct": 13.48, + "change_pct": -3.6, + "pnl_pct": 9.39, "type": "自选" } ], @@ -303,8 +303,8 @@ { "code": "518880", "name": "黄金ETF华安", - "change_pct": 1.24, - "pnl_pct": -31.17, + "change_pct": 0.7, + "pnl_pct": -30.69, "type": "持仓" } ], @@ -312,17 +312,17 @@ { "code": "600563", "name": "法拉电子", - "change_pct": -0.67, - "pnl_pct": 28.25, + "change_pct": 0.34, + "pnl_pct": 28.69, "type": "持仓" } ], "有色金属": [ { "code": "601899", - "name": "XD紫金矿", - "change_pct": -1.72, - "pnl_pct": -37.67, + "name": "紫金矿业", + "change_pct": 2.75, + "pnl_pct": -35.35, "type": "持仓" } ], @@ -330,8 +330,8 @@ { "code": "688411", "name": "海博思创", - "change_pct": -6.17, - "pnl_pct": -3.02, + "change_pct": 10.48, + "pnl_pct": 7.14, "type": "持仓" } ], @@ -339,8 +339,8 @@ { "code": "688639", "name": "华恒生物", - "change_pct": -10.05, - "pnl_pct": -28.41, + "change_pct": 7.99, + "pnl_pct": -22.69, "type": "持仓" } ], @@ -348,14 +348,14 @@ { "code": "688795", "name": "摩尔线程-U", - "change_pct": -3.89, + "change_pct": 4.52, "pnl_pct": null, "type": "自选" }, { "code": "688802", "name": "沐曦股份-U", - "change_pct": -5.21, + "change_pct": 8.65, "pnl_pct": null, "type": "自选" } @@ -364,8 +364,8 @@ { "code": "688981", "name": "中芯国际", - "change_pct": -5.16, - "pnl_pct": 18.0, + "change_pct": 1.51, + "pnl_pct": 19.77, "type": "自选" } ] @@ -378,29 +378,29 @@ "type": "自选策略", "sector": "", "business": "", - "price": 99.51, - "prev_close": 105.68, - "open": 103.06, - "high": 109.68, - "low": 99.0, - "change_pct": -5.84, - "volume": 936942.0, - "pe": 116.25, - "total_market_cap": 1445.81, - "high_52w": 95.11, - "low_52w": 0.87, - "turnover_rate": 6.45, - "amplitude": 10.11, + "price": 95.57, + "prev_close": 99.51, + "open": 98.0, + "high": 101.5, + "low": 91.68, + "change_pct": -3.96, + "volume": 1015100.0, + "pe": 109.46, + "total_market_cap": 1388.56, + "high_52w": 89.56, + "low_52w": 0.94, + "turnover_rate": 6.99, + "amplitude": 9.87, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标116.25 | 止损95.78 | 买入区97.52~101.5", - "entry_zone": "97.52~101.5", - "stop_loss": 95.78, - "take_profit": 116.25, + "action": "盈利持有 | 目标109.46 | 止损91.0 | 买入区93.66~97.48", + "entry_zone": "93.66~97.48", + "stop_loss": 91.0, + "take_profit": 109.46, "type": "自选策略", - "tech_snapshot": "形态:带上影阴线/bearish 量价:主动买盘占优 强撑:95.11 弱撑:95.78 弱压:106.46 强压:116.25" + "tech_snapshot": "形态:小阴线/bearish 量价:主动买盘占优 强撑:89.56 弱撑:91.0 弱压:100.82 强压:109.46 | MA5=103.22 MA10=96.25 MA20=83.3 MA60=64.92" }, "pnl_pct": null }, @@ -411,31 +411,31 @@ "type": "持仓策略", "sector": "", "business": "", - "price": 14.13, - "prev_close": 13.89, - "open": 14.08, - "high": 15.28, - "low": 13.78, - "change_pct": 1.73, - "volume": 1159165.0, - "pe": 15.28, - "total_market_cap": 129.72, - "high_52w": 12.5, - "low_52w": 1.69, - "turnover_rate": 12.63, - "amplitude": 10.8, + "price": 13.86, + "prev_close": 14.13, + "open": 14.19, + "high": 14.57, + "low": 13.4, + "change_pct": -1.91, + "volume": 864239.0, + "pe": 15.54, + "total_market_cap": 127.24, + "high_52w": 12.72, + "low_52w": 1.09, + "turnover_rate": 9.41, + "amplitude": 8.28, "cost": 14.83, "shares": 1400, - "position_pct": 1.81, + "position_pct": 2.41, "strategy": { - "action": "持有观察 | ⚠️盈亏比偏低(1:0.7),不建议加仓 | 止损13.91 | 目标17.0 | 买入区14.53~15.26 | 信号:持有", - "entry_zone": "14.53~15.26", + "action": "持有观察 | ⚠️盈亏比偏低(1:1.5),不建议加仓 | 止损13.91 | 目标15.54 | 买入区13.33~14.09 | 信号:持有", + "entry_zone": "13.33~14.09", "stop_loss": 13.91, - "take_profit": 17.0, + "take_profit": 15.54, "type": "持仓策略", - "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:主动买盘占优 强撑:12.5 弱撑:13.51 弱压:15.01 强压:15.28" + "tech_snapshot": "形态:小阴线/bearish 量价:主动买盘占优 强撑:12.72 弱撑:13.32 弱压:14.49 强压:15.54 | MA5=14.54 MA10=15.05 MA20=15.38 MA60=13.59" }, - "pnl_pct": -4.72 + "pnl_pct": -6.54 }, { "code": "000711", @@ -444,29 +444,29 @@ "type": "自选策略", "sector": "", "business": "", - "price": 4.55, - "prev_close": 4.79, - "open": 4.63, - "high": 4.7, - "low": 4.55, - "change_pct": -5.01, - "volume": 768072.0, - "pe": 5.03, - "total_market_cap": 108.35, - "high_52w": 4.55, - "low_52w": 0.9, - "turnover_rate": 3.23, - "amplitude": 3.13, + "price": 4.32, + "prev_close": 4.55, + "open": 4.4, + "high": 4.47, + "low": 4.32, + "change_pct": -5.05, + "volume": 424662.0, + "pe": 4.78, + "total_market_cap": 102.87, + "high_52w": 4.32, + "low_52w": 0.51, + "turnover_rate": 1.78, + "amplitude": 3.3, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标5.03 | 止损4.11 | 买入区4.46~4.64 | 信号:观望", - "entry_zone": "4.46~4.64", - "stop_loss": 4.11, - "take_profit": 5.03, + "action": "盈利持有 | 目标4.75 | 止损3.82 | 买入区4.23~4.41 | 信号:观望", + "entry_zone": "4.23~4.41", + "stop_loss": 3.82, + "take_profit": 4.75, "type": "自选策略", - "tech_snapshot": "形态:带上影阴线/bearish 量价:主动卖盘占优 强撑:3.28 弱撑:4.5 弱压:4.79 强压:5.03" + "tech_snapshot": "形态:带上影阴线/bearish 量价:主动卖盘占优 强撑:3.99 弱撑:4.27 弱压:4.55 强压:4.75 | MA5=4.98 MA10=5.24 MA20=5.54 MA60=5.09" }, "pnl_pct": null }, @@ -477,19 +477,19 @@ "type": "自选", "sector": "半导体/存储", "business": "存储芯片(闪存主控/NAND/DRAM模组),嵌入式存储解决方案", - "price": 951.0, - "prev_close": 891.0, - "open": 881.1, - "high": 980.0, - "low": 872.31, - "change_pct": 6.73, - "volume": 218735.0, - "pe": 980.1, - "total_market_cap": 1568.34, - "high_52w": 801.9, - "low_52w": 1.26, - "turnover_rate": 13.26, - "amplitude": 12.09, + "price": 970.0, + "prev_close": 951.0, + "open": 939.95, + "high": 978.0, + "low": 886.66, + "change_pct": 2.0, + "volume": 171300.0, + "pe": 1046.1, + "total_market_cap": 1599.67, + "high_52w": 855.9, + "low_52w": 0.92, + "turnover_rate": 10.39, + "amplitude": 9.6, "cost": 0, "shares": 0, "position_pct": 0, @@ -499,7 +499,7 @@ "stop_loss": 810.0, "take_profit": 1153.26, "type": "自选策略", - "tech_snapshot": "形态:光头光脚阳线/neutral 量价:主动买盘占优 强撑:801.9 弱撑:888.87 弱压:996.56 强压:980.1" + "tech_snapshot": "形态:带下影阳线/neutral 量价:主动买盘占优 强撑:855.9 弱撑:911.77 弱压:1003.11 强压:1046.1 | MA5=828.82 MA10=748.06 MA20=686.42 MA60=593.36" }, "pnl_pct": null }, @@ -510,29 +510,29 @@ "type": "自选", "sector": "新能源汽车", "business": "新能源整车(乘用车/商用车),动力电池(弗迪电池),半导体(比亚迪半导体)", - "price": 78.2, - "prev_close": 82.2, - "open": 81.51, - "high": 81.8, - "low": 78.2, - "change_pct": -4.87, - "volume": 663208.0, - "pe": 90.42, - "total_market_cap": 2726.53, - "high_52w": 73.98, - "low_52w": 1.3, - "turnover_rate": 1.9, - "amplitude": 4.38, + "price": 79.64, + "prev_close": 78.2, + "open": 78.2, + "high": 80.95, + "low": 77.6, + "change_pct": 1.84, + "volume": 523707.0, + "pe": 86.02, + "total_market_cap": 2776.74, + "high_52w": 70.38, + "low_52w": 0.94, + "turnover_rate": 1.5, + "amplitude": 4.28, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标90.42 | 止损67.69 | 买入区76.64~79.76 | 信号:观望", - "entry_zone": "76.64~79.76", - "stop_loss": 67.69, - "take_profit": 90.42, + "action": "盈利持有 | ⚠️盈亏比偏低(1:1.7),谨慎买入 | 目标83.6 | 止损76.48 | 买入区78.05~79.79 | 信号:观望", + "entry_zone": "78.05~79.79", + "stop_loss": 76.48, + "take_profit": 83.6, "type": "自选策略", - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:主动卖盘占优 强撑:73.98 弱撑:77.0 弱压:82.2 强压:90.42" + "tech_snapshot": "形态:带上影阳线/neutral 量价:主动卖盘占优 强撑:75.2 弱撑:77.84 弱压:81.19 强压:83.6 | MA5=97.85 MA10=97.95 MA20=96.9 MA60=96.07" }, "pnl_pct": null }, @@ -543,31 +543,31 @@ "type": "持仓", "sector": "互联网", "business": "社交(微信/QQ),游戏,云服务,AI,投资", - "price": 411.8, - "prev_close": 421.4, + "price": 420.2, + "prev_close": 411.8, "open": null, - "high": 421.2, - "low": 411.0, - "change_pct": -2.28, - "volume": 31872909.0, - "pe": 14.25, - "total_market_cap": 9108192913.0, + "high": 432.0, + "low": 415.0, + "change_pct": 2.04, + "volume": 33066070.0, + "pe": 14.54, + "total_market_cap": 9108284766.0, "high_52w": 677.7, "low_52w": 411.0, "turnover_rate": null, "amplitude": null, - "cost": 442.68, + "cost": 443.13, "shares": 100, - "position_pct": 3.43, + "position_pct": 4.41, "strategy": { - "action": "持有观察 | ⚠️盈亏比偏低(1:1.1),不建议加仓 | 止损330.01 | 目标415.12 | 买入区408.13~414.67 | 信号:持有", - "entry_zone": "408.13~414.67", - "stop_loss": 330.01, - "take_profit": 415.12, + "action": "持有观察 | ⚠️盈亏比偏低(1:1.1),不建议加仓 | 止损373.0 | 目标383.77 | 买入区411.8~423.07 | 信号:持有", + "entry_zone": "411.8~423.07", + "stop_loss": 373.0, + "take_profit": 383.77, "type": "持仓策略", - "tech_snapshot": "形态:带上影阴线/bearish 量价:数据不足 强撑:348.87 弱撑:408.13 弱压:421.4 强压:480.47" + "tech_snapshot": "形态:带上影阳线/neutral 量价:数据不足 强撑:401.96 弱撑:411.8 弱压:431.13 强压:444.18 | MA5=608.6 MA10=615.0 MA20=612.77 MA60=565.12" }, - "pnl_pct": -6.98 + "pnl_pct": -5.17 }, { "code": "00968", @@ -576,14 +576,14 @@ "type": "自选", "sector": "新能源/光伏", "business": "光伏玻璃全球龙头,太阳能发电站运营,EVA胶膜", - "price": 2.0, - "prev_close": 2.04, + "price": 2.03, + "prev_close": 2.0, "open": null, - "high": 2.08, - "low": 1.97, - "change_pct": -1.96, - "volume": 76650632.0, - "pe": 19.57, + "high": 2.06, + "low": 2.0, + "change_pct": 1.5, + "volume": 49476305.0, + "pe": 19.86, "total_market_cap": 9147043615.0, "high_52w": 4.092, "low_52w": 1.93, @@ -593,12 +593,12 @@ "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标2.6 | 止损1.77 | 买入区1.96~2.04", - "entry_zone": "1.96~2.04", - "stop_loss": 1.77, - "take_profit": 2.6, + "action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标2.14 | 止损1.75 | 买入区2.0~2.01", + "entry_zone": "2.0~2.01", + "stop_loss": 1.75, + "take_profit": 2.14, "type": "自选策略", - "tech_snapshot": "形态:带上影阴线/bearish 量价:数据不足 强撑:1.44 弱撑:1.95 弱压:2.06 强压:2.6" + "tech_snapshot": "形态:带上影阳线/neutral 量价:数据不足 强撑:1.92 弱撑:2.0 弱压:2.07 强压:2.14 | MA5=3.03 MA10=3.11 MA20=3.18 MA60=3.33" }, "pnl_pct": null }, @@ -609,31 +609,31 @@ "type": "持仓策略", "sector": "", "business": "", - "price": 80.0, - "prev_close": 86.0, + "price": 84.8, + "prev_close": 80.0, "open": null, - "high": 85.25, - "low": 79.05, - "change_pct": -6.98, - "volume": 142920129.0, - "pe": 110.65, - "total_market_cap": 8560677950.0, + "high": 85.8, + "low": 79.35, + "change_pct": 6.0, + "volume": 124513219.0, + "pe": 117.29, + "total_market_cap": 8560738730.0, "high_52w": 93.5, "low_52w": 41.5, "turnover_rate": null, "amplitude": null, - "cost": 75.86, + "cost": 75.94, "shares": 500, - "position_pct": 3.47, + "position_pct": 4.2, "strategy": { - "action": "盈利良好 | 止损75.27 | 目标94.88 | 买入区77.62~81.5 | 信号:持有", - "entry_zone": "77.62~81.5", - "stop_loss": 75.27, - "take_profit": 94.88, + "action": "盈利良好 | ⚠️盈亏比偏低(1:1.3),不建议加仓 | 止损80.81 | 目标85.82 | 买入区80.0~84.0 | 信号:持有", + "entry_zone": "80.0~84.0", + "stop_loss": 80.81, + "take_profit": 85.82, "type": "持仓策略", - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:64.03 弱撑:77.62 弱压:86.0 强压:98.83" + "tech_snapshot": "形态:光头光脚阳线/bullish 量价:数据不足 强撑:75.93 弱撑:80.0 弱压:85.98 强压:89.4 | MA5=81.51 MA10=78.21 MA20=77.92 MA60=70.26" }, - "pnl_pct": 5.46 + "pnl_pct": 11.67 }, { "code": "01070", @@ -642,29 +642,29 @@ "type": "自选", "sector": "消费电子/家电", "business": "电视机/显示器全球出货前列,光伏储能,智能家居", - "price": 12.61, - "prev_close": 12.66, + "price": 12.93, + "prev_close": 12.61, "open": null, - "high": 13.0, - "low": 12.4, - "change_pct": -0.39, - "volume": 7856876.0, - "pe": 22.12, + "high": 12.97, + "low": 12.41, + "change_pct": 2.54, + "volume": 5733644.0, + "pe": 22.68, "total_market_cap": 2520935155.0, "high_52w": 15.692, - "low_52w": 8.304, + "low_52w": 8.394, "turnover_rate": null, "amplitude": null, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标15.35 | 止损10.41 | 买入区12.36~12.86", - "entry_zone": "12.36~12.86", - "stop_loss": 10.41, - "take_profit": 15.35, + "action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标13.78 | 止损11.82 | 买入区12.64~12.68 | 信号:弱势持有", + "entry_zone": "12.64~12.68", + "stop_loss": 11.82, + "take_profit": 13.78, "type": "自选策略", - "tech_snapshot": "形态:带下影阴线/neutral 量价:数据不足 强撑:9.99 弱撑:12.34 弱压:12.94 强压:15.35" + "tech_snapshot": "形态:带下影阳线/bullish 量价:数据不足 强撑:11.71 弱撑:12.57 弱压:13.08 强压:13.78 | MA5=12.93 MA10=13.57 MA20=13.78 MA60=14.29" }, "pnl_pct": null }, @@ -675,31 +675,31 @@ "type": "自选", "sector": "煤炭/能源", "business": "煤炭开采(动力煤/焦煤),煤化工,铁路/港口运输", - "price": 40.62, - "prev_close": 40.58, + "price": 41.1, + "prev_close": 40.62, "open": null, - "high": 41.04, - "low": 40.0, - "change_pct": 0.1, - "volume": 13822606.0, - "pe": 16.36, + "high": 41.48, + "low": 40.18, + "change_pct": 1.18, + "volume": 16064016.0, + "pe": 16.56, "total_market_cap": 21689434304.0, "high_52w": 49.62, "low_52w": 29.076, "turnover_rate": null, "amplitude": null, - "cost": 45.85, + "cost": 45.89, "shares": 500, - "position_pct": 1.65, + "position_pct": 2.14, "strategy": { - "action": "持有观察 | ⚠️盈亏比偏低(1:1.0),不建议加仓 | 止损33.06 | 目标39.87 | 买入区40.07~40.55 | 信号:持有", - "entry_zone": "40.07~40.55", - "stop_loss": 33.06, - "take_profit": 39.87, + "action": "持有观察 | ⚠️盈亏比偏低(1:0.8),不建议加仓 | 止损40.06 | 目标43.8 | 买入区40.49~40.98 | 信号:持有", + "entry_zone": "40.49~40.98", + "stop_loss": 40.06, + "take_profit": 43.8, "type": "持仓策略", - "tech_snapshot": "形态:带下影阴线/neutral 量价:数据不足 强撑:34.95 弱撑:40.07 弱压:41.11 强压:46.15" + "tech_snapshot": "形态:光头光脚阳线/bullish 量价:数据不足 强撑:37.68 弱撑:40.49 弱压:41.79 强压:44.29 | MA5=41.55 MA10=42.48 MA20=44.3 MA60=45.37" }, - "pnl_pct": -11.41 + "pnl_pct": -10.44 }, { "code": "01211", @@ -708,31 +708,31 @@ "type": "持仓", "sector": "新能源汽车", "business": "新能源整车(乘用车/商用车),动力电池,电机电控", - "price": 72.65, - "prev_close": 76.05, + "price": 72.9, + "prev_close": 72.65, "open": null, - "high": 75.55, - "low": 72.2, - "change_pct": -4.47, - "volume": 32623656.0, - "pe": 35.8, + "high": 74.6, + "low": 72.45, + "change_pct": 0.34, + "volume": 24806182.0, + "pe": 35.92, "total_market_cap": 9117197565.0, "high_52w": 135.889, "low_52w": 72.2, "turnover_rate": null, "amplitude": null, - "cost": 104.76, + "cost": 104.87, "shares": 600, - "position_pct": 3.7, + "position_pct": 4.62, "strategy": { - "action": "深套持有 | 深套持有 | 止损54.55 | 目标77.13 | 买入区65.39~76.28 | 信号:持有", - "entry_zone": "65.39~76.28", - "stop_loss": 54.55, - "take_profit": 77.13, + "action": "深套持有 | 深套持有 | 止损65.47 | 目标76.78 | 买入区66.06~77.07 | 信号:持有", + "entry_zone": "66.06~77.07", + "stop_loss": 65.47, + "take_profit": 76.78, "type": "持仓策略", - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:57.67 弱撑:71.38 弱压:76.05 强压:89.27" + "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:数据不足 强撑:66.95 弱撑:72.33 弱压:74.48 强压:79.98 | MA5=96.92 MA10=96.4 MA20=97.59 MA60=97.92" }, - "pnl_pct": -30.65 + "pnl_pct": -30.49 }, { "code": "01478", @@ -741,31 +741,31 @@ "type": "持仓", "sector": "消费电子", "business": "摄像头模组(CCM),指纹识别模组,车载摄像头", - "price": 6.86, - "prev_close": 7.2, + "price": 6.9, + "prev_close": 6.86, "open": null, - "high": 7.17, - "low": 6.6, - "change_pct": -4.72, - "volume": 11489132.0, - "pe": 4.96, + "high": 6.95, + "low": 6.74, + "change_pct": 0.58, + "volume": 5045134.0, + "pe": 4.99, "total_market_cap": 1194890725.0, "high_52w": 16.44, "low_52w": 6.6, "turnover_rate": null, "amplitude": null, - "cost": 13.77, + "cost": 13.47, "shares": 11000, - "position_pct": 6.37, + "position_pct": 7.97, "strategy": { - "action": "深套持有 | 深套持有 | 止损3.82 | 目标8.4 | 买入区6.17~7.2 | 信号:持有", - "entry_zone": "6.17~7.2", - "stop_loss": 3.82, - "take_profit": 8.4, + "action": "深套持有 | 深套持有 | 止损6.17 | 目标7.14 | 买入区6.23~7.27 | 信号:持有", + "entry_zone": "6.23~7.27", + "stop_loss": 6.17, + "take_profit": 7.14, "type": "持仓策略", - "tech_snapshot": "形态:带下影阴线/neutral 量价:数据不足 强撑:4.04 弱撑:6.58 弱压:7.2 强压:9.72" + "tech_snapshot": "形态:锤子线/T字线/bullish 量价:数据不足 强撑:6.3 弱撑:6.79 弱压:7.0 强压:7.44 | MA5=8.6 MA10=8.92 MA20=9.28 MA60=8.9" }, - "pnl_pct": -50.18 + "pnl_pct": -48.78 }, { "code": "01888", @@ -774,31 +774,31 @@ "type": "自选", "sector": "电子/覆铜板", "business": "覆铜板(CCL)全球龙头,印刷线路板(PCB),玻璃纤维布", - "price": 98.55, - "prev_close": 104.2, + "price": 96.3, + "prev_close": 98.55, "open": null, - "high": 103.5, - "low": 92.3, - "change_pct": -5.42, - "volume": 78063817.0, - "pe": 127.17, + "high": 102.4, + "low": 89.05, + "change_pct": -2.28, + "volume": 71922441.0, + "pe": 124.27, "total_market_cap": 3151450000.0, "high_52w": 107.2, - "low_52w": 8.39, + "low_52w": 8.52, "turnover_rate": null, "amplitude": null, - "cost": 88.14, + "cost": 88.23, "shares": 500, - "position_pct": 4.11, + "position_pct": 5.28, "strategy": { - "action": "盈利良好 | 止损89.01 | 目标129.34 | 买入区92.73~97.37 | 信号:持有", - "entry_zone": "92.73~97.37", - "stop_loss": 89.01, - "take_profit": 129.34, + "action": "盈利良好 | 止损85.43 | 目标95.43 | 买入区89.6~94.08 | 信号:持有", + "entry_zone": "89.6~94.08", + "stop_loss": 85.43, + "take_profit": 95.43, "type": "持仓策略", - "tech_snapshot": "形态:锤子线/T字线/bullish 量价:数据不足 强撑:54.42 弱撑:92.73 弱压:104.2 强压:141.82" + "tech_snapshot": "形态:锤子线/T字线/neutral 量价:数据不足 强撑:81.55 弱撑:89.6 弱压:102.95 强压:110.45 | MA5=95.1 MA10=88.76 MA20=72.25 MA60=47.53" }, - "pnl_pct": 11.81 + "pnl_pct": 9.15 }, { "code": "02202", @@ -807,31 +807,31 @@ "type": "持仓", "sector": "房地产", "business": "住宅开发,物业服务(万物云),商业地产,长租", - "price": 2.2, - "prev_close": 2.25, + "price": 2.21, + "prev_close": 2.2, "open": null, - "high": 2.36, - "low": 2.17, - "change_pct": -2.22, - "volume": 47769776.0, - "pe": -0.97, + "high": 2.28, + "low": 2.16, + "change_pct": 0.45, + "volume": 22750076.0, + "pe": -0.98, "total_market_cap": 11930709471.0, "high_52w": 5.99, - "low_52w": 2.17, + "low_52w": 2.16, "turnover_rate": null, "amplitude": null, - "cost": 4.66, + "cost": 4.67, "shares": 19700, - "position_pct": 3.58, + "position_pct": 4.6, "strategy": { - "action": "深套持有 | 深套持有 | 止损1.68 | 目标2.54 | 买入区1.98~2.31 | 信号:持有", - "entry_zone": "1.98~2.31", - "stop_loss": 1.68, - "take_profit": 2.54, + "action": "深套持有 | 深套持有 | 止损1.82 | 目标2.09 | 买入区2.0~2.33 | 信号:持有", + "entry_zone": "2.0~2.33", + "stop_loss": 1.82, + "take_profit": 2.09, "type": "持仓策略", - "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:数据不足 强撑:1.7 弱撑:2.13 弱压:2.32 强压:2.78" + "tech_snapshot": "形态:长影星线/neutral 量价:数据不足 强撑:2.02 弱撑:2.16 弱压:2.28 强压:2.42 | MA5=3.35 MA10=3.39 MA20=3.46 MA60=3.53" }, - "pnl_pct": -52.79 + "pnl_pct": -52.68 }, { "code": "02318", @@ -840,14 +840,14 @@ "type": "自选", "sector": "金融/保险", "business": "综合金融(保险/银行/证券/信托),科技金融", - "price": 50.55, - "prev_close": 51.95, + "price": 51.9, + "prev_close": 50.55, "open": null, - "high": 52.2, - "low": 50.0, - "change_pct": -2.69, - "volume": 65486720.0, - "pe": 8.07, + "high": 52.45, + "low": 50.35, + "change_pct": 2.67, + "volume": 43912077.0, + "pe": 8.29, "total_market_cap": 18107641995.0, "high_52w": 72.689, "low_52w": 45.648, @@ -857,12 +857,12 @@ "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 止损参考50.05 | 买入区50.57~52.63 | 信号:关注", - "entry_zone": "50.57~52.63", - "stop_loss": 50.05, - "take_profit": 59.32, + "action": "盈利持有 | 止损参考49.36 | 买入区50.08~51.12 | 信号:弱势持有", + "entry_zone": "50.08~51.12", + "stop_loss": 49.36, + "take_profit": 53.76, "type": "自选策略", - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:42.17 弱撑:49.63 弱压:51.95 强压:59.67" + "tech_snapshot": "形态:光头光脚阳线/bullish 量价:数据不足 强撑:47.45 弱撑:50.55 弱压:52.88 强压:55.78 | MA5=66.58 MA10=68.47 MA20=68.47 MA60=67.52" }, "pnl_pct": null }, @@ -873,29 +873,29 @@ "type": "自选", "sector": "医药/CRO", "business": "小分子药物发现/临床前CRO,化学药/生物药CDMO", - "price": 145.4, - "prev_close": 145.0, + "price": 152.9, + "prev_close": 145.4, "open": null, - "high": 150.3, - "low": 143.4, - "change_pct": 0.28, - "volume": 6770699.0, - "pe": 20.45, + "high": 154.6, + "low": 144.4, + "change_pct": 5.16, + "volume": 13203157.0, + "pe": 21.5, "total_market_cap": 2963608255.0, - "high_52w": 150.3, - "low_52w": 72.813, + "high_52w": 154.6, + "low_52w": 73.063, "turnover_rate": null, "amplitude": null, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标175.57 | 止损129.97 | 买入区142.49~148.31", - "entry_zone": "142.49~148.31", - "stop_loss": 129.97, - "take_profit": 175.57, + "action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标163.24 | 止损149.19 | 买入区150.72~152.54 | 信号:买入", + "entry_zone": "150.72~152.54", + "stop_loss": 149.19, + "take_profit": 163.24, "type": "自选策略", - "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:数据不足 强撑:117.17 弱撑:142.43 弱压:149.33 强压:175.57" + "tech_snapshot": "形态:光头光脚阳线/bullish 量价:数据不足 强撑:138.63 弱撑:145.4 弱压:157.47 强压:163.24 | MA5=139.14 MA10=132.31 MA20=128.35 MA60=128.79" }, "pnl_pct": null }, @@ -906,31 +906,31 @@ "type": "持仓", "sector": "银行", "business": "香港发钞行之一,零售银行,财富管理,跨境业务", - "price": 45.56, - "prev_close": 46.32, + "price": 43.6, + "prev_close": 44.305, "open": null, - "high": 46.3, - "low": 44.94, - "change_pct": -1.64, - "volume": 16160106.0, - "pe": 12.01, + "high": 44.4, + "low": 43.38, + "change_pct": -1.59, + "volume": 18551296.0, + "pe": 11.49, "total_market_cap": 10572780266.0, - "high_52w": 49.36, - "low_52w": 32.63, + "high_52w": 48.105, + "low_52w": 31.375, "turnover_rate": null, "amplitude": null, - "cost": 43.67, - "shares": 1000, - "position_pct": 3.73, + "cost": 0, + "shares": 0, + "position_pct": 0, "strategy": { - "action": "盈利持有 | ⚠️盈亏比偏低(1:1.0),不建议加仓 | 止损40.65 | 目标45.62 | 买入区44.9~45.6 | 信号:加仓", - "entry_zone": "44.9~45.6", - "stop_loss": 40.65, - "take_profit": 45.62, - "type": "持仓策略", - "tech_snapshot": "形态:带下影阴线/neutral 量价:数据不足 强撑:41.18 弱撑:44.9 弱压:46.32 强压:50.02" + "action": "盈利持有 | 目标47.32 | 止损42.37 | 买入区42.81~44.35 | 信号:关注", + "entry_zone": "42.81~44.35", + "stop_loss": 42.37, + "take_profit": 47.32, + "type": "自选策略", + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:40.33 弱撑:43.25 弱压:44.3 强压:47.32 | MA5=46.6 MA10=47.51 MA20=47.55 MA60=45.8" }, - "pnl_pct": 4.33 + "pnl_pct": null }, { "code": "02628", @@ -939,14 +939,14 @@ "type": "自选", "sector": "保险", "business": "人身保险(寿险/健康险/意外险),养老保险", - "price": 26.92, - "prev_close": 28.48, + "price": 27.64, + "prev_close": 26.92, "open": null, - "high": 28.56, - "low": 26.7, - "change_pct": -5.48, - "volume": 79725231.0, - "pe": 8.61, + "high": 28.28, + "low": 26.94, + "change_pct": 2.67, + "volume": 44946286.0, + "pe": 8.84, "total_market_cap": 28264705000.0, "high_52w": 36.16, "low_52w": 17.72, @@ -956,12 +956,12 @@ "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标32.27 | 止损23.16 | 买入区26.38~27.46", - "entry_zone": "26.38~27.46", - "stop_loss": 23.16, - "take_profit": 32.27, + "action": "盈利持有 | ⚠️盈亏比偏低(1:1.8),谨慎买入 | 目标29.52 | 止损26.97 | 买入区27.24~27.9", + "entry_zone": "27.24~27.9", + "stop_loss": 26.97, + "take_profit": 29.52, "type": "自选策略", - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:22.51 弱撑:26.23 弱压:28.48 强压:32.27" + "tech_snapshot": "形态:带上影阳线/neutral 量价:数据不足 强撑:25.8 弱撑:26.92 弱压:28.38 强压:29.52 | MA5=28.42 MA10=29.95 MA20=31.14 MA60=31.23" }, "pnl_pct": null }, @@ -972,14 +972,14 @@ "type": "持仓", "sector": "生物医药", "business": "创新药(肿瘤/免疫),泽布替尼/替雷利珠单抗,全球化", - "price": 165.9, - "prev_close": 167.0, + "price": 174.5, + "prev_close": 165.9, "open": null, - "high": 170.9, - "low": 164.7, - "change_pct": -0.66, - "volume": 4390470.0, - "pe": 35.88, + "high": 177.0, + "low": 165.5, + "change_pct": 5.18, + "volume": 7213063.0, + "pe": 37.74, "total_market_cap": 1541419108.0, "high_52w": 229.4, "low_52w": 144.1, @@ -989,12 +989,12 @@ "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标183.57 | 止损141.1 | 买入区162.58~168.29 | 信号:关注", - "entry_zone": "162.58~168.29", - "stop_loss": 141.1, - "take_profit": 183.57, + "action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标186.83 | 止损164.24 | 买入区172.19~174.27 | 信号:买入", + "entry_zone": "172.19~174.27", + "stop_loss": 164.24, + "take_profit": 186.83, "type": "自选策略", - "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:数据不足 强撑:150.77 弱撑:163.43 弱压:169.63 强压:183.57" + "tech_snapshot": "形态:带下影阳线/bullish 量价:数据不足 强撑:158.7 弱撑:165.9 弱压:180.03 强压:186.83 | MA5=184.9 MA10=191.56 MA20=196.94 MA60=193.6" }, "pnl_pct": null }, @@ -1005,31 +1005,31 @@ "type": "自选", "sector": "通信/光缆", "business": "光纤预制棒/光纤/光缆全球龙头,通信线缆,数据中心", - "price": 250.6, - "prev_close": 287.6, + "price": 239.4, + "prev_close": 250.6, "open": null, - "high": 286.8, - "low": 242.0, - "change_pct": -12.87, - "volume": 28472896.0, - "pe": 92.49, + "high": 256.6, + "low": 227.2, + "change_pct": -4.47, + "volume": 21884160.0, + "pe": 88.36, "total_market_cap": 827905108.0, "high_52w": 305.0, "low_52w": 18.76, "turnover_rate": null, "amplitude": null, - "cost": 263.45, + "cost": 263.72, "shares": 500, - "position_pct": 11.43, + "position_pct": 13.47, "strategy": { - "action": "持有观察 | ⚠️盈亏比偏低(1:1.2),不建议加仓 | 止损161.76 | 目标301.19 | 买入区232.8~250.28 | 信号:持有", - "entry_zone": "232.8~250.28", - "stop_loss": 161.76, - "take_profit": 301.19, + "action": "持有观察 | ⚠️盈亏比偏低(1:1.0),不建议加仓 | 止损175.78 | 目标260.3 | 买入区226.73~241.67 | 信号:持有", + "entry_zone": "226.73~241.67", + "stop_loss": 175.78, + "take_profit": 260.3, "type": "持仓策略", - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:171.0 弱撑:232.8 弱压:287.6 强压:348.6" + "tech_snapshot": "形态:带下影阴线/neutral 量价:数据不足 强撑:182.07 弱撑:226.73 弱压:256.13 强压:301.27 | MA5=270.0 MA10=249.88 MA20=243.41 MA60=229.24" }, - "pnl_pct": -4.88 + "pnl_pct": -9.22 }, { "code": "09868", @@ -1038,14 +1038,14 @@ "type": "自选", "sector": "新能源汽车", "business": "智能电动汽车(SUV/轿车),自动驾驶技术(XNGP),飞行汽车", - "price": 45.58, - "prev_close": 47.9, + "price": 47.4, + "prev_close": 45.58, "open": null, - "high": 47.9, - "low": 45.32, - "change_pct": -4.84, - "volume": 15866055.0, - "pe": -10.81, + "high": 49.14, + "low": 46.22, + "change_pct": 3.99, + "volume": 19243364.0, + "pe": -11.24, "total_market_cap": 1916069323.0, "high_52w": 110.8, "low_52w": 45.32, @@ -1055,12 +1055,12 @@ "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 止损参考46.4 | 买入区46.88~48.8", - "entry_zone": "46.88~48.8", - "stop_loss": 46.4, - "take_profit": 59.81, + "action": "盈利持有 | ⚠️盈亏比偏低(1:1.6),谨慎买入 | 止损参考45.44 | 买入区46.98~47.89", + "entry_zone": "46.98~47.89", + "stop_loss": 45.44, + "take_profit": 51.57, "type": "自选策略", - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:33.09 弱撑:44.63 弱压:47.9 强压:59.45" + "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:数据不足 强撑:43.8 弱撑:45.58 弱压:49.02 强压:51.44 | MA5=79.1 MA10=79.12 MA20=79.16 MA60=73.45" }, "pnl_pct": null }, @@ -1071,14 +1071,14 @@ "type": "持仓", "sector": "互联网", "business": "电商(淘宝/天猫),云计算(阿里云),本地生活(饿了么/高德)", - "price": 89.5, - "prev_close": 95.0, + "price": 93.0, + "prev_close": 89.5, "open": null, - "high": 92.5, - "low": 88.65, - "change_pct": -5.79, - "volume": 176208269.0, - "pe": 14.65, + "high": 95.45, + "low": 91.15, + "change_pct": 3.91, + "volume": 123324036.0, + "pe": 15.22, "total_market_cap": 19206078670.0, "high_52w": 185.173, "low_52w": 88.65, @@ -1088,12 +1088,12 @@ "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标114.77 | 止损75.68 | 买入区87.71~91.29 | 信号:关注", - "entry_zone": "87.71~91.29", - "stop_loss": 75.68, - "take_profit": 114.77, + "action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标100.13 | 止损80.8 | 买入区91.68~93.28", + "entry_zone": "91.68~93.28", + "stop_loss": 80.8, + "take_profit": 100.13, "type": "自选策略", - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:65.67 弱撑:87.93 弱压:95.0 强压:114.77" + "tech_snapshot": "形态:带上影阳线/neutral 量价:数据不足 强撑:86.53 弱撑:89.5 弱压:95.52 强压:100.13 | MA5=146.48 MA10=147.25 MA20=155.7 MA60=148.36" }, "pnl_pct": null }, @@ -1105,28 +1105,28 @@ "sector": "新能源材料", "business": "锂电负极材料(石墨化/硅碳),电磁屏蔽设备", "price": 14.19, - "prev_close": 15.13, - "open": 15.11, - "high": 15.12, - "low": 14.19, - "change_pct": -6.21, - "volume": 258471.0, - "pe": 18.16, + "prev_close": 14.19, + "open": 14.18, + "high": 14.31, + "low": 13.74, + "change_pct": 0.0, + "volume": 203996.0, + "pe": 17.03, "total_market_cap": 82.78, - "high_52w": 12.1, - "low_52w": 1.1, - "turnover_rate": 4.43, - "amplitude": 6.15, + "high_52w": 11.35, + "low_52w": 0.82, + "turnover_rate": 3.5, + "amplitude": 4.02, "cost": 22.29, "shares": 1400, - "position_pct": 1.97, + "position_pct": 2.42, "strategy": { - "action": "深套持有 | 深套持有 | 止损11.4 | 目标15.69 | 买入区12.77~14.9 | 信号:持有", + "action": "深套持有 | 深套持有 | 止损13.28 | 目标15.29 | 买入区12.77~14.9 | 信号:持有", "entry_zone": "12.77~14.9", - "stop_loss": 11.4, - "take_profit": 15.69, + "stop_loss": 13.28, + "take_profit": 15.29, "type": "持仓策略", - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:主动卖盘占优 强撑:12.1 弱撑:13.88 弱压:15.13 强压:18.16" + "tech_snapshot": "形态:锤子线/T字线/bullish 量价:主动卖盘占优 强撑:12.7 弱撑:13.85 弱压:14.42 强压:15.46 | MA5=21.64 MA10=21.74 MA20=22.02 MA60=21.43" }, "pnl_pct": -36.34 }, @@ -1137,29 +1137,29 @@ "type": "自选", "sector": "工控自动化", "business": "工业自动化(伺服系统/PLC/变频器),新能源汽车电驱系统", - "price": 63.28, - "prev_close": 66.84, - "open": 66.4, - "high": 66.75, - "low": 63.13, - "change_pct": -5.33, - "volume": 430688.0, - "pe": 80.21, - "total_market_cap": 1525.25, - "high_52w": 53.47, - "low_52w": 1.03, - "turnover_rate": 1.79, - "amplitude": 5.42, + "price": 65.23, + "prev_close": 63.28, + "open": 62.98, + "high": 65.97, + "low": 62.01, + "change_pct": 3.08, + "volume": 482978.0, + "pe": 75.94, + "total_market_cap": 1572.25, + "high_52w": 50.62, + "low_52w": 1.13, + "turnover_rate": 2.0, + "amplitude": 6.26, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标73.62 | 止损54.78 | 买入区62.01~64.55 | 信号:观望", - "entry_zone": "62.01~64.55", - "stop_loss": 54.78, - "take_profit": 73.62, + "action": "盈利持有 | ⚠️盈亏比偏低(1:1.6),谨慎买入 | 目标69.14 | 止损62.21 | 买入区63.93~65.36 | 信号:观望", + "entry_zone": "63.93~65.36", + "stop_loss": 62.21, + "take_profit": 69.14, "type": "自选策略", - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:主动卖盘占优 强撑:55.16 弱撑:62.02 弱压:66.84 强压:73.62" + "tech_snapshot": "形态:光头光脚阳线/bullish 量价:主动卖盘占优 强撑:59.66 弱撑:62.84 弱压:66.8 强压:69.14 | MA5=73.35 MA10=75.2 MA20=77.15 MA60=73.84" }, "pnl_pct": null }, @@ -1170,31 +1170,31 @@ "type": "持仓策略", "sector": "", "business": "", - "price": 1253.89, - "prev_close": 1323.4, - "open": 1296.0, - "high": 1296.94, - "low": 1235.13, - "change_pct": -5.25, - "volume": 352811.0, - "pe": 1588.08, - "total_market_cap": 13917.42, - "high_52w": 1058.72, - "low_52w": 1.18, + "price": 1220.0, + "prev_close": 1253.89, + "open": 1239.0, + "high": 1264.21, + "low": 1169.49, + "change_pct": -2.7, + "volume": 352899.0, + "pe": 1504.67, + "total_market_cap": 13541.27, + "high_52w": 1003.11, + "low_52w": 1.13, "turnover_rate": 3.18, - "amplitude": 4.67, + "amplitude": 7.55, "cost": 1316.53, "shares": 100, - "position_pct": 12.27, + "position_pct": 15.27, "strategy": { - "action": "持有观察 | ⚠️盈亏比偏低(1:1.1),不建议加仓 | 止损1145.05 | 目标1385.99 | 买入区1227.03~1261.99 | 信号:持有", - "entry_zone": "1227.03~1261.99", - "stop_loss": 1145.05, - "take_profit": 1385.99, + "action": "持有观察 | ⚠️盈亏比偏低(1:1.0),不建议加仓 | 止损1155.88 | 目标1291.54 | 买入区1171.59~1217.9 | 信号:持有", + "entry_zone": "1171.59~1217.9", + "stop_loss": 1155.88, + "take_profit": 1291.54, "type": "持仓策略", - "tech_snapshot": "形态:带下影阴线/neutral 量价:主动买盘占优 强撑:1080.24 弱撑:1227.03 弱压:1323.4 强压:1443.74" + "tech_snapshot": "形态:锤子线/T字线/bullish 量价:主动买盘占优 强撑:1090.45 弱撑:1171.59 弱压:1266.31 强压:1345.35 | MA5=1316.36 MA10=1286.79 MA20=1234.59 MA60=991.33" }, - "pnl_pct": -4.76 + "pnl_pct": -7.33 }, { "code": "300548", @@ -1203,31 +1203,31 @@ "type": "自选", "sector": "光通信/光器件", "business": "光无源器件(分路器/波分复用),光有源器件,数据中心光互联", - "price": 262.65, - "prev_close": 281.9, - "open": 278.0, - "high": 286.48, - "low": 262.31, - "change_pct": -6.83, - "volume": 208699.0, - "pe": 338.28, - "total_market_cap": 715.36, - "high_52w": 225.52, - "low_52w": 0.88, - "turnover_rate": 7.66, - "amplitude": 8.57, + "price": 253.19, + "prev_close": 262.65, + "open": 262.0, + "high": 268.96, + "low": 243.58, + "change_pct": -3.6, + "volume": 142255.0, + "pe": 315.18, + "total_market_cap": 689.59, + "high_52w": 210.12, + "low_52w": 0.64, + "turnover_rate": 5.22, + "amplitude": 9.66, "cost": 231.46, "shares": 100, - "position_pct": 2.59, + "position_pct": 3.2, "strategy": { - "action": "盈利良好 | 止损247.13 | 目标324.75 | 买入区254.48~267.2 | 信号:持有", - "entry_zone": "254.48~267.2", - "stop_loss": 247.13, - "take_profit": 324.75, + "action": "盈利良好 | 止损223.68 | 目标257.59 | 买入区241.53~253.61 | 信号:持有", + "entry_zone": "241.53~253.61", + "stop_loss": 223.68, + "take_profit": 257.59, "type": "持仓策略", - "tech_snapshot": "形态:带上影阴线/bearish 量价:主动买盘占优 强撑:225.52 弱撑:254.48 弱压:281.9 强压:338.28" + "tech_snapshot": "形态:带下影阴线/neutral 量价:主动买盘占优 强撑:212.34 弱撑:241.53 弱压:266.91 强压:298.14 | MA5=282.18 MA10=273.89 MA20=252.1 MA60=241.84" }, - "pnl_pct": 13.48 + "pnl_pct": 9.39 }, { "code": "300750", @@ -1236,31 +1236,31 @@ "type": "持仓", "sector": "新能源汽车", "business": "动力电池(全球第一),储能电池,电池回收", - "price": 381.0, - "prev_close": 401.9, - "open": 401.0, - "high": 409.81, - "low": 381.0, - "change_pct": -5.2, - "volume": 465253.0, - "pe": 482.28, - "total_market_cap": 16219.22, - "high_52w": 321.52, - "low_52w": 1.15, - "turnover_rate": 1.09, - "amplitude": 7.17, + "price": 392.36, + "prev_close": 381.0, + "open": 386.96, + "high": 396.0, + "low": 378.2, + "change_pct": 2.98, + "volume": 425259.0, + "pe": 457.2, + "total_market_cap": 16702.81, + "high_52w": 304.8, + "low_52w": 1.01, + "turnover_rate": 1.0, + "amplitude": 4.67, "cost": 401.78, "shares": 100, - "position_pct": 3.72, + "position_pct": 4.64, "strategy": { - "action": "持有观察 | 止损329.8 | 目标366.02 | 买入区371.4~389.97 | 信号:持有", - "entry_zone": "371.4~389.97", - "stop_loss": 329.8, - "take_profit": 366.02, + "action": "持有观察 | ⚠️盈亏比偏低(1:0.8),不建议加仓 | 止损374.88 | 目标403.64 | 买入区381.0~388.85 | 信号:持有", + "entry_zone": "381.0~388.85", + "stop_loss": 374.88, + "take_profit": 403.64, "type": "持仓策略", - "tech_snapshot": "形态:带上影阴线/bearish 量价:买卖均衡 强撑:357.56 弱撑:371.4 弱压:401.9 强压:423.64" + "tech_snapshot": "形态:带下影阳线/bullish 量价:买卖均衡 强撑:357.24 弱撑:381.0 弱压:399.51 强压:420.46 | MA5=395.95 MA10=396.68 MA20=402.28 MA60=414.59" }, - "pnl_pct": -5.17 + "pnl_pct": -2.34 }, { "code": "518880", @@ -1269,62 +1269,62 @@ "type": "持仓", "sector": "商品/贵金属", "business": "黄金ETF,跟踪国内黄金现货价格", - "price": 8.39, - "prev_close": 8.287, - "open": 8.365, - "high": 8.393, - "low": 8.293, - "change_pct": 1.24, - "volume": 3848075.0, - "pe": 9.116, - "total_market_cap": 880.64, - "high_52w": 7.458, - "low_52w": 0.93, - "turnover_rate": 3.67, - "amplitude": 1.21, + "price": 8.449, + "prev_close": 8.39, + "open": 8.445, + "high": 8.479, + "low": 8.404, + "change_pct": 0.7, + "volume": 3398349.0, + "pe": 9.229, + "total_market_cap": 878.66, + "high_52w": 7.551, + "low_52w": 0.79, + "turnover_rate": 3.27, + "amplitude": 0.89, "cost": 12.19, "shares": 2400, - "position_pct": 1.86, + "position_pct": 2.45, "strategy": { - "action": "深套持有 | 深套持有 | 止损6.75 | 目标7.85 | 买入区7.55~8.81 | 信号:持有", - "entry_zone": "7.55~8.81", - "stop_loss": 6.75, - "take_profit": 7.85, + "action": "深套持有 | 深套持有 | 止损7.91 | 目标9.02 | 买入区7.6~8.87 | 信号:持有", + "entry_zone": "7.6~8.87", + "stop_loss": 7.91, + "take_profit": 9.02, "type": "持仓策略", - "tech_snapshot": "形态:锤子线/T字线/bullish 量价:数据不足 强撑:7.64 弱撑:8.29 弱压:8.42 强压:9.08" + "tech_snapshot": "形态:锤子线/T字线/bullish 量价:数据不足 强撑:7.77 弱撑:8.39 弱压:8.48 强压:9.12 | MA5=9.56 MA10=9.52 MA20=9.74 MA60=10.33" }, - "pnl_pct": -31.17 + "pnl_pct": -30.69 }, { "code": "600519", - "name": "XD贵州茅", + "name": "贵州茅台", "market": "A股", "type": "自选策略", "sector": "", "business": "", - "price": 1168.63, - "prev_close": 1184.08, - "open": 1199.0, - "high": 1199.0, - "low": 1168.1, - "change_pct": -1.3, - "volume": 50066.0, - "pe": 1302.49, - "total_market_cap": 14608.83, - "high_52w": 1065.67, - "low_52w": 0.94, - "turnover_rate": 0.4, - "amplitude": 2.61, + "price": 1194.96, + "prev_close": 1168.63, + "open": 1169.0, + "high": 1215.0, + "low": 1151.01, + "change_pct": 2.25, + "volume": 66878.0, + "pe": 1285.49, + "total_market_cap": 14937.98, + "high_52w": 1051.77, + "low_52w": 1.29, + "turnover_rate": 0.53, + "amplitude": 5.48, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标1274.48 | 止损1133.57 | 买入区1145.26~1189.93 | 信号:关注", - "entry_zone": "1145.26~1189.93", - "stop_loss": 1133.57, - "take_profit": 1274.48, + "action": "盈利持有 | ⚠️盈亏比偏低(1:1.6),谨慎买入 | 目标1250.98 | 止损1158.98 | 买入区1171.06~1195.78", + "entry_zone": "1171.06~1195.78", + "stop_loss": 1158.98, + "take_profit": 1250.98, "type": "自选策略", - "tech_snapshot": "形态:光头光脚阴线/neutral 量价:主动买盘占优 强撑:1082.68 弱撑:1158.15 弱压:1189.05 强压:1274.48" + "tech_snapshot": "形态:带上影阳线/neutral 量价:主动买盘占优 强撑:1123.0 弱撑:1158.98 弱压:1222.97 强压:1250.98 | MA5=1376.16 MA10=1380.75 MA20=1369.51 MA60=1396.07" }, "pnl_pct": null }, @@ -1335,31 +1335,31 @@ "type": "持仓", "sector": "电子元器件", "business": "薄膜电容器(全球前三),新能源车/风光/工控用电容", - "price": 188.76, - "prev_close": 190.04, - "open": 188.0, - "high": 195.5, - "low": 177.7, - "change_pct": -0.67, - "volume": 170848.0, - "pe": 209.04, - "total_market_cap": 424.71, - "high_52w": 171.04, - "low_52w": 1.22, - "turnover_rate": 7.59, - "amplitude": 9.37, + "price": 189.4, + "prev_close": 188.76, + "open": 191.0, + "high": 198.8, + "low": 185.6, + "change_pct": 0.34, + "volume": 169242.0, + "pe": 207.64, + "total_market_cap": 426.15, + "high_52w": 169.88, + "low_52w": 1.1, + "turnover_rate": 7.52, + "amplitude": 6.99, "cost": 147.18, "shares": 100, - "position_pct": 1.76, + "position_pct": 2.3, "strategy": { - "action": "盈利良好 | 止损170.5 | 目标190.65 | 买入区179.14~188.1 | 信号:持有", - "entry_zone": "179.14~188.1", - "stop_loss": 170.5, - "take_profit": 190.65, + "action": "盈利良好 | 止损167.33 | 目标179.4 | 买入区183.73~192.92 | 信号:持有", + "entry_zone": "183.73~192.92", + "stop_loss": 167.33, + "take_profit": 179.4, "type": "持仓策略", - "tech_snapshot": "形态:十字星/neutral 量价:买卖均衡 强撑:171.04 弱撑:179.14 弱压:196.94 强压:209.04" + "tech_snapshot": "形态:倒T线/射击之星/neutral 量价:买卖均衡 强撑:170.17 弱撑:183.73 弱压:196.93 强压:207.64 | MA5=178.6 MA10=169.98 MA20=164.66 MA60=141.48" }, - "pnl_pct": 28.25 + "pnl_pct": 28.69 }, { "code": "601318", @@ -1368,64 +1368,64 @@ "type": "自选策略", "sector": "", "business": "", - "price": 47.23, - "prev_close": 49.3, - "open": 49.29, - "high": 49.49, - "low": 47.2, - "change_pct": -4.2, - "volume": 1426441.0, - "pe": 54.23, - "total_market_cap": 5034.75, - "high_52w": 44.37, - "low_52w": 0.96, - "turnover_rate": 1.34, - "amplitude": 4.65, + "price": 48.6, + "prev_close": 47.23, + "open": 47.3, + "high": 48.87, + "low": 46.9, + "change_pct": 2.9, + "volume": 1089609.0, + "pe": 51.95, + "total_market_cap": 5180.79, + "high_52w": 42.51, + "low_52w": 0.82, + "turnover_rate": 1.02, + "amplitude": 4.17, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标53.2 | 止损45.81 | 买入区46.29~48.17 | 信号:观望", - "entry_zone": "46.29~48.17", - "stop_loss": 45.81, - "take_profit": 53.2, + "action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标50.71 | 止损47.14 | 买入区47.63~48.57 | 信号:观望", + "entry_zone": "47.63~48.57", + "stop_loss": 47.14, + "take_profit": 50.71, "type": "自选策略", - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:主动卖盘占优 强撑:44.37 弱撑:46.46 弱压:49.3 强压:53.2" + "tech_snapshot": "形态:光头光脚阳线/bullish 量价:主动卖盘占优 强撑:45.53 弱撑:47.23 弱压:49.35 强压:50.71 | MA5=68.18 MA10=69.11 MA20=67.13 MA60=63.42" }, "pnl_pct": null }, { "code": "601899", - "name": "XD紫金矿", + "name": "紫金矿业", "market": "A股", "type": "持仓", "sector": "有色金属", "business": "铜矿/金矿/锌矿开采冶炼,全球布局(刚果金/塞尔维亚)", - "price": 25.1, - "prev_close": 25.54, - "open": 25.9, - "high": 25.9, - "low": 24.86, - "change_pct": -1.72, - "volume": 3528208.0, - "pe": 28.09, - "total_market_cap": 5171.05, - "high_52w": 22.99, - "low_52w": 0.84, - "turnover_rate": 1.71, - "amplitude": 4.07, - "cost": 40.27, + "price": 25.79, + "prev_close": 25.1, + "open": 25.35, + "high": 25.96, + "low": 24.98, + "change_pct": 2.75, + "volume": 3232927.0, + "pe": 27.61, + "total_market_cap": 5313.2, + "high_52w": 22.59, + "low_52w": 0.77, + "turnover_rate": 1.57, + "amplitude": 3.9, + "cost": 39.89, "shares": 2400, - "position_pct": 5.77, + "position_pct": 7.34, "strategy": { - "action": "深套持有 | 深套持有 | 止损20.19 | 目标24.27 | 买入区22.59~26.36 | 信号:持有", - "entry_zone": "22.59~26.36", - "stop_loss": 20.19, - "take_profit": 24.27, + "action": "深套持有 | 深套持有 | 止损23.01 | 目标26.51 | 买入区23.21~27.08 | 信号:持有", + "entry_zone": "23.21~27.08", + "stop_loss": 23.01, + "take_profit": 26.51, "type": "持仓策略", - "tech_snapshot": "形态:光头光脚阴线/neutral 量价:主动买盘占优 强撑:22.99 弱撑:24.67 弱压:25.71 强压:28.09" + "tech_snapshot": "形态:带下影阳线/bullish 量价:主动买盘占优 强撑:23.51 弱撑:25.1 弱压:26.17 强压:27.61 | MA5=32.41 MA10=34.06 MA20=35.71 MA60=36.48" }, - "pnl_pct": -37.67 + "pnl_pct": -35.35 }, { "code": "688411", @@ -1434,31 +1434,31 @@ "type": "持仓", "sector": "储能/电力系统", "business": "电化学储能系统集成,电力辅助服务,新能源配储", - "price": 258.88, - "prev_close": 275.89, - "open": 279.91, - "high": 280.5, - "low": 255.19, - "change_pct": -6.17, - "volume": 5385072.0, - "pe": 331.07, - "total_market_cap": 343.21, - "high_52w": 220.71, - "low_52w": 0.94, - "turnover_rate": 4.06, - "amplitude": 9.17, + "price": 286.0, + "prev_close": 258.88, + "open": 260.12, + "high": 288.49, + "low": 260.12, + "change_pct": 10.48, + "volume": 8470055.0, + "pe": 310.66, + "total_market_cap": 379.16, + "high_52w": 207.1, + "low_52w": 1.48, + "turnover_rate": 6.39, + "amplitude": 10.96, "cost": 266.95, "shares": 200, - "position_pct": 5.17, + "position_pct": 6.31, "strategy": { - "action": "持有观察 | ⚠️盈亏比偏低(1:1.3),不建议加仓 | 止损226.93 | 目标297.02 | 买入区249.21~261.67 | 信号:持有", - "entry_zone": "249.21~261.67", - "stop_loss": 226.93, - "take_profit": 297.02, + "action": "盈利良好 | 止损263.66 | 目标283.32 | 买入区258.88~271.82 | 信号:持有", + "entry_zone": "258.88~271.82", + "stop_loss": 263.66, + "take_profit": 283.32, "type": "持仓策略", - "tech_snapshot": "形态:光头光脚阴线/neutral 量价:买卖均衡 强撑:220.71 弱撑:249.21 弱压:275.89 强压:309.4" + "tech_snapshot": "形态:光头光脚阳线/bullish 量价:买卖均衡 强撑:244.9 弱撑:258.88 弱压:296.29 强压:310.66 | MA5=263.81 MA10=256.47 MA20=250.21 MA60=243.32" }, - "pnl_pct": -3.02 + "pnl_pct": 7.14 }, { "code": "688630", @@ -1467,29 +1467,29 @@ "type": "自选策略", "sector": "", "business": "", - "price": 527.97, - "prev_close": 555.5, - "open": 541.31, - "high": 554.95, - "low": 512.5, - "change_pct": -4.96, - "volume": 5382835.0, - "pe": 666.6, - "total_market_cap": 695.55, - "high_52w": 444.4, - "low_52w": 0.96, - "turnover_rate": 4.09, - "amplitude": 7.64, + "price": 548.07, + "prev_close": 527.97, + "open": 538.0, + "high": 558.0, + "low": 503.66, + "change_pct": 3.81, + "volume": 6403258.0, + "pe": 633.56, + "total_market_cap": 722.03, + "high_52w": 422.38, + "low_52w": 1.12, + "turnover_rate": 4.86, + "amplitude": 10.29, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标640.15 | 止损473.66 | 买入区517.41~538.53", - "entry_zone": "517.41~538.53", - "stop_loss": 473.66, - "take_profit": 640.15, + "action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标590.92 | 止损469.2 | 买入区537.11~545.46 | 信号:买入", + "entry_zone": "537.11~545.46", + "stop_loss": 469.2, + "take_profit": 590.92, "type": "自选策略", - "tech_snapshot": "形态:带上影阴线/bearish 量价:主动买盘占优 强撑:444.4 弱撑:508.66 弱压:555.5 强压:640.15" + "tech_snapshot": "形态:锤子线/T字线/bullish 量价:主动买盘占优 强撑:482.24 弱撑:515.15 弱压:569.49 强压:590.92 | MA5=509.65 MA10=482.2 MA20=428.7 MA60=312.11" }, "pnl_pct": null }, @@ -1500,31 +1500,31 @@ "type": "持仓", "sector": "化工/生物制造", "business": "生物法丙氨酸/缬氨酸等氨基酸产品,合成生物学平台技术", - "price": 15.4, - "prev_close": 17.12, - "open": 15.28, - "high": 16.22, - "low": 14.52, - "change_pct": -10.05, - "volume": 29919712.0, - "pe": 20.54, - "total_market_cap": 38.52, - "high_52w": 13.7, - "low_52w": 5.97, - "turnover_rate": 11.96, - "amplitude": 9.93, + "price": 16.63, + "prev_close": 15.4, + "open": 15.65, + "high": 16.95, + "low": 15.65, + "change_pct": 7.99, + "volume": 28192651.0, + "pe": 18.48, + "total_market_cap": 41.59, + "high_52w": 12.32, + "low_52w": 2.78, + "turnover_rate": 11.27, + "amplitude": 8.44, "cost": 21.51, "shares": 2800, - "position_pct": 4.47, + "position_pct": 5.25, "strategy": { - "action": "深套持有 | 深套持有 | 止损12.93 | 目标18.73 | 买入区13.86~16.17 | 信号:持有", - "entry_zone": "13.86~16.17", - "stop_loss": 12.93, - "take_profit": 18.73, + "action": "深套持有 | 深套持有 | 止损13.5 | 目标15.97 | 买入区14.97~17.46 | 信号:持有", + "entry_zone": "14.97~17.46", + "stop_loss": 13.5, + "take_profit": 15.97, "type": "持仓策略", - "tech_snapshot": "形态:长影星线/neutral 量价:主动买盘占优 强撑:13.7 弱撑:14.54 弱压:17.12 强压:20.54" + "tech_snapshot": "形态:光头光脚阳线/bullish 量价:主动买盘占优 强撑:13.98 弱撑:15.4 弱压:17.17 强压:18.48 | MA5=33.22 MA10=33.72 MA20=35.78 MA60=34.59" }, - "pnl_pct": -28.41 + "pnl_pct": -22.69 }, { "code": "688795", @@ -1533,29 +1533,29 @@ "type": "自选", "sector": "半导体/GPU", "business": "国产GPU芯片设计,AI训练/推理芯片,图形渲染芯片", - "price": 672.77, - "prev_close": 700.0, - "open": 685.0, - "high": 697.99, - "low": 663.8, - "change_pct": -3.89, - "volume": 2500254.0, - "pe": 840.0, - "total_market_cap": 203.35, - "high_52w": 560.0, - "low_52w": 0.64, - "turnover_rate": 8.27, - "amplitude": 4.88, + "price": 703.18, + "prev_close": 672.77, + "open": 665.0, + "high": 708.2, + "low": 665.0, + "change_pct": 4.52, + "volume": 3511958.0, + "pe": 807.32, + "total_market_cap": 212.54, + "high_52w": 538.22, + "low_52w": 0.97, + "turnover_rate": 11.62, + "amplitude": 6.42, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标812.84 | 止损633.01 | 买入区659.31~686.23 | 信号:观望", - "entry_zone": "659.31~686.23", - "stop_loss": 633.01, - "take_profit": 812.84, + "action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标748.38 | 止损666.04 | 买入区689.12~703.01 | 信号:观望", + "entry_zone": "689.12~703.01", + "stop_loss": 666.04, + "take_profit": 748.38, "type": "自选策略", - "tech_snapshot": "形态:带上影阴线/bearish 量价:主动卖盘占优 强撑:560.0 弱撑:658.38 弱压:700.0 强压:812.84" + "tech_snapshot": "形态:光头光脚阳线/neutral 量价:主动卖盘占优 强撑:635.87 弱撑:672.77 弱压:719.25 强压:748.38 | MA5=690.42 MA10=663.58 MA20=645.82 MA60=652.59" }, "pnl_pct": null }, @@ -1566,29 +1566,29 @@ "type": "自选", "sector": "半导体/GPU", "business": "国产GPU芯片设计,图形渲染/通用计算芯片", - "price": 730.4, - "prev_close": 770.52, - "open": 756.0, - "high": 765.99, - "low": 730.0, - "change_pct": -5.21, - "volume": 1625640.0, - "pe": 924.62, - "total_market_cap": 135.33, - "high_52w": 616.42, - "low_52w": 0.59, - "turnover_rate": 8.77, - "amplitude": 4.67, + "price": 793.55, + "prev_close": 730.4, + "open": 720.0, + "high": 798.98, + "low": 720.0, + "change_pct": 8.65, + "volume": 3449367.0, + "pe": 876.48, + "total_market_cap": 147.03, + "high_52w": 584.32, + "low_52w": 1.4, + "turnover_rate": 18.62, + "amplitude": 10.81, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标866.13 | 止损687.24 | 买入区715.79~745.01 | 信号:关注", - "entry_zone": "715.79~745.01", - "stop_loss": 687.24, - "take_profit": 866.13, + "action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标849.82 | 止损723.1 | 买入区777.68~778.17", + "entry_zone": "777.68~778.17", + "stop_loss": 723.1, + "take_profit": 849.82, "type": "自选策略", - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:618.13 弱撑:718.27 弱压:770.52 强压:866.13" + "tech_snapshot": "形态:光头光脚阳线/neutral 量价:数据不足 强撑:691.86 弱撑:730.4 弱压:821.69 强压:849.82 | MA5=759.62 MA10=744.5 MA20=721.34 MA60=707.93" }, "pnl_pct": null }, @@ -1599,31 +1599,31 @@ "type": "自选", "sector": "半导体/晶圆代工", "business": "集成电路晶圆代工,先进制程(14nm/28nm及以上),成熟制程", - "price": 148.76, - "prev_close": 156.86, - "open": 153.7, - "high": 156.22, - "low": 146.5, - "change_pct": -5.16, - "volume": 107615543.0, - "pe": 188.23, - "total_market_cap": 2974.55, - "high_52w": 125.49, - "low_52w": 0.92, - "turnover_rate": 5.38, - "amplitude": 6.2, + "price": 151.0, + "prev_close": 148.76, + "open": 147.8, + "high": 152.99, + "low": 141.0, + "change_pct": 1.51, + "volume": 102740101.0, + "pe": 178.51, + "total_market_cap": 3019.34, + "high_52w": 119.01, + "low_52w": 0.91, + "turnover_rate": 5.14, + "amplitude": 8.06, "cost": 126.07, "shares": 300, - "position_pct": 4.34, + "position_pct": 5.44, "strategy": { - "action": "盈利良好 | 止损139.97 | 目标177.39 | 买入区144.77~152.01 | 信号:持有", - "entry_zone": "144.77~152.01", - "stop_loss": 139.97, - "take_profit": 177.39, + "action": "盈利良好 | 止损145.01 | 目标157.01 | 买入区143.67~150.85 | 信号:持有", + "entry_zone": "143.67~150.85", + "stop_loss": 145.01, + "take_profit": 157.01, "type": "持仓策略", - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:买卖均衡 强撑:125.49 弱撑:144.77 弱压:156.86 强压:184.78" + "tech_snapshot": "形态:锤子线/T字线/bullish 量价:买卖均衡 强撑:133.11 弱撑:143.67 弱压:155.66 强压:163.55 | MA5=148.89 MA10=140.54 MA20=135.42 MA60=121.68" }, - "pnl_pct": 18.0 + "pnl_pct": 19.77 } ] } \ No newline at end of file diff --git a/data/portfolio.json b/data/portfolio.json index d5012a2..f4fd19e 100644 --- a/data/portfolio.json +++ b/data/portfolio.json @@ -666,12 +666,12 @@ "change_pct": 1.62 } ], - "cash": 92664.2, + "cash": 73758.85, "total_market_value": 1107670.0, - "total_assets": 1239815.6, + "total_assets": 929069.85, "total_pl": 0, "position_pct": 88.25, - "updated_at": "2026-06-29 15:52", + "updated_at": "2026-06-29 22:20", "source": "/home/hmo/stocks/holding.xls", "frozen_cash": 39481.4, "available_cash": 73758.85, @@ -688,5 +688,9 @@ "amount": 18920.0, "timestamp": "2026-06-29 10:43" } - ] + ], + "total_mv": 855311.0, + "note": "cash fixed from screenshot 6/29, prices=CNY", + "currency": "CNY", + "last_verified_at": "2026-06-29 22:20" } \ No newline at end of file diff --git a/price_monitor.py b/price_monitor.py index ecca774..a6d9ce3 100644 --- a/price_monitor.py +++ b/price_monitor.py @@ -163,6 +163,11 @@ def refresh_data_prices(): changed = True if changed: pf['updated_at'] = datetime.now().strftime('%Y-%m-%d %H:%M') + # 统一计算总资产:持仓市值 + 现金(所有港股价已×HK_RATE转CNY) + pf['total_mv'] = round(sum( + h.get('shares',0) * h.get('price',0) for h in pf.get('holdings',[]) + ), 2) + pf['total_assets'] = round(pf['total_mv'] + pf.get('cash',0), 2) json.dump(pf, open(PORTFOLIO_PATH, 'w'), ensure_ascii=False, indent=2) elif pf.get('updated_at'): # 即使价格无变化,每10分钟刷新一次updated_at,防健康检查误报 diff --git a/scripts/data_validate.py b/scripts/data_validate.py new file mode 100644 index 0000000..62fdcd5 --- /dev/null +++ b/scripts/data_validate.py @@ -0,0 +1,89 @@ +#!/usr/bin/env python3 +"""data_validate.py — 数据自检,在所有报告产出前执行 + +检查清单: +1. 总资产 = 市值 + 现金 (误差 < 1%) +2. 持仓 vs 决策交叉检查 +3. 币种一致性(港股必须currency=HKD) +4. 数据时效:portfolio.json/decisions.json 今日已更新 + +返回值:通过→退出码0,输出"OK"。失败→退出码1,输出问题描述。 +""" + +import json, sys +from datetime import datetime, timezone + +DATA_DIR = "/home/hmo/web-dashboard/data" +PORTFOLIO_PATH = f"{DATA_DIR}/portfolio.json" +DECISIONS_PATH = f"{DATA_DIR}/decisions.json" +STALE_REPORT = f"{DATA_DIR}/strategy_staleness_report.json" + +issues = [] + +# ── 1. 总资产校验 ──────────────────────────────────────────── +try: + pf = json.load(open(PORTFOLIO_PATH)) + mv_calc = sum(h["shares"] * h["price"] for h in pf.get("holdings", []) if h.get("price")) + stored_ta = pf.get("total_assets", 0) + cash = pf.get("cash", 0) + + expected_ta = round(mv_calc + cash, 2) + if stored_ta > 0 and abs(stored_ta - expected_ta) / stored_ta > 0.01: + issues.append(f"总资产不匹配: 存储{stored_ta} ≠ 计算{expected_ta} (市值{mv_calc}+现金{cash})") +except Exception as e: + issues.append(f"portfolio.json读取失败: {e}") + +# ── 2. 持仓 vs 决策交叉检查 ────────────────────────────────── +try: + dec = json.load(open(DECISIONS_PATH)) + dec_codes = {} + for d in dec.get("decisions", []): + dec_codes[d["code"]] = d + + for h in pf.get("holdings", []): + code = h["code"] + if code not in dec_codes: + issues.append(f"持仓{code}({h.get('name','?')}) 在decisions.json中无对应决策") + + for code, d in dec_codes.items(): + if d.get("status") == "active" and d.get("type") == "持仓策略": + if not any(h["code"] == code for h in pf.get("holdings", [])): + issues.append(f"决策{code}({d.get('name','?')})标记持仓但portfolio.json中无此股") +except Exception as e: + issues.append(f"决策检查失败: {e}") + +# ── 3. 币种一致性 ──────────────────────────────────────────── +try: + for d in dec.get("decisions", []): + code = str(d.get("code", "")) + # 港股必须标记currency + if len(code) == 5 and code[0] in ("0", "1"): + cur = d.get("currency", "") + if cur not in ("HKD", "CNY"): + issues.append(f"港股{code}({d.get('name','?')}) 缺currency标记,不可靠") + # 如果标记了HKD,stop_loss也应该是合理的HKD价(>10) + sl = d.get("stop_loss", 0) + if cur == "HKD" and sl > 0 and sl < 1: + issues.append(f"港股{code} currency=HKD但stop_loss={sl} 异常低") +except Exception as e: + issues.append(f"币种检查失败: {e}") + +# ── 4. 数据时效 ────────────────────────────────────────────── +today = datetime.now().strftime("%Y-%m-%d") +try: + if pf.get("updated_at", "").startswith(today): + pass # OK + else: + issues.append(f"portfolio.json updated_at={pf.get('updated_at','?')} 不是今日") +except: + pass + +# ── 输出 ────────────────────────────────────────────────────── +if issues: + print("DATA_VALIDATE_FAIL") + for i in issues: + print(f" ⚠️ {i}") + sys.exit(1) +else: + print("DATA_VALIDATE_OK") + sys.exit(0) diff --git a/scripts/holdings_reconciliation.py b/scripts/holdings_reconciliation.py new file mode 100644 index 0000000..157951b --- /dev/null +++ b/scripts/holdings_reconciliation.py @@ -0,0 +1,132 @@ +#!/usr/bin/env python3 +"""holdings_reconciliation.py — 每日持仓数据一致性校验 + +在 decisions.json 和 portfolio.json 之间做双向核对: +1. 股数不一致 → 以 portfolio.json 为准(券商导入为源头真理) +2. 股票存在一个文件但不存在另一个 → 同步到双方一致 +3. 总资产重新计算并写入双方 + +24小时内禁止修改策略参数(止盈/止损/买入区),只修股数和总资产。 +""" +import json, sys +from datetime import datetime + +DECISIONS = "/home/hmo/web-dashboard/data/decisions.json" +PORTFOLIO = "/home/hmo/web-dashboard/data/portfolio.json" + +def main(): + dec = json.load(open(DECISIONS)) + pf = json.load(open(PORTFOLIO)) + + # Build maps + dmap = {d["code"]: d for d in dec.get("decisions", [])} + pmap = {h["code"]: h for h in pf.get("holdings", []) if h.get("shares", 0) > 0} + + changes = [] + + # 1. Remove from decisions if not in portfolio (ghost holdings) + for code in list(dmap.keys()): + d = dmap[code] + in_portfolio = code in pmap + if not in_portfolio: + if d.get("shares", 0) > 0: + old = d["shares"] + d["shares"] = 0 + d["type"] = "自选策略" + d.setdefault("changelog", []).append({ + "time": datetime.now().strftime("%Y-%m-%d %H:%M"), + "from": old, + "to": 0, + "reason": "reconciliation: 不在券商持仓" + }) + changes.append(f" {d.get('name','')}({code}): 清仓{old}→0股(不在portfolio)") + continue + # Same stock in both: sync share count (portfolio is source of truth) + p_shares = pmap[code]["shares"] + if d.get("shares", 0) != p_shares: + old = d.get("shares", 0) + d["shares"] = p_shares + d["type"] = "持仓策略" + d.setdefault("changelog", []).append({ + "time": datetime.now().strftime("%Y-%m-%d %H:%M"), + "from": old, + "to": p_shares, + "reason": "reconciliation: 股数与券商一致" + }) + changes.append(f" {d.get('name','')}({code}): 股数{old}→{p_shares}(对齐portfolio)") + + # 2. Add to decisions if in portfolio but not in decisions + for code in pmap: + h = pmap[code] + if code not in dmap: + # Stock is in portfolio but not in decisions → add stub + stub = { + "code": code, + "name": h.get("name", f"STOCK_{code}"), + "shares": h["shares"], + "price": h.get("price", 0), + "stop_loss": 0, + "take_profit": 0, + "entry_low": 0, + "entry_high": 0, + "cost": h.get("cost", 0), + "type": "持仓策略", + "status": "active", + "timing_signal": "持有", + "action": "持仓策略 | 等待技术分析完善", + "tech_snapshot": "", + "action_note": "reconciliation: 自动补充", + "reassessed_at": datetime.now().strftime("%Y-%m-%d %H:%M"), + "updated_at": datetime.now().strftime("%Y-%m-%d %H:%M"), + "changelog": [{ + "time": datetime.now().strftime("%Y-%m-%d %H:%M"), + "reason": "reconciliation: 券商持仓→自动补充策略" + }], + "trigger": {}, + "analysis": {}, + "currency": "CNY" + } + dec["decisions"].append(stub) + changes.append(f" {stub['name']}({code}): decisions新增持仓({h['shares']}股,来自portfolio)") + + # 3. Recalculate total_assets in portfolio + stock_value = 0 + for h in pf.get("holdings", []): + if h.get("shares", 0) > 0 and h.get("price", 0) > 0: + stock_value += h["shares"] * h["price"] + cash = pf.get("cash", 0) + total_assets = round(stock_value + cash, 2) + dec_total = 0 + for d in dec.get("decisions", []): + if d.get("shares", 0) > 0 and d.get("price", 0) > 0: + dec_total += d["shares"] * d["price"] + + old_total = pf.get("total_assets", 0) + pf["total_assets"] = total_assets + pf["updated_at"] = datetime.now().strftime("%Y-%m-%d %H:%M") + + # 4. Report + now = datetime.now().strftime("%Y-%m-%d %H:%M") + print(f"【持仓一致性校验】{now}") + print(f"") + if changes: + print(f"修正项 ({len(changes)}):") + for c in changes: + print(c) + else: + print("无差异,全部一致 ✅") + print(f"") + print(f"portfolio stock_value: {stock_value:.2f}") + print(f"portfolio cash: {cash:.2f}") + print(f"portfolio total_assets: {old_total} → {total_assets}") + print(f"decisions stock_value: {dec_total:.2f}") + print(f"decisions count(shares>0): {len([d for d in dec['decisions'] if d.get('shares',0)>0])}") + + # Write + dec["total"] = len(dec["decisions"]) + json.dump(dec, open(DECISIONS, "w"), ensure_ascii=False, indent=2) + json.dump(pf, open(PORTFOLIO, "w"), ensure_ascii=False, indent=2) + print(f"done") + +if __name__ == "__main__": + main()