From ee1849a6a3737c189b7c1c52f449b5fd9c09a1d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=9F=A5=E5=BE=AE?= Date: Wed, 24 Jun 2026 10:29:45 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E6=88=90=E9=95=BF=E4=BD=93=E7=B3=BB?= =?UTF-8?q?=E8=A1=A5=E9=BD=90=EF=BC=9A=E5=88=86=E6=94=AF=E6=89=AB=E6=8F=8F?= =?UTF-8?q?+=E6=AF=8F=E6=97=A5=E5=89=AA=E6=9E=9D+=E5=86=B3=E7=AD=96?= =?UTF-8?q?=E6=A0=91=E5=85=A8=E8=A6=86=E7=9B=96+=E5=88=86=E6=94=AF?= =?UTF-8?q?=E8=BE=93=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 核心改动: 1. 创建 branch_scanner.py — 每15分钟扫价格→评估分支适用性→记录trigger_count cron: 分支自成长-盘中 (15,30,45,00 9-15) 2. 创建 prune_branches.py — 每日21:00剪枝(触发>=5次且成功率<50% → 淘汰) cron: 分支剪枝-每日 (0 21 * * 1-5) — 之前是每周,频率太低 3. strategy_tree.py: _check_branch_condition 新增 price_lower 支持 buy_dip 分支同时检查上下界(price<=entry_high AND price_lower>=entry_low) 4. 43只股票全部补全决策树(之前只有6只) init_default_branches 生成每只6条分支:止损/回调买入/突破追涨/减仓/止盈/持有 5. stale_push_wlin 分支输出已存在(302-315行加载策略树,437-455行评估+追加) 下一期报告即显示:【弱势震荡→buy】价格回调到支撑区,弱势市场低吸 新增: 南亚新材(688519) 全面分析+策略+自选 买入区335~350 止损320 止盈400 RR=1.7 6月从285拉至409(+43%)后急跌至331(-19%),今日反弹缩量。高PE(228)炒作品种,等回调确认支撑 --- __pycache__/price_monitor.cpython-312.pyc | Bin 18325 -> 23508 bytes .../strategy_lifecycle.cpython-312.pyc | Bin 59260 -> 69131 bytes analyst-knowledge-log.md | 22 + branch_scanner.py | 148 + data/decisions.json | 6838 +++++++++++++-- data/evaluation_input.json | 1678 ++-- data/macro_context.json | 294 +- data/multi_tf_cache.json | 7595 +++++++++++++++-- data/portfolio.json | 573 +- data/portfolio.json.20260623 | 272 + data/price_history.json | 536 +- data/strategy_staleness_report.json | 264 +- data/xiaoguo_insights.json | 175 +- prune_branches.py | 112 + scripts/branch_scanner.py | 184 +- scripts/prune_branches.py | 135 +- strategy_tree.py | 18 + 17 files changed, 15469 insertions(+), 3375 deletions(-) create mode 100644 analyst-knowledge-log.md create mode 100644 branch_scanner.py create mode 100644 data/portfolio.json.20260623 create mode 100644 prune_branches.py diff --git a/__pycache__/price_monitor.cpython-312.pyc b/__pycache__/price_monitor.cpython-312.pyc index 9f79bda2d03de6304fd2d0caf31fd466e05455f6..b289690b3c0d81a3d0854ce5ff366a89e7c8be8d 100644 GIT binary patch delta 10364 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 IDMvv62eoifMF0Q* diff --git a/__pycache__/strategy_lifecycle.cpython-312.pyc b/__pycache__/strategy_lifecycle.cpython-312.pyc index f04255bc04f6c33baf37e3426966b13c7cd1f4e6..31b5f27c2c1c08d03ee37821de44fcdd8c4c8d85 100644 GIT binary patch delta 19020 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 delta 10286 zcmaJn33OCNw*7ibn$EuO8`(NxCxj#fk`NL=NWv13C8X2o*GZam(y?BL0Q364pdtj> zVyPe?1keFQ5$q9BK}4NJP(R@OKbdyMTY=wgOD;1Uu zTFE8rja`b>s-=o9&XDHn;Lda0TGtfSAvG67|LWJxWx9BOjaCaH3Syx4prp`9K;62E z)n-eF!)k9QA#`t0yfzdW!sywcTo3P!ps`#MO$p9S%s`1qo88141&7_-Y7{JHhn*PP zOdVvZ%N$(h&t=mWqq8|3{UmyMWI3vufuI6GC4!lBT1>ru4x&{Es_CJa%yF|2T>!wK zC%K3-GfNN~1Hi3nwm94>o28wM#kLUoV@&K)*;05n1o-ezLVj(ViL_cAWFEe70x4s^ z%_IqaNht!kbHIcE04Y8X$)NVwSZ}%BRQX5F$MLI`3N3Dz|3tx%mm>2k3aqN zQ}ZKJNBrSn$Co8!1vFj#_#=G&UP9{WLm87eqpLgP8E$GVklflPJ83h)aIEbP5{OEI z5CkLe4vB;ytE$Z^kJu1K3h08YLal5F?af*ovIYg#BKQRWA&lO5D^dx@2W2O7TU}$a z1#Qt>RHElCf|*$5Io4r|U!%oDtU?QM!ds^nz`(I>*A6`jgif0c2{!uKm_+|Npcs^- z?y0eH&CH&#se`AWwZ?g6wX=Lo#?i6)F{qiN-72$VHR**`w;F8_)PSO+ z30p^DY#p_k%*1Xq+uI$M)ef@DwQlSlEtf-+@{2h;U7lYMq6eY7+=#o}RJU@Kk@(Yt z`7SLgAW5`tatGH+Kc1XW&Q^)K#oF8g%f#MA3V^{7;nomSd$WZsf;YEHa1ggf=&)HG zZa=HQTbr#8G65CgMj%miR6)|%2;|iA7PFnV$ZIVQiSY;$5V#nF4Rl#MNG)AcAO)ZU z-D+lkI#m~@=-DcJ16qYhn3U**(xCx2njGd9W0M782eFzh0&%+<3!R$a98|3YP)(i( zNUu*zjy!~IM-ccUup>A|kL7nIk`su(hTwGo0t%*dvrfP%Crj$%P9d!o!J7!)Lhv?% z({xN}f`mRb1d{i#1${%_N5FjX0b;*K@EZi^5As_CY~$VQ41+)OGr5TLO9(zifc}to zS~_CP5jX^#dU#4nESvvO*weBbj1Eh?*#f)abJt%=mvg$q;O-3#8%#TB_l{)x)hNBI zV|t7#+~n{BE$rbFdrZ3(d=foZ5$$@dqCgXAYF6;`4sgzij#LlRMic$%q0yYlHF{3H za-3tNr(IO?=CvAyf?s?TJqM4oK+F>hS|L;swU{6%#R6v@-B+C)&RZ2;oKgSIBr#-u}hdMV^Bv7pikjg<%#o`pcm2pfJi^Zv}Fj}&{ zS>c=}29tO(ct|D+u#nctKnoS8t;DJEdFW4i4b{$zRU?Vs)Q8jjc@e=jHegi8L|D6R zUXWBGPMe`v0inWKDwfKIK(`P^1a5PHRO&3^7dT5eFix!i)7qG6WnzgC`Exm`?7?!5 zWRGt9+^u+C)y_#Xot1o;bCy^{#))}k46Gb^T^T@07T@KZ&9^xpg4Ty%m4Q<+zwmY9 zL->oHa?SzT?0aaly)M8-S{u$)(Xxfne!svL zpkhlk6&4mI`x+C(i}x8*LoY1M4WB2~i1V0!r8Li31ARn;wg|NZD5{dGVdOQ=YUsF{ zSmH^KXEcz=?;2Z}*N50N5> z-^_du35=-tEx^;`qhl+)uLDkral$%;oy=_Q;^XVk5oAsQ6x> zG=;VtT16e0)kzgY#jJ5X7F{5PLc{HTYz>Jz^rnpXa5A0q*T-pqCyF4_*Qu z$z}cxla@eQfz=h?;R%?K9u@<=&xfA6Bv*xesY{Y+`;q{LgACoiB*=po9vqg3s27TQ zJ*#v0SE?N568%Z3r}xMgFb_Yk^q~&fMYETNu|CR{MJ89l7!FC*z^NYQgoP77r0J2R z86JBgkNi80i7!bH)>Fc)x#^?h1nukTzu8aiNpTz zVA2xLc$`ZicPtb2WF~)1)MKqfzgU*ZJx=|WXK;_v(aW>+%Yb9K7_prr>2zDwNR>$p zXM8tijG@0<-lVD%Bk;Y%w{}_qRY!e~3Ff8#LG#jM^7PLs#4HklT(~Oe&bla-2mhch z%&(5*cxb9Or8?Gc!-|l^I=R-mcV?s&KHR6J6&~*L6%XS6H=e2YSms>rnB?)-%6ys} z8mC-Yh(=C6<7F{I8CfJ%LBwAwRY=Qv8iwOEWO;A7DOHL_X*rFpw{Rkr>dRHS&4*n# z>$A8x$gqlPw}v-aZEM^bv%M3FVvM=uc{-tCANLf!-0)&Lo^{AC5i|q1jwSl_VgS|; z;2cWcLBd(O+Z4+Y`nu_JKL<2a5*^*u=;RDE#+<@s&_Z(oCs1O3HsVEOZvoIekv)Ga zAy%5e7sBalF<-4A0+8rl%OjlG719*Ir9n_pT&>&o-tFwVuS!SS5Qw6I%w>zu1XK^eb;3AK3Ej!1Eif?cYz@P$vprJ$(cO2X^nh zcIwFB)2|Lb)hla8ZV+VM?sQ#!>#VHrXT-s+(u>#5_R6AH&TK)3^{zqJVb9?+( zd~#sZ*}={0I`Nb!+j;Hv<3IscXdc|t!+N>4^^JjzN3QPPIe2pOzy>4^>A};`5FgWU z>d3%Tn`J#rgXC55^HB_J>bvqbWdrp(4?F}0L;pi#m952-mdA;k22UQASq8Q~={02V zl>=9IZ|ua=k+0JRDo&s9b)4L#LEVWr1u#WJCJem|xfRC*v}2Fq!Ru58UnbSoVucVH7-S{O~BdyQZfNG<3m zkV!pNL@4Z~{Tncoyk#%UMs?D_8tunR4z9X>jc==WUOM178w-UFKSln6x zE>6rXR-*kHNw;WqTcY2;5dBF(N!v4OfAA^IYqxSE z=-&1;eJ%xqsP+SG5fijc_di+0xb*7c45G&rMsR=;2H z_Uy}kar=w=!{aylyH0ogMID^qQ`H|BcQI+g<-iI33B~jkF*dgt+tT{1mjlQ4Cji4A z1B16$?3~^g@!ago5gDxMrdAP<`9(qwy(vaao7@}NADVPAE&p<8{+nWdN>Oj%7b)4$ z7#O`XbyNKp!3h^r@-7GG^``*mA49`;YWl+Z`2De$V{(9*mOE2xN_|xn{x0(3g5?+M z8!s(ryga+HKc$jU`^H=j9d}~Esfu?O{4V|6(#yrw{VCQ&0TRw_#dWC_=O+ZLnxsBItt<^*K1vB#RiyrC zln(Jp0jo;XA9Lkd@baxfw`zjwTV2ws(W-ApYY?9l4DEN+x~@>woe-`ol+JrR+BM@* zIGJ?el&=PG#Q*=lE0otgu5;LY1t`UC6*mJmwB_L1jlTF;vZe1J$&`Zin(-96`_QEgyb~-4{=L&qdLP_NB1j?tM}0_hs*I0Brf~=c4Hk`|>zF z9p5*Sj_Zq|w!Trc7JiSz@6NuM@>o91dtL|@^{Y7nf)N~M^kRS)4;U^>#lWG~C~xi# zp|Sgu62uTOv`Gn<7>~i3B}}Jqcn2ni(MR^r)`yGXd;&WGK>Z13{b_%QE}TzdEh(%e z;6MNuPWQhU69lDf9I&UbQdVYPd>{%&(RLt~jdIU{pm05(j>3XQ)bnAClZ`hv!($ng zM8O0uY4}XmiR=ya!3nAe(T|lh)dvFtBgF_lhn;w4iIKGVV6G}kjG|*-h=)*l;$SQn zjix0}5Toxc2ixa@+(aff6XduT9w?{E6Qim0LL%543DC(jy&{A6y8V6_s#3JK?Wo3@J^nlgNITk zSP-R1$7Db7!XZed1ITrPJbQ2Jl~b<_b{`@uX~E%4?h$G{92vj@Bde1jI(8pUf+e@_ zaB71BmgikA<1UxWuI)SVvVCAfH{|Jo1A8Zp%g7}^plX)eJk8`=Y#Qdg{@j)c$hpVE zdF9O3E2obSbe|@-Y08l_xzbrnXB{#4r9ywzq?N8dlDJevejLi+$&G{SUWK7tJ@Qs( zFf?2_yMJKY8&^(2WwU-@;}e~@RUk_nMz}R_b8R7V;$dm*9FXK><3}tVHj~*xx~cP} z6m1j`3^DZJOIaZ`&?#X_V;*APQ};`w41P@}{4gW9b@KhX1Mb#`vIp>NLB?$e>ge>N zGnGONB!l?T@-~lvk1STWpuQ(-lf%Gm0ZWAg0J;@7qg;PIYF4EOg!c!h^rc-4PQU1% z{)IkdTTxHZ_U2FZNqv47^;s9yS>JtAL5q&3Oson~{x)bN!iiA;KMo158maj>jRR=* zZZQ}X7QpC`TX#9vmgBYDw3q#k;@vSkbuhusFlV?JChB-qF|@$;#FC0V(B{wUtemJk zit_M~Ku0vSoXmy&)_XESxp^%OeZv5eXUZEpB_q;0JqxI>9E5$D9n~*7t)p?n2KO40ydWzc3HrLn{+jxhv`4x%#$MSs~bou zvXvq5sTokobZkon%soP$(?+XFkZpVv>5nne&<8mazf!iGS-A*A-Tv~tT6mHJoI(VE zloWdVt*~r)-Xp!~zsu@q@qUpx0kY@8qe2Bo3*X+L49}wPyyM1yIHEr)W~078HhyDJe{kp~^$i^mzW-(v zo}+r-z#$y1D=$*LU&sM8 z4^1+#%L@kIZ;b)4gYG+PuV51cUjf@YO}5I~BOIFpNN~)7I=hWG;`fF%tX8`x&5@U3 zzzqDLqVwNP^SgyTm{oM#qYz*f>ku$-rT9MbSD{z19|USw)d!6nchYtI*RQFH=bQUaQqs6?1!3K4WKWL=8WiYu;($GYam2007ehE1-cSB5 zuvFmiBDj@ZHn-Mfvw)x3S7qi4QbadhNXvC|EpE;%pLYCV2O8UVH#tmXBU;Wz zQ%XO(kOt@Pe_e>x{uc~8UF}Nzs51q=n$y2$6n1ID4dlut|8^-1%t=kWQkgs`-;0yWhmU|IVm zkcY7`<5q+vHlay2yn=7bekfs#8&8jsjN5gUitcYr~_VjCA1f;(s^?|8oBvym|& z65!>~DdEzPh=bK}KPoerhL+e`Qs1))e zjr%$&2L5^ggvnVXb)z~hrYd_oo%?l59-evKdKS#(kI5`~x;5=~hed!b^Ci*)Fg{vM zHlt-VeDl}SYhR~p+$x8unTFmPAC?X*Faw_D2r@1|iFw#6Y}i*G7o`KZB-SRMeky4A8qARl5Q z#wEE1WCg`!Y%4^7MITv*U@L;*g5oezUq(-`7!S7?je=X%VecU4fDzo++15cYL6T|6 zQ$j!dCP@q5*x^qa=$GG&ld=&V9@iv%#aIMU#wP!v55&KYCh`%sjWEG&3;XLI!L7DB zENybIx`UekiQq1BLA@$;+8|akuLi*%R9FT08zTWSm7|3$MwT#`48Z}xmF~H%*B?Vs zR&hN_U%Oo_{T^8~te*#k9yj+0%iVHmhNTiLGMinn7}r?f`T~Q5TVoZBT{e=6!+9Om zW43YY<)Q$G(BTdodVwGfe~m!w$kl<$MurbjppFK+bYH14}N{V#A-EPB_oo1BL4%Hr8EJ&0JEE$tS(!7;*Ak%>^M zEK<8pf44Ji3SQ8`l4jW*&tjDjGuR6Qz$h2RmDSbN2CmkS<@PfgdAr$YB%wRD>$!-6 z50C|G4EZl&rr>yRVY$N`7IRCx)eL*g8`&oyRS8;2-i|-%xipCb+^wJ8hAFLrWrXjM zL2Ui+!Zx;pK1YmgmizX^3Do>D z0<3)s2&P=-5VyaPC21I$3foR1K=(nl(q`v7ZI)@I7_5b6IGOMGB!JsKsZ+~ozwQXs zabaJ_0JssOn9j}M`e#-37nk;rpLEL)>ZFlYAo>a+>X}*xzWn9u{-`J UkV^ diff --git a/analyst-knowledge-log.md b/analyst-knowledge-log.md new file mode 100644 index 0000000..16f45fc --- /dev/null +++ b/analyst-knowledge-log.md @@ -0,0 +1,22 @@ +记录知微对MoFin系统的缺陷修复和知识萃取项。 + +## 2026-06-23 09:00 数据采集脚本修复 + +**发现了什么:** `market_watch.py` cron任务报错,exit code 1 + - 错误:`ModuleNotFoundError: No module named 'mofin_db'` + - 原因:脚本在 `/home/hmo/.hermes/scripts/` 下运行,Python路径不包含 `/home/hmo/MoFin/` + +**修改了什么:** + - 文件:`/home/hmo/.hermes/scripts/market_watch.py` + - 在第19行(`from mofin_db import` 之前)插入: + ```python + import sys + sys.path.insert(0, '/home/hmo/MoFin') + ``` + +**效果预期:** 下次cron触发时脚本能正常导入mofin_db并完成市场数据采集+SQLite写入。 + +**同步发现的策略检查问题:** + - 自选股18只全部处于买入区(价格距离买入区<3%),属正常范围 + - 其中2只策略为空(楚江新材、中谷物流)— 需补充 + - 整体仓位93.02%,弱势+深套占比41.9%>40% diff --git a/branch_scanner.py b/branch_scanner.py new file mode 100644 index 0000000..414ccfe --- /dev/null +++ b/branch_scanner.py @@ -0,0 +1,148 @@ +#!/usr/bin/env python3 +""" +branch_scanner.py — 盘中分支扫描器 + +每15分钟跑一轮: +1. 读取所有有 strategy_tree 的股票 +2. 获取实时价格 +3. 评估每个分支在当前情景下是否适用 +4. 适用分支 → 记录 trigger_count + 推送信号 + +自成长核心组件:让分支条件得到实际验证。 +""" + +import json, sys, os, re +from datetime import datetime, date +from urllib.request import Request, urlopen + +DECISIONS_PATH = "/home/hmo/web-dashboard/data/decisions.json" +WATCHLIST_PATH = "/home/hmo/web-dashboard/data/watchlist.json" +MACRO_PATH = "/home/hmo/web-dashboard/data/macro_context.json" +EVENTS_PATH = "/home/hmo/web-dashboard/data/price_events.json" +XMPP_URL = "http://127.0.0.1:5805/" + + +def get_price(code): + """腾讯API实时价格""" + mkt = "sh" if code.startswith("6") or code.startswith("5") else "sz" + url = f"http://qt.gtimg.cn/q={mkt}{code}" + req = Request(url, headers={"User-Agent": "Mozilla/5.0"}) + try: + resp = urlopen(req, timeout=5).read().decode("gbk") + parts = resp.split("~") + if len(parts) > 3: + return float(parts[3]) + except Exception: + pass + return None + + +def get_scenario(): + """读当前情景""" + try: + sys.path.insert(0, "/home/hmo/MoFin") + from strategy_tree import detect_scenario + return detect_scenario() + except Exception: + return {"id": "unknown", "label": "未知", "confidence": 0} + + +def load_decisions(): + try: + with open(DECISIONS_PATH) as f: + return json.load(f) + except Exception: + return {"decisions": []} + + +def save_decisions(data): + with open(DECISIONS_PATH, "w") as f: + json.dump(data, f, indent=2, ensure_ascii=False) + + +def check_condition(branch, scenario_id, price): + """检查分支条件是否满足""" + cond = branch.get("condition", {}) + required_scenario = cond.get("scenario", "") + if required_scenario and required_scenario != scenario_id: + return False + + price_cond = cond.get("price", "") + if price_cond and price: + ops = re.findall(r"([<>=!]+)\s*([\d.]+)", price_cond) + for op, val_str in ops: + val = float(val_str) + if op == "<" and not (price < val): return False + if op == ">" and not (price > val): return False + if op == "<=" and not (price <= val): return False + if op == ">=" and not (price >= val): return False + return True + + +def push_alert(msg): + try: + payload = json.dumps({"to": "hmo@yoin.fun", "body": msg, "type": "chat"}).encode() + urlopen(XMPP_URL, data=payload, timeout=3) + except Exception: + pass + + +def main(): + now = datetime.now() + today = now.strftime("%Y-%m-%d") + hour = now.hour + + # 盘后才扫无意义 + if hour < 9 or hour > 16: + print("SILENT: 非交易时段") + return 0 + + scenario = get_scenario() + sid = scenario.get("id", "unknown") + data = load_decisions() + decisions = data.get("decisions", []) + + triggered = [] + for entry in decisions: + code = entry.get("code", "") + tree = entry.get("strategy_tree", {}) + branches = tree.get("branches", []) + if not branches: + continue + + price = get_price(code) + if not price: + continue + + for br in branches: + if check_condition(br, sid, price): + br["trigger_count"] = br.get("trigger_count", 0) + 1 + br["last_triggered"] = today + triggered.append((code, entry.get("name", ""), br)) + + if triggered: + save_decisions(data) + print(f"[SCAN] {now.strftime('%H:%M')} 情景={sid} | {len(triggered)}个分支被触发") + + # 推送重要触发 + alerts = [] + for code, name, br in triggered: + action = br.get("action", {}) + action_type = action.get("type", "hold") + priority = br.get("priority", 99) + rationale = br.get("rationale", "") + count = br.get("trigger_count", 1) + if action_type != "hold": + alerts.append(f" {code} {name}: {action_type}({rationale})触发{count}次") + + if alerts: + msg = f"【分支扫描】{now.strftime('%H:%M')} | 情景{sid}\n" + "\n".join(alerts) + push_alert(msg) + else: + print(f"[SCAN] {now.strftime('%H:%M')} | 情景{sid} | 无触发") + + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/data/decisions.json b/data/decisions.json index ca688be..a4341ca 100644 --- a/data/decisions.json +++ b/data/decisions.json @@ -3,29 +3,30 @@ { "code": "000657", "name": "中钨高新", - "price": 108.33, + "price": 102.5, "cost": 0, "shares": 0, "avg_price": 0, - "action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标114.75 | 止损98.48 | 买入区106.16~104.99 | 信号:量价齐升,可买入", - "stop_loss": 98.48, - "entry_low": 106.16, - "entry_high": 104.99, - "tech_snapshot": "形态:光头光脚阳线/bullish 量价:主动买盘占优 强撑:97.41 弱撑:98.48 弱压:110.58 强压:114.75", - "timing_signal": "量价齐升,可买入", - "rr_ratio": 0.65, - "status": "review", - "note": "⚠️盈亏比不足1:1.5,不建议买入", - "timestamp": "2026-06-22 12:00", - "updated_at": "2026-06-22 12:00", + "action": "盈利持有 | 目标118.77 | 止损97.72 | 买入区100.45~104.55", + "stop_loss": 97.72, + "entry_low": 100.45, + "entry_high": 104.55, + "tech_snapshot": "形态:光头光脚阴线/neutral 量价:主动买盘占优 强撑:97.5 弱撑:97.72 弱压:110.63 强压:118.77", + "timing_signal": "大盘中性", + "rr_ratio": 3.4, + "status": "updated", + "note": "", + "timestamp": "2026-06-24 09:00", + "updated_at": "2026-06-24 09:00", "type": "自选策略", "source": "auto", - "sector_context": "大盘上涨比17.8%", + "sector_context": "", "stock_category": "中短线", "position_advice": "中等仓位", - "time_horizon": "2周~3月", + "time_horizon": "2~6周", "created_at": "2026-06-22 12:00", - "take_profit": 114.75, + "take_profit": 118.77, + "updated_reason": "价格变动(106.0→102.5): 止损102.39→97.72 | 形态:光头光脚阴线/neutral 量价:主动买盘占优 强撑:97.5 弱撑:97.72 弱压:110.63 强压:11", "changelog": [ { "date": "2026-06-22 12:00", @@ -33,72 +34,297 @@ "new_action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标114.75 | 止损98.48 | 买入区106.16~104.99 | 信号:量价齐升,可买入", "reason": "初始策略创建 | 形态:光头光脚阳线/bullish 量价:主动买盘占优 强撑:97.41 弱撑:98.48 弱压:110.58 强压:1", "trigger": "初始创建" + }, + { + "date": "2026-06-23 12:00", + "old_action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标114.75 | 止损98.48 | 买入区106.16~104.99 | 信号:量价齐升,可买入", + "new_action": "盈利持有 | 目标119.16 | 止损102.39 | 买入区103.88~108.12", + "reason": "技术信号变化: 大盘中性: 止损98.48→102.39 | 形态:光头光脚阴线/neutral 量价:主动买盘占优 强撑:97.5 弱撑:102.39 弱压:111.8 强压:11", + "trigger": "技术信号变化: 大盘中性" + }, + { + "date": "2026-06-24 09:00", + "old_action": "盈利持有 | 目标119.16 | 止损102.39 | 买入区103.88~108.12", + "new_action": "盈利持有 | 目标118.77 | 止损97.72 | 买入区100.45~104.55", + "reason": "价格变动(106.0→102.5): 止损102.39→97.72 | 形态:光头光脚阴线/neutral 量价:主动买盘占优 强撑:97.5 弱撑:97.72 弱压:110.63 强压:11", + "trigger": "价格变动(106.0→102.5)" } - ] + ], + "strategy_tree": { + "branches": [ + { + "id": "000657_stop_loss", + "condition": { + "price": "<97.72" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "000657_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=104.55", + "price_lower": ">=100.45" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 100.45, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "000657_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=118.77" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "000657_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": "000657_take_profit", + "condition": { + "price": ">=118.77" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "000657_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ], + "initialized_at": "2026-06-24T10:23:51.371434" + } }, { "code": "000700", - "name": "", - "price": 15.13, - "action": "盈利持有 | 止损13.91 | 目标17.0 | 买入区14.53~15.26 | 信号:温和放量,持有", + "name": "模塑科技", + "price": 14.98, + "cost": 0, + "shares": 1400, + "avg_price": 0, + "action": "盈利持有 | 止损参考13.91 | 买入区14.53~15.26", "stop_loss": 13.91, - "take_profit": 17.0, "entry_low": 14.53, "entry_high": 15.26, - "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:主动买盘占优 强撑:13.91 弱撑:14.53 弱压:15.83 强压:17.0", - "timing_signal": "大盘中性,行业偏弱,温和放量,持有", - "rr_ratio": 1.53, - "tag": "", + "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:主动买盘占优 强撑:13.66 弱撑:14.62 弱压:15.47 强压:16.7", + "timing_signal": "neutral", + "rr_ratio": 1.89, + "status": "manual", "note": "", - "timestamp": "2026-06-22 13:37", - "updated_reason": "", - "status": "updated", - "changelog": [], + "timestamp": "2026-06-24 09:00", + "updated_at": "2026-06-24 09:00", + "type": "自选策略", + "source": "manual", + "sector_context": "行业汽车零部件+0.4%,中性", + "stock_category": "中短线", + "position_advice": "中等仓位", + "time_horizon": "2~6周", + "created_at": "2026-06-23 09:00", + "take_profit": 17.0, + "changelog": [ + { + "date": "2026-06-23 09:00", + "old_action": "盈利持有 | 止损13.91 | 目标17.0 | 买入区14.53~15.26 | 信号:温和放量,持有", + "new_action": "盈利持有 | 止损参考13.91 | 买入区14.53~15.26", + "reason": "技术信号变化: neutral: 策略文字调整", + "trigger": "技术信号变化: neutral" + } + ], "execution": { "status": "none" }, - "analysis": {}, - "advice_timeline": [ - { - "date": "2026-06-22 13:38", - "direction": "买入", - "price": "14.93", - "summary": "大盘偏弱(bearish/上涨比17.8%),保险证券等金融权重护盘;模塑科技当前14.93在买入区14.63~15.23内,盈亏比3.39,信号:带上影阴线偏弱但主动买盘占优,1手1,493元低于可用现金14.7万", - "status": "pending" - } - ], - "cost": 14.83, - "shares": 1400, - "source": "manual", - "current_price": 15.13 + "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": "<=15.26", + "price_lower": ">=14.53" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 14.53, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "000700_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=17.0" + }, + "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": ">=17.0" + }, + "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 + } + ], + "initialized_at": "2026-06-24T10:23:51.374072" + } }, { "code": "000711", "name": "ST京蓝", - "price": 5.44, + "price": 5.06, "cost": 0, "shares": 0, "avg_price": 0, - "action": "盈利持有 | 目标6.1 | 止损5.2 | 买入区5.33~5.55 | 信号:放量下跌,等企稳再入", - "stop_loss": 5.2, - "entry_low": 5.33, - "entry_high": 5.55, - "tech_snapshot": "形态:光头光脚阳线/bullish 量价:主动卖盘占优 强撑:4.94 弱撑:5.2 弱压:5.49 强压:6.1", - "timing_signal": "大盘中性,行业偏弱,放量下跌,等企稳再入", - "rr_ratio": 2.75, + "action": "盈利持有 | 目标5.38 | 止损4.91 | 买入区4.96~5.1 | 信号:放量下跌,等企稳再入", + "stop_loss": 4.91, + "entry_low": 4.96, + "entry_high": 5.1, + "tech_snapshot": "形态:锤子线/T字线/neutral 量价:主动卖盘占优 强撑:4.86 弱撑:5.02 弱压:5.12 强压:5.38", + "timing_signal": "大盘中性,行业偏强,高估值,放量下跌,等企稳再入", + "rr_ratio": 2.13, "status": "updated", "note": "", - "timestamp": "2026-06-22 12:00", - "updated_at": "2026-06-22 12:00", + "timestamp": "2026-06-24 09:00", + "updated_at": "2026-06-24 09:00", "type": "自选策略", "source": "auto", - "sector_context": "行业房地产下跌-2.3%,适度防御 | 大盘仅17%个股上涨", + "sector_context": "行业房地产+0.8%,中性", "stock_category": "短炒", "position_advice": "小仓强趋势让利润跑", "time_horizon": "数日~2周", "created_at": "2026-06-18 17:15", - "take_profit": 6.1, - "updated_reason": "价格变动(5.2→5.44): 止损4.89→4.84 | 形态:光头光脚阳线/bullish 量价:主动卖盘占优 强撑:4.94 弱撑:5.2 弱压:5.51 强压:6.11", + "take_profit": 5.38, + "updated_reason": "技术信号变化: 大盘中性,行业中性,高估值,放量下跌,等企稳再入: 止损5.06→4.97 | 形态:光头光脚阴线/bearish 量价:主动卖盘占优 强撑:4.46 弱撑:5.03 弱压:5.39 强压:5.66", "changelog": [ { "date": "2026-06-18 10:25", @@ -148,36 +374,161 @@ "new_action": "盈利持有 | 目标6.11 | 止损4.84 | 买入区5.33~5.55 | 信号:放量下跌,等企稳再入", "reason": "价格变动(5.2→5.44): 止损4.89→4.84 | 形态:光头光脚阳线/bullish 量价:主动卖盘占优 强撑:4.94 弱撑:5.2 弱压:5.51 强压:6.11", "trigger": "价格变动(5.2→5.44)" + }, + { + "date": "2026-06-23 09:00", + "old_action": "盈利持有 | 目标6.1 | 止损5.2 | 买入区5.33~5.55 | 信号:放量下跌,等企稳再入", + "new_action": "盈利持有 | 目标6.1 | 止损5.2 | 买入区5.28~5.5 | 信号:放量下跌,等企稳再入", + "reason": "技术信号变化: 大盘中性,行业中性,高估值,放量下跌,等企稳再入: 策略文字调整", + "trigger": "技术信号变化: 大盘中性,行业中性,高估值,放量下跌,等企稳再入" + }, + { + "date": "2026-06-23 12:01", + "old_action": "盈利持有 | 目标6.1 | 止损5.2 | 买入区5.28~5.5 | 信号:放量下跌,等企稳再入", + "new_action": "盈利持有 | 目标5.66 | 止损5.06 | 买入区5.12~5.3 | 信号:放量下跌,等企稳再入", + "reason": "价格变动(5.39→5.22): 止损5.2→5.06 | 形态:光头光脚阴线/bearish 量价:主动卖盘占优 强撑:4.54 弱撑:5.13 弱压:5.39 强压:5.66", + "trigger": "价格变动(5.39→5.22)" + }, + { + "date": "2026-06-24 09:00", + "old_action": "盈利持有 | 目标5.66 | 止损5.06 | 买入区5.12~5.3 | 信号:放量下跌,等企稳再入", + "new_action": "盈利持有 | 目标5.66 | 止损4.97 | 买入区5.02~5.22 | 信号:放量下跌,等企稳再入", + "reason": "技术信号变化: 大盘中性,行业中性,高估值,放量下跌,等企稳再入: 止损5.06→4.97 | 形态:光头光脚阴线/bearish 量价:主动卖盘占优 强撑:4.46 弱撑:5.03 弱压:5.39 强压:5.66", + "trigger": "技术信号变化: 大盘中性,行业中性,高估值,放量下跌,等企稳再入" } - ] + ], + "strategy_tree": { + "branches": [ + { + "id": "000711_stop_loss", + "condition": { + "price": "<4.91" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "000711_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=5.1", + "price_lower": ">=4.96" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 4.96, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 3, + "success_rate": null, + "last_triggered": "2026-06-24T10:23:51.378572" + }, + { + "id": "000711_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=5.38" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "000711_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": "000711_take_profit", + "condition": { + "price": ">=5.38" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "000711_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 3, + "success_rate": null, + "last_triggered": "2026-06-24T10:23:51.378572" + } + ], + "last_evaluated": "2026-06-24T10:23:51.378572" + } }, { "code": "001309", "name": "德明利", - "price": 724.36, + "price": 755.01, "cost": 0, - "shares": 0, + "shares": 100, "avg_price": 0, - "action": "盈利持有 | 目标783.2 | 止损702.63 | 买入区709.87~734.86", - "stop_loss": 702.63, - "entry_low": 709.87, - "entry_high": 734.86, - "tech_snapshot": "形态:长影星线/neutral 量价:主动买盘占优 强撑:640.8 弱撑:706.67 弱压:740.67 强压:783.2", - "timing_signal": "大盘中性,行业偏强", - "rr_ratio": 2.71, - "status": "updated", - "note": "", - "timestamp": "2026-06-22 12:00", - "updated_at": "2026-06-22 12:00", + "action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 止损参考724.0 | 买入区762.44~758.71", + "stop_loss": 724.0, + "entry_low": 762.44, + "entry_high": 758.71, + "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:主动买盘占优 强撑:663.36 弱撑:708.67 弱压:798.67 强压:810.78", + "timing_signal": "neutral", + "rr_ratio": 1.8, + "status": "manual", + "note": "⚠️盈亏比不足1:1.5,不建议买入", + "timestamp": "2026-06-24 09:00", + "updated_at": "2026-06-24 09:00", "type": "自选策略", - "source": "auto", - "sector_context": "行业半导体-0.8%,中性 | 大盘仅17%个股上涨", + "source": "manual", + "sector_context": "行业半导体+0.2%,中性", "stock_category": "中长线", "position_advice": "正常配置", "time_horizon": "数月~1年", "created_at": "2026-06-18 17:15", - "take_profit": 783.2, - "updated_reason": "技术信号变化: neutral: 止损690.64→681.55 | 形态:十字星/neutral 量价:主动买盘占优 强撑:640.8 弱撑:706.91 弱压:740.91 强压:783", + "take_profit": 810.78, + "updated_reason": "价格变动(778.0→755.01): 策略文字调整", "changelog": [ { "date": "2026-06-18 10:25", @@ -234,52 +585,161 @@ "new_action": "盈利持有 | 目标783.2 | 止损681.55 | 买入区709.87~734.86", "reason": "技术信号变化: neutral: 止损690.64→681.55 | 形态:十字星/neutral 量价:主动买盘占优 强撑:640.8 弱撑:706.91 弱压:740.91 强压:783", "trigger": "技术信号变化: neutral" - } - ], - "advice_timeline": [ - { - "date": "2026-06-22 13:28", - "direction": "加仓", - "price": "712.00", - "summary": "德明利(001309) 712.00在买入区697.76~726.24,1手71,200元 | 仓位85.62→92.59%", - "status": "pending" }, { - "date": "2026-06-22 13:38", - "direction": "买入", - "price": "724.36", - "summary": "大盘偏弱(bearish/上涨比17.8%)但金融护盘;德明利724.36在买入区709.87~734.86内,盈亏比2.71,半导体板块今日-1.38%净流出118亿偏弱但个股技术面中性,1手72,436元低于可用现金14.7万", - "status": "pending" + "date": "2026-06-23 09:00", + "old_action": "盈利持有 | 目标783.2 | 止损702.63 | 买入区709.87~734.86", + "new_action": "盈利持有 | ⚠️盈亏比偏低(1:1.8),谨慎买入 | 目标783.2 | 止损714.96 | 买入区722.33~740.48 | 信号:量价齐升,可买入", + "reason": "技术信号变化: 大盘中性,行业偏强,量价齐升,可买入: 止损702.63→714.96 | 形态:带下影阳线/bullish 量价:主动买盘占优 强撑:640.8 弱撑:712.0 弱压:749.38 强压:78", + "trigger": "技术信号变化: 大盘中性,行业偏强,量价齐升,可买入" + }, + { + "date": "2026-06-23 12:01", + "old_action": "盈利持有 | ⚠️盈亏比极低,关注 | 止损700.4 | 目标810.78 | 买入区726.81~737.07 | 信号:温和放量,持有", + "new_action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 止损参考700.4 | 买入区726.81~737.07 | 信号:量价齐升,可买入", + "reason": "技术信号变化: 量价齐升,可买入: 策略文字调整", + "trigger": "技术信号变化: 量价齐升,可买入" + }, + { + "date": "2026-06-24 09:00", + "old_action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标810.78 | 止损724.0 | 买入区762.44~758.71 | 信号:量价齐升,可买入", + "new_action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 止损参考724.0 | 买入区762.44~758.71", + "reason": "价格变动(778.0→755.01): 策略文字调整", + "trigger": "价格变动(778.0→755.01)" } - ] + ], + "strategy_tree": { + "branches": [ + { + "id": "001309_stop_loss", + "condition": { + "price": "<724.0" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "001309_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=758.71", + "price_lower": ">=762.44" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 762.44, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "001309_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=810.78" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "001309_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": "001309_take_profit", + "condition": { + "price": ">=810.78" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "001309_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ], + "initialized_at": "2026-06-24T10:23:51.378593" + } }, { "code": "002594", "name": "比亚迪", - "price": 85.5, + "price": 83.23, "cost": 0, "shares": 0, "avg_price": 0, - "action": "盈利持有 | 目标93.26 | 止损82.94 | 买入区83.79~87.07 | 信号:放量下跌,等企稳再入", - "stop_loss": 82.94, - "entry_low": 83.79, - "entry_high": 87.07, - "tech_snapshot": "形态:带下影阴线/neutral 量价:主动卖盘占优 强撑:79.32 弱撑:84.75 弱压:88.13 强压:93.26", - "timing_signal": "大盘中性,行业偏弱,放量下跌,等企稳再入", - "rr_ratio": 3.03, + "action": "盈利持有 | 目标92.39 | 止损80.73 | 买入区81.57~84.89 | 信号:观望", + "stop_loss": 80.73, + "entry_low": 81.57, + "entry_high": 84.89, + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:主动卖盘占优 强撑:76.5 弱撑:82.74 弱压:85.0 强压:92.39", + "timing_signal": "观望", + "rr_ratio": 3.66, "status": "updated", "note": "", - "timestamp": "2026-06-22 12:00", - "updated_at": "2026-06-22 12:00", + "timestamp": "2026-06-24 09:00", + "updated_at": "2026-06-24 09:00", "type": "自选策略", "source": "auto", - "sector_context": "行业汽车整车下跌-2.6%,适度防御 | 大盘仅17%个股上涨", + "sector_context": "行业汽车整车下跌-1.1%,适度防御", "stock_category": "弱势", "position_advice": "减仓或观望", "time_horizon": "观望", "created_at": "2026-06-18 17:15", - "take_profit": 93.26, - "updated_reason": "价格变动(88.13→85.5): 止损79.61→77.23 | 形态:带下影阴线/neutral 量价:主动卖盘占优 强撑:79.32 弱撑:84.37 弱压:88.13 强压:93.", + "take_profit": 92.39, + "updated_reason": "技术信号变化: 大盘中性,行业偏弱,蓝筹,放量下跌,等企稳再入: 止损83.36→79.15 | 形态:带上影阴线/bearish 量价:主动卖盘占优 强撑:78.83 弱撑:83.73 弱压:87.59 强压:93.", "changelog": [ { "date": "2026-06-18 10:25", @@ -336,36 +796,161 @@ "new_action": "盈利持有 | 目标93.03 | 止损77.23 | 买入区83.79~86.98 | 信号:放量下跌,等企稳再入", "reason": "价格变动(88.13→85.5): 止损79.61→77.23 | 形态:带下影阴线/neutral 量价:主动卖盘占优 强撑:79.32 弱撑:84.37 弱压:88.13 强压:93.", "trigger": "价格变动(88.13→85.5)" + }, + { + "date": "2026-06-23 09:00", + "old_action": "盈利持有 | 目标93.26 | 止损82.94 | 买入区83.79~87.07 | 信号:放量下跌,等企稳再入", + "new_action": "盈利持有 | 目标94.0 | 止损84.96 | 买入区85.84~88.58 | 信号:放量下跌,等企稳再入", + "reason": "技术信号变化: 大盘中性,行业中性,蓝筹,放量下跌,等企稳再入: 止损82.94→84.96 | 形态:锤子线/T字线/neutral 量价:主动卖盘占优 强撑:79.4 弱撑:85.49 弱压:88.79 强压:94", + "trigger": "技术信号变化: 大盘中性,行业中性,蓝筹,放量下跌,等企稳再入" + }, + { + "date": "2026-06-23 12:01", + "old_action": "盈利持有 | 目标94.25 | 止损83.71 | 买入区84.57~87.93 | 信号:放量下跌,等企稳再入", + "new_action": "盈利持有 | 目标94.0 | 止损83.36 | 买入区84.22~87.62 | 信号:放量下跌,等企稳再入", + "reason": "技术信号变化: 大盘中性,行业中性,蓝筹,放量下跌,等企稳再入: 止损83.71→83.36 | 形态:带上影阴线/bearish 量价:主动卖盘占优 强撑:79.4 弱撑:85.09 弱压:87.59 强压:94.0", + "trigger": "技术信号变化: 大盘中性,行业中性,蓝筹,放量下跌,等企稳再入" + }, + { + "date": "2026-06-24 09:00", + "old_action": "盈利持有 | 目标94.0 | 止损83.36 | 买入区84.22~87.62 | 信号:放量下跌,等企稳再入", + "new_action": "盈利持有 | 目标93.32 | 止损79.15 | 买入区83.3~86.7 | 信号:放量下跌,等企稳再入", + "reason": "技术信号变化: 大盘中性,行业偏弱,蓝筹,放量下跌,等企稳再入: 止损83.36→79.15 | 形态:带上影阴线/bearish 量价:主动卖盘占优 强撑:78.83 弱撑:83.73 弱压:87.59 强压:93.", + "trigger": "技术信号变化: 大盘中性,行业偏弱,蓝筹,放量下跌,等企稳再入" } - ] + ], + "strategy_tree": { + "branches": [ + { + "id": "002594_stop_loss", + "condition": { + "price": "<80.73" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "002594_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=84.89", + "price_lower": ">=81.57" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 81.57, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 3, + "success_rate": null, + "last_triggered": "2026-06-24T10:23:51.382837" + }, + { + "id": "002594_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=92.39" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "002594_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": "002594_take_profit", + "condition": { + "price": ">=92.39" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "002594_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 3, + "success_rate": null, + "last_triggered": "2026-06-24T10:23:51.382837" + } + ], + "last_evaluated": "2026-06-24T10:23:51.382837" + } }, { "code": "00700", "name": "腾讯控股", - "price": 434.2, + "price": 414.8, "cost": 445.7552, - "shares": 0, + "shares": 100, "avg_price": 0, - "action": "持有观察 | ⚠️盈亏比偏低(1:1.0),不建议加仓 | 止损362.24 | 目标456.57 | 买入区430.6~434.8 | 信号:持有", - "stop_loss": 362.24, - "entry_low": 430.6, - "entry_high": 434.8, - "tech_snapshot": "形态:带下影阴线/neutral 量价:数据不足 强撑:389.0 弱撑:430.6 弱压:440.2 强压:480.6", - "timing_signal": "持有", - "rr_ratio": 1.03, + "action": "持有观察 | ⚠️盈亏比偏低(1:1.2),不建议加仓 | 止损363.35 | 目标440.92 | 买入区408.13~420.27 | 信号:持有", + "stop_loss": 363.35, + "entry_low": 408.13, + "entry_high": 420.27, + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:357.07 弱撑:408.13 弱压:433.0 强压:483.47", + "timing_signal": "大盘中性,行业偏弱,蓝筹,持有", + "rr_ratio": 1.19, "status": "updated", - "note": "⚠️盈亏比偏低(1:1.0),不建议加仓", - "timestamp": "2026-06-22 12:00", - "updated_at": "2026-06-22 12:00", + "note": "⚠️盈亏比偏低(1:1.2),不建议加仓", + "timestamp": "2026-06-24 09:00", + "updated_at": "2026-06-24 09:00", "type": "持仓策略", "source": "auto", - "sector_context": "行业软件开发下跌-1.8%,适度防御 | 大盘仅17%个股上涨", + "sector_context": "行业软件开发下跌-1.2%,适度防御", "stock_category": "弱势", "position_advice": "减仓或观望", "time_horizon": "观望", "created_at": "2026-06-18 17:15", - "take_profit": 456.57, - "updated_reason": "技术面重评: 止损387.49→362.24, 止盈496.33→456.57 | 形态:带下影阴线/neutral 量价:数据不足 强撑:389.0 弱撑:430.6 弱压:440.2 强压:480.6", + "take_profit": 440.92, + "updated_reason": "价格变动(358.68→414.8): 止损357.8→363.35, 止盈484.2→440.92 | 形态:光头光脚阴线/bearish 量价:数据不足 强撑:357.07 弱撑:408.13 弱压:433.0 强压:48", "changelog": [ { "date": "2026-06-18 10:26", @@ -443,45 +1028,161 @@ "new_action": "持有观察 | ⚠️盈亏比偏低(1:1.0),不建议加仓 | 止损362.24 | 目标456.57 | 买入区430.6~434.8 | 信号:持有", "reason": "技术面重评: 止损387.49→362.24, 止盈496.33→456.57 | 形态:带下影阴线/neutral 量价:数据不足 强撑:389.0 弱撑:430.6 弱压:440.2 强压:480.6", "trigger": "技术面重评" + }, + { + "date": "2026-06-23 09:00", + "old_action": "持有观察 | ⚠️盈亏比偏低(1:1.0),不建议加仓 | 止损362.24 | 目标456.57 | 买入区430.6~434.8 | 信号:持有", + "new_action": "持有观察 | ⚠️盈亏比偏低(1:1.0),不建议加仓 | 止损392.77 | 目标481.87 | 买入区427.93~433.47 | 信号:持有", + "reason": "技术信号变化: 大盘中性,行业偏强,蓝筹,持有: 止损362.24→392.77, 止盈456.57→481.87 | 形态:带下影阴线/neutral 量价:数据不足 强撑:385.07 弱撑:427.93 弱压:440.2 强压:481", + "trigger": "技术信号变化: 大盘中性,行业偏强,蓝筹,持有" + }, + { + "date": "2026-06-23 12:01", + "old_action": "持有观察 | ⚠️盈亏比偏低(1:1.0),不建议加仓 | 止损392.77 | 目标481.87 | 买入区427.93~433.47 | 信号:持有", + "new_action": "持有观察 | ⚠️盈亏比偏低(1:1.1),不建议加仓 | 止损357.8 | 目标484.2 | 买入区409.6~421.0 | 信号:持有", + "reason": "价格变动(433.0→417.2): 止损392.77→357.8, 止盈481.87→484.2 | 形态:光头光脚阴线/bearish 量价:数据不足 强撑:357.8 弱撑:409.6 弱压:433.0 强压:484.", + "trigger": "价格变动(433.0→417.2)" + }, + { + "date": "2026-06-24 09:00", + "old_action": "持有观察 | ⚠️盈亏比偏低(1:1.1),不建议加仓 | 止损357.8 | 目标484.2 | 买入区409.6~421.0 | 信号:持有", + "new_action": "持有观察 | ⚠️盈亏比偏低(1:1.2),不建议加仓 | 止损363.35 | 目标440.92 | 买入区408.13~420.27 | 信号:持有", + "reason": "价格变动(358.68→414.8): 止损357.8→363.35, 止盈484.2→440.92 | 形态:光头光脚阴线/bearish 量价:数据不足 强撑:357.07 弱撑:408.13 弱压:433.0 强压:48", + "trigger": "价格变动(358.68→414.8)" } ], - "advice_timeline": [ - { - "date": "2026-06-22 14:10", - "direction": "持有", - "price": "430.60", - "summary": "腾讯精确在买入区下沿,但timing_signal=持有+组合PORTFOLIO_FULL约束,不操作", - "status": "pending" - } - ] + "strategy_tree": { + "branches": [ + { + "id": "00700_stop_loss", + "condition": { + "price": "<363.35" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "00700_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=420.27", + "price_lower": ">=408.13" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 408.13, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "00700_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=440.92" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "00700_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": "00700_take_profit", + "condition": { + "price": ">=440.92" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "00700_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ], + "initialized_at": "2026-06-24T10:23:51.382855" + } }, { "code": "00968", "name": "信义光能", - "price": 2.24, + "price": 2.08, "cost": 0, "shares": 0, "avg_price": 0, - "action": "盈利持有 | 目标2.57 | 止损2.02 | 买入区2.2~2.28", - "stop_loss": 2.02, - "entry_low": 2.2, - "entry_high": 2.28, - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:1.95 弱撑:2.18 弱压:2.35 强压:2.57", - "timing_signal": "neutral", - "rr_ratio": 4.71, + "action": "盈利持有 | 目标2.6 | 止损1.99 | 买入区2.04~2.12", + "stop_loss": 1.99, + "entry_low": 2.04, + "entry_high": 2.12, + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:1.66 弱撑:1.99 弱压:2.26 强压:2.6", + "timing_signal": "大盘中性,行业中性", + "rr_ratio": 5.78, "status": "updated", "note": "", - "timestamp": "2026-06-22 12:00", - "updated_at": "2026-06-22 12:00", + "timestamp": "2026-06-24 09:00", + "updated_at": "2026-06-24 09:00", "type": "自选策略", "source": "auto", - "sector_context": "行业电力下跌-1.1%,适度防御 | 大盘仅17%个股上涨", + "sector_context": "行业电力-0.7%,中性", "stock_category": "弱势", "position_advice": "减仓或观望", "time_horizon": "观望", "created_at": "2026-06-18 17:15", - "take_profit": 2.57, - "updated_reason": "价格变动(2.35→2.24): 止损2.03→2.02 | 形态:光头光脚阴线/bearish 量价:数据不足 强撑:1.95 弱撑:2.18 弱压:2.35 强压:2.57", + "take_profit": 2.6, + "updated_reason": "技术面重评: 止损2.05→1.99 | 形态:光头光脚阴线/bearish 量价:数据不足 强撑:1.66 弱撑:1.99 弱压:2.26 强压:2.6", "changelog": [ { "date": "2026-06-18 10:26", @@ -545,45 +1246,161 @@ "new_action": "盈利持有 | 目标2.57 | 止损2.02 | 买入区2.2~2.28", "reason": "价格变动(2.35→2.24): 止损2.03→2.02 | 形态:光头光脚阴线/bearish 量价:数据不足 强撑:1.95 弱撑:2.18 弱压:2.35 强压:2.57", "trigger": "价格变动(2.35→2.24)" + }, + { + "date": "2026-06-23 09:00", + "old_action": "盈利持有 | 目标2.57 | 止损2.02 | 买入区2.2~2.28", + "new_action": "盈利持有 | 目标2.58 | 止损2.19 | 买入区2.21~2.31", + "reason": "技术信号变化: 大盘中性,行业中性: 止损2.02→2.19 | 形态:带下影阴线/neutral 量价:数据不足 强撑:1.96 弱撑:2.19 弱压:2.35 强压:2.58", + "trigger": "技术信号变化: 大盘中性,行业中性" + }, + { + "date": "2026-06-23 12:01", + "old_action": "盈利持有 | 目标2.58 | 止损2.19 | 买入区2.21~2.31", + "new_action": "盈利持有 | 目标2.57 | 止损2.05 | 买入区2.07~2.15", + "reason": "价格变动(2.26→2.11): 止损2.19→2.05 | 形态:光头光脚阴线/bearish 量价:数据不足 强撑:1.73 弱撑:2.05 弱压:2.26 强压:2.57", + "trigger": "价格变动(2.26→2.11)" + }, + { + "date": "2026-06-24 09:00", + "old_action": "盈利持有 | 目标2.57 | 止损2.05 | 买入区2.07~2.15", + "new_action": "盈利持有 | 目标2.6 | 止损1.99 | 买入区2.04~2.12", + "reason": "技术面重评: 止损2.05→1.99 | 形态:光头光脚阴线/bearish 量价:数据不足 强撑:1.66 弱撑:1.99 弱压:2.26 强压:2.6", + "trigger": "技术面重评" } ], - "advice_timeline": [ - { - "date": "2026-06-22 13:28", - "direction": "加仓", - "price": "2.35", - "summary": "信义光能(00968) 2.35在买入区2.3~2.39,1手1,092.75元(500股×0.93) | 仓位85.62→85.73%", - "status": "pending" - } - ] + "strategy_tree": { + "branches": [ + { + "id": "00968_stop_loss", + "condition": { + "price": "<1.99" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "00968_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=2.12", + "price_lower": ">=2.04" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 2.04, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "00968_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=2.6" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "00968_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": "00968_take_profit", + "condition": { + "price": ">=2.6" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "00968_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ], + "initialized_at": "2026-06-24T10:23:51.385038" + } }, { "code": "00981", "name": "中芯国际", - "price": 78.95, + "price": 77.85, "cost": 76.3899, - "shares": 0, + "shares": 500, "avg_price": 0, - "action": "盈利持有 | ⚠️盈亏比偏低(1:1.1),不建议加仓 | 止损66.37 | 目标90.62 | 买入区76.5~79.52 | 信号:持有", - "stop_loss": 66.37, - "entry_low": 76.5, - "entry_high": 79.52, - "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:数据不足 强撑:68.42 弱撑:76.5 弱压:81.88 强压:90.62", - "timing_signal": "持有", - "rr_ratio": 1.11, + "action": "盈利持有 | ⚠️盈亏比偏低(1:1.3),不建议加仓 | 止损70.68 | 目标88.59 | 买入区74.87~78.61 | 信号:持有", + "stop_loss": 70.68, + "entry_low": 74.87, + "entry_high": 78.61, + "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:数据不足 强撑:66.68 弱撑:74.87 弱压:82.47 强压:92.28", + "timing_signal": "大盘中性,行业中性,高估值,蓝筹,持有", + "rr_ratio": 1.29, "status": "updated", - "note": "⚠️盈亏比偏低(1:1.1),不建议加仓", - "timestamp": "2026-06-22 12:00", - "updated_at": "2026-06-22 12:00", + "note": "⚠️盈亏比偏低(1:1.3),不建议加仓", + "timestamp": "2026-06-24 09:00", + "updated_at": "2026-06-24 09:00", "type": "持仓策略", "source": "auto", - "sector_context": "行业半导体-0.8%,中性 | 大盘仅17%个股上涨", + "sector_context": "行业半导体+0.2%,中性", "stock_category": "短炒", "position_advice": "小仓快进快出", "time_horizon": "数日~2周", "created_at": "2026-06-18 17:15", - "take_profit": 90.62, - "updated_reason": "价格变动(76.5→78.95): 止损67.69→66.37, 止盈87.26→90.62 | 形态:倒T线/射击之星/bearish 量价:数据不足 强撑:68.42 弱撑:76.5 弱压:81.88 强压:90.", + "take_profit": 88.59, + "updated_reason": "价格变动(67.32→77.85): 止损69.51→70.68, 止盈93.75→88.59 | 形态:倒T线/射击之星/bearish 量价:数据不足 强撑:66.68 弱撑:74.87 弱压:82.47 强压:92", "changelog": [ { "date": "2026-06-18 11:31", @@ -654,36 +1471,161 @@ "new_action": "盈利持有 | ⚠️盈亏比偏低(1:1.1),不建议加仓 | 止损66.37 | 目标90.62 | 买入区76.5~79.52 | 信号:持有", "reason": "价格变动(76.5→78.95): 止损67.69→66.37, 止盈87.26→90.62 | 形态:倒T线/射击之星/bearish 量价:数据不足 强撑:68.42 弱撑:76.5 弱压:81.88 强压:90.", "trigger": "价格变动(76.5→78.95)" + }, + { + "date": "2026-06-23 09:01", + "old_action": "盈利持有 | ⚠️盈亏比偏低(1:1.1),不建议加仓 | 止损66.37 | 目标90.62 | 买入区76.5~79.52 | 信号:持有", + "new_action": "盈利持有 | ⚠️盈亏比偏低(1:1.1),不建议加仓 | 止损69.75 | 目标90.58 | 买入区76.5~79.48 | 信号:持有", + "reason": "技术信号变化: 大盘中性,行业偏强,高估值,蓝筹,持有: 止损66.37→69.75, 止盈90.62→90.58 | 形态:倒T线/射击之星/bearish 量价:数据不足 强撑:68.38 弱撑:76.5 弱压:81.82 强压:90.", + "trigger": "技术信号变化: 大盘中性,行业偏强,高估值,蓝筹,持有" + }, + { + "date": "2026-06-23 12:01", + "old_action": "盈利持有 | ⚠️盈亏比偏低(1:1.1),不建议加仓 | 止损69.75 | 目标90.58 | 买入区76.5~79.48 | 信号:持有", + "new_action": "盈利持有 | ⚠️盈亏比偏低(1:1.2),不建议加仓 | 止损69.51 | 目标93.75 | 买入区77.8~80.95 | 信号:持有", + "reason": "技术信号变化: 大盘中性,行业偏强,高估值,蓝筹,持有: 止损69.75→69.51, 止盈90.58→93.75 | 形态:倒T线/射击之星/bearish 量价:数据不足 强撑:68.15 弱撑:77.8 弱压:83.15 强压:93.", + "trigger": "技术信号变化: 大盘中性,行业偏强,高估值,蓝筹,持有" + }, + { + "date": "2026-06-24 09:00", + "old_action": "盈利持有 | ⚠️盈亏比偏低(1:1.2),不建议加仓 | 止损69.51 | 目标93.75 | 买入区77.8~80.95 | 信号:持有", + "new_action": "盈利持有 | ⚠️盈亏比偏低(1:1.3),不建议加仓 | 止损70.68 | 目标88.59 | 买入区74.87~78.61 | 信号:持有", + "reason": "价格变动(67.32→77.85): 止损69.51→70.68, 止盈93.75→88.59 | 形态:倒T线/射击之星/bearish 量价:数据不足 强撑:66.68 弱撑:74.87 弱压:82.47 强压:92", + "trigger": "价格变动(67.32→77.85)" } - ] + ], + "strategy_tree": { + "branches": [ + { + "id": "00981_stop_loss", + "condition": { + "price": "<70.68" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "00981_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=78.61", + "price_lower": ">=74.87" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 74.87, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "00981_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=88.59" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "00981_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": "00981_take_profit", + "condition": { + "price": ">=88.59" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "00981_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ], + "initialized_at": "2026-06-24T10:23:51.387222" + } }, { "code": "01070", "name": "TCL电子", - "price": 13.04, + "price": 13.2, "cost": 0, "shares": 0, "avg_price": 0, - "action": "盈利持有 | 目标15.28 | 止损11.78 | 买入区12.78~13.3 | 信号:接近支撑位,关注", - "stop_loss": 11.78, - "entry_low": 12.78, - "entry_high": 13.3, - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:11.08 弱撑:12.84 弱压:13.51 强压:15.28", - "timing_signal": "接近支撑位,关注", - "rr_ratio": 5.74, + "action": "盈利持有 | 目标15.33 | 止损12.8 | 买入区12.94~13.46 | 信号:接近支撑位,关注", + "stop_loss": 12.8, + "entry_low": 12.94, + "entry_high": 13.46, + "tech_snapshot": "形态:带下影阴线/neutral 量价:数据不足 强撑:11.11 弱撑:12.96 弱压:13.45 强压:15.33", + "timing_signal": "大盘中性,行业中性,低估值,接近支撑位,关注", + "rr_ratio": 5.33, "status": "updated", "note": "", - "timestamp": "2026-06-22 12:00", - "updated_at": "2026-06-22 12:00", + "timestamp": "2026-06-24 09:00", + "updated_at": "2026-06-24 09:00", "type": "自选策略", "source": "auto", - "sector_context": "行业消费电子下跌-2.6%,适度防御 | 大盘仅17%个股上涨", + "sector_context": "行业消费电子-1.0%,中性", "stock_category": "弱势", "position_advice": "减仓或观望", "time_horizon": "观望", "created_at": "2026-06-18 17:15", - "take_profit": 15.28, - "updated_reason": "价格变动(13.51→13.04): 止损12.96→11.78 | 形态:光头光脚阴线/bearish 量价:数据不足 强撑:11.08 弱撑:12.84 弱压:13.51 强压:15.2", + "take_profit": 15.33, + "updated_reason": "技术面重评: 止损12.71→12.8 | 形态:带下影阴线/neutral 量价:数据不足 强撑:11.11 弱撑:12.96 弱压:13.45 强压:15.33", "changelog": [ { "date": "2026-06-18 11:31", @@ -754,45 +1696,161 @@ "new_action": "盈利持有 | 目标15.28 | 止损11.78 | 买入区12.78~13.3 | 信号:接近支撑位,关注", "reason": "价格变动(13.51→13.04): 止损12.96→11.78 | 形态:光头光脚阴线/bearish 量价:数据不足 强撑:11.08 弱撑:12.84 弱压:13.51 强压:15.2", "trigger": "价格变动(13.51→13.04)" + }, + { + "date": "2026-06-23 09:01", + "old_action": "盈利持有 | 目标15.28 | 止损11.78 | 买入区12.78~13.3 | 信号:接近支撑位,关注", + "new_action": "盈利持有 | 目标15.3 | 止损12.7 | 买入区12.83~13.35 | 信号:接近支撑位,关注", + "reason": "技术信号变化: 大盘中性,行业中性,低估值,接近支撑位,关注: 止损11.78→12.7 | 形态:光头光脚阴线/bearish 量价:数据不足 强撑:11.08 弱撑:12.87 弱压:13.51 强压:15.3", + "trigger": "技术信号变化: 大盘中性,行业中性,低估值,接近支撑位,关注" + }, + { + "date": "2026-06-23 12:01", + "old_action": "盈利持有 | 目标15.3 | 止损12.7 | 买入区12.83~13.35 | 信号:接近支撑位,关注", + "new_action": "盈利持有 | 目标15.29 | 止损12.71 | 买入区12.84~13.36 | 信号:接近支撑位,关注", + "reason": "技术信号变化: 大盘中性,行业中性,低估值,接近支撑位,关注: 止损12.7→12.71 | 形态:光头光脚阴线/neutral 量价:数据不足 强撑:11.07 弱撑:12.9 弱压:13.39 强压:15.29", + "trigger": "技术信号变化: 大盘中性,行业中性,低估值,接近支撑位,关注" + }, + { + "date": "2026-06-24 09:00", + "old_action": "盈利持有 | 目标15.29 | 止损12.71 | 买入区12.84~13.36 | 信号:接近支撑位,关注", + "new_action": "盈利持有 | 目标15.33 | 止损12.8 | 买入区12.94~13.46 | 信号:接近支撑位,关注", + "reason": "技术面重评: 止损12.71→12.8 | 形态:带下影阴线/neutral 量价:数据不足 强撑:11.11 弱撑:12.96 弱压:13.45 强压:15.33", + "trigger": "技术面重评" } ], - "advice_timeline": [ - { - "date": "2026-06-22 13:28", - "direction": "加仓", - "price": "13.51", - "summary": "TCL电子(01070) 13.51已接近买入区12.78~13.30,1手6,282.15元 | 仓位85.62→86.24%", - "status": "pending" - } - ] + "strategy_tree": { + "branches": [ + { + "id": "01070_stop_loss", + "condition": { + "price": "<12.8" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "01070_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=13.46", + "price_lower": ">=12.94" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 12.94, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "01070_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=15.33" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "01070_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": "01070_take_profit", + "condition": { + "price": ">=15.33" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "01070_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ], + "initialized_at": "2026-06-24T10:23:51.389342" + } }, { "code": "01088", "name": "中国神华", - "price": 42.74, + "price": 42.06, "cost": 46.1659, - "shares": 0, + "shares": 500, "avg_price": 0, - "action": "持有观察 | ⚠️盈亏比偏低(1:0.8),不建议加仓 | 止损37.9 | 目标46.43 | 买入区41.91~42.37 | 信号:持有", - "stop_loss": 37.9, - "entry_low": 41.91, + "action": "持有观察 | ⚠️盈亏比偏低(1:1.2),不建议加仓 | 止损40.61 | 目标44.57 | 买入区41.61~42.37 | 信号:持有", + "stop_loss": 40.61, + "entry_low": 41.61, "entry_high": 42.37, - "tech_snapshot": "形态:带下影阳线/bullish 量价:数据不足 强撑:38.31 弱撑:41.91 弱压:43.19 强压:46.43", - "timing_signal": "持有", - "rr_ratio": 0.83, + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:38.31 弱撑:41.61 弱压:42.83 强压:46.43", + "timing_signal": "大盘中性,行业中性,蓝筹,持有", + "rr_ratio": 1.17, "status": "updated", - "note": "⚠️盈亏比偏低(1:0.8),不建议加仓", - "timestamp": "2026-06-22 12:00", - "updated_at": "2026-06-22 12:00", + "note": "⚠️盈亏比偏低(1:1.2),不建议加仓", + "timestamp": "2026-06-24 09:00", + "updated_at": "2026-06-24 09:00", "type": "持仓策略", "source": "auto", - "sector_context": "行业煤炭开采加工上涨+1.2%,正常 | 大盘仅17%个股上涨", + "sector_context": "行业煤炭开采加工-0.0%,中性", "stock_category": "弱势", "position_advice": "减仓或观望", "time_horizon": "观望", "created_at": "2026-06-18 17:15", - "take_profit": 46.43, - "updated_reason": "技术面重评: 止损35.09→37.9, 止盈42.9→46.43 | 形态:带下影阳线/bullish 量价:数据不足 强撑:38.31 弱撑:41.91 弱压:43.19 强压:46.43", + "take_profit": 44.57, + "updated_reason": "价格变动(36.37→42.06): 止损39.42→40.61, 止盈46.77→44.57 | 形态:光头光脚阴线/bearish 量价:数据不足 强撑:38.31 弱撑:41.61 弱压:42.83 强压:46.4", "changelog": [ { "date": "2026-06-18 11:31", @@ -863,36 +1921,161 @@ "new_action": "持有观察 | ⚠️盈亏比偏低(1:0.8),不建议加仓 | 止损37.9 | 目标46.43 | 买入区41.91~42.37 | 信号:持有", "reason": "技术面重评: 止损35.09→37.9, 止盈42.9→46.43 | 形态:带下影阳线/bullish 量价:数据不足 强撑:38.31 弱撑:41.91 弱压:43.19 强压:46.43", "trigger": "技术面重评" + }, + { + "date": "2026-06-23 09:01", + "old_action": "持有观察 | ⚠️盈亏比偏低(1:0.8),不建议加仓 | 止损37.9 | 目标46.43 | 买入区41.91~42.37 | 信号:持有", + "new_action": "持有观察 | ⚠️盈亏比偏低(1:0.9),不建议加仓 | 止损39.18 | 目标46.53 | 买入区41.65~42.47 | 信号:持有", + "reason": "技术信号变化: 大盘中性,行业偏强,蓝筹,持有: 止损37.9→39.18, 止盈46.43→46.53 | 形态:倒T线/射击之星/bearish 量价:数据不足 强撑:38.41 弱撑:41.65 弱压:43.39 强压:46", + "trigger": "技术信号变化: 大盘中性,行业偏强,蓝筹,持有" + }, + { + "date": "2026-06-23 12:01", + "old_action": "持有观察 | ⚠️盈亏比偏低(1:0.9),不建议加仓 | 止损39.18 | 目标46.53 | 买入区41.65~42.47 | 信号:持有", + "new_action": "持有观察 | ⚠️盈亏比偏低(1:1.0),不建议加仓 | 止损39.42 | 目标46.77 | 买入区42.27~42.71 | 信号:持有", + "reason": "技术信号变化: 大盘中性,行业偏强,蓝筹,持有: 止损39.18→39.42, 止盈46.53→46.77 | 形态:锤子线/T字线/bullish 量价:数据不足 强撑:38.65 弱撑:42.27 弱压:43.15 强压:46.", + "trigger": "技术信号变化: 大盘中性,行业偏强,蓝筹,持有" + }, + { + "date": "2026-06-24 09:00", + "old_action": "持有观察 | ⚠️盈亏比偏低(1:1.0),不建议加仓 | 止损39.42 | 目标46.77 | 买入区42.27~42.71 | 信号:持有", + "new_action": "持有观察 | ⚠️盈亏比偏低(1:1.2),不建议加仓 | 止损40.61 | 目标44.57 | 买入区41.61~42.37 | 信号:持有", + "reason": "价格变动(36.37→42.06): 止损39.42→40.61, 止盈46.77→44.57 | 形态:光头光脚阴线/bearish 量价:数据不足 强撑:38.31 弱撑:41.61 弱压:42.83 强压:46.4", + "trigger": "价格变动(36.37→42.06)" } - ] + ], + "strategy_tree": { + "branches": [ + { + "id": "01088_stop_loss", + "condition": { + "price": "<40.61" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "01088_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=42.37", + "price_lower": ">=41.61" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 41.61, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "01088_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=44.57" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "01088_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": "01088_take_profit", + "condition": { + "price": ">=44.57" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "01088_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ], + "initialized_at": "2026-06-24T10:23:51.391477" + } }, { "code": "01211", "name": "比亚迪股份", - "price": 77.95, + "price": 75.85, "cost": 105.4926, - "shares": 0, + "shares": 600, "avg_price": 0, - "action": "深套持有 | 深套持有 | 止损61.7 | 目标85.12 | 买入区70.16~81.85 | 信号:持有", - "stop_loss": 61.7, - "entry_low": 70.16, - "entry_high": 81.85, - "tech_snapshot": "形态:带下影阴线/neutral 量价:数据不足 强撑:67.0 弱撑:76.35 弱压:80.85 强压:89.6", - "timing_signal": "持有", - "rr_ratio": 1.0, + "action": "深套持有 | 深套持有 | 止损65.31 | 目标81.15 | 买入区68.27~79.64 | 信号:持有", + "stop_loss": 65.31, + "entry_low": 68.27, + "entry_high": 79.64, + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:64.18 弱撑:74.87 弱压:78.35 强压:88.98", + "timing_signal": "大盘中性,行业偏弱,蓝筹,持有", + "rr_ratio": 1.13, "status": "updated", "note": "深套持有", - "timestamp": "2026-06-22 12:00", - "updated_at": "2026-06-22 12:00", + "timestamp": "2026-06-24 09:00", + "updated_at": "2026-06-24 09:00", "type": "持仓策略", "source": "auto", - "sector_context": "行业汽车整车下跌-2.6%,适度防御 | 大盘仅17%个股上涨", + "sector_context": "行业汽车整车下跌-1.1%,适度防御", "stock_category": "深套", "position_advice": "不补不割", "time_horizon": "长期", "created_at": "2026-06-18 17:15", - "take_profit": 85.12, - "updated_reason": "价格变动(80.85→77.95): 止损63.99→61.7, 止盈87.07→85.12 | 形态:带下影阴线/neutral 量价:数据不足 强撑:67.0 弱撑:76.35 弱压:80.85 强压:89.6", + "take_profit": 81.15, + "updated_reason": "价格变动(65.59→75.85): 止损65.02→65.31, 止盈88.87→81.15 | 形态:光头光脚阴线/bearish 量价:数据不足 强撑:64.18 弱撑:74.87 弱压:78.35 强压:88.9", "changelog": [ { "date": "2026-06-18 11:31", @@ -956,36 +2139,161 @@ "new_action": "深套持有 | 深套持有 | 止损61.7 | 目标85.12 | 买入区70.16~81.85 | 信号:持有", "reason": "价格变动(80.85→77.95): 止损63.99→61.7, 止盈87.07→85.12 | 形态:带下影阴线/neutral 量价:数据不足 强撑:67.0 弱撑:76.35 弱压:80.85 强压:89.6", "trigger": "价格变动(80.85→77.95)" + }, + { + "date": "2026-06-23 09:01", + "old_action": "深套持有 | 深套持有 | 止损61.7 | 目标85.12 | 买入区70.16~81.85 | 信号:持有", + "new_action": "深套持有 | 深套持有 | 止损66.6 | 目标89.73 | 买入区70.52~82.27 | 信号:持有", + "reason": "技术信号变化: 大盘中性,行业中性,蓝筹,持有: 止损61.7→66.6, 止盈85.12→89.73 | 形态:带下影阴线/neutral 量价:数据不足 强撑:67.13 弱撑:76.62 弱压:80.85 强压:89.73", + "trigger": "技术信号变化: 大盘中性,行业中性,蓝筹,持有" + }, + { + "date": "2026-06-23 12:01", + "old_action": "深套持有 | 深套持有 | 止损66.6 | 目标89.73 | 买入区70.52~82.27 | 信号:持有", + "new_action": "深套持有 | 深套持有 | 止损65.02 | 目标88.87 | 买入区68.85~80.33 | 信号:持有", + "reason": "技术信号变化: 大盘中性,行业中性,蓝筹,持有: 止损66.6→65.02, 止盈89.73→88.87 | 形态:光头光脚阴线/bearish 量价:数据不足 强撑:65.07 弱撑:75.63 弱压:78.35 强压:88.8", + "trigger": "技术信号变化: 大盘中性,行业中性,蓝筹,持有" + }, + { + "date": "2026-06-24 09:00", + "old_action": "深套持有 | 深套持有 | 止损65.02 | 目标88.87 | 买入区68.85~80.33 | 信号:持有", + "new_action": "深套持有 | 深套持有 | 止损65.31 | 目标81.15 | 买入区68.27~79.64 | 信号:持有", + "reason": "价格变动(65.59→75.85): 止损65.02→65.31, 止盈88.87→81.15 | 形态:光头光脚阴线/bearish 量价:数据不足 强撑:64.18 弱撑:74.87 弱压:78.35 强压:88.9", + "trigger": "价格变动(65.59→75.85)" } - ] + ], + "strategy_tree": { + "branches": [ + { + "id": "01211_stop_loss", + "condition": { + "price": "<65.31" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "01211_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=79.64", + "price_lower": ">=68.27" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 68.27, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "01211_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=81.15" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "01211_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": "01211_take_profit", + "condition": { + "price": ">=81.15" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "01211_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ], + "initialized_at": "2026-06-24T10:23:51.393584" + } }, { "code": "01478", "name": "丘钛科技", - "price": 8.36, + "price": 7.88, "cost": 13.8666, - "shares": 0, + "shares": 11000, "avg_price": 0, - "action": "深套持有 | 深套持有 | 止损6.62 | 目标9.37 | 买入区7.52~8.78 | 信号:持有", - "stop_loss": 6.62, - "entry_low": 7.52, - "entry_high": 8.78, - "tech_snapshot": "形态:光头光脚阴线/neutral 量价:数据不足 强撑:7.18 弱撑:8.14 弱压:8.75 强压:9.86", - "timing_signal": "持有", - "rr_ratio": 1.2, + "action": "深套持有 | 深套持有 | 止损6.82 | 目标9.32 | 买入区7.09~8.27 | 信号:持有", + "stop_loss": 6.82, + "entry_low": 7.09, + "entry_high": 8.27, + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:6.43 弱撑:7.61 弱压:8.38 强压:9.71", + "timing_signal": "大盘中性,行业中性,低估值,持有", + "rr_ratio": 1.26, "status": "updated", "note": "深套持有", - "timestamp": "2026-06-22 12:00", - "updated_at": "2026-06-22 12:00", + "timestamp": "2026-06-24 09:00", + "updated_at": "2026-06-24 09:00", "type": "持仓策略", "source": "auto", - "sector_context": "行业消费电子下跌-2.6%,适度防御 | 大盘仅17%个股上涨", + "sector_context": "行业消费电子-1.0%,中性", "stock_category": "深套", "position_advice": "不补不割", "time_horizon": "长期", "created_at": "2026-06-18 17:15", - "take_profit": 9.37, - "updated_reason": "价格变动(8.75→8.36): 止损7.33→6.62, 止盈10.39→9.37 | 形态:光头光脚阴线/neutral 量价:数据不足 强撑:7.18 弱撑:8.14 弱压:8.75 强压:9.86", + "take_profit": 9.32, + "updated_reason": "价格变动(6.81→7.88): 止损6.8→6.82, 止盈9.64→9.32 | 形态:光头光脚阴线/bearish 量价:数据不足 强撑:6.43 弱撑:7.61 弱压:8.38 强压:9.71", "changelog": [ { "date": "2026-06-18 11:31", @@ -1049,36 +2357,161 @@ "new_action": "深套持有 | 深套持有 | 止损6.62 | 目标9.37 | 买入区7.52~8.78 | 信号:持有", "reason": "价格变动(8.75→8.36): 止损7.33→6.62, 止盈10.39→9.37 | 形态:光头光脚阴线/neutral 量价:数据不足 强撑:7.18 弱撑:8.14 弱压:8.75 强压:9.86", "trigger": "价格变动(8.75→8.36)" + }, + { + "date": "2026-06-23 09:01", + "old_action": "深套持有 | 深套持有 | 止损6.62 | 目标9.37 | 买入区7.52~8.78 | 信号:持有", + "new_action": "深套持有 | 深套持有 | 止损7.12 | 目标9.87 | 买入区7.54~8.8 | 信号:持有", + "reason": "技术信号变化: 大盘中性,行业中性,低估值,持有: 止损6.62→7.12, 止盈9.37→9.87 | 形态:光头光脚阴线/neutral 量价:数据不足 强撑:7.19 弱撑:8.15 弱压:8.75 强压:9.87", + "trigger": "技术信号变化: 大盘中性,行业中性,低估值,持有" + }, + { + "date": "2026-06-23 12:01", + "old_action": "深套持有 | 深套持有 | 止损7.12 | 目标9.87 | 买入区7.54~8.8 | 信号:持有", + "new_action": "深套持有 | 深套持有 | 止损6.8 | 目标9.64 | 买入区7.3~8.52 | 信号:持有", + "reason": "价格变动(8.38→8.11): 止损7.12→6.8, 止盈9.87→9.64 | 形态:光头光脚阴线/bearish 量价:数据不足 强撑:6.8 弱撑:7.9 弱压:8.42 强压:9.64", + "trigger": "价格变动(8.38→8.11)" + }, + { + "date": "2026-06-24 09:00", + "old_action": "深套持有 | 深套持有 | 止损6.8 | 目标9.64 | 买入区7.3~8.52 | 信号:持有", + "new_action": "深套持有 | 深套持有 | 止损6.82 | 目标9.32 | 买入区7.09~8.27 | 信号:持有", + "reason": "价格变动(6.81→7.88): 止损6.8→6.82, 止盈9.64→9.32 | 形态:光头光脚阴线/bearish 量价:数据不足 强撑:6.43 弱撑:7.61 弱压:8.38 强压:9.71", + "trigger": "价格变动(6.81→7.88)" } - ] + ], + "strategy_tree": { + "branches": [ + { + "id": "01478_stop_loss", + "condition": { + "price": "<6.82" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "01478_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=8.27", + "price_lower": ">=7.09" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 7.09, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "01478_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=9.32" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "01478_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": "01478_take_profit", + "condition": { + "price": ">=9.32" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "01478_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ], + "initialized_at": "2026-06-24T10:23:51.395696" + } }, { "code": "01888", "name": "建滔积层板", - "price": 92.25, + "price": 87.25, "cost": 88.7544, - "shares": 0, + "shares": 500, "avg_price": 0, - "action": "盈利持有 | 短炒强趋势持 | 止损81.61 | 目标131.46 | 买入区87.18~91.54 | 信号:强趋势持", - "stop_loss": 81.61, - "entry_low": 87.18, - "entry_high": 91.54, - "tech_snapshot": "形态:倒T线/射击之星/neutral 量价:数据不足 强撑:57.27 弱撑:87.18 弱压:98.43 强压:129.57", - "timing_signal": "强趋势持", - "rr_ratio": 10.01, + "action": "持有观察 | 短炒强趋势持 | 止损77.86 | 目标106.95 | 买入区83.32~87.49 | 信号:强趋势持", + "stop_loss": 77.86, + "entry_low": 83.32, + "entry_high": 87.49, + "tech_snapshot": "形态:带下影阴线/neutral 量价:数据不足 强撑:51.48 弱撑:83.32 弱压:91.95 强压:123.78", + "timing_signal": "大盘中性,行业偏弱,高估值,强趋势持", + "rr_ratio": 9.3, "status": "updated", "note": "短炒强趋势持", - "timestamp": "2026-06-22 12:00", - "updated_at": "2026-06-22 12:00", + "timestamp": "2026-06-24 09:00", + "updated_at": "2026-06-24 09:00", "type": "持仓策略", "source": "auto", - "sector_context": "行业元件下跌-1.9%,适度防御 | 大盘仅17%个股上涨", + "sector_context": "行业元件大跌-4.3%,收紧止损", "stock_category": "短炒", "position_advice": "小仓强趋势让利润跑", "time_horizon": "数日~2周", "created_at": "2026-06-18 17:15", - "take_profit": 131.46, - "updated_reason": "技术面重评: 止损86.34→81.61, 止盈141.9→131.46 | 形态:倒T线/射击之星/neutral 量价:数据不足 强撑:57.27 弱撑:87.18 弱压:98.43 强压:12", + "take_profit": 106.95, + "updated_reason": "价格变动(75.45→87.25): 止损75.7→77.86, 止盈82.76→106.95 | 形态:带下影阴线/neutral 量价:数据不足 强撑:51.48 弱撑:83.32 弱压:91.95 强压:123.7", "changelog": [ { "date": "2026-06-18 11:31", @@ -1156,36 +2589,161 @@ "new_action": "盈利持有 | 短炒强趋势持 | 止损81.61 | 目标131.46 | 买入区87.18~91.54 | 信号:强趋势持", "reason": "技术面重评: 止损86.34→81.61, 止盈141.9→131.46 | 形态:倒T线/射击之星/neutral 量价:数据不足 强撑:57.27 弱撑:87.18 弱压:98.43 强压:12", "trigger": "技术面重评" + }, + { + "date": "2026-06-23 09:01", + "old_action": "盈利持有 | 短炒强趋势持 | 止损81.61 | 目标131.46 | 买入区87.18~91.54 | 信号:强趋势持", + "new_action": "盈利持有 | 短炒强趋势持 | 止损87.35 | 目标129.48 | 买入区87.02~91.37 | 信号:强趋势持", + "reason": "技术信号变化: 大盘中性,行业中性,高估值,强趋势持: 止损81.61→87.35, 止盈131.46→129.48 | 形态:倒T线/射击之星/neutral 量价:数据不足 强撑:57.18 弱撑:87.02 弱压:98.27 强压:12", + "trigger": "技术信号变化: 大盘中性,行业中性,高估值,强趋势持" + }, + { + "date": "2026-06-23 12:01", + "old_action": "盈利持有 | 短炒强趋势持 | 止损87.35 | 目标129.48 | 买入区87.02~91.37 | 信号:强趋势持", + "new_action": "持有观察 | 短炒强趋势持 | 止损75.7 | 目标82.76 | 买入区82.28~86.39 | 信号:强趋势持", + "reason": "价格变动(91.95→85.0): 止损87.35→75.7, 止盈129.48→82.76 | 形态:光头光脚阴线/bearish 量价:数据不足 强撑:50.97 弱撑:82.28 弱压:91.95 强压:123.", + "trigger": "价格变动(91.95→85.0)" + }, + { + "date": "2026-06-24 09:00", + "old_action": "持有观察 | 短炒强趋势持 | 止损75.7 | 目标82.76 | 买入区82.28~86.39 | 信号:强趋势持", + "new_action": "持有观察 | 短炒强趋势持 | 止损77.86 | 目标106.95 | 买入区83.32~87.49 | 信号:强趋势持", + "reason": "价格变动(75.45→87.25): 止损75.7→77.86, 止盈82.76→106.95 | 形态:带下影阴线/neutral 量价:数据不足 强撑:51.48 弱撑:83.32 弱压:91.95 强压:123.7", + "trigger": "价格变动(75.45→87.25)" } - ] + ], + "strategy_tree": { + "branches": [ + { + "id": "01888_stop_loss", + "condition": { + "price": "<77.86" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "01888_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=87.49", + "price_lower": ">=83.32" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 83.32, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "01888_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=106.95" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "01888_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": "01888_take_profit", + "condition": { + "price": ">=106.95" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "01888_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ], + "initialized_at": "2026-06-24T10:23:51.397884" + } }, { "code": "02202", "name": "万科企业", - "price": 2.43, + "price": 2.4, "cost": 4.6955, - "shares": 0, + "shares": 19700, "avg_price": 0, - "action": "深套持有 | 深套持有 | 止损1.91 | 目标2.63 | 买入区2.19~2.55 | 信号:持有", - "stop_loss": 1.91, - "entry_low": 2.19, - "entry_high": 2.55, - "tech_snapshot": "形态:锤子线/T字线/bullish 量价:数据不足 强撑:2.05 弱撑:2.37 弱压:2.46 强压:2.77", - "timing_signal": "持有", - "rr_ratio": 0.89, + "action": "深套持有 | 深套持有 | 止损2.16 | 目标2.68 | 买入区2.16~2.52 | 信号:持有", + "stop_loss": 2.16, + "entry_low": 2.16, + "entry_high": 2.52, + "tech_snapshot": "形态:带上影阴线/bearish 量价:数据不足 强撑:2.07 弱撑:2.34 弱压:2.5 强压:2.79", + "timing_signal": "大盘中性,行业中性,高估值,持有", + "rr_ratio": 1.08, "status": "updated", "note": "深套持有", - "timestamp": "2026-06-22 12:00", - "updated_at": "2026-06-22 12:00", + "timestamp": "2026-06-24 09:00", + "updated_at": "2026-06-24 09:00", "type": "持仓策略", "source": "auto", - "sector_context": "行业房地产下跌-2.3%,适度防御 | 大盘仅17%个股上涨", + "sector_context": "行业房地产+0.8%,中性", "stock_category": "深套", "position_advice": "不补不割", "time_horizon": "长期", "created_at": "2026-06-18 17:15", - "take_profit": 2.63, - "updated_reason": "技术面重评: 止损2.0→1.91, 止盈2.85→2.63 | 形态:锤子线/T字线/bullish 量价:数据不足 强撑:2.05 弱撑:2.37 弱压:2.46 强压:2.77", + "take_profit": 2.68, + "updated_reason": "价格变动(2.08→2.4): 止损2.08→2.16, 止盈2.81→2.68 | 形态:带上影阴线/bearish 量价:数据不足 强撑:2.07 弱撑:2.34 弱压:2.5 强压:2.79", "changelog": [ { "date": "2026-06-18 11:31", @@ -1242,36 +2800,160 @@ "new_action": "深套持有 | 深套持有 | 止损1.91 | 目标2.63 | 买入区2.19~2.55 | 信号:持有", "reason": "技术面重评: 止损2.0→1.91, 止盈2.85→2.63 | 形态:锤子线/T字线/bullish 量价:数据不足 强撑:2.05 弱撑:2.37 弱压:2.46 强压:2.77", "trigger": "技术面重评" + }, + { + "date": "2026-06-23 09:01", + "old_action": "深套持有 | 深套持有 | 止损1.91 | 目标2.63 | 买入区2.19~2.55 | 信号:持有", + "new_action": "深套持有 | 深套持有 | 止损2.07 | 目标2.79 | 买入区2.22~2.59 | 信号:持有", + "reason": "技术信号变化: 大盘中性,行业中性,高估值,持有: 止损1.91→2.07, 止盈2.63→2.79 | 形态:带下影阳线/bullish 量价:数据不足 强撑:2.07 弱撑:2.39 弱压:2.52 强压:2.79", + "trigger": "技术信号变化: 大盘中性,行业中性,高估值,持有" + }, + { + "date": "2026-06-23 12:01", + "old_action": "深套持有 | 深套持有 | 止损2.07 | 目标2.79 | 买入区2.22~2.59 | 信号:持有", + "new_action": "深套持有 | 深套持有 | 止损2.08 | 目标2.81 | 买入区2.16~2.52 | 信号:持有", + "reason": "技术信号变化: 大盘中性,行业偏强,高估值,持有: 止损2.07→2.08, 止盈2.79→2.81 | 形态:带上影阴线/bearish 量价:数据不足 强撑:2.09 弱撑:2.36 弱压:2.49 强压:2.81", + "trigger": "技术信号变化: 大盘中性,行业偏强,高估值,持有" + }, + { + "date": "2026-06-24 09:00", + "old_action": "深套持有 | 深套持有 | 止损2.08 | 目标2.81 | 买入区2.16~2.52 | 信号:持有", + "new_action": "深套持有 | 深套持有 | 止损2.16 | 目标2.68 | 买入区2.16~2.52 | 信号:持有", + "reason": "价格变动(2.08→2.4): 止损2.08→2.16, 止盈2.81→2.68 | 形态:带上影阴线/bearish 量价:数据不足 强撑:2.07 弱撑:2.34 弱压:2.5 强压:2.79", + "trigger": "价格变动(2.08→2.4)" } - ] + ], + "strategy_tree": { + "branches": [ + { + "id": "02202_stop_loss", + "condition": { + "price": "<2.16" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "02202_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=2.52", + "price_lower": ">=2.16" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 2.16, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "02202_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=2.68" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "02202_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": "02202_take_profit", + "condition": { + "price": ">=2.68" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "02202_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ], + "initialized_at": "2026-06-24T10:23:51.400040" + } }, { "code": "02318", "name": "中国平安", - "price": 51.06, - "cost": 50.92, + "price": 53.6, + "cost": 0, "shares": 500, "avg_price": 0, - "action": "盈利持有 | 目标60.4 | 止损48.1 | 买入区53.15~54.25 | 信号:弱势持有", - "stop_loss": 48.1, - "entry_low": 53.15, - "entry_high": 54.25, - "tech_snapshot": "形态:光头光脚阳线/bullish 量价:数据不足 强撑:48.1 弱撑:53.15 弱压:55.9 强压:60.4", - "timing_signal": "大盘中性,行业偏强,低估值,蓝筹,弱势持有", - "rr_ratio": 3.16, - "status": "updated", + "action": "盈利持有 | 止损参考53.3 | 买入区53.85~56.05 | 信号:接近支撑位,关注", + "stop_loss": 53.3, + "entry_low": 53.85, + "entry_high": 56.05, + "tech_snapshot": "形态:带上影阴线/bearish 量价:数据不足 强撑:47.98 弱撑:52.77 弱压:54.97 强压:60.28", + "timing_signal": "接近支撑位,关注", + "rr_ratio": 13.28, + "status": "manual", "note": "", - "timestamp": "2026-06-22 12:00", - "updated_at": "2026-06-22 12:00", + "timestamp": "2026-06-24 09:01", + "updated_at": "2026-06-24 09:01", "type": "自选策略", "source": "manual", - "sector_context": "行业保险大涨+4.8%,可适度积极 | 大盘仅17%个股上涨", + "sector_context": "行业保险下跌-2.0%,适度防御", "stock_category": "弱势", "position_advice": "减仓或观望", "time_horizon": "观望", "created_at": "2026-06-18 17:15", - "take_profit": 60.4, - "updated_reason": "技术面重评: 止损52.23→52.82 | 形态:带下影阳线/bullish 量价:数据不足 强撑:47.85 弱撑:53.05 弱压:55.4 强压:60.15", + "take_profit": 60.72, "changelog": [ { "date": "2026-06-18 11:31", @@ -1342,53 +3024,154 @@ "new_action": "盈利持有 | 目标60.15 | 止损52.82 | 买入区53.36~55.54 | 信号:弱势持有", "reason": "技术面重评: 止损52.23→52.82 | 形态:带下影阳线/bullish 量价:数据不足 强撑:47.85 弱撑:53.05 弱压:55.4 强压:60.15", "trigger": "技术面重评" - } - ], - "advice_timeline": [ - { - "date": "2026-06-22 13:28", - "direction": "加仓", - "price": "53.85", - "summary": "中国平安(02318) 53.85在买入区52.77~54.93,1手25,040.25元 | 仓位85.62→88.07%", - "status": "pending" }, { - "date": "2026-06-22 13:52", - "direction": "买入", - "price": "54.45", - "summary": "大盘偏弱(仅22.2%板块上涨/bearish)但保险板块领涨+6.42%净流入24.58亿,金融护盘明显;中国平安54.45在买入区53.36~55.54中段,RR=3.26良好,止损52.75目标60.0,1手25,319元低于可用现金14.68万", - "status": "pending" + "date": "2026-06-23 09:01", + "old_action": "盈利持有 | 目标60.4 | 止损48.1 | 买入区53.15~54.25 | 信号:弱势持有", + "new_action": "盈利持有 | 止损参考48.1 | 买入区53.15~54.25 | 信号:弱势持有", + "reason": "价格变动(51.06→54.95): 策略文字调整", + "trigger": "价格变动(51.06→54.95)" + }, + { + "date": "2026-06-23 12:01", + "old_action": "盈利持有 | 目标60.72 | 止损53.3 | 买入区53.85~56.05", + "new_action": "盈利持有 | 止损参考53.3 | 买入区53.85~56.05 | 信号:接近支撑位,关注", + "reason": "技术信号变化: 接近支撑位,关注: 策略文字调整", + "trigger": "技术信号变化: 接近支撑位,关注" } ], - "current_price": 51.06 + "strategy_tree": { + "branches": [ + { + "id": "02318_stop_loss", + "condition": { + "price": "<53.3" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "02318_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=56.05", + "price_lower": ">=53.85" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 53.85, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "02318_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=60.72" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "02318_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": "02318_take_profit", + "condition": { + "price": ">=60.72" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "02318_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ], + "initialized_at": "2026-06-24T10:23:51.403391" + } }, { "code": "02359", "name": "药明康德", - "price": 130.4, + "price": 130.8, "cost": 0, "shares": 0, "avg_price": 0, - "action": "盈利持有 | 目标139.19 | 止损126.49 | 买入区127.79~131.57", - "stop_loss": 126.49, - "entry_low": 127.79, - "entry_high": 131.57, - "tech_snapshot": "形态:带上影阳线/neutral 量价:数据不足 强撑:118.48 弱撑:126.97 弱压:131.27 强压:139.19", - "timing_signal": "大盘中性,行业偏弱", - "rr_ratio": 2.25, + "action": "盈利持有 | 目标146.77 | 止损126.88 | 买入区128.18~133.42 | 信号:接近支撑位,关注", + "stop_loss": 126.88, + "entry_low": 128.18, + "entry_high": 133.42, + "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:数据不足 强撑:117.57 弱撑:128.63 弱压:134.33 强压:146.77", + "timing_signal": "大盘中性,行业偏强,接近支撑位,关注", + "rr_ratio": 4.07, "status": "updated", "note": "", - "timestamp": "2026-06-22 12:00", - "updated_at": "2026-06-22 12:00", + "timestamp": "2026-06-24 09:01", + "updated_at": "2026-06-24 09:01", "type": "自选策略", "source": "auto", - "sector_context": "行业医疗服务下跌-2.5%,适度防御 | 大盘仅17%个股上涨", + "sector_context": "行业医疗服务上涨+2.4%,正常", "stock_category": "中长线", "position_advice": "正常配置", "time_horizon": "数月~1年", "created_at": "2026-06-18 17:15", - "take_profit": 139.19, - "updated_reason": "技术面重评: 止损121.2→117.79 | 形态:带下影阳线/bullish 量价:数据不足 强撑:118.62 弱撑:127.57 弱压:131.67 强压:13", + "take_profit": 146.77, + "updated_reason": "技术面重评: 止损127.85→126.88 | 形态:倒T线/射击之星/bearish 量价:数据不足 强撑:117.57 弱撑:128.63 弱压:134.33 强压", "changelog": [ { "date": "2026-06-18 11:31", @@ -1452,36 +3235,161 @@ "new_action": "盈利持有 | 目标139.45 | 止损117.79 | 买入区127.79~131.67 | 信号:阳线企稳,可买入", "reason": "技术面重评: 止损121.2→117.79 | 形态:带下影阳线/bullish 量价:数据不足 强撑:118.62 弱撑:127.57 弱压:131.67 强压:13", "trigger": "技术面重评" + }, + { + "date": "2026-06-23 09:01", + "old_action": "盈利持有 | 目标139.19 | 止损126.49 | 买入区127.79~131.57", + "new_action": "盈利持有 | 目标145.03 | 止损127.87 | 买入区130.14~134.73 | 信号:阳线企稳,可买入", + "reason": "技术信号变化: 大盘中性,行业中性,阳线企稳,可买入: 止损126.49→127.87 | 形态:光头光脚阳线/bullish 量价:数据不足 强撑:117.63 弱撑:127.87 弱压:136.27 强压:1", + "trigger": "技术信号变化: 大盘中性,行业中性,阳线企稳,可买入" + }, + { + "date": "2026-06-23 12:01", + "old_action": "盈利持有 | 目标145.03 | 止损127.87 | 买入区130.14~134.73 | 信号:阳线企稳,可买入", + "new_action": "盈利持有 | 目标147.67 | 止损127.85 | 买入区129.16~134.44 | 信号:接近支撑位,关注", + "reason": "技术信号变化: 大盘中性,行业偏强,接近支撑位,关注: 止损127.87→127.85 | 形态:倒T线/射击之星/bearish 量价:数据不足 强撑:118.47 弱撑:130.43 弱压:134.53 强压", + "trigger": "技术信号变化: 大盘中性,行业偏强,接近支撑位,关注" + }, + { + "date": "2026-06-24 09:01", + "old_action": "盈利持有 | 目标147.67 | 止损127.85 | 买入区129.16~134.44 | 信号:接近支撑位,关注", + "new_action": "盈利持有 | 目标146.77 | 止损126.88 | 买入区128.18~133.42 | 信号:接近支撑位,关注", + "reason": "技术面重评: 止损127.85→126.88 | 形态:倒T线/射击之星/bearish 量价:数据不足 强撑:117.57 弱撑:128.63 弱压:134.33 强压", + "trigger": "技术面重评" } - ] + ], + "strategy_tree": { + "branches": [ + { + "id": "02359_stop_loss", + "condition": { + "price": "<126.88" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "02359_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=133.42", + "price_lower": ">=128.18" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 128.18, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "02359_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=146.77" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "02359_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": "02359_take_profit", + "condition": { + "price": ">=146.77" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "02359_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ], + "initialized_at": "2026-06-24T10:23:51.407232" + } }, { "code": "02388", "name": "中银香港", - "price": 47.56, + "price": 47.0, "cost": 43.9719, - "shares": 0, + "shares": 1000, "avg_price": 0, - "action": "盈利良好 | 止损44.75 | 目标50.16 | 买入区47.09~48.14 | 信号:持有", - "stop_loss": 44.75, - "entry_low": 47.09, - "entry_high": 48.14, - "tech_snapshot": "形态:锤子线/T字线/bullish 量价:数据不足 强撑:44.94 弱撑:47.09 弱压:48.14 强压:50.16", - "timing_signal": "持有", - "rr_ratio": 1.82, + "action": "盈利良好 | 止损45.59 | 目标48.97 | 买入区46.65~48.3 | 信号:持有", + "stop_loss": 45.59, + "entry_low": 46.65, + "entry_high": 48.3, + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:43.49 弱撑:46.65 弱压:47.61 强压:51.01", + "timing_signal": "大盘中性,行业偏强,低估值,蓝筹,持有", + "rr_ratio": 2.84, "status": "updated", "note": "", - "timestamp": "2026-06-22 12:00", - "updated_at": "2026-06-22 12:00", + "timestamp": "2026-06-24 09:01", + "updated_at": "2026-06-24 09:01", "type": "持仓策略", "source": "auto", - "sector_context": "行业银行-0.2%,中性 | 大盘仅17%个股上涨", - "stock_category": "中长线", - "position_advice": "正常配置", - "time_horizon": "数月~1年", + "sector_context": "行业银行上涨+1.6%,正常", + "stock_category": "中短线", + "position_advice": "中等仓位", + "time_horizon": "2周~3月", "created_at": "2026-06-18 17:15", - "take_profit": 50.16, - "updated_reason": "技术面重评: 止损43.49→44.75, 止盈50.1→50.16 | 形态:锤子线/T字线/bullish 量价:数据不足 强撑:44.94 弱撑:47.09 弱压:48.14 强压:50.", + "take_profit": 48.97, + "updated_reason": "价格变动(40.64→47.0): 止损45.98→45.59, 止盈51.25→48.97 | 形态:光头光脚阴线/bearish 量价:数据不足 强撑:43.49 弱撑:46.65 弱压:47.61 强压:51.0", "changelog": [ { "date": "2026-06-18 11:31", @@ -1552,36 +3460,161 @@ "new_action": "盈利良好 | 止损44.75 | 目标50.16 | 买入区47.09~48.14 | 信号:持有", "reason": "技术面重评: 止损43.49→44.75, 止盈50.1→50.16 | 形态:锤子线/T字线/bullish 量价:数据不足 强撑:44.94 弱撑:47.09 弱压:48.14 强压:50.", "trigger": "技术面重评" + }, + { + "date": "2026-06-23 09:01", + "old_action": "盈利良好 | 止损44.75 | 目标50.16 | 买入区47.09~48.14 | 信号:持有", + "new_action": "盈利良好 | 止损46.17 | 目标50.19 | 买入区47.15~48.18 | 信号:持有", + "reason": "技术信号变化: 大盘中性,行业中性,低估值,蓝筹,持有: 止损44.75→46.17, 止盈50.16→50.19 | 形态:锤子线/T字线/bullish 量价:数据不足 强撑:44.96 弱撑:47.15 弱压:48.14 强压:50.", + "trigger": "技术信号变化: 大盘中性,行业中性,低估值,蓝筹,持有" + }, + { + "date": "2026-06-23 12:01", + "old_action": "盈利良好 | 止损46.17 | 目标50.19 | 买入区47.15~48.18 | 信号:持有", + "new_action": "盈利良好 | 止损45.98 | 目标51.25 | 买入区47.06~48.61 | 信号:持有", + "reason": "技术信号变化: 大盘中性,行业偏强,低估值,蓝筹,持有: 止损46.17→45.98, 止盈50.19→51.25 | 形态:锤子线/T字线/bullish 量价:数据不足 强撑:43.67 弱撑:47.06 弱压:47.82 强压:51.", + "trigger": "技术信号变化: 大盘中性,行业偏强,低估值,蓝筹,持有" + }, + { + "date": "2026-06-24 09:01", + "old_action": "盈利良好 | 止损45.98 | 目标51.25 | 买入区47.06~48.61 | 信号:持有", + "new_action": "盈利良好 | 止损45.59 | 目标48.97 | 买入区46.65~48.3 | 信号:持有", + "reason": "价格变动(40.64→47.0): 止损45.98→45.59, 止盈51.25→48.97 | 形态:光头光脚阴线/bearish 量价:数据不足 强撑:43.49 弱撑:46.65 弱压:47.61 强压:51.0", + "trigger": "价格变动(40.64→47.0)" } - ] + ], + "strategy_tree": { + "branches": [ + { + "id": "02388_stop_loss", + "condition": { + "price": "<45.59" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "02388_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=48.3", + "price_lower": ">=46.65" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 46.65, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "02388_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=48.97" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "02388_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": "02388_take_profit", + "condition": { + "price": ">=48.97" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "02388_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ], + "initialized_at": "2026-06-24T10:23:51.410967" + } }, { "code": "02628", "name": "中国人寿", - "price": 29.78, + "price": 29.3, "cost": 0, "shares": 0, "avg_price": 0, - "action": "盈利持有 | ⚠️盈亏比偏低(1:1.9),谨慎买入 | 目标33.08 | 止损28.02 | 买入区29.18~30.04 | 信号:阳线企稳,可买入", - "stop_loss": 28.02, - "entry_low": 29.18, - "entry_high": 30.04, - "tech_snapshot": "形态:光头光脚阳线/bullish 量价:数据不足 强撑:24.88 弱撑:28.02 弱压:30.48 强压:33.08", - "timing_signal": "大盘中性,行业偏强,阳线企稳,可买入", - "rr_ratio": 1.87, + "action": "盈利持有 | 目标33.72 | 止损27.28 | 买入区28.71~29.89", + "stop_loss": 27.28, + "entry_low": 28.71, + "entry_high": 29.89, + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:25.52 弱撑:28.68 弱压:30.26 强压:33.72", + "timing_signal": "大盘中性,行业偏弱,低估值,蓝筹", + "rr_ratio": 5.02, "status": "updated", - "note": "⚠️盈亏比偏低(1:1.9),谨慎买入", - "timestamp": "2026-06-22 12:01", - "updated_at": "2026-06-22 12:01", + "note": "", + "timestamp": "2026-06-24 09:01", + "updated_at": "2026-06-24 09:01", "type": "自选策略", "source": "auto", - "sector_context": "行业保险大涨+4.8%,可适度积极 | 大盘仅17%个股上涨", - "stock_category": "弱势", - "position_advice": "减仓或观望", - "time_horizon": "观望", + "sector_context": "行业保险下跌-2.0%,适度防御", + "stock_category": "中长线", + "position_advice": "正常配置", + "time_horizon": "数月~1年", "created_at": "2026-06-18 17:15", - "take_profit": 33.08, - "updated_reason": "价格变动(28.02→29.78): 止损24.26→28.54 | 形态:光头光脚阳线/bullish 量价:数据不足 强撑:24.91 弱撑:28.02 弱压:30.55 强压:33.1", + "take_profit": 33.72, + "updated_reason": "技术信号变化: 大盘中性,行业偏弱,低估值,蓝筹: 止损28.61→27.28 | 形态:光头光脚阴线/bearish 量价:数据不足 强撑:25.52 弱撑:28.68 弱压:30.26 强压:33.7", "changelog": [ { "date": "2026-06-18 11:31", @@ -1652,45 +3685,161 @@ "new_action": "盈利持有 | ⚠️盈亏比偏低(1:1.9),谨慎买入 | 目标33.11 | 止损28.54 | 买入区29.18~30.06 | 信号:弱势持有", "reason": "价格变动(28.02→29.78): 止损24.26→28.54 | 形态:光头光脚阳线/bullish 量价:数据不足 强撑:24.91 弱撑:28.02 弱压:30.55 强压:33.1", "trigger": "价格变动(28.02→29.78)" + }, + { + "date": "2026-06-23 09:01", + "old_action": "盈利持有 | ⚠️盈亏比偏低(1:1.9),谨慎买入 | 目标33.08 | 止损28.02 | 买入区29.18~30.04 | 信号:阳线企稳,可买入", + "new_action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标33.6 | 止损29.35 | 买入区29.65~30.25 | 信号:阳线企稳,可买入", + "reason": "技术信号变化: 大盘中性,行业偏强,低估值,蓝筹,阳线企稳,可买入: 止损28.02→29.35 | 形态:光头光脚阳线/bullish 量价:数据不足 强撑:25.4 弱撑:28.02 弱压:31.52 强压:33.6", + "trigger": "技术信号变化: 大盘中性,行业偏强,低估值,蓝筹,阳线企稳,可买入" + }, + { + "date": "2026-06-23 12:01", + "old_action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标33.6 | 止损29.35 | 买入区29.65~30.25 | 信号:阳线企稳,可买入", + "new_action": "盈利持有 | 目标33.9 | 止损28.61 | 买入区28.91~30.09 | 信号:接近支撑位,关注", + "reason": "技术信号变化: 大盘中性,行业中性,低估值,蓝筹,接近支撑位,关注: 止损29.35→28.61 | 形态:光头光脚阴线/bearish 量价:数据不足 强撑:25.7 弱撑:29.04 弱压:30.26 强压:33.9", + "trigger": "技术信号变化: 大盘中性,行业中性,低估值,蓝筹,接近支撑位,关注" + }, + { + "date": "2026-06-24 09:01", + "old_action": "盈利持有 | 目标33.9 | 止损28.61 | 买入区28.91~30.09 | 信号:接近支撑位,关注", + "new_action": "盈利持有 | 目标33.72 | 止损27.28 | 买入区28.71~29.89", + "reason": "技术信号变化: 大盘中性,行业偏弱,低估值,蓝筹: 止损28.61→27.28 | 形态:光头光脚阴线/bearish 量价:数据不足 强撑:25.52 弱撑:28.68 弱压:30.26 强压:33.7", + "trigger": "技术信号变化: 大盘中性,行业偏弱,低估值,蓝筹" } ], - "advice_timeline": [ - { - "date": "2026-06-22 13:28", - "direction": "加仓", - "price": "28.02", - "summary": "中国人寿(02628) 28.02在买入区27.46~28.58,1手13,029.30元 | 仓位85.62→86.90%", - "status": "pending" - } - ] + "strategy_tree": { + "branches": [ + { + "id": "02628_stop_loss", + "condition": { + "price": "<27.28" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "02628_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=29.89", + "price_lower": ">=28.71" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 28.71, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "02628_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=33.72" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "02628_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": "02628_take_profit", + "condition": { + "price": ">=33.72" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "02628_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ], + "initialized_at": "2026-06-24T10:23:51.414753" + } }, { "code": "06160", "name": "百济神州", - "price": 159.5, + "price": 160.9, "cost": 0, "shares": 0, "avg_price": 0, - "action": "盈利持有 | 目标170.27 | 止损154.72 | 买入区156.31~160.94 | 信号:接近支撑位,关注", - "stop_loss": 154.72, - "entry_low": 156.31, - "entry_high": 160.94, - "tech_snapshot": "形态:带下影阴线/neutral 量价:数据不足 强撑:148.87 弱撑:157.03 弱压:163.7 强压:170.27", - "timing_signal": "大盘中性,行业偏弱,接近支撑位,关注", - "rr_ratio": 2.25, + "action": "盈利持有 | 目标176.87 | 止损156.07 | 买入区157.68~164.12 | 信号:接近支撑位,关注", + "stop_loss": 156.07, + "entry_low": 157.68, + "entry_high": 164.12, + "tech_snapshot": "形态:带上影阴线/neutral 量价:数据不足 强撑:149.27 弱撑:157.83 弱压:166.13 强压:176.87", + "timing_signal": "大盘中性,行业偏强,接近支撑位,关注", + "rr_ratio": 3.31, "status": "updated", "note": "", - "timestamp": "2026-06-22 12:01", - "updated_at": "2026-06-22 12:01", + "timestamp": "2026-06-24 09:01", + "updated_at": "2026-06-24 09:01", "type": "自选策略", "source": "auto", - "sector_context": "行业生物制品大跌-3.5%,收紧止损 | 大盘仅17%个股上涨", + "sector_context": "行业生物制品上涨+3.0%,正常", "stock_category": "弱势", "position_advice": "减仓或观望", "time_horizon": "观望", "created_at": "2026-06-18 17:15", - "take_profit": 170.27, - "updated_reason": "技术信号变化: 接近支撑位,关注: 止损155.73→138.07 | 形态:带下影阴线/neutral 量价:数据不足 强撑:148.87 弱撑:157.03 弱压:163.7 强压:170", + "take_profit": 176.87, + "updated_reason": "技术面重评: 止损158.59→156.07 | 形态:带上影阴线/neutral 量价:数据不足 强撑:149.27 弱撑:157.83 弱压:166.13 强压:17", "changelog": [ { "date": "2026-06-18 11:31", @@ -1768,36 +3917,161 @@ "new_action": "盈利持有 | 目标170.27 | 止损138.07 | 买入区156.31~160.94 | 信号:接近支撑位,关注", "reason": "技术信号变化: 接近支撑位,关注: 止损155.73→138.07 | 形态:带下影阴线/neutral 量价:数据不足 强撑:148.87 弱撑:157.03 弱压:163.7 强压:170", "trigger": "技术信号变化: 接近支撑位,关注" + }, + { + "date": "2026-06-23 09:01", + "old_action": "盈利持有 | 目标170.27 | 止损154.72 | 买入区156.31~160.94 | 信号:接近支撑位,关注", + "new_action": "盈利持有 | 目标171.0 | 止损156.36 | 买入区157.98~162.22 | 信号:弱势持有", + "reason": "技术信号变化: 大盘中性,行业中性,弱势持有: 止损154.72→156.36 | 形态:锤子线/T字线/bullish 量价:数据不足 强撑:149.6 弱撑:158.0 弱压:163.7 强压:171", + "trigger": "技术信号变化: 大盘中性,行业中性,弱势持有" + }, + { + "date": "2026-06-23 12:01", + "old_action": "盈利持有 | 目标171.0 | 止损156.36 | 买入区157.98~162.22 | 信号:弱势持有", + "new_action": "盈利持有 | 目标178.73 | 止损158.59 | 买入区160.23~166.65 | 信号:接近支撑位,关注", + "reason": "技术信号变化: 大盘中性,行业偏强,接近支撑位,关注: 止损156.36→158.59 | 形态:倒T线/射击之星/bearish 量价:数据不足 强撑:151.13 弱撑:161.2 弱压:166.97 强压:", + "trigger": "技术信号变化: 大盘中性,行业偏强,接近支撑位,关注" + }, + { + "date": "2026-06-24 09:01", + "old_action": "盈利持有 | 目标178.73 | 止损158.59 | 买入区160.23~166.65 | 信号:接近支撑位,关注", + "new_action": "盈利持有 | 目标176.87 | 止损156.07 | 买入区157.68~164.12 | 信号:接近支撑位,关注", + "reason": "技术面重评: 止损158.59→156.07 | 形态:带上影阴线/neutral 量价:数据不足 强撑:149.27 弱撑:157.83 弱压:166.13 强压:17", + "trigger": "技术面重评" } - ] + ], + "strategy_tree": { + "branches": [ + { + "id": "06160_stop_loss", + "condition": { + "price": "<156.07" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "06160_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=164.12", + "price_lower": ">=157.68" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 157.68, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "06160_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=176.87" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "06160_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": "06160_take_profit", + "condition": { + "price": ">=176.87" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "06160_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ], + "initialized_at": "2026-06-24T10:23:51.418378" + } }, { "code": "06869", "name": "长飞光纤", - "price": 277.2, + "price": 264.6, "cost": 0, "shares": 0, "avg_price": 0, - "action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标325.27 | 止损202.82 | 买入区271.66~260.79 | 信号:阳线企稳,可买入", - "stop_loss": 202.82, - "entry_low": 271.66, - "entry_high": 260.79, - "tech_snapshot": "形态:光头光脚阳线/bullish 量价:数据不足 强撑:201.67 弱撑:217.8 弱压:291.93 强压:325.27", - "timing_signal": "阳线企稳,可买入", - "rr_ratio": 0.81, - "status": "review", - "note": "⚠️盈亏比不足1:1.5,不建议买入", - "timestamp": "2026-06-22 12:01", - "updated_at": "2026-06-22 12:01", + "action": "盈利持有 | 目标365.4 | 止损238.27 | 买入区259.31~269.89", + "stop_loss": 238.27, + "entry_low": 259.31, + "entry_high": 269.89, + "tech_snapshot": "形态:带上影阴线/neutral 量价:数据不足 强撑:187.8 弱撑:248.2 弱压:293.0 强压:365.4", + "timing_signal": "大盘中性,行业偏弱,高估值", + "rr_ratio": 6.15, + "status": "updated", + "note": "", + "timestamp": "2026-06-24 09:01", + "updated_at": "2026-06-24 09:01", "type": "自选策略", "source": "auto", - "sector_context": "行业通信设备下跌-1.8%,适度防御 | 大盘仅17%个股上涨", + "sector_context": "行业通信设备下跌-1.3%,适度防御", "stock_category": "短炒", "position_advice": "小仓强趋势让利润跑", "time_horizon": "数日~2周", "created_at": "2026-06-18 17:15", - "take_profit": 325.27, - "updated_reason": "价格变动(217.8→277.2): 止损209.03→202.82 | 形态:光头光脚阳线/bullish 量价:数据不足 强撑:201.67 弱撑:217.8 弱压:291.93 强压:32", + "take_profit": 365.4, + "updated_reason": "技术信号变化: 大盘中性,行业偏弱,高估值: 止损251.8→238.27 | 形态:带上影阴线/neutral 量价:数据不足 强撑:187.8 弱撑:248.2 弱压:293.0 强压:365.4", "changelog": [ { "date": "2026-06-18 11:31", @@ -1861,36 +4135,161 @@ "new_action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标325.27 | 止损202.82 | 买入区271.66~260.79 | 信号:阳线企稳,可买入", "reason": "价格变动(217.8→277.2): 止损209.03→202.82 | 形态:光头光脚阳线/bullish 量价:数据不足 强撑:201.67 弱撑:217.8 弱压:291.93 强压:32", "trigger": "价格变动(217.8→277.2)" + }, + { + "date": "2026-06-23 09:01", + "old_action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标325.27 | 止损202.82 | 买入区271.66~260.79 | 信号:阳线企稳,可买入", + "new_action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标344.93 | 止损217.8 | 买入区280.28~268.65 | 信号:阳线企稳,可买入", + "reason": "价格变动(277.2→286.0): 止损202.82→217.8 | 形态:光头光脚阳线/bullish 量价:数据不足 强撑:196.13 弱撑:217.8 弱压:306.07 强压:34", + "trigger": "价格变动(277.2→286.0)" + }, + { + "date": "2026-06-23 12:01", + "old_action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标344.93 | 止损217.8 | 买入区280.28~268.65 | 信号:阳线企稳,可买入", + "new_action": "盈利持有 | 目标367.2 | 止损251.8 | 买入区262.25~272.95", + "reason": "价格变动(286.0→267.6): 止损217.8→251.8 | 形态:带上影阴线/neutral 量价:数据不足 强撑:189.6 弱撑:251.8 弱压:293.8 强压:367.2", + "trigger": "价格变动(286.0→267.6)" + }, + { + "date": "2026-06-24 09:01", + "old_action": "盈利持有 | 目标367.2 | 止损251.8 | 买入区262.25~272.95", + "new_action": "盈利持有 | 目标365.4 | 止损238.27 | 买入区259.31~269.89", + "reason": "技术信号变化: 大盘中性,行业偏弱,高估值: 止损251.8→238.27 | 形态:带上影阴线/neutral 量价:数据不足 强撑:187.8 弱撑:248.2 弱压:293.0 强压:365.4", + "trigger": "技术信号变化: 大盘中性,行业偏弱,高估值" } - ] + ], + "strategy_tree": { + "branches": [ + { + "id": "06869_stop_loss", + "condition": { + "price": "<238.27" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "06869_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=269.89", + "price_lower": ">=259.31" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 259.31, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "06869_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=365.4" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "06869_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": "06869_take_profit", + "condition": { + "price": ">=365.4" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "06869_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ], + "initialized_at": "2026-06-24T10:23:51.421957" + } }, { "code": "09868", "name": "小鹏汽车-W", - "price": 47.99, - "cost": 47.71, + "price": 49.36, + "cost": 0, "shares": 700, "avg_price": 0, - "action": "盈利持有 | 目标60.24 | 止损41.32 | 买入区49.91~50.78 | 信号:回踩支撑,可加仓", - "stop_loss": 41.32, - "entry_low": 49.91, - "entry_high": 50.78, - "tech_snapshot": "形态:锤子线/T字线/bullish 量价:数据不足 强撑:41.32 弱撑:49.91 弱压:52.52 强压:60.24", - "timing_signal": "大盘中性,高估值,回踩支撑,可加仓", - "rr_ratio": 1.84, - "status": "updated", + "action": "盈利持有 | 止损参考49.83 | 买入区50.52~52.58", + "stop_loss": 49.83, + "entry_low": 50.52, + "entry_high": 52.58, + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:40.48 弱撑:48.02 弱压:51.55 强压:59.84", + "timing_signal": "neutral", + "rr_ratio": 22.63, + "status": "manual", "note": "", - "timestamp": "2026-06-22 12:01", - "updated_at": "2026-06-22 12:01", + "timestamp": "2026-06-24 09:01", + "updated_at": "2026-06-24 09:01", "type": "自选策略", "source": "manual", - "sector_context": "行业汽车整车下跌-2.6%,适度防御 | 大盘仅17%个股上涨", + "sector_context": "行业汽车整车下跌-1.1%,适度防御", "stock_category": "短炒", "position_advice": "小仓快进快出", "time_horizon": "数日~2周", "created_at": "2026-06-18 17:15", - "take_profit": 60.24, - "updated_reason": "技术信号变化: 阳线企稳,可买入: 止损46.51→45.89 | 形态:锤子线/T字线/bullish 量价:数据不足 强撑:41.0 弱撑:49.38 弱压:51.89 强压:59.9", + "take_profit": 60.53, + "updated_reason": "价格变动(42.68→49.36): 策略文字调整", "changelog": [ { "date": "2026-06-18 11:31", @@ -1954,46 +4353,161 @@ "new_action": "盈利持有 | 目标59.92 | 止损45.89 | 买入区49.78~51.82 | 信号:阳线企稳,可买入", "reason": "技术信号变化: 阳线企稳,可买入: 止损46.51→45.89 | 形态:锤子线/T字线/bullish 量价:数据不足 强撑:41.0 弱撑:49.38 弱压:51.89 强压:59.9", "trigger": "技术信号变化: 阳线企稳,可买入" - } - ], - "advice_timeline": [ + }, { - "date": "2026-06-22 13:28", - "direction": "加仓", - "price": "51.50", - "summary": "小鹏汽车-W(09868) 51.50在买入区50.47~52.53,信号接近支撑位,1手23,947.50元 | 仓位85.62→87.97%", - "status": "pending" + "date": "2026-06-23 09:01", + "old_action": "盈利持有 | 目标60.24 | 止损41.32 | 买入区49.91~50.78 | 信号:回踩支撑,可加仓", + "new_action": "盈利持有 | 止损参考41.32 | 买入区49.91~50.78 | 信号:阳线企稳,可买入", + "reason": "价格变动(47.99→51.55): 策略文字调整", + "trigger": "价格变动(47.99→51.55)" + }, + { + "date": "2026-06-23 12:01", + "old_action": "盈利持有 | 目标60.53 | 止损49.83 | 买入区50.52~52.58", + "new_action": "盈利持有 | 止损参考49.83 | 买入区50.52~52.58 | 信号:接近支撑位,关注", + "reason": "技术信号变化: 接近支撑位,关注: 策略文字调整", + "trigger": "技术信号变化: 接近支撑位,关注" + }, + { + "date": "2026-06-24 09:01", + "old_action": "盈利持有 | 止损参考49.83 | 买入区50.52~52.58 | 信号:接近支撑位,关注", + "new_action": "盈利持有 | 止损参考49.83 | 买入区50.52~52.58", + "reason": "价格变动(42.68→49.36): 策略文字调整", + "trigger": "价格变动(42.68→49.36)" } ], - "current_price": 47.99 + "strategy_tree": { + "branches": [ + { + "id": "09868_stop_loss", + "condition": { + "price": "<49.83" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "09868_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=52.58", + "price_lower": ">=50.52" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 50.52, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "09868_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=60.53" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "09868_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": "09868_take_profit", + "condition": { + "price": ">=60.53" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "09868_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ], + "initialized_at": "2026-06-24T10:23:51.425831" + } }, { "code": "09988", "name": "阿里巴巴-W", - "price": 102.5, + "price": 98.95, "cost": 126.6781, - "shares": 0, + "shares": 700, "avg_price": 0, - "action": "持有观察 | ⚠️盈亏比偏低(1:1.0),不建议加仓 | 止损83.69 | 目标108.94 | 买入区100.83~102.27 | 信号:持有", - "stop_loss": 83.69, - "entry_low": 100.83, - "entry_high": 102.27, - "tech_snapshot": "形态:锤子线/T字线/bullish 量价:数据不足 强撑:89.87 弱撑:100.83 弱压:104.9 强压:114.67", - "timing_signal": "持有", - "rr_ratio": 0.96, + "action": "深套持有 | 深套持有 | 止损85.59 | 目标104.75 | 买入区89.06~103.9 | 信号:持有", + "stop_loss": 85.59, + "entry_low": 89.06, + "entry_high": 103.9, + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:85.85 弱撑:97.3 弱压:102.9 强压:114.85", + "timing_signal": "大盘中性,行业偏弱,蓝筹,持有", + "rr_ratio": 1.07, "status": "updated", - "note": "⚠️盈亏比偏低(1:1.0),不建议加仓", - "timestamp": "2026-06-22 12:01", - "updated_at": "2026-06-22 12:01", + "note": "深套持有", + "timestamp": "2026-06-24 09:01", + "updated_at": "2026-06-24 09:01", "type": "持仓策略", "source": "auto", - "sector_context": "行业软件开发下跌-1.8%,适度防御 | 大盘仅17%个股上涨", - "stock_category": "弱势", - "position_advice": "减仓或观望", - "time_horizon": "观望", + "sector_context": "行业软件开发下跌-1.2%,适度防御", + "stock_category": "深套", + "position_advice": "不补不割", + "time_horizon": "长期", "created_at": "2026-06-18 17:15", - "take_profit": 108.94, - "updated_reason": "技术面重评: 止损90.82→83.69, 止盈118.69→108.94 | 形态:锤子线/T字线/bullish 量价:数据不足 强撑:89.87 弱撑:100.83 弱压:104.9 强压:11", + "take_profit": 104.75, + "updated_reason": "价格变动(85.56→98.95): 止损84.66→85.59, 止盈114.73→104.75 | 形态:光头光脚阴线/bearish 量价:数据不足 强撑:85.85 弱撑:97.3 弱压:102.9 强压:114.8", "changelog": [ { "date": "2026-06-18 11:31", @@ -2057,36 +4571,161 @@ "new_action": "持有观察 | ⚠️盈亏比偏低(1:1.0),不建议加仓 | 止损83.69 | 目标108.94 | 买入区100.83~102.27 | 信号:持有", "reason": "技术面重评: 止损90.82→83.69, 止盈118.69→108.94 | 形态:锤子线/T字线/bullish 量价:数据不足 强撑:89.87 弱撑:100.83 弱压:104.9 强压:11", "trigger": "技术面重评" + }, + { + "date": "2026-06-23 09:01", + "old_action": "持有观察 | ⚠️盈亏比偏低(1:1.0),不建议加仓 | 止损83.69 | 目标108.94 | 买入区100.83~102.27 | 信号:持有", + "new_action": "持有观察 | ⚠️盈亏比偏低(1:0.9),不建议加仓 | 止损91.9 | 目标114.9 | 买入区101.2~102.5 | 信号:持有", + "reason": "技术信号变化: 大盘中性,行业偏强,蓝筹,持有: 止损83.69→91.9, 止盈108.94→114.9 | 形态:锤子线/T字线/neutral 量价:数据不足 强撑:90.1 弱撑:101.2 弱压:104.9 强压:114.", + "trigger": "技术信号变化: 大盘中性,行业偏强,蓝筹,持有" + }, + { + "date": "2026-06-23 12:01", + "old_action": "持有观察 | ⚠️盈亏比偏低(1:0.9),不建议加仓 | 止损91.9 | 目标114.9 | 买入区101.2~102.5 | 信号:持有", + "new_action": "深套持有 | 深套持有 | 止损84.66 | 目标114.73 | 买入区89.64~104.58 | 信号:持有", + "reason": "价格变动(102.9→99.6): 止损91.9→84.66, 止盈114.9→114.73 | 形态:光头光脚阴线/bearish 量价:数据不足 强撑:86.73 弱撑:98.07 弱压:102.9 强压:114.", + "trigger": "价格变动(102.9→99.6)" + }, + { + "date": "2026-06-24 09:01", + "old_action": "深套持有 | 深套持有 | 止损84.66 | 目标114.73 | 买入区89.64~104.58 | 信号:持有", + "new_action": "深套持有 | 深套持有 | 止损85.59 | 目标104.75 | 买入区89.06~103.9 | 信号:持有", + "reason": "价格变动(85.56→98.95): 止损84.66→85.59, 止盈114.73→104.75 | 形态:光头光脚阴线/bearish 量价:数据不足 强撑:85.85 弱撑:97.3 弱压:102.9 强压:114.8", + "trigger": "价格变动(85.56→98.95)" } - ] + ], + "strategy_tree": { + "branches": [ + { + "id": "09988_stop_loss", + "condition": { + "price": "<85.59" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "09988_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=103.9", + "price_lower": ">=89.06" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 89.06, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "09988_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=104.75" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "09988_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": "09988_take_profit", + "condition": { + "price": ">=104.75" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "09988_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ], + "initialized_at": "2026-06-24T10:23:51.428199" + } }, { "code": "300035", "name": "中科电气", - "price": 16.91, + "price": 16.36, "cost": 22.2914, - "shares": 0, + "shares": 1400, "avg_price": 0, - "action": "深套持有 | 深套持有 | 止损13.94 | 目标18.83 | 买入区15.22~17.76 | 信号:持有", - "stop_loss": 13.94, - "entry_low": 15.22, - "entry_high": 17.76, - "tech_snapshot": "形态:锤子线/T字线/bullish 量价:主动卖盘占优 强撑:14.85 弱撑:16.31 弱压:17.43 强压:18.83", - "timing_signal": "持有", - "rr_ratio": 0.76, + "action": "深套持有 | 深套持有 | 止损14.15 | 目标16.94 | 买入区14.72~17.18 | 信号:持有", + "stop_loss": 14.15, + "entry_low": 14.72, + "entry_high": 17.18, + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:主动卖盘占优 强撑:14.59 弱撑:16.07 弱压:17.15 强压:18.57", + "timing_signal": "大盘中性,行业偏弱,持有", + "rr_ratio": 0.9, "status": "updated", "note": "深套持有", - "timestamp": "2026-06-22 12:01", - "updated_at": "2026-06-22 12:01", + "timestamp": "2026-06-24 09:01", + "updated_at": "2026-06-24 09:01", "type": "持仓策略", "source": "auto", - "sector_context": "行业电池+0.6%,中性 | 大盘仅17%个股上涨", + "sector_context": "行业电池下跌-2.3%,适度防御", "stock_category": "深套", "position_advice": "不补不割", "time_horizon": "长期", "created_at": "2026-06-18 17:15", - "take_profit": 18.83, - "updated_reason": "技术面重评: 止损13.74→13.94, 止盈19.0→18.83 | 形态:锤子线/T字线/bullish 量价:主动卖盘占优 强撑:14.85 弱撑:16.31 弱压:17.43 强压:1", + "take_profit": 16.94, + "updated_reason": "技术面重评: 止损13.53→14.15, 止盈17.78→16.94 | 形态:光头光脚阴线/bearish 量价:主动卖盘占优 强撑:14.59 弱撑:16.07 弱压:17.15 强压:18", "changelog": [ { "date": "2026-06-18 11:31", @@ -2136,36 +4775,161 @@ "new_action": "深套持有 | 深套持有 | 止损13.94 | 目标18.83 | 买入区15.22~17.76 | 信号:持有", "reason": "技术面重评: 止损13.74→13.94, 止盈19.0→18.83 | 形态:锤子线/T字线/bullish 量价:主动卖盘占优 强撑:14.85 弱撑:16.31 弱压:17.43 强压:1", "trigger": "技术面重评" + }, + { + "date": "2026-06-23 09:01", + "old_action": "深套持有 | 深套持有 | 止损13.94 | 目标18.83 | 买入区15.22~17.76 | 信号:持有", + "new_action": "深套持有 | 深套持有 | 止损14.87 | 目标18.91 | 买入区15.43~18.01 | 信号:持有", + "reason": "技术信号变化: 大盘中性,行业偏强,持有: 止损13.94→14.87, 止盈18.83→18.91 | 形态:锤子线/T字线/bullish 量价:主动卖盘占优 强撑:14.93 弱撑:16.47 弱压:17.59 强压:1", + "trigger": "技术信号变化: 大盘中性,行业偏强,持有" + }, + { + "date": "2026-06-23 12:01", + "old_action": "深套持有 | 深套持有 | 止损14.87 | 目标18.91 | 买入区15.43~18.01 | 信号:持有", + "new_action": "深套持有 | 深套持有 | 止损13.53 | 目标17.78 | 买入区14.92~17.41 | 信号:持有", + "reason": "价格变动(17.15→16.58): 止损14.87→13.53, 止盈18.91→17.78 | 形态:光头光脚阴线/bearish 量价:主动卖盘占优 强撑:14.74 弱撑:16.36 弱压:17.15 强压:18", + "trigger": "价格变动(17.15→16.58)" + }, + { + "date": "2026-06-24 09:01", + "old_action": "深套持有 | 深套持有 | 止损13.53 | 目标17.78 | 买入区14.92~17.41 | 信号:持有", + "new_action": "深套持有 | 深套持有 | 止损14.15 | 目标16.94 | 买入区14.72~17.18 | 信号:持有", + "reason": "技术面重评: 止损13.53→14.15, 止盈17.78→16.94 | 形态:光头光脚阴线/bearish 量价:主动卖盘占优 强撑:14.59 弱撑:16.07 弱压:17.15 强压:18", + "trigger": "技术面重评" } - ] + ], + "strategy_tree": { + "branches": [ + { + "id": "300035_stop_loss", + "condition": { + "price": "<14.15" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "300035_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=17.18", + "price_lower": ">=14.72" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 14.72, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "300035_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=16.94" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "300035_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": "300035_take_profit", + "condition": { + "price": ">=16.94" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "300035_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ], + "initialized_at": "2026-06-24T10:23:51.430733" + } }, { "code": "300124", "name": "汇川技术", - "price": 67.49, + "price": 66.98, "cost": 0, "shares": 0, "avg_price": 0, - "action": "盈利持有 | 目标74.29 | 止损65.47 | 买入区66.14~68.84 | 信号:放量下跌,等企稳再入", - "stop_loss": 65.47, - "entry_low": 66.14, - "entry_high": 68.84, - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:主动卖盘占优 强撑:63.23 弱撑:66.13 弱压:71.18 强压:74.29", - "timing_signal": "大盘中性,行业偏弱,放量下跌,等企稳再入", - "rr_ratio": 3.37, + "action": "盈利持有 | 目标73.24 | 止损64.97 | 买入区65.64~68.28 | 信号:观望", + "stop_loss": 64.97, + "entry_low": 65.64, + "entry_high": 68.28, + "tech_snapshot": "形态:锤子线/T字线/bullish 量价:主动卖盘占优 强撑:60.36 弱撑:66.1 弱压:67.67 强压:73.24", + "timing_signal": "观望", + "rr_ratio": 3.11, "status": "updated", "note": "", - "timestamp": "2026-06-22 12:01", - "updated_at": "2026-06-22 12:01", + "timestamp": "2026-06-24 09:01", + "updated_at": "2026-06-24 09:01", "type": "自选策略", "source": "auto", - "sector_context": "行业自动化设备大跌-4.0%,收紧止损 | 大盘仅17%个股上涨", - "stock_category": "中短线", - "position_advice": "中等仓位", - "time_horizon": "2~6周", + "sector_context": "行业自动化设备+0.2%,中性", + "stock_category": "弱势", + "position_advice": "减仓或观望", + "time_horizon": "观望", "created_at": "2026-06-18 17:15", - "take_profit": 74.29, - "updated_reason": "价格变动(71.18→67.49): 止损68.31→58.43 | 形态:光头光脚阴线/bearish 量价:主动卖盘占优 强撑:63.04 弱撑:65.75 弱压:71.18 强压:74", + "take_profit": 73.24, + "updated_reason": "技术面重评: 止损65.78→64.82 | 形态:光头光脚阴线/bearish 量价:主动卖盘占优 强撑:61.61 弱撑:65.99 弱压:68.95 强压:73", "changelog": [ { "date": "2026-06-18 11:31", @@ -2215,35 +4979,161 @@ "new_action": "盈利持有 | 目标74.1 | 止损58.43 | 买入区66.14~68.84 | 信号:放量下跌,等企稳再入", "reason": "价格变动(71.18→67.49): 止损68.31→58.43 | 形态:光头光脚阴线/bearish 量价:主动卖盘占优 强撑:63.04 弱撑:65.75 弱压:71.18 强压:74", "trigger": "价格变动(71.18→67.49)" + }, + { + "date": "2026-06-23 09:01", + "old_action": "盈利持有 | 目标74.29 | 止损65.47 | 买入区66.14~68.84 | 信号:放量下跌,等企稳再入", + "new_action": "盈利持有 | 目标74.59 | 止损64.05 | 买入区67.57~69.87 | 信号:放量下跌,等企稳再入", + "reason": "技术面重评: 止损65.47→64.05 | 形态:带下影阴线/neutral 量价:主动卖盘占优 强撑:63.53 弱撑:66.72 弱压:71.29 强压:74.", + "trigger": "技术面重评" + }, + { + "date": "2026-06-23 12:01", + "old_action": "盈利持有 | 目标73.85 | 止损66.25 | 买入区66.93~69.29 | 信号:放量下跌,等企稳再入", + "new_action": "盈利持有 | 目标73.65 | 止损65.78 | 买入区66.45~68.93 | 信号:放量下跌,等企稳再入", + "reason": "技术信号变化: 大盘中性,行业中性,放量下跌,等企稳再入: 止损66.25→65.78 | 形态:锤子线/T字线/bullish 量价:主动卖盘占优 强撑:61.97 弱撑:66.82 弱压:68.95 强压:7", + "trigger": "技术信号变化: 大盘中性,行业中性,放量下跌,等企稳再入" + }, + { + "date": "2026-06-24 09:01", + "old_action": "盈利持有 | 目标73.65 | 止损65.78 | 买入区66.45~68.93 | 信号:放量下跌,等企稳再入", + "new_action": "盈利持有 | 目标73.19 | 止损64.82 | 买入区65.48~68.16 | 信号:放量下跌,等企稳再入", + "reason": "技术面重评: 止损65.78→64.82 | 形态:光头光脚阴线/bearish 量价:主动卖盘占优 强撑:61.61 弱撑:65.99 弱压:68.95 强压:73", + "trigger": "技术面重评" } - ] + ], + "strategy_tree": { + "branches": [ + { + "id": "300124_stop_loss", + "condition": { + "price": "<64.97" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "300124_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=68.28", + "price_lower": ">=65.64" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 65.64, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 3, + "success_rate": null, + "last_triggered": "2026-06-24T10:23:51.435819" + }, + { + "id": "300124_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=73.24" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "300124_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": "300124_take_profit", + "condition": { + "price": ">=73.24" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "300124_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 3, + "success_rate": null, + "last_triggered": "2026-06-24T10:23:51.435819" + } + ], + "last_evaluated": "2026-06-24T10:23:51.435819" + } }, { "code": "300308", "name": "中际旭创", - "price": 1358.24, + "price": 1310.01, "cost": 0, "shares": 0, "avg_price": 0, - "action": "盈利持有 | 目标1446.33 | 止损1317.49 | 买入区1331.08~1369.03", - "stop_loss": 1317.49, - "entry_low": 1331.08, - "entry_high": 1369.03, - "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:主动买盘占优 强撑:1299.33 弱撑:1328.79 弱压:1402.29 强压:1446.33", - "timing_signal": "neutral", - "rr_ratio": 2.16, + "action": "盈利持有 | 目标1451.88 | 止损1270.71 | 买入区1283.81~1336.21", + "stop_loss": 1270.71, + "entry_low": 1283.81, + "entry_high": 1336.21, + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:主动买盘占优 强撑:1218.12 弱撑:1275.01 弱压:1382.33 强压:1451.88", + "timing_signal": "大盘中性", + "rr_ratio": 3.61, "status": "updated", "note": "", - "timestamp": "2026-06-22 12:01", - "updated_at": "2026-06-22 12:01", + "timestamp": "2026-06-24 09:01", + "updated_at": "2026-06-24 09:01", "type": "自选策略", "source": "auto", - "sector_context": "大盘上涨比17.8%", + "sector_context": "", "stock_category": "中短线", "position_advice": "中等仓位", - "time_horizon": "2周~3月", + "time_horizon": "2~6周", "created_at": "2026-06-22 12:01", - "take_profit": 1446.33, + "take_profit": 1451.88, + "updated_reason": "技术面重评: 止损1287.32→1270.71 | 形态:光头光脚阴线/bearish 量价:主动买盘占优 强撑:1218.12 弱撑:1275.01 弱压:1382.33", "changelog": [ { "date": "2026-06-22 12:01", @@ -2251,36 +5141,161 @@ "new_action": "盈利持有 | 目标1446.33 | 止损1317.49 | 买入区1331.08~1369.03", "reason": "初始策略创建 | 形态:倒T线/射击之星/bearish 量价:主动买盘占优 强撑:1299.33 弱撑:1328.79 弱压:1402.", "trigger": "初始创建" + }, + { + "date": "2026-06-23 09:01", + "old_action": "盈利持有 | 目标1446.33 | 止损1317.49 | 买入区1331.08~1369.03", + "new_action": "盈利持有 | ⚠️盈亏比偏低(1:1.7),谨慎买入 | 目标1454.36 | 止损1340.86 | 买入区1354.68~1386.26", + "reason": "技术信号变化: 大盘中性: 止损1317.49→1340.86 | 形态:倒T线/射击之星/bearish 量价:主动买盘占优 强撑:1307.36 弱撑:1344.85 弱压:1418.", + "trigger": "技术信号变化: 大盘中性" + }, + { + "date": "2026-06-23 12:01", + "old_action": "盈利持有 | ⚠️盈亏比偏低(1:1.7),谨慎买入 | 目标1454.36 | 止损1340.86 | 买入区1354.68~1386.26", + "new_action": "盈利持有 | 目标1453.2 | 止损1287.32 | 买入区1300.59~1353.67", + "reason": "价格变动(1382.33→1327.13): 止损1340.86→1287.32 | 形态:光头光脚阴线/bearish 量价:主动买盘占优 强撑:1240.86 弱撑:1299.06 弱压:1382.33", + "trigger": "价格变动(1382.33→1327.13)" + }, + { + "date": "2026-06-24 09:01", + "old_action": "盈利持有 | 目标1453.2 | 止损1287.32 | 买入区1300.59~1353.67", + "new_action": "盈利持有 | 目标1451.88 | 止损1270.71 | 买入区1283.81~1336.21", + "reason": "技术面重评: 止损1287.32→1270.71 | 形态:光头光脚阴线/bearish 量价:主动买盘占优 强撑:1218.12 弱撑:1275.01 弱压:1382.33", + "trigger": "技术面重评" } - ] + ], + "strategy_tree": { + "branches": [ + { + "id": "300308_stop_loss", + "condition": { + "price": "<1270.71" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "300308_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=1336.21", + "price_lower": ">=1283.81" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 1283.81, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "300308_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=1451.88" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "300308_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": "300308_take_profit", + "condition": { + "price": ">=1451.88" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "300308_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ], + "initialized_at": "2026-06-24T10:23:51.435849" + } }, { "code": "300548", "name": "长芯博创", - "price": 298.12, + "price": 286.02, "cost": 231.46, - "shares": 0, + "shares": 100, "avg_price": 0, - "action": "盈利良好 | 短炒强趋势持 | 止损263.73 | 目标424.82 | 买入区281.99~296.09 | 信号:强趋势持", - "stop_loss": 263.73, - "entry_low": 281.99, - "entry_high": 296.09, - "tech_snapshot": "形态:倒T线/射击之星/neutral 量价:主动买盘占优 强撑:225.59 弱撑:281.99 弱压:308.63 强压:338.39", - "timing_signal": "强趋势持", - "rr_ratio": 10.0, + "action": "盈利良好 | 短炒强趋势持 | 止损277.44 | 目标343.4 | 买入区276.08~289.88 | 信号:强趋势持", + "stop_loss": 277.44, + "entry_low": 276.08, + "entry_high": 289.88, + "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:主动买盘占优 强撑:238.47 弱撑:276.08 弱压:302.78 强压:357.71", + "timing_signal": "大盘中性,行业中性,高估值,强趋势持", + "rr_ratio": 7.21, "status": "updated", "note": "短炒强趋势持", - "timestamp": "2026-06-22 12:01", - "updated_at": "2026-06-22 12:01", + "timestamp": "2026-06-24 09:01", + "updated_at": "2026-06-24 09:01", "type": "持仓策略", "source": "auto", - "sector_context": "行业光学光电子下跌-1.4%,适度防御 | 大盘仅17%个股上涨", + "sector_context": "行业光学光电子-1.0%,中性", "stock_category": "短炒", "position_advice": "小仓强趋势让利润跑", "time_horizon": "数日~2周", "created_at": "2026-06-18 17:15", - "take_profit": 424.82, - "updated_reason": "价格变动(281.99→298.12): 止损251.24→263.73, 止盈413.9→424.82 | 形态:倒T线/射击之星/neutral 量价:主动买盘占优 强撑:225.59 弱撑:281.99 弱压:308.63 ", + "take_profit": 343.4, + "updated_reason": "技术面重评: 止损282.57→277.44, 止盈357.71→343.4 | 形态:倒T线/射击之星/bearish 量价:主动买盘占优 强撑:238.47 弱撑:276.08 弱压:302.78 ", "changelog": [ { "date": "2026-06-18 11:31", @@ -2330,45 +5345,161 @@ "new_action": "盈利良好 | 短炒强趋势持 | 止损263.73 | 目标424.82 | 买入区281.99~296.09 | 信号:强趋势持", "reason": "价格变动(281.99→298.12): 止损251.24→263.73, 止盈413.9→424.82 | 形态:倒T线/射击之星/neutral 量价:主动买盘占优 强撑:225.59 弱撑:281.99 弱压:308.63 ", "trigger": "价格变动(281.99→298.12)" + }, + { + "date": "2026-06-23 09:01", + "old_action": "盈利良好 | 短炒强趋势持 | 止损263.73 | 目标424.82 | 买入区281.99~296.09 | 信号:强趋势持", + "new_action": "盈利良好 | 短炒强趋势持 | 止损283.19 | 目标338.39 | 买入区281.99~296.09 | 信号:强趋势持", + "reason": "技术信号变化: 大盘中性,行业中性,高估值,强趋势持: 止损263.73→283.19, 止盈424.82→338.39 | 形态:倒T线/射击之星/neutral 量价:主动买盘占优 强撑:225.59 弱撑:281.99 弱压:308.61 ", + "trigger": "技术信号变化: 大盘中性,行业中性,高估值,强趋势持" + }, + { + "date": "2026-06-23 12:01", + "old_action": "盈利良好 | 短炒强趋势持 | 止损283.19 | 目标338.39 | 买入区281.99~296.09 | 信号:强趋势持", + "new_action": "盈利良好 | 短炒强趋势持 | 止损282.57 | 目标357.71 | 买入区282.57~296.7 | 信号:强趋势持", + "reason": "技术信号变化: 大盘中性,行业中性,高估值,强趋势持: 止损283.19→282.57, 止盈338.39→357.71 | 形态:倒T线/射击之星/neutral 量价:主动买盘占优 强撑:238.47 弱撑:282.57 弱压:306.99 ", + "trigger": "技术信号变化: 大盘中性,行业中性,高估值,强趋势持" + }, + { + "date": "2026-06-24 09:01", + "old_action": "盈利良好 | 短炒强趋势持 | 止损282.57 | 目标357.71 | 买入区282.57~296.7 | 信号:强趋势持", + "new_action": "盈利良好 | 短炒强趋势持 | 止损277.44 | 目标343.4 | 买入区276.08~289.88 | 信号:强趋势持", + "reason": "技术面重评: 止损282.57→277.44, 止盈357.71→343.4 | 形态:倒T线/射击之星/bearish 量价:主动买盘占优 强撑:238.47 弱撑:276.08 弱压:302.78 ", + "trigger": "技术面重评" } ], - "advice_timeline": [ - { - "date": "2026-06-22 14:10", - "direction": "持有", - "price": "297.92", - "summary": "短炒强趋势持,+28.7%浮盈,穿买入区296.09上限,不止盈;PORTFOLIO_WEAK+PORTFOLIO_FULL约束买入", - "status": "pending" - } - ] + "strategy_tree": { + "branches": [ + { + "id": "300548_stop_loss", + "condition": { + "price": "<277.44" + }, + "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": "<=289.88", + "price_lower": ">=276.08" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 276.08, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "300548_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=343.4" + }, + "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": ">=343.4" + }, + "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 + } + ], + "initialized_at": "2026-06-24T10:23:51.438379" + } }, { "code": "300690", "name": "双一科技", - "price": 23.72, + "price": 23.63, "cost": 27.178, - "shares": 0, + "shares": 400, "avg_price": 0, - "action": "持有观察 | ⚠️盈亏比偏低(1:1.1),不建议加仓 | 止损21.03 | 目标23.7 | 买入区23.16~23.77 | 信号:持有", - "stop_loss": 21.03, - "entry_low": 23.16, - "entry_high": 23.77, - "tech_snapshot": "形态:十字星/neutral 量价:主动卖盘占优 强撑:22.58 弱撑:23.16 弱压:24.32 强压:24.95", - "timing_signal": "持有", - "rr_ratio": 1.08, + "action": "持有观察 | ⚠️盈亏比偏低(1:1.5),不建议加仓 | 止损22.0 | 目标22.83 | 买入区23.31~23.85 | 信号:持有", + "stop_loss": 22.0, + "entry_low": 23.31, + "entry_high": 23.85, + "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:主动卖盘占优 强撑:22.67 弱撑:23.31 弱压:24.17 强压:25.03", + "timing_signal": "大盘中性,行业偏弱,持有", + "rr_ratio": 1.46, "status": "updated", - "note": "⚠️盈亏比偏低(1:1.1),不建议加仓", - "timestamp": "2026-06-22 12:01", - "updated_at": "2026-06-22 12:01", + "note": "⚠️盈亏比偏低(1:1.5),不建议加仓", + "timestamp": "2026-06-24 09:01", + "updated_at": "2026-06-24 09:01", "type": "持仓策略", "source": "auto", - "sector_context": "行业风电设备下跌-1.8%,适度防御 | 大盘仅17%个股上涨", + "sector_context": "行业风电设备下跌-1.4%,适度防御", "stock_category": "弱势", "position_advice": "减仓或观望", "time_horizon": "观望", "created_at": "2026-06-18 21:02", - "take_profit": 23.7, - "updated_reason": "技术面重评: 止损22.1→21.03, 止盈25.93→23.7 | 形态:十字星/neutral 量价:主动卖盘占优 强撑:22.58 弱撑:23.16 弱压:24.32 强压:24.95", + "take_profit": 22.83, + "updated_reason": "技术信号变化: 大盘中性,行业偏弱,持有: 止损22.15→22.0, 止盈25.82→22.83 | 形态:倒T线/射击之星/bearish 量价:主动卖盘占优 强撑:22.67 弱撑:23.31 弱压:24.17 强压:", "changelog": [ { "date": "2026-06-18 21:02", @@ -2404,36 +5535,161 @@ "new_action": "持有观察 | ⚠️盈亏比偏低(1:1.1),不建议加仓 | 止损21.03 | 目标23.7 | 买入区23.16~23.77 | 信号:持有", "reason": "技术面重评: 止损22.1→21.03, 止盈25.93→23.7 | 形态:十字星/neutral 量价:主动卖盘占优 强撑:22.58 弱撑:23.16 弱压:24.32 强压:24.95", "trigger": "技术面重评" + }, + { + "date": "2026-06-23 09:01", + "old_action": "持有观察 | ⚠️盈亏比偏低(1:1.1),不建议加仓 | 止损21.03 | 目标23.7 | 买入区23.16~23.77 | 信号:持有", + "new_action": "持有观察 | ⚠️盈亏比偏低(1:0.8),不建议加仓 | 止损21.98 | 目标25.85 | 买入区23.46~23.91 | 信号:持有", + "reason": "技术信号变化: 大盘中性,行业中性,持有: 止损21.03→21.98, 止盈23.7→25.85 | 形态:带下影阳线/bullish 量价:主动卖盘占优 强撑:21.98 弱撑:23.46 弱压:24.62 强压:25.", + "trigger": "技术信号变化: 大盘中性,行业中性,持有" + }, + { + "date": "2026-06-23 12:01", + "old_action": "持有观察 | ⚠️盈亏比偏低(1:0.8),不建议加仓 | 止损21.98 | 目标25.85 | 买入区23.46~23.91 | 信号:持有", + "new_action": "持有观察 | ⚠️盈亏比偏低(1:1.2),不建议加仓 | 止损22.15 | 目标25.82 | 买入区23.58~23.98 | 信号:持有", + "reason": "技术信号变化: 大盘中性,行业中性,持有: 止损21.98→22.15, 止盈25.85→25.82 | 形态:倒T线/射击之星/bearish 量价:主动卖盘占优 强撑:22.15 弱撑:23.58 弱压:24.2 强压:2", + "trigger": "技术信号变化: 大盘中性,行业中性,持有" + }, + { + "date": "2026-06-24 09:01", + "old_action": "持有观察 | ⚠️盈亏比偏低(1:1.2),不建议加仓 | 止损22.15 | 目标25.82 | 买入区23.58~23.98 | 信号:持有", + "new_action": "持有观察 | ⚠️盈亏比偏低(1:1.5),不建议加仓 | 止损22.0 | 目标22.83 | 买入区23.31~23.85 | 信号:持有", + "reason": "技术信号变化: 大盘中性,行业偏弱,持有: 止损22.15→22.0, 止盈25.82→22.83 | 形态:倒T线/射击之星/bearish 量价:主动卖盘占优 强撑:22.67 弱撑:23.31 弱压:24.17 强压:", + "trigger": "技术信号变化: 大盘中性,行业偏弱,持有" } - ] + ], + "strategy_tree": { + "branches": [ + { + "id": "300690_stop_loss", + "condition": { + "price": "<22.0" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "300690_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=23.85", + "price_lower": ">=23.31" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 23.31, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "300690_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=22.83" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "300690_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": "300690_take_profit", + "condition": { + "price": ">=22.83" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "300690_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ], + "initialized_at": "2026-06-24T10:23:51.440911" + } }, { "code": "300750", "name": "宁德时代", - "price": 413.07, + "price": 392.51, "cost": 401.7803, - "shares": 0, + "shares": 100, "avg_price": 0, - "action": "盈利持有 | ⚠️盈亏比偏低(1:0.6),不建议加仓 | 止损359.96 | 目标437.18 | 买入区391.55~404.13 | 信号:持有", - "stop_loss": 359.96, - "entry_low": 391.55, - "entry_high": 404.13, - "tech_snapshot": "形态:光头光脚阳线/bullish 量价:买卖均衡 强撑:371.09 弱撑:391.55 弱压:422.27 强压:437.18", - "timing_signal": "持有", - "rr_ratio": 0.57, + "action": "持有观察 | 止损365.5 | 目标392.01 | 买入区384.15~399.09 | 信号:持有", + "stop_loss": 365.5, + "entry_low": 384.15, + "entry_high": 399.09, + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:买卖均衡 强撑:368.35 弱撑:384.15 弱压:408.98 强压:429.83", + "timing_signal": "大盘中性,行业偏弱,蓝筹,持有", + "rr_ratio": 1.54, "status": "updated", - "note": "⚠️盈亏比偏低(1:0.6),不建议加仓", - "timestamp": "2026-06-22 12:01", - "updated_at": "2026-06-22 12:01", + "note": "", + "timestamp": "2026-06-24 09:01", + "updated_at": "2026-06-24 09:01", "type": "持仓策略", "source": "auto", - "sector_context": "行业电池+0.6%,中性 | 大盘仅17%个股上涨", + "sector_context": "行业电池下跌-2.3%,适度防御", "stock_category": "弱势", "position_advice": "减仓或观望", "time_horizon": "观望", "created_at": "2026-06-18 17:15", - "take_profit": 437.18, - "updated_reason": "价格变动(391.55→413.07): 止损345.04→359.96, 止盈414.6→437.18 | 形态:光头光脚阳线/bullish 量价:买卖均衡 强撑:371.09 弱撑:391.55 弱压:422.27 强压:4", + "take_profit": 392.01, + "updated_reason": "技术信号变化: 大盘中性,行业偏弱,蓝筹,持有: 止损359.17→365.5, 止盈413.84→392.01 | 形态:光头光脚阴线/bearish 量价:买卖均衡 强撑:368.35 弱撑:384.15 弱压:408.98 强压:4", "changelog": [ { "date": "2026-06-18 11:31", @@ -2490,36 +5746,161 @@ "new_action": "盈利持有 | ⚠️盈亏比偏低(1:0.6),不建议加仓 | 止损359.96 | 目标437.18 | 买入区391.55~404.13 | 信号:持有", "reason": "价格变动(391.55→413.07): 止损345.04→359.96, 止盈414.6→437.18 | 形态:光头光脚阳线/bullish 量价:买卖均衡 强撑:371.09 弱撑:391.55 弱压:422.27 强压:4", "trigger": "价格变动(391.55→413.07)" + }, + { + "date": "2026-06-23 09:01", + "old_action": "盈利持有 | ⚠️盈亏比偏低(1:0.6),不建议加仓 | 止损359.96 | 目标437.18 | 买入区391.55~404.13 | 信号:持有", + "new_action": "盈利持有 | ⚠️盈亏比偏低(1:0.7),不建议加仓 | 止损377.45 | 目标435.49 | 买入区391.55~402.77 | 信号:持有", + "reason": "技术信号变化: 大盘中性,行业偏强,蓝筹,持有: 止损359.96→377.45, 止盈437.18→435.49 | 形态:光头光脚阳线/bullish 量价:买卖均衡 强撑:370.05 弱撑:391.55 弱压:419.54 强压:4", + "trigger": "技术信号变化: 大盘中性,行业偏强,蓝筹,持有" + }, + { + "date": "2026-06-23 12:01", + "old_action": "盈利持有 | ⚠️盈亏比偏低(1:0.7),不建议加仓 | 止损377.45 | 目标435.49 | 买入区391.55~402.77 | 信号:持有", + "new_action": "持有观察 | ⚠️盈亏比偏低(1:1.2),不建议加仓 | 止损359.17 | 目标413.84 | 买入区395.72~404.88 | 信号:缩量回踩弱支撑,可加仓", + "reason": "技术信号变化: 大盘中性,行业偏弱,蓝筹,缩量回踩弱支撑,可加仓: 止损377.45→359.17, 止盈435.49→413.84 | 形态:光头光脚阴线/bearish 量价:买卖均衡 强撑:374.14 弱撑:395.72 弱压:410.75 强压:4", + "trigger": "技术信号变化: 大盘中性,行业偏弱,蓝筹,缩量回踩弱支撑,可加仓" + }, + { + "date": "2026-06-24 09:01", + "old_action": "持有观察 | ⚠️盈亏比偏低(1:1.2),不建议加仓 | 止损359.17 | 目标413.84 | 买入区395.72~404.88 | 信号:缩量回踩弱支撑,可加仓", + "new_action": "持有观察 | 止损365.5 | 目标392.01 | 买入区384.15~399.09 | 信号:持有", + "reason": "技术信号变化: 大盘中性,行业偏弱,蓝筹,持有: 止损359.17→365.5, 止盈413.84→392.01 | 形态:光头光脚阴线/bearish 量价:买卖均衡 强撑:368.35 弱撑:384.15 弱压:408.98 强压:4", + "trigger": "技术信号变化: 大盘中性,行业偏弱,蓝筹,持有" } - ] + ], + "strategy_tree": { + "branches": [ + { + "id": "300750_stop_loss", + "condition": { + "price": "<365.5" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "300750_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=399.09", + "price_lower": ">=384.15" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 384.15, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "300750_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=392.01" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "300750_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": "300750_take_profit", + "condition": { + "price": ">=392.01" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "300750_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ], + "initialized_at": "2026-06-24T10:23:51.443454" + } }, { "code": "518880", "name": "黄金ETF华安", - "price": 8.669, + "price": 8.537, "cost": 12.1915, - "shares": 0, + "shares": 2400, "avg_price": 0, - "action": "深套持有 | 深套持有 | 止损7.15 | 目标9.38 | 买入区7.8~9.1 | 信号:持有", - "stop_loss": 7.15, - "entry_low": 7.8, - "entry_high": 9.1, - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:8.02 弱撑:8.64 弱压:8.91 强压:9.38", - "timing_signal": "持有", - "rr_ratio": 0.55, + "action": "深套持有 | 深套持有 | 止损7.08 | 目标8.0 | 买入区7.68~8.96 | 信号:持有", + "stop_loss": 7.08, + "entry_low": 7.68, + "entry_high": 8.96, + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:7.9 弱撑:8.48 弱压:8.72 强压:9.26", + "timing_signal": "大盘中性,行业偏弱,持有", + "rr_ratio": 0.57, "status": "updated", "note": "深套持有", - "timestamp": "2026-06-22 12:01", - "updated_at": "2026-06-22 12:01", + "timestamp": "2026-06-24 09:01", + "updated_at": "2026-06-24 09:01", "type": "持仓策略", "source": "auto", - "sector_context": "行业贵金属+0.9%,中性 | 大盘仅17%个股上涨", + "sector_context": "行业贵金属大跌-8.6%,收紧止损", "stock_category": "深套", "position_advice": "不补不割", "time_horizon": "长期", "created_at": "2026-06-19 11:24", - "take_profit": 9.38, - "updated_reason": "技术面重评: 止损7.05→7.15, 止盈9.17→9.38 | 形态:光头光脚阴线/bearish 量价:数据不足 强撑:8.02 弱撑:8.64 弱压:8.91 强压:9.38", + "take_profit": 8.0, + "updated_reason": "技术面重评: 止损6.72→7.08, 止盈8.37→8.0 | 形态:光头光脚阴线/bearish 量价:数据不足 强撑:7.9 弱撑:8.48 弱压:8.72 强压:9.26", "changelog": [ { "date": "2026-06-19 11:24", @@ -2541,36 +5922,161 @@ "new_action": "深套持有 | 深套持有 | 止损7.15 | 目标9.38 | 买入区7.8~9.1 | 信号:持有", "reason": "技术面重评: 止损7.05→7.15, 止盈9.17→9.38 | 形态:光头光脚阴线/bearish 量价:数据不足 强撑:8.02 弱撑:8.64 弱压:8.91 强压:9.38", "trigger": "技术面重评" + }, + { + "date": "2026-06-23 09:01", + "old_action": "深套持有 | 深套持有 | 止损7.15 | 目标9.38 | 买入区7.8~9.1 | 信号:持有", + "new_action": "深套持有 | 深套持有 | 止损7.78 | 目标9.41 | 买入区7.84~9.15 | 信号:持有", + "reason": "技术信号变化: 大盘中性,行业偏强,持有: 止损7.15→7.78, 止盈9.38→9.41 | 形态:锤子线/T字线/bullish 量价:数据不足 强撑:8.27 弱撑:8.67 弱压:8.91 强压:9.14", + "trigger": "技术信号变化: 大盘中性,行业偏强,持有" + }, + { + "date": "2026-06-23 12:01", + "old_action": "深套持有 | 深套持有 | 止损7.78 | 目标9.41 | 买入区7.84~9.15 | 信号:持有", + "new_action": "深套持有 | 深套持有 | 止损6.72 | 目标8.37 | 买入区7.73~9.02 | 信号:持有", + "reason": "技术信号变化: 大盘中性,行业偏弱,持有: 止损7.78→6.72, 止盈9.41→8.37 | 形态:光头光脚阴线/bearish 量价:数据不足 强撑:7.92 弱撑:8.55 弱压:8.72 强压:9.3", + "trigger": "技术信号变化: 大盘中性,行业偏弱,持有" + }, + { + "date": "2026-06-24 09:01", + "old_action": "深套持有 | 深套持有 | 止损6.72 | 目标8.37 | 买入区7.73~9.02 | 信号:持有", + "new_action": "深套持有 | 深套持有 | 止损7.08 | 目标8.0 | 买入区7.68~8.96 | 信号:持有", + "reason": "技术面重评: 止损6.72→7.08, 止盈8.37→8.0 | 形态:光头光脚阴线/bearish 量价:数据不足 强撑:7.9 弱撑:8.48 弱压:8.72 强压:9.26", + "trigger": "技术面重评" } - ] + ], + "strategy_tree": { + "branches": [ + { + "id": "518880_stop_loss", + "condition": { + "price": "<7.08" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "518880_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=8.96", + "price_lower": ">=7.68" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 7.68, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "518880_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=8.0" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "518880_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": "518880_take_profit", + "condition": { + "price": ">=8.0" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "518880_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ], + "initialized_at": "2026-06-24T10:23:51.446049" + } }, { "code": "600036", "name": "招商银行", - "price": 37.22, + "price": 37.4, "cost": 38.1582, - "shares": 0, + "shares": 800, "avg_price": 0, - "action": "持有观察 | ⚠️盈亏比偏低(1:1.0),不建议加仓 | 止损33.2 | 目标40.18 | 买入区36.97~37.2 | 信号:弱势持有", - "stop_loss": 33.2, - "entry_low": 36.97, - "entry_high": 37.2, - "tech_snapshot": "形态:带上影阳线/neutral 量价:买卖均衡 强撑:34.23 弱撑:36.97 弱压:37.46 强压:40.18", - "timing_signal": "弱势持有", - "rr_ratio": 0.99, + "action": "持有观察 | ⚠️盈亏比偏低(1:1.2),不建议加仓 | 止损36.28 | 目标39.01 | 买入区37.1~37.64 | 信号:弱势持有", + "stop_loss": 36.28, + "entry_low": 37.1, + "entry_high": 37.64, + "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:买卖均衡 强撑:34.65 弱撑:37.1 弱压:37.94 强压:40.64", + "timing_signal": "大盘中性,行业偏强,低估值,蓝筹,弱势持有", + "rr_ratio": 1.18, "status": "updated", - "note": "⚠️盈亏比偏低(1:1.0),不建议加仓", - "timestamp": "2026-06-22 12:01", - "updated_at": "2026-06-22 12:01", + "note": "⚠️盈亏比偏低(1:1.2),不建议加仓", + "timestamp": "2026-06-24 09:01", + "updated_at": "2026-06-24 09:01", "type": "持仓策略", "source": "auto", - "sector_context": "行业银行-0.2%,中性 | 大盘仅17%个股上涨", + "sector_context": "行业银行上涨+1.6%,正常", "stock_category": "弱势", "position_advice": "减仓或观望", "time_horizon": "观望", "created_at": "2026-06-18 17:15", - "take_profit": 40.18, - "updated_reason": "技术面重评: 止损32.21→33.2, 止盈39.68→40.18 | 形态:带上影阳线/neutral 量价:买卖均衡 强撑:34.23 弱撑:36.97 弱压:37.46 强压:40.18", + "take_profit": 39.01, + "updated_reason": "技术面重评: 止损36.13→36.28, 止盈40.26→39.01 | 形态:倒T线/射击之星/bearish 量价:买卖均衡 强撑:34.65 弱撑:37.1 弱压:37.94 强压:40.", "changelog": [ { "date": "2026-06-18 11:31", @@ -2627,35 +6133,161 @@ "new_action": "持有观察 | ⚠️盈亏比偏低(1:1.0),不建议加仓 | 止损33.2 | 目标40.18 | 买入区36.97~37.2 | 信号:弱势持有", "reason": "技术面重评: 止损32.21→33.2, 止盈39.68→40.18 | 形态:带上影阳线/neutral 量价:买卖均衡 强撑:34.23 弱撑:36.97 弱压:37.46 强压:40.18", "trigger": "技术面重评" + }, + { + "date": "2026-06-23 09:01", + "old_action": "持有观察 | ⚠️盈亏比偏低(1:1.0),不建议加仓 | 止损33.2 | 目标40.18 | 买入区36.97~37.2 | 信号:弱势持有", + "new_action": "持有观察 | ⚠️盈亏比偏低(1:0.9),不建议加仓 | 止损34.62 | 目标40.38 | 买入区37.1~37.5 | 信号:弱势持有", + "reason": "技术信号变化: 大盘中性,行业中性,低估值,蓝筹,弱势持有: 止损33.2→34.62, 止盈40.18→40.38 | 形态:光头光脚阳线/bullish 量价:买卖均衡 强撑:34.62 弱撑:37.1 弱压:38.05 强压:40.38", + "trigger": "技术信号变化: 大盘中性,行业中性,低估值,蓝筹,弱势持有" + }, + { + "date": "2026-06-23 12:01", + "old_action": "持有观察 | ⚠️盈亏比偏低(1:0.9),不建议加仓 | 止损34.62 | 目标40.38 | 买入区37.1~37.5 | 信号:弱势持有", + "new_action": "持有观察 | ⚠️盈亏比偏低(1:1.1),不建议加仓 | 止损36.13 | 目标40.26 | 买入区37.5~37.84 | 信号:弱势持有", + "reason": "技术信号变化: 大盘中性,行业偏强,低估值,蓝筹,弱势持有: 止损34.62→36.13, 止盈40.38→40.26 | 形态:倒T线/射击之星/bearish 量价:买卖均衡 强撑:35.42 弱撑:37.5 弱压:38.13 强压:40.", + "trigger": "技术信号变化: 大盘中性,行业偏强,低估值,蓝筹,弱势持有" + }, + { + "date": "2026-06-24 09:01", + "old_action": "持有观察 | ⚠️盈亏比偏低(1:1.1),不建议加仓 | 止损36.13 | 目标40.26 | 买入区37.5~37.84 | 信号:弱势持有", + "new_action": "持有观察 | ⚠️盈亏比偏低(1:1.2),不建议加仓 | 止损36.28 | 目标39.01 | 买入区37.1~37.64 | 信号:弱势持有", + "reason": "技术面重评: 止损36.13→36.28, 止盈40.26→39.01 | 形态:倒T线/射击之星/bearish 量价:买卖均衡 强撑:34.65 弱撑:37.1 弱压:37.94 强压:40.", + "trigger": "技术面重评" } - ] + ], + "strategy_tree": { + "branches": [ + { + "id": "600036_stop_loss", + "condition": { + "price": "<36.28" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "600036_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=37.64", + "price_lower": ">=37.1" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 37.1, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "600036_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=39.01" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "600036_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": "600036_take_profit", + "condition": { + "price": ">=39.01" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "600036_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ], + "initialized_at": "2026-06-24T10:23:51.448654" + } }, { "code": "600519", "name": "贵州茅台", - "price": 1227.01, + "price": 1215.88, "cost": 0, "shares": 0, "avg_price": 0, - "action": "盈利持有 | 目标1306.33 | 止损1190.2 | 买入区1202.47~1236.65 | 信号:量价齐升,可买入", - "stop_loss": 1190.2, - "entry_low": 1202.47, - "entry_high": 1236.65, - "tech_snapshot": "形态:带下影阳线/bullish 量价:主动买盘占优 强撑:1137.01 弱撑:1210.34 弱压:1238.34 强压:1306.33", - "timing_signal": "量价齐升,可买入", - "rr_ratio": 2.15, + "action": "盈利持有 | 目标1317.86 | 止损1179.4 | 买入区1191.56~1234.78 | 信号:接近支撑位,关注", + "stop_loss": 1179.4, + "entry_low": 1191.56, + "entry_high": 1234.78, + "tech_snapshot": "形态:带上影阴线/bearish 量价:主动买盘占优 强撑:1123.32 弱撑:1211.17 弱压:1225.29 强压:1317.86", + "timing_signal": "大盘中性,接近支撑位,关注", + "rr_ratio": 2.8, "status": "updated", - "note": "", - "timestamp": "2026-06-22 12:01", - "updated_at": "2026-06-22 12:01", + "note": "⚠️盈亏比偏低(1:2.0),谨慎买入", + "timestamp": "2026-06-24 09:01", + "updated_at": "2026-06-24 09:01", "type": "自选策略", "source": "auto", - "sector_context": "大盘上涨比17.8%", - "stock_category": "中短线", - "position_advice": "中等仓位", - "time_horizon": "2周~3月", + "sector_context": "", + "stock_category": "弱势", + "position_advice": "减仓或观望", + "time_horizon": "观望", "created_at": "2026-06-22 12:01", - "take_profit": 1306.33, + "take_profit": 1317.86, + "updated_reason": "技术面重评: 止损1191.75→1185.78 | 形态:带上影阴线/bearish 量价:主动买盘占优 强撑:1173.36 弱撑:1204.97 弱压:1251.97 ", "changelog": [ { "date": "2026-06-22 12:01", @@ -2663,36 +6295,161 @@ "new_action": "盈利持有 | 目标1306.33 | 止损1190.2 | 买入区1202.47~1236.65 | 信号:量价齐升,可买入", "reason": "初始策略创建 | 形态:带下影阳线/bullish 量价:主动买盘占优 强撑:1137.01 弱撑:1210.34 弱压:1238.34 ", "trigger": "初始创建" + }, + { + "date": "2026-06-23 09:01", + "old_action": "盈利持有 | 目标1306.33 | 止损1190.2 | 买入区1202.47~1236.65 | 信号:量价齐升,可买入", + "new_action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标1295.14 | 止损1204.17 | 买入区1216.58~1240.56 | 信号:弱势持有", + "reason": "技术信号变化: 大盘中性,弱势持有: 止损1190.2→1204.17 | 形态:光头光脚阳线/bullish 量价:主动买盘占优 强撑:1171.0 弱撑:1213.34 弱压:1261.14 ", + "trigger": "技术信号变化: 大盘中性,弱势持有" + }, + { + "date": "2026-06-23 12:01", + "old_action": "盈利持有 | 目标1342.82 | 止损1194.01 | 买入区1206.32~1253.53 | 信号:接近支撑位,关注", + "new_action": "盈利持有 | ⚠️盈亏比偏低(1:2.0),谨慎买入 | 目标1300.67 | 止损1191.75 | 买入区1204.04~1235.32 | 信号:接近支撑位,关注", + "reason": "技术信号变化: 大盘中性,接近支撑位,关注: 止损1194.01→1191.75 | 形态:倒T线/射击之星/bearish 量价:主动买盘占优 强撑:1177.81 弱撑:1214.47 弱压:1253.", + "trigger": "技术信号变化: 大盘中性,接近支撑位,关注" + }, + { + "date": "2026-06-24 09:01", + "old_action": "盈利持有 | ⚠️盈亏比偏低(1:2.0),谨慎买入 | 目标1300.67 | 止损1191.75 | 买入区1204.04~1235.32 | 信号:接近支撑位,关注", + "new_action": "盈利持有 | ⚠️盈亏比偏低(1:2.0),谨慎买入 | 目标1295.61 | 止损1185.78 | 买入区1198.0~1229.71 | 信号:接近支撑位,关注", + "reason": "技术面重评: 止损1191.75→1185.78 | 形态:带上影阴线/bearish 量价:主动买盘占优 强撑:1173.36 弱撑:1204.97 弱压:1251.97 ", + "trigger": "技术面重评" } - ] + ], + "strategy_tree": { + "branches": [ + { + "id": "600519_stop_loss", + "condition": { + "price": "<1179.4" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "600519_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=1234.78", + "price_lower": ">=1191.56" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 1191.56, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 3, + "success_rate": null, + "last_triggered": "2026-06-24T10:23:51.453703" + }, + { + "id": "600519_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=1317.86" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "600519_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": "600519_take_profit", + "condition": { + "price": ">=1317.86" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "600519_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 3, + "success_rate": null, + "last_triggered": "2026-06-24T10:23:51.453703" + } + ], + "last_evaluated": "2026-06-24T10:23:51.453703" + } }, { "code": "600563", "name": "法拉电子", - "price": 169.53, + "price": 162.51, "cost": 155.5032, - "shares": 0, + "shares": 100, "avg_price": 0, - "action": "盈利良好 | 止损153.13 | 目标175.76 | 买入区166.06~174.36 | 信号:持有", - "stop_loss": 153.13, - "entry_low": 166.06, - "entry_high": 174.36, - "tech_snapshot": "形态:倒T线/射击之星/neutral 量价:买卖均衡 强撑:151.37 弱撑:166.06 弱压:175.12 强压:185.01", - "timing_signal": "持有", - "rr_ratio": 3.04, + "action": "盈利持有 | 止损145.02 | 目标164.36 | 买入区158.07~165.97 | 信号:持有", + "stop_loss": 145.02, + "entry_low": 158.07, + "entry_high": 165.97, + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:买卖均衡 强撑:155.65 弱撑:158.07 弱压:172.94 强压:190.23", + "timing_signal": "大盘中性,行业偏弱,持有", + "rr_ratio": 4.04, "status": "updated", "note": "", - "timestamp": "2026-06-22 12:01", - "updated_at": "2026-06-22 12:01", + "timestamp": "2026-06-24 09:01", + "updated_at": "2026-06-24 09:01", "type": "持仓策略", "source": "auto", - "sector_context": "行业元件下跌-1.9%,适度防御 | 大盘仅17%个股上涨", + "sector_context": "行业元件大跌-4.3%,收紧止损", "stock_category": "中短线", "position_advice": "中等仓位", "time_horizon": "2~6周", "created_at": "2026-06-18 17:15", - "take_profit": 175.76, - "updated_reason": "技术面重评: 止损161.41→153.13, 止盈192.67→175.76 | 形态:倒T线/射击之星/neutral 量价:买卖均衡 强撑:151.37 弱撑:166.06 弱压:175.12 强压", + "take_profit": 164.36, + "updated_reason": "技术面重评: 止损147.72→145.02, 止盈171.21→164.36 | 形态:光头光脚阴线/bearish 量价:买卖均衡 强撑:155.65 弱撑:158.07 弱压:172.94 强压:1", "changelog": [ { "date": "2026-06-18 11:31", @@ -2742,36 +6499,161 @@ "new_action": "盈利良好 | 止损153.13 | 目标175.76 | 买入区166.06~174.36 | 信号:持有", "reason": "技术面重评: 止损161.41→153.13, 止盈192.67→175.76 | 形态:倒T线/射击之星/neutral 量价:买卖均衡 强撑:151.37 弱撑:166.06 弱压:175.12 强压", "trigger": "技术面重评" + }, + { + "date": "2026-06-23 09:01", + "old_action": "盈利良好 | 止损153.13 | 目标175.76 | 买入区166.06~174.36 | 信号:持有", + "new_action": "盈利良好 | 止损167.75 | 目标185.01 | 买入区167.88~176.27 | 信号:持有", + "reason": "技术信号变化: 大盘中性,行业中性,持有: 止损153.13→167.75, 止盈175.76→185.01 | 形态:倒T线/射击之星/bearish 量价:买卖均衡 强撑:151.37 弱撑:167.88 弱压:177.63 强压", + "trigger": "技术信号变化: 大盘中性,行业中性,持有" + }, + { + "date": "2026-06-23 12:01", + "old_action": "盈利良好 | 止损167.75 | 目标190.23 | 买入区162.07~170.17 | 信号:持有", + "new_action": "盈利良好 | 止损147.72 | 目标171.21 | 买入区160.56~168.59 | 信号:持有", + "reason": "技术面重评: 止损167.75→147.72, 止盈190.23→171.21 | 形态:带下影阴线/neutral 量价:买卖均衡 强撑:155.65 弱撑:160.56 弱压:172.94 强压:19", + "trigger": "技术面重评" + }, + { + "date": "2026-06-24 09:01", + "old_action": "盈利良好 | 止损147.72 | 目标171.21 | 买入区160.56~168.59 | 信号:持有", + "new_action": "盈利持有 | 止损145.02 | 目标164.36 | 买入区158.07~165.97 | 信号:持有", + "reason": "技术面重评: 止损147.72→145.02, 止盈171.21→164.36 | 形态:光头光脚阴线/bearish 量价:买卖均衡 强撑:155.65 弱撑:158.07 弱压:172.94 强压:1", + "trigger": "技术面重评" } - ] + ], + "strategy_tree": { + "branches": [ + { + "id": "600563_stop_loss", + "condition": { + "price": "<145.02" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "600563_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=165.97", + "price_lower": ">=158.07" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 158.07, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "600563_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=164.36" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "600563_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": "600563_take_profit", + "condition": { + "price": ">=164.36" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "600563_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ], + "initialized_at": "2026-06-24T10:23:51.453733" + } }, { "code": "600739", "name": "辽宁成大", - "price": 10.53, + "price": 10.65, "cost": 12.2862, - "shares": 0, + "shares": 6600, "avg_price": 0, - "action": "持有观察 | ⚠️盈亏比偏低(1:0.6),不建议加仓 | 止损8.48 | 目标9.99 | 买入区10.09~10.3 | 信号:持有", - "stop_loss": 8.48, - "entry_low": 10.09, - "entry_high": 10.3, - "tech_snapshot": "形态:光头光脚阳线/bullish 量价:主动买盘占优 强撑:9.5 弱撑:10.09 弱压:10.75 强压:11.1", - "timing_signal": "持有", - "rr_ratio": 0.55, + "action": "持有观察 | ⚠️盈亏比偏低(1:1.2),不建议加仓 | 止损10.33 | 目标11.34 | 买入区10.5~10.74 | 信号:持有", + "stop_loss": 10.33, + "entry_low": 10.5, + "entry_high": 10.74, + "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:主动买盘占优 强撑:9.67 弱撑:10.5 弱压:10.9 强压:11.81", + "timing_signal": "大盘中性,行业偏强,持有", + "rr_ratio": 1.18, "status": "updated", - "note": "⚠️盈亏比偏低(1:0.6),不建议加仓", - "timestamp": "2026-06-22 12:01", - "updated_at": "2026-06-22 12:01", + "note": "⚠️盈亏比偏低(1:1.2),不建议加仓", + "timestamp": "2026-06-24 09:01", + "updated_at": "2026-06-24 09:01", "type": "持仓策略", "source": "auto", - "sector_context": "行业生物制品大跌-3.5%,收紧止损 | 大盘仅17%个股上涨", - "stock_category": "弱势", - "position_advice": "减仓或观望", - "time_horizon": "观望", + "sector_context": "行业生物制品上涨+3.0%,正常", + "stock_category": "中长线", + "position_advice": "正常配置", + "time_horizon": "数月~1年", "created_at": "2026-06-18 17:15", - "take_profit": 9.99, - "updated_reason": "价格变动(10.09→10.53): 止损9.1→8.48, 止盈11.19→9.99 | 形态:光头光脚阳线/bullish 量价:主动买盘占优 强撑:9.5 弱撑:10.09 弱压:10.75 强压:11.1", + "take_profit": 11.34, + "updated_reason": "技术面重评: 止损10.22→10.33, 止盈12.16→11.34 | 形态:倒T线/射击之星/bearish 量价:主动买盘占优 强撑:9.67 弱撑:10.5 弱压:10.9 强压:11.", "changelog": [ { "date": "2026-06-18 11:31", @@ -2821,45 +6703,160 @@ "new_action": "持有观察 | ⚠️盈亏比偏低(1:0.6),不建议加仓 | 止损8.48 | 目标9.99 | 买入区10.09~10.3 | 信号:持有", "reason": "价格变动(10.09→10.53): 止损9.1→8.48, 止盈11.19→9.99 | 形态:光头光脚阳线/bullish 量价:主动买盘占优 强撑:9.5 弱撑:10.09 弱压:10.75 强压:11.1", "trigger": "价格变动(10.09→10.53)" + }, + { + "date": "2026-06-23 09:01", + "old_action": "持有观察 | ⚠️盈亏比偏低(1:0.6),不建议加仓 | 止损8.48 | 目标9.99 | 买入区10.09~10.3 | 信号:持有", + "new_action": "持有观察 | ⚠️盈亏比极低,关注 | 止损9.62 | 目标11.1 | 买入区10.09~10.36 | 信号:持有", + "reason": "技术信号变化: 大盘中性,行业中性,持有: 止损8.48→9.62, 止盈9.99→11.1 | 形态:光头光脚阳线/bullish 量价:主动买盘占优 强撑:9.62 弱撑:10.09 弱压:11.03 强压:11.", + "trigger": "技术信号变化: 大盘中性,行业中性,持有" + }, + { + "date": "2026-06-23 12:01", + "old_action": "持有观察 | ⚠️盈亏比极低,关注 | 止损9.62 | 目标11.1 | 买入区10.09~10.36 | 信号:持有", + "new_action": "持有观察 | ⚠️盈亏比偏低(1:0.9),不建议加仓 | 止损10.22 | 目标12.16 | 买入区10.65~10.77 | 信号:持有", + "reason": "技术信号变化: 大盘中性,行业偏强,持有: 止损9.62→10.22, 止盈11.1→12.16 | 形态:倒T线/射击之星/bearish 量价:主动买盘占优 强撑:9.73 弱撑:10.65 弱压:11.0 强压:11", + "trigger": "技术信号变化: 大盘中性,行业偏强,持有" + }, + { + "date": "2026-06-24 09:01", + "old_action": "持有观察 | ⚠️盈亏比偏低(1:0.9),不建议加仓 | 止损10.22 | 目标12.16 | 买入区10.65~10.77 | 信号:持有", + "new_action": "持有观察 | ⚠️盈亏比偏低(1:1.2),不建议加仓 | 止损10.33 | 目标11.34 | 买入区10.5~10.74 | 信号:持有", + "reason": "技术面重评: 止损10.22→10.33, 止盈12.16→11.34 | 形态:倒T线/射击之星/bearish 量价:主动买盘占优 强撑:9.67 弱撑:10.5 弱压:10.9 强压:11.", + "trigger": "技术面重评" } ], - "advice_timeline": [ - { - "date": "2026-06-22 14:10", - "direction": "持有", - "price": "10.65", - "summary": "穿买入区上限10.30(+3.4%),+5.55%单日涨幅,Zone breach不追;PORTFOLIO_FULL约束", - "status": "pending" - } - ] + "strategy_tree": { + "branches": [ + { + "id": "600739_stop_loss", + "condition": { + "price": "<10.33" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "600739_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=10.74", + "price_lower": ">=10.5" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 10.5, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "600739_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=11.34" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "600739_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": "600739_take_profit", + "condition": { + "price": ">=11.34" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "600739_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ], + "initialized_at": "2026-06-24T10:23:51.456350" + } }, { "code": "601318", "name": "中国平安", - "price": 50.92, + "price": 49.73, "cost": 0, "shares": 0, "avg_price": 0, - "action": "盈利持有 | 止损参考49.26 | 买入区49.9~51.28 | 信号:放量下跌,等企稳再入", - "stop_loss": 49.26, - "entry_low": 49.9, - "entry_high": 51.28, - "tech_snapshot": "形态:光头光脚阳线/bullish 量价:主动卖盘占优 强撑:46.24 弱撑:49.26 弱压:51.97 强压:54.32", - "timing_signal": "放量下跌,等企稳再入", - "rr_ratio": 2.05, - "status": "manual", + "action": "盈利持有 | 目标53.88 | 止损48.24 | 买入区48.74~50.5 | 信号:观望", + "stop_loss": 48.24, + "entry_low": 48.74, + "entry_high": 50.5, + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:主动卖盘占优 强撑:46.34 弱撑:49.33 弱压:50.5 强压:53.88", + "timing_signal": "观望", + "rr_ratio": 2.79, + "status": "updated", "note": "", - "timestamp": "2026-06-22 12:01", - "updated_at": "2026-06-22 12:01", + "timestamp": "2026-06-24 09:01", + "updated_at": "2026-06-24 09:01", "type": "自选策略", "source": "manual", - "sector_context": "大盘上涨比17.8%", - "stock_category": "中短线", - "position_advice": "中等仓位", - "time_horizon": "2周~3月", + "sector_context": "", + "stock_category": "弱势", + "position_advice": "减仓或观望", + "time_horizon": "观望", "created_at": "2026-06-22 11:50", - "take_profit": 54.32, - "updated_reason": "技术面重评: 策略文字调整", + "take_profit": 53.88, "changelog": [ { "date": "2026-06-22 12:01", @@ -2867,36 +6864,154 @@ "new_action": "盈利持有 | 止损参考49.26 | 买入区49.9~51.28 | 信号:放量下跌,等企稳再入", "reason": "技术面重评: 策略文字调整", "trigger": "技术面重评" + }, + { + "date": "2026-06-23 09:01", + "old_action": "盈利持有 | 止损参考49.26 | 买入区49.9~51.28 | 信号:放量下跌,等企稳再入", + "new_action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 止损参考49.26 | 买入区49.9~51.28 | 信号:放量下跌,等企稳再入", + "reason": "技术面重评: 策略文字调整", + "trigger": "技术面重评" + }, + { + "date": "2026-06-23 12:01", + "old_action": "盈利持有 | 目标55.97 | 止损49.42 | 买入区49.93~51.97 | 信号:放量下跌,等企稳再入", + "new_action": "盈利持有 | 止损参考49.42 | 买入区49.93~51.97 | 信号:放量下跌,等企稳再入", + "reason": "技术信号变化: 放量下跌,等企稳再入: 策略文字调整", + "trigger": "技术信号变化: 放量下跌,等企稳再入" } - ] + ], + "strategy_tree": { + "branches": [ + { + "id": "601318_stop_loss", + "condition": { + "price": "<48.24" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "601318_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=50.5", + "price_lower": ">=48.74" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 48.74, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 3, + "success_rate": null, + "last_triggered": "2026-06-24T10:23:51.461460" + }, + { + "id": "601318_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=53.88" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "601318_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": "601318_take_profit", + "condition": { + "price": ">=53.88" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "601318_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 3, + "success_rate": null, + "last_triggered": "2026-06-24T10:23:51.461460" + } + ], + "last_evaluated": "2026-06-24T10:23:51.461460" + } }, { "code": "601899", "name": "紫金矿业", - "price": 29.64, + "price": 27.75, "cost": 40.2685, - "shares": 0, + "shares": 2400, "avg_price": 0, - "action": "深套持有 | 深套持有 | 止损24.92 | 目标32.66 | 买入区26.68~31.12 | 信号:持有", - "stop_loss": 24.92, - "entry_low": 26.68, - "entry_high": 31.12, - "tech_snapshot": "形态:带下影阳线/neutral 量价:主动买盘占优 强撑:26.72 弱撑:28.85 弱压:30.13 强压:32.66", - "timing_signal": "持有", - "rr_ratio": 0.68, + "action": "深套持有 | 深套持有 | 止损23.01 | 目标27.79 | 买入区24.98~29.14 | 信号:持有", + "stop_loss": 23.01, + "entry_low": 24.98, + "entry_high": 29.14, + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:主动买盘占优 强撑:24.75 弱撑:26.93 弱压:30.44 强压:32.17", + "timing_signal": "大盘中性,行业偏弱,低估值,蓝筹,持有", + "rr_ratio": 1.06, "status": "updated", "note": "深套持有", - "timestamp": "2026-06-22 12:01", - "updated_at": "2026-06-22 12:01", + "timestamp": "2026-06-24 09:01", + "updated_at": "2026-06-24 09:01", "type": "持仓策略", "source": "auto", - "sector_context": "行业工业金属上涨+1.6%,正常 | 大盘仅17%个股上涨", + "sector_context": "行业工业金属大跌-5.5%,收紧止损", "stock_category": "深套", "position_advice": "不补不割", "time_horizon": "长期", "created_at": "2026-06-18 17:15", - "take_profit": 32.66, - "updated_reason": "技术面重评: 止损24.48→24.92, 止盈34.47→32.66 | 形态:带下影阳线/neutral 量价:主动买盘占优 强撑:26.72 弱撑:28.85 弱压:30.13 强压:32.", + "take_profit": 27.79, + "updated_reason": "技术面重评: 止损22.13→23.01, 止盈29.15→27.79 | 形态:光头光脚阴线/bearish 量价:主动买盘占优 强撑:24.75 弱撑:26.93 弱压:30.44 强压:32", "changelog": [ { "date": "2026-06-18 11:31", @@ -2946,36 +7061,161 @@ "new_action": "深套持有 | 深套持有 | 止损24.92 | 目标32.66 | 买入区26.68~31.12 | 信号:持有", "reason": "技术面重评: 止损24.48→24.92, 止盈34.47→32.66 | 形态:带下影阳线/neutral 量价:主动买盘占优 强撑:26.72 弱撑:28.85 弱压:30.13 强压:32.", "trigger": "技术面重评" + }, + { + "date": "2026-06-23 09:01", + "old_action": "深套持有 | 深套持有 | 止损24.92 | 目标32.66 | 买入区26.68~31.12 | 信号:持有", + "new_action": "深套持有 | 深套持有 | 止损27.16 | 目标33.64 | 买入区27.4~31.96 | 信号:持有", + "reason": "技术信号变化: 大盘中性,行业偏强,低估值,蓝筹,持有: 止损24.92→27.16, 止盈32.66→33.64 | 形态:带下影阳线/neutral 量价:主动买盘占优 强撑:26.72 弱撑:29.16 弱压:31.11 强压:32.", + "trigger": "技术信号变化: 大盘中性,行业偏强,低估值,蓝筹,持有" + }, + { + "date": "2026-06-23 12:01", + "old_action": "深套持有 | 深套持有 | 止损27.16 | 目标33.64 | 买入区27.4~31.96 | 信号:持有", + "new_action": "深套持有 | 深套持有 | 止损22.13 | 目标29.15 | 买入区25.47~29.72 | 信号:持有", + "reason": "价格变动(30.44→28.3): 止损27.16→22.13, 止盈33.64→29.15 | 形态:光头光脚阴线/bearish 量价:主动买盘占优 强撑:27.4 弱撑:27.7 弱压:30.44 强压:32.3", + "trigger": "价格变动(30.44→28.3)" + }, + { + "date": "2026-06-24 09:01", + "old_action": "深套持有 | 深套持有 | 止损22.13 | 目标29.15 | 买入区25.47~29.72 | 信号:持有", + "new_action": "深套持有 | 深套持有 | 止损23.01 | 目标27.79 | 买入区24.98~29.14 | 信号:持有", + "reason": "技术面重评: 止损22.13→23.01, 止盈29.15→27.79 | 形态:光头光脚阴线/bearish 量价:主动买盘占优 强撑:24.75 弱撑:26.93 弱压:30.44 强压:32", + "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": "<=29.14", + "price_lower": ">=24.98" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 24.98, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "601899_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=27.79" + }, + "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.79" + }, + "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 + } + ], + "initialized_at": "2026-06-24T10:23:51.461488" + } }, { "code": "603259", "name": "药明康德", - "price": 104.02, + "price": 106.31, "cost": 96.201, - "shares": 0, + "shares": 400, "avg_price": 0, - "action": "盈利良好 | 止损93.96 | 目标107.3 | 买入区102.28~106.93 | 信号:持有", - "stop_loss": 93.96, - "entry_low": 102.28, - "entry_high": 106.93, - "tech_snapshot": "形态:锤子线/T字线/bullish 量价:买卖均衡 强撑:93.93 弱撑:102.28 弱压:105.18 强压:112.95", - "timing_signal": "持有", - "rr_ratio": 2.86, + "action": "盈利良好 | 止损103.12 | 目标112.81 | 买入区104.93~110.18 | 信号:持有", + "stop_loss": 103.12, + "entry_low": 104.93, + "entry_high": 110.18, + "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:买卖均衡 强撑:96.15 弱撑:104.93 弱压:108.53 强压:117.51", + "timing_signal": "大盘中性,行业偏强,低估值,持有", + "rr_ratio": 3.51, "status": "updated", "note": "", - "timestamp": "2026-06-22 12:01", - "updated_at": "2026-06-22 12:01", + "timestamp": "2026-06-24 09:01", + "updated_at": "2026-06-24 09:01", "type": "持仓策略", "source": "auto", - "sector_context": "行业医疗服务下跌-2.5%,适度防御 | 大盘仅17%个股上涨", + "sector_context": "行业医疗服务上涨+2.4%,正常", "stock_category": "中长线", "position_advice": "正常配置", "time_horizon": "数月~1年", "created_at": "2026-06-18 17:15", - "take_profit": 107.3, - "updated_reason": "技术面重评: 止损97.16→93.96, 止盈111.26→107.3 | 形态:锤子线/T字线/bullish 量价:买卖均衡 强撑:93.93 弱撑:102.28 弱压:105.18 强压:1", + "take_profit": 112.81, + "updated_reason": "技术面重评: 止损104.51→103.12, 止盈117.51→112.81 | 形态:倒T线/射击之星/bearish 量价:买卖均衡 强撑:96.15 弱撑:104.93 弱压:108.53 强压:", "changelog": [ { "date": "2026-06-18 11:31", @@ -3011,131 +7251,295 @@ "new_action": "盈利良好 | 止损93.96 | 目标107.3 | 买入区102.28~106.93 | 信号:持有", "reason": "技术面重评: 止损97.16→93.96, 止盈111.26→107.3 | 形态:锤子线/T字线/bullish 量价:买卖均衡 强撑:93.93 弱撑:102.28 弱压:105.18 强压:1", "trigger": "技术面重评" + }, + { + "date": "2026-06-23 09:01", + "old_action": "盈利良好 | 止损93.96 | 目标107.3 | 买入区102.28~106.93 | 信号:持有", + "new_action": "盈利良好 | ⚠️盈亏比偏低(1:1.5),不建议加仓 | 止损102.72 | 目标112.99 | 买入区102.72~107.85 | 信号:持有", + "reason": "技术信号变化: 大盘中性,行业中性,低估值,持有: 止损93.96→102.72, 止盈107.3→112.99 | 形态:光头光脚阳线/bullish 量价:买卖均衡 强撑:93.29 弱撑:102.72 弱压:108.63 强压:11", + "trigger": "技术信号变化: 大盘中性,行业中性,低估值,持有" + }, + { + "date": "2026-06-23 12:01", + "old_action": "盈利良好 | ⚠️盈亏比偏低(1:1.5),不建议加仓 | 止损102.72 | 目标112.99 | 买入区102.72~107.85 | 信号:持有", + "new_action": "盈利良好 | 止损104.51 | 目标117.51 | 买入区106.25~111.01 | 信号:持有", + "reason": "技术信号变化: 大盘中性,行业偏强,低估值,持有: 止损102.72→104.51, 止盈112.99→117.51 | 形态:倒T线/射击之星/bearish 量价:买卖均衡 强撑:96.15 弱撑:106.25 弱压:109.29 强压:", + "trigger": "技术信号变化: 大盘中性,行业偏强,低估值,持有" + }, + { + "date": "2026-06-24 09:01", + "old_action": "盈利良好 | 止损104.51 | 目标117.51 | 买入区106.25~111.01 | 信号:持有", + "new_action": "盈利良好 | 止损103.12 | 目标112.81 | 买入区104.93~110.18 | 信号:持有", + "reason": "技术面重评: 止损104.51→103.12, 止盈117.51→112.81 | 形态:倒T线/射击之星/bearish 量价:买卖均衡 强撑:96.15 弱撑:104.93 弱压:108.53 强压:", + "trigger": "技术面重评" } - ] + ], + "strategy_tree": { + "branches": [ + { + "id": "603259_stop_loss", + "condition": { + "price": "<103.12" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "603259_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=110.18", + "price_lower": ">=104.93" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 104.93, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "603259_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=112.81" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "603259_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": "603259_take_profit", + "condition": { + "price": ">=112.81" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "603259_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ], + "initialized_at": "2026-06-24T10:23:51.463984" + } }, { "code": "688411", "name": "海博思创", - "price": 284.2, - "cost": 258.6163, - "shares": 0, - "avg_price": 0, - "action": "盈利良好 | 止损277.42 | 目标327.74 | 买入区277.73~291.62 | 信号:持有", - "stop_loss": 277.42, - "entry_low": 277.73, - "entry_high": 291.62, - "tech_snapshot": "形态:光头光脚阳线/neutral 量价:买卖均衡 强撑:238.66 弱撑:277.73 弱压:291.45 强压:327.74", - "timing_signal": "持有", - "rr_ratio": 4.86, - "status": "updated", - "note": "", - "timestamp": "2026-06-22 12:01", - "updated_at": "2026-06-22 12:01", - "type": "持仓策略", - "source": "auto", - "sector_context": "行业光伏设备下跌-1.1%,适度防御 | 大盘仅17%个股上涨", - "stock_category": "中短线", - "position_advice": "中等仓位", - "time_horizon": "2~6周", - "created_at": "2026-06-18 17:15", - "take_profit": 327.74, - "updated_reason": "技术面重评: 止损253.82→256.7, 止盈316.5→308.6 | 形态:光头光脚阳线/neutral 量价:买卖均衡 强撑:238.46 弱撑:277.51 弱压:288.34 强压:3", - "changelog": [ - { - "date": "2026-06-18 11:31", - "old_action": "", - "new_action": "盈利良好 | 止损268.82 | 目标316.4 | 买入区272.07~285.67 | 信号:持有", - "reason": "初始策略创建 | 形态:十字星/neutral 量价:买卖均衡 强撑:238.68 弱撑:272.07 弱压:282.59 强压:316.", - "trigger": "初始创建" - }, - { - "date": "2026-06-18 14:17", - "old_action": "盈利良好 | 止损268.82 | 目标316.4 | 买入区272.07~285.67 | 信号:持有", - "new_action": "盈利良好 | 止损273.06 | 目标323.46 | 买入区273.22~286.88 | 信号:持有", - "reason": "技术面重评: 止损268.82→273.06, 止盈316.4→328.31 | 形态:倒T线/射击之星/bearish 量价:买卖均衡 强撑:237.08 弱撑:273.22 弱压:288.07 强压", - "trigger": "技术面重评" - }, - { - "date": "2026-06-18 16:00", - "old_action": "盈利良好 | 止损273.06 | 目标323.46 | 买入区273.22~286.88 | 信号:持有", - "new_action": "盈利良好 | 止损272.57 | 目标323.46 | 买入区273.21~286.87 | 信号:持有", - "reason": "技术面重评: 止损273.06→272.57 | 形态:倒T线/射击之星/bearish 量价:买卖均衡 强撑:237.08 弱撑:273.21 弱压:288.06 强压", - "trigger": "技术面重评" - }, - { - "date": "2026-06-18 23:36", - "old_action": "盈利良好 | 止损272.57 | 目标323.46 | 买入区273.21~286.87 | 信号:持有", - "new_action": "盈利良好 | 止损272.57 | 目标338.16 | 买入区273.21~286.87 | 信号:持有", - "reason": "技术面重评: 策略文字调整", - "trigger": "技术面重评" - }, - { - "date": "2026-06-19 11:24", - "old_action": "盈利良好 | 止损272.57 | 目标338.16 | 买入区273.21~286.87 | 信号:持有", - "new_action": "盈利良好 | 止损272.57 | 目标333.16 | 买入区273.21~286.87 | 信号:持有", - "reason": "技术面重评: 止盈338.16→333.16 | 形态:倒T线/射击之星/bearish 量价:买卖均衡 强撑:237.08 弱撑:273.21 弱压:288.06 强压", - "trigger": "技术面重评" - }, - { - "date": "2026-06-19 15:37", - "old_action": "盈利良好 | 止损272.57 | 目标333.16 | 买入区273.21~286.87 | 信号:持有", - "new_action": "盈利良好 | 止损253.82 | 目标316.5 | 买入区273.21~286.87 | 信号:持有", - "reason": "技术面重评: 止损272.57→253.82, 止盈333.16→316.5 | 形态:倒T线/射击之星/bearish 量价:买卖均衡 强撑:237.08 弱撑:273.21 弱压:288.06 强压", - "trigger": "技术面重评" - }, - { - "date": "2026-06-22 12:01", - "old_action": "盈利良好 | 止损253.82 | 目标316.5 | 买入区273.21~286.87 | 信号:持有", - "new_action": "盈利良好 | 止损256.7 | 目标308.6 | 买入区277.51~291.39 | 信号:持有", - "reason": "技术面重评: 止损253.82→256.7, 止盈316.5→308.6 | 形态:光头光脚阳线/neutral 量价:买卖均衡 强撑:238.46 弱撑:277.51 弱压:288.34 强压:3", - "trigger": "技术面重评" - } + "price": 265.2, + "action": "买入", + "entry_low": 258, + "entry_high": 263, + "stop_loss": 252, + "take_profit": 295, + "rr_ratio": 3.7, + "timing_signal": "买入", + "sector_context": "储能(科创板)", + "stock_category": "成长", + "position_advice": "仓位不超过10%", + "time_horizon": "短线波段", + "status": "active", + "type": "watchlist", + "source": "知微", + "note": "高波动科创储能股,等258附近缩量再进", + "updated_at": "2026-06-24T09:46:16.927854", + "timestamp": "2026-06-24T09:46:16.927869", + "tech_snapshot": "强撑:252 弱撑:258 弱压:285 强压:298", + "signal_factors": [ + "大盘偏弱", + "行业偏强(储能)", + "PE45", + "消息偏多(储能政策)", + "买入" ], - "multi_tf_context": "震荡/无明显方向 | MA20=271.17 | MA60=253.21 | 长撑:MA20=271.17 | 长压:日强阻=307.58", - "reassessed_at": "2026-06-22 13:59", - "action_note": "", - "analysis": { - "stop_loss": 277.42, - "take_profit": 327.74, - "entry_low": 277.73, - "entry_high": 291.62, - "rr_ratio": 4.86, - "timing_signal": "持有", - "action": "盈利良好 | 止损277.42 | 目标327.74 | 买入区277.73~291.62 | 信号:持有", - "tech_snapshot": "形态:光头光脚阳线/neutral 量价:买卖均衡 强撑:238.66 弱撑:277.73 弱压:291.45 强压:327.74", - "reassessed_at": "2026-06-22 13:59", - "status": "updated", - "stock_category": "中短线" + "strategy_tree": { + "branches": [ + { + "id": "688411_stop_loss", + "condition": { + "price": "<252" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "688411_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=263", + "price_lower": ">=258" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 258, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "688411_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=295" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "688411_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": "688411_take_profit", + "condition": { + "price": ">=295" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "688411_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ], + "initialized_at": "2026-06-24T10:23:51.466468" } }, { "code": "688630", "name": "芯碁微装", - "price": 473.96, + "price": 462.89, "cost": 0, "shares": 0, "avg_price": 0, - "action": "盈利持有 | 目标533.79 | 止损421.82 | 买入区464.48~483.44", - "stop_loss": 421.82, - "entry_low": 464.48, - "entry_high": 483.44, - "tech_snapshot": "形态:光头光脚阴线/neutral 量价:主动买盘占优 强撑:431.21 弱撑:452.99 弱压:503.46 强压:533.79", - "timing_signal": "neutral", - "rr_ratio": 2.85, + "action": "盈利持有 | 目标524.34 | 止损451.37 | 买入区453.63~472.15", + "stop_loss": 451.37, + "entry_low": 453.63, + "entry_high": 472.15, + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:主动买盘占优 强撑:415.02 弱撑:451.37 弱压:488.0 强压:524.34", + "timing_signal": "大盘中性,行业中性", + "rr_ratio": 5.33, "status": "updated", "note": "", - "timestamp": "2026-06-22 12:01", - "updated_at": "2026-06-22 12:01", + "timestamp": "2026-06-24 09:01", + "updated_at": "2026-06-24 09:01", "type": "自选策略", "source": "auto", - "sector_context": "行业专用设备下跌-2.5%,适度防御 | 大盘仅17%个股上涨", + "sector_context": "行业专用设备+0.3%,中性", "stock_category": "中短线", "position_advice": "中等仓位", "time_horizon": "2~6周", "created_at": "2026-06-18 17:15", - "take_profit": 533.79, - "updated_reason": "价格变动(502.0→473.96): 止损470.73→421.82 | 形态:光头光脚阴线/neutral 量价:主动买盘占优 强撑:431.21 弱撑:452.99 弱压:503.46 强压", + "take_profit": 524.34, + "updated_reason": "技术面重评: 止损457.52→451.37 | 形态:光头光脚阴线/bearish 量价:主动买盘占优 强撑:415.02 弱撑:451.37 弱压:488.0 强压:", "changelog": [ { "date": "2026-06-18 11:31", @@ -3192,36 +7596,161 @@ "new_action": "盈利持有 | 目标533.79 | 止损421.82 | 买入区464.48~483.44", "reason": "价格变动(502.0→473.96): 止损470.73→421.82 | 形态:光头光脚阴线/neutral 量价:主动买盘占优 强撑:431.21 弱撑:452.99 弱压:503.46 强压", "trigger": "价格变动(502.0→473.96)" + }, + { + "date": "2026-06-23 09:01", + "old_action": "盈利持有 | 目标533.79 | 止损421.82 | 买入区464.48~483.44", + "new_action": "盈利持有 | ⚠️盈亏比偏低(1:2.0),谨慎买入 | 目标538.47 | 止损462.35 | 买入区478.24~492.8", + "reason": "技术信号变化: 大盘中性,行业中性: 止损421.82→462.35 | 形态:带下影阴线/neutral 量价:主动买盘占优 强撑:435.89 弱撑:462.35 弱压:512.82 强压:", + "trigger": "技术信号变化: 大盘中性,行业中性" + }, + { + "date": "2026-06-23 12:01", + "old_action": "盈利持有 | ⚠️盈亏比偏低(1:2.0),谨慎买入 | 目标538.47 | 止损462.35 | 买入区478.24~492.8", + "new_action": "盈利持有 | 目标526.57 | 止损457.52 | 买入区461.84~480.7", + "reason": "价格变动(488.0→471.27): 止损462.35→457.52 | 形态:带下影阴线/neutral 量价:主动买盘占优 强撑:418.93 弱撑:457.52 弱压:488.0 强压:5", + "trigger": "价格变动(488.0→471.27)" + }, + { + "date": "2026-06-24 09:01", + "old_action": "盈利持有 | 目标526.57 | 止损457.52 | 买入区461.84~480.7", + "new_action": "盈利持有 | 目标524.34 | 止损451.37 | 买入区453.63~472.15", + "reason": "技术面重评: 止损457.52→451.37 | 形态:光头光脚阴线/bearish 量价:主动买盘占优 强撑:415.02 弱撑:451.37 弱压:488.0 强压:", + "trigger": "技术面重评" } - ] + ], + "strategy_tree": { + "branches": [ + { + "id": "688630_stop_loss", + "condition": { + "price": "<451.37" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "688630_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=472.15", + "price_lower": ">=453.63" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 453.63, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "688630_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=524.34" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "688630_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": "688630_take_profit", + "condition": { + "price": ">=524.34" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "688630_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ], + "initialized_at": "2026-06-24T10:23:51.469011" + } }, { "code": "688639", "name": "华恒生物", - "price": 20.37, + "price": 21.83, "cost": 0, "shares": 0, "avg_price": 0, - "action": "盈利持有 | 目标22.27 | 止损19.76 | 买入区19.96~20.76 | 信号:弱势持有", - "stop_loss": 19.76, - "entry_low": 19.96, - "entry_high": 20.76, - "tech_snapshot": "形态:锤子线/T字线/bullish 量价:主动买盘占优 强撑:18.45 弱撑:19.93 弱压:20.94 强压:22.27", - "timing_signal": "大盘中性,行业偏强,弱势持有", - "rr_ratio": 3.11, + "action": "盈利持有 | 目标24.46 | 止损21.0 | 买入区21.39~22.27", + "stop_loss": 21.0, + "entry_low": 21.39, + "entry_high": 22.27, + "tech_snapshot": "形态:带上影阳线/neutral 量价:主动买盘占优 强撑:19.06 弱撑:21.0 弱压:22.54 强压:24.46", + "timing_signal": "大盘中性,行业中性", + "rr_ratio": 3.17, "status": "updated", "note": "", - "timestamp": "2026-06-22 12:01", - "updated_at": "2026-06-22 12:01", + "timestamp": "2026-06-24 09:01", + "updated_at": "2026-06-24 09:01", "type": "自选策略", "source": "auto", - "sector_context": "行业化学制品-0.0%,中性 | 大盘仅17%个股上涨", + "sector_context": "行业化学制品+0.5%,中性", "stock_category": "弱势", "position_advice": "减仓或观望", "time_horizon": "观望", "created_at": "2026-06-18 17:15", - "take_profit": 22.27, - "updated_reason": "技术面重评: 止损20.03→19.17 | 形态:带下影阴线/neutral 量价:主动买盘占优 强撑:18.4 弱撑:19.83 弱压:20.87 强压:22.2", + "take_profit": 24.46, + "updated_reason": "技术信号变化: 大盘中性,行业中性: 止损21.27→21.0 | 形态:带上影阳线/neutral 量价:主动买盘占优 强撑:19.06 弱撑:21.0 弱压:22.54 强压:24.4", "changelog": [ { "date": "2026-06-18 11:31", @@ -3271,45 +7800,161 @@ "new_action": "盈利持有 | 目标22.22 | 止损19.17 | 买入区19.96~20.74", "reason": "技术面重评: 止损20.03→19.17 | 形态:带下影阴线/neutral 量价:主动买盘占优 强撑:18.4 弱撑:19.83 弱压:20.87 强压:22.2", "trigger": "技术面重评" + }, + { + "date": "2026-06-23 09:01", + "old_action": "盈利持有 | 目标22.27 | 止损19.76 | 买入区19.96~20.76 | 信号:弱势持有", + "new_action": "盈利持有 | ⚠️盈亏比偏低(1:1.8),谨慎买入 | 目标22.5 | 止损20.37 | 买入区20.58~21.11 | 信号:弱势持有", + "reason": "技术面重评: 止损19.76→20.37 | 形态:锤子线/T字线/bullish 量价:主动买盘占优 强撑:18.68 弱撑:20.18 弱压:21.41 强压:2", + "trigger": "技术面重评" + }, + { + "date": "2026-06-23 12:01", + "old_action": "盈利持有 | ⚠️盈亏比偏低(1:1.8),谨慎买入 | 目标22.5 | 止损20.37 | 买入区20.58~21.11 | 信号:弱势持有", + "new_action": "盈利持有 | 目标24.5 | 止损21.27 | 买入区21.49~22.37", + "reason": "价格变动(21.0→21.93): 止损20.37→21.27 | 形态:带上影阳线/neutral 量价:主动买盘占优 强撑:19.1 弱撑:21.0 弱压:22.6 强压:24.5", + "trigger": "价格变动(21.0→21.93)" + }, + { + "date": "2026-06-24 09:01", + "old_action": "盈利持有 | 目标24.5 | 止损21.27 | 买入区21.49~22.37", + "new_action": "盈利持有 | 目标24.46 | 止损21.0 | 买入区21.39~22.27", + "reason": "技术信号变化: 大盘中性,行业中性: 止损21.27→21.0 | 形态:带上影阳线/neutral 量价:主动买盘占优 强撑:19.06 弱撑:21.0 弱压:22.54 强压:24.4", + "trigger": "技术信号变化: 大盘中性,行业中性" } ], - "advice_timeline": [ - { - "date": "2026-06-22 13:28", - "direction": "加仓", - "price": "20.87", - "summary": "华恒生物(688639) 20.87在买入区20.45~21.0,1手4,174元(科创板200股) | 仓位85.62→86.03%", - "status": "pending" - } - ] + "strategy_tree": { + "branches": [ + { + "id": "688639_stop_loss", + "condition": { + "price": "<21.0" + }, + "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": "<=22.27", + "price_lower": ">=21.39" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 21.39, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "688639_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=24.46" + }, + "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": ">=24.46" + }, + "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 + } + ], + "initialized_at": "2026-06-24T10:23:51.471510" + } }, { "code": "688795", "name": "摩尔线程-U", - "price": 645.89, + "price": 685.03, "cost": 0, "shares": 0, "avg_price": 0, - "action": "盈利持有 | 目标717.63 | 止损607.71 | 买入区632.97~658.81 | 信号:放量下跌,等企稳再入", - "stop_loss": 607.71, - "entry_low": 632.97, - "entry_high": 658.81, - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:主动卖盘占优 强撑:587.63 弱撑:633.26 弱压:669.0 强压:717.63", - "timing_signal": "放量下跌,等企稳再入", - "rr_ratio": 3.7, + "action": "盈利持有 | 目标818.99 | 止损664.48 | 买入区671.33~698.73 | 信号:观望", + "stop_loss": 664.48, + "entry_low": 671.33, + "entry_high": 698.73, + "tech_snapshot": "形态:锤子线/T字线/bullish 量价:主动卖盘占优 强撑:563.22 弱撑:669.69 弱压:704.03 强压:818.99", + "timing_signal": "观望", + "rr_ratio": 6.52, "status": "updated", "note": "", - "timestamp": "2026-06-22 12:01", - "updated_at": "2026-06-22 12:01", + "timestamp": "2026-06-24 09:01", + "updated_at": "2026-06-24 09:01", "type": "自选策略", "source": "auto", - "sector_context": "行业半导体-0.8%,中性 | 大盘仅17%个股上涨", + "sector_context": "行业半导体+0.2%,中性", "stock_category": "中长线", "position_advice": "正常配置", "time_horizon": "数月~1年", "created_at": "2026-06-18 17:15", - "take_profit": 717.63, - "updated_reason": "价格变动(669.0→645.89): 止损632.23→607.71 | 形态:光头光脚阴线/bearish 量价:主动卖盘占优 强撑:587.63 弱撑:633.26 弱压:669.0 强压:", + "take_profit": 818.99, + "updated_reason": "技术信号变化: 大盘中性,行业中性,高估值,放量下跌,等企稳再入: 止损683.91→660.96 | 形态:带上影阳线/neutral 量价:主动卖盘占优 强撑:568.43 弱撑:660.96 弱压:746.15 强压:", "changelog": [ { "date": "2026-06-18 11:31", @@ -3359,36 +8004,161 @@ "new_action": "盈利持有 | 目标717.63 | 止损607.71 | 买入区632.97~658.81 | 信号:放量下跌,等企稳再入", "reason": "价格变动(669.0→645.89): 止损632.23→607.71 | 形态:光头光脚阴线/bearish 量价:主动卖盘占优 强撑:587.63 弱撑:633.26 弱压:669.0 强压:", "trigger": "价格变动(669.0→645.89)" + }, + { + "date": "2026-06-23 09:01", + "old_action": "盈利持有 | 目标717.63 | 止损607.71 | 买入区632.97~658.81 | 信号:放量下跌,等企稳再入", + "new_action": "盈利持有 | 目标730.55 | 止损650.38 | 买入区657.09~680.78 | 信号:放量下跌,等企稳再入", + "reason": "价格变动(645.89→670.5): 止损607.71→650.38 | 形态:锤子线/T字线/bullish 量价:主动卖盘占优 强撑:595.25 弱撑:647.6 弱压:685.8 强压:", + "trigger": "价格变动(645.89→670.5)" + }, + { + "date": "2026-06-23 12:01", + "old_action": "盈利持有 | 目标730.55 | 止损650.38 | 买入区657.09~680.78 | 信号:放量下跌,等企稳再入", + "new_action": "盈利持有 | ⚠️盈亏比偏低(1:1.8),谨慎买入 | 目标804.6 | 止损683.91 | 买入区704.31~724.14 | 信号:放量下跌,等企稳再入", + "reason": "价格变动(670.5→718.68): 止损650.38→683.91 | 形态:带上影阳线/neutral 量价:主动卖盘占优 强撑:573.31 弱撑:670.5 弱压:755.92 强压:8", + "trigger": "价格变动(670.5→718.68)" + }, + { + "date": "2026-06-24 09:01", + "old_action": "盈利持有 | ⚠️盈亏比偏低(1:1.8),谨慎买入 | 目标804.6 | 止损683.91 | 买入区704.31~724.14 | 信号:放量下跌,等企稳再入", + "new_action": "盈利持有 | 目标804.6 | 止损660.96 | 买入区689.95~718.11 | 信号:放量下跌,等企稳再入", + "reason": "技术信号变化: 大盘中性,行业中性,高估值,放量下跌,等企稳再入: 止损683.91→660.96 | 形态:带上影阳线/neutral 量价:主动卖盘占优 强撑:568.43 弱撑:660.96 弱压:746.15 强压:", + "trigger": "技术信号变化: 大盘中性,行业中性,高估值,放量下跌,等企稳再入" } - ] + ], + "strategy_tree": { + "branches": [ + { + "id": "688795_stop_loss", + "condition": { + "price": "<664.48" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "688795_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=698.73", + "price_lower": ">=671.33" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 671.33, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 3, + "success_rate": null, + "last_triggered": "2026-06-24T10:23:51.476631" + }, + { + "id": "688795_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=818.99" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "688795_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": "688795_take_profit", + "condition": { + "price": ">=818.99" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "688795_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 3, + "success_rate": null, + "last_triggered": "2026-06-24T10:23:51.476631" + } + ], + "last_evaluated": "2026-06-24T10:23:51.476631" + } }, { "code": "688802", "name": "沐曦股份-U", - "price": 724.61, + "price": 768.98, "cost": 0, "shares": 0, "avg_price": 0, - "action": "盈利持有 | 目标841.52 | 止损681.78 | 买入区710.12~739.1", - "stop_loss": 681.78, - "entry_low": 710.12, - "entry_high": 739.1, - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:631.16 弱撑:703.67 弱压:769.89 强压:841.52", - "timing_signal": "neutral", - "rr_ratio": 5.38, + "action": "盈利持有 | 目标893.33 | 止损730.66 | 买入区753.6~784.36", + "stop_loss": 730.66, + "entry_low": 753.6, + "entry_high": 784.36, + "tech_snapshot": "形态:带上影阳线/neutral 量价:数据不足 强撑:645.33 弱撑:730.66 弱压:807.65 强压:893.33", + "timing_signal": "大盘中性,行业中性,高估值", + "rr_ratio": 3.25, "status": "updated", "note": "", - "timestamp": "2026-06-22 12:01", - "updated_at": "2026-06-22 12:01", + "timestamp": "2026-06-24 09:01", + "updated_at": "2026-06-24 09:01", "type": "自选策略", "source": "auto", - "sector_context": "行业半导体-0.8%,中性 | 大盘仅17%个股上涨", + "sector_context": "行业半导体+0.2%,中性", "stock_category": "中长线", "position_advice": "正常配置", "time_horizon": "数月~1年", "created_at": "2026-06-18 17:15", - "take_profit": 841.52, - "updated_reason": "价格变动(769.89→724.61): 止损724.74→681.78 | 形态:光头光脚阴线/bearish 量价:数据不足 强撑:631.16 弱撑:703.67 弱压:769.89 强压:8", + "take_profit": 893.33, + "updated_reason": "技术信号变化: 大盘中性,行业中性,高估值: 止损756.85→730.66 | 形态:带上影阳线/neutral 量价:数据不足 强撑:645.33 弱撑:730.66 弱压:807.65 强压:89", "changelog": [ { "date": "2026-06-18 11:31", @@ -3438,36 +8208,161 @@ "new_action": "盈利持有 | 目标841.52 | 止损681.78 | 买入区710.12~739.1", "reason": "价格变动(769.89→724.61): 止损724.74→681.78 | 形态:光头光脚阴线/bearish 量价:数据不足 强撑:631.16 弱撑:703.67 弱压:769.89 强压:8", "trigger": "价格变动(769.89→724.61)" + }, + { + "date": "2026-06-23 09:01", + "old_action": "盈利持有 | 目标841.52 | 止损681.78 | 买入区710.12~739.1", + "new_action": "盈利持有 | 目标853.79 | 止损735.26 | 买入区742.84~773.16 | 信号:阳线企稳,可买入", + "reason": "价格变动(724.61→758.0): 止损681.78→735.26 | 形态:锤子线/T字线/bullish 量价:数据不足 强撑:643.43 弱撑:724.79 弱压:781.83 强压:", + "trigger": "价格变动(724.61→758.0)" + }, + { + "date": "2026-06-23 12:01", + "old_action": "盈利持有 | 目标853.79 | 止损735.26 | 买入区742.84~773.16 | 信号:阳线企稳,可买入", + "new_action": "盈利持有 | 目标899.0 | 止损756.85 | 买入区770.28~801.72", + "reason": "价格变动(758.0→786.0): 止损735.26→756.85 | 形态:光头光脚阳线/neutral 量价:数据不足 强撑:651.0 弱撑:742.01 弱压:819.0 强压:899", + "trigger": "价格变动(758.0→786.0)" + }, + { + "date": "2026-06-24 09:01", + "old_action": "盈利持有 | 目标899.0 | 止损756.85 | 买入区770.28~801.72", + "new_action": "盈利持有 | 目标893.33 | 止损730.66 | 买入区753.6~784.36", + "reason": "技术信号变化: 大盘中性,行业中性,高估值: 止损756.85→730.66 | 形态:带上影阳线/neutral 量价:数据不足 强撑:645.33 弱撑:730.66 弱压:807.65 强压:89", + "trigger": "技术信号变化: 大盘中性,行业中性,高估值" } - ] + ], + "strategy_tree": { + "branches": [ + { + "id": "688802_stop_loss", + "condition": { + "price": "<730.66" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "688802_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=784.36", + "price_lower": ">=753.6" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 753.6, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "688802_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=893.33" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "688802_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": "688802_take_profit", + "condition": { + "price": ">=893.33" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "688802_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ], + "initialized_at": "2026-06-24T10:23:51.476659" + } }, { "code": "688981", "name": "中芯国际", - "price": 143.11, + "price": 141.7, "cost": 126.0681, - "shares": 0, + "shares": 300, "avg_price": 0, - "action": "盈利良好 | 止损134.66 | 目标167.33 | 买入区139.41~146.38 | 信号:持有", - "stop_loss": 134.66, - "entry_low": 139.41, - "entry_high": 146.38, - "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:买卖均衡 强撑:120.07 弱撑:139.41 弱压:147.41 强压:167.33", - "timing_signal": "持有", - "rr_ratio": 5.65, + "action": "盈利良好 | 止损137.45 | 目标160.44 | 买入区138.1~145.0 | 信号:持有", + "stop_loss": 137.45, + "entry_low": 138.1, + "entry_high": 145.0, + "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:买卖均衡 强撑:119.27 弱撑:138.1 弱压:146.8 强压:167.13", + "timing_signal": "大盘中性,行业中性,高估值,蓝筹,持有", + "rr_ratio": 5.98, "status": "updated", "note": "", - "timestamp": "2026-06-22 12:01", - "updated_at": "2026-06-22 12:01", + "timestamp": "2026-06-24 09:01", + "updated_at": "2026-06-24 09:01", "type": "持仓策略", "source": "auto", - "sector_context": "行业半导体-0.8%,中性 | 大盘仅17%个股上涨", + "sector_context": "行业半导体+0.2%,中性", "stock_category": "短炒", "position_advice": "小仓快进快出", "time_horizon": "数日~2周", "created_at": "2026-06-18 23:02", - "take_profit": 167.33, - "updated_reason": "技术面重评: 止损132.76→134.66, 止盈164.45→167.33 | 形态:倒T线/射击之星/bearish 量价:买卖均衡 强撑:120.07 弱撑:139.41 弱压:147.41 强压", + "take_profit": 160.44, + "updated_reason": "技术信号变化: 大盘中性,行业中性,高估值,蓝筹,持有: 止损139.7→137.45, 止盈168.27→160.44 | 形态:倒T线/射击之星/bearish 量价:买卖均衡 强撑:119.27 弱撑:138.1 弱压:146.8 强压:1", "changelog": [ { "date": "2026-06-18 23:02", @@ -3503,40 +8398,269 @@ "new_action": "盈利良好 | 止损134.66 | 目标167.33 | 买入区139.41~146.38 | 信号:持有", "reason": "技术面重评: 止损132.76→134.66, 止盈164.45→167.33 | 形态:倒T线/射击之星/bearish 量价:买卖均衡 强撑:120.07 弱撑:139.41 弱压:147.41 强压", "trigger": "技术面重评" + }, + { + "date": "2026-06-23 09:01", + "old_action": "盈利良好 | 止损134.66 | 目标167.33 | 买入区139.41~146.38 | 信号:持有", + "new_action": "盈利良好 | 止损141.22 | 目标168.16 | 买入区140.7~147.73 | 信号:持有", + "reason": "技术信号变化: 大盘中性,行业偏强,高估值,蓝筹,持有: 止损134.66→141.22, 止盈167.33→168.16 | 形态:带上影阳线/neutral 量价:买卖均衡 强撑:120.9 弱撑:140.7 弱压:149.06 强压:168.", + "trigger": "技术信号变化: 大盘中性,行业偏强,高估值,蓝筹,持有" + }, + { + "date": "2026-06-23 12:01", + "old_action": "盈利良好 | 止损141.22 | 目标168.16 | 买入区140.7~147.73 | 信号:持有", + "new_action": "盈利良好 | 止损139.7 | 目标168.27 | 买入区140.39~147.41 | 信号:持有", + "reason": "技术信号变化: 大盘中性,行业偏强,高估值,蓝筹,持有: 止损141.22→139.7, 止盈168.16→168.27 | 形态:倒T线/射击之星/neutral 量价:买卖均衡 强撑:120.41 弱撑:140.39 弱压:147.98 强压", + "trigger": "技术信号变化: 大盘中性,行业偏强,高估值,蓝筹,持有" + }, + { + "date": "2026-06-24 09:01", + "old_action": "盈利良好 | 止损139.7 | 目标168.27 | 买入区140.39~147.41 | 信号:持有", + "new_action": "盈利良好 | 止损137.45 | 目标160.44 | 买入区138.1~145.0 | 信号:持有", + "reason": "技术信号变化: 大盘中性,行业中性,高估值,蓝筹,持有: 止损139.7→137.45, 止盈168.27→160.44 | 形态:倒T线/射击之星/bearish 量价:买卖均衡 强撑:119.27 弱撑:138.1 弱压:146.8 强压:1", + "trigger": "技术信号变化: 大盘中性,行业中性,高估值,蓝筹,持有" } - ] + ], + "strategy_tree": { + "branches": [ + { + "id": "688981_stop_loss", + "condition": { + "price": "<137.45" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "688981_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=145.0", + "price_lower": ">=138.1" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 138.1, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "688981_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=160.44" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "688981_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": "688981_take_profit", + "condition": { + "price": ">=160.44" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "688981_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ], + "initialized_at": "2026-06-24T10:23:51.479161" + } }, { - "code": "002171", - "name": "楚江新材", - "type": "自选策略", + "code": "688519", + "name": "南亚新材", + "price": 358.7, + "action": "买入", + "entry_low": 335, + "entry_high": 350, + "stop_loss": 320, + "take_profit": 400, + "rr_ratio": 1.7, + "timing_signal": "等待回调至335~350买入", + "sector_context": "PCB材料(电子/科创板)", + "stock_category": "成长", + "position_advice": "高波动,仓位不超过5%", + "time_horizon": "短线波段", "status": "active", - "source": "auto", - "timestamp": "2026-06-22T22:50:00", - "cost": null, - "entry_low": 15.53, - "entry_high": 16.59, - "stop_loss": 14.78, - "take_profit": 16.47, - "action_note": "缩量回踩15.85附近可入,现价16.43偏高等回调", - "advice_timeline": [] - }, - { - "code": "603565", - "name": "中谷物流", - "type": "自选策略", - "status": "active", - "source": "auto", - "timestamp": "2026-06-22T23:00:00", - "cost": null, - "entry_low": 10.0, - "entry_high": 10.8, - "stop_loss": 9.5, - "take_profit": 12.0, - "action_note": "PE=11极度低估航运周期股,现价10.40在买入区内,等待行业催化", - "advice_timeline": [] + "type": "watchlist", + "source": "知微", + "note": "6月从285拉至409(+43%)后急跌至331(-19%),今日反弹缩量。高PE(228)炒作品种,需等二次确认支撑", + "tech_snapshot": "强撑:331 弱撑:345 弱压:375 强压:409", + "signal_factors": [ + "大盘弱势震荡", + "行业电子偏强", + "PE228高估值", + "消息面个股行情", + "回调企稳买入" + ], + "updated_at": "2026-06-24T10:26:37.123999", + "timestamp": "2026-06-24T10:26:37.124015", + "created_at": "2026-06-24T10:26:37.124017", + "strategy_tree": { + "branches": [ + { + "id": "688519_stop_loss", + "condition": { + "price": "<320" + }, + "action": { + "type": "sell", + "amount": "all", + "reason": "止损" + }, + "priority": 0, + "rationale": "止损保护本金", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "688519_buy_dip", + "condition": { + "scenario": "weak_consolidation", + "price": "<=350", + "price_lower": ">=335" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": 335, + "reason": "回调支撑买入" + }, + "priority": 1, + "rationale": "价格回调到支撑区,弱势市场低吸", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "688519_breakout_chase", + "condition": { + "scenario": "bullish_recovery", + "price": ">=400" + }, + "action": { + "type": "buy", + "amount": "normal", + "limit": "market", + "reason": "突破确认追涨" + }, + "priority": 2, + "rationale": "价格突破阻力,确认上升趋势后买入", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "688519_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": "688519_take_profit", + "condition": { + "price": ">=400" + }, + "action": { + "type": "sell", + "amount": "half", + "reason": "止盈锁利" + }, + "priority": 4, + "rationale": "达到目标价,减半仓锁定利润", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + }, + { + "id": "688519_hold", + "condition": {}, + "action": { + "type": "hold", + "reason": "无明确信号,继续持有" + }, + "priority": 99, + "rationale": "没有分支匹配时的默认动作", + "trigger_count": 0, + "success_rate": null, + "last_triggered": null + } + ] + } } ], "total": 42, - "regenerated_at": "2026-06-22 14:22" + "regenerated_at": "2026-06-24 10:01" } \ No newline at end of file diff --git a/data/evaluation_input.json b/data/evaluation_input.json index dae9377..1e80a5f 100644 --- a/data/evaluation_input.json +++ b/data/evaluation_input.json @@ -1,53 +1,53 @@ { - "collected_at": "2026-06-22T20:30:11.889911", - "total_stocks": 44, + "collected_at": "2026-06-23T20:30:47.189949", + "total_stocks": 42, "summary": { - "up_count": 29, - "down_count": 15, - "deep_loss_count": 6, + "up_count": 5, + "down_count": 37, + "deep_loss_count": 5, "holdings_count": 24, - "watchlist_count": 20 + "watchlist_count": 18 }, "index_data": { "上证指数": { - "price": 4163.1, - "prev_close": 4090.48, - "change_pct": 1.78, - "high": 4164.42, - "low": 4070.17, - "timestamp": "20260622161418" + "price": 4106.25, + "prev_close": 4163.1, + "change_pct": -1.37, + "high": 4175.35, + "low": 4085.59, + "timestamp": "20260623161419" }, "深证成指": { - "price": 16372.5, - "prev_close": 16030.7, - "change_pct": 2.13, - "high": 16374.02, - "low": 15914.05, - "timestamp": "20260622161418" + "price": 15854.2, + "prev_close": 16372.5, + "change_pct": -3.17, + "high": 16355.95, + "low": 15756.41, + "timestamp": "20260623161457" }, "创业板指": { - "price": 4359.39, - "prev_close": 4252.39, - "change_pct": 2.52, - "high": 4359.39, - "low": 4229.31, - "timestamp": "20260622161433" + "price": 4192.19, + "prev_close": 4359.39, + "change_pct": -3.84, + "high": 4350.06, + "low": 4159.48, + "timestamp": "20260623161412" }, "恒生指数": { - "price": 23768.52, - "prev_close": 23924.81, - "change_pct": -0.65, - "high": 23863.71, - "low": 23444.86, - "timestamp": "2026/06/22 18:31:13" + "price": 23336.28, + "prev_close": 23768.52, + "change_pct": -1.82, + "high": 23825.81, + "low": 23252.13, + "timestamp": "2026/06/23 18:31:17" }, "恒生科技": { - "price": 4549.41, - "prev_close": 4604.35, - "change_pct": -1.19, - "high": 4595.07, - "low": 4513.97, - "timestamp": "2026/06/22 16:08:34" + "price": 4399.22, + "prev_close": 4549.41, + "change_pct": -3.3, + "high": 4559.59, + "low": 4380.76, + "timestamp": "2026/06/23 16:08:48" } }, "sector_groups": { @@ -55,77 +55,63 @@ { "code": "000657", "name": "中钨高新", - "change_pct": 10.0, + "change_pct": -5.38, "pnl_pct": null, "type": "自选策略" }, { "code": "000700", "name": "模塑科技", - "change_pct": -1.75, - "pnl_pct": 2.36, + "change_pct": -1.32, + "pnl_pct": 0.99, "type": "持仓策略" }, { "code": "000711", "name": "ST京蓝", - "change_pct": 3.65, - "pnl_pct": null, - "type": "自选策略" - }, - { - "code": "002171", - "name": "楚江新材", - "change_pct": 6.83, + "change_pct": -5.01, "pnl_pct": null, "type": "自选策略" }, { "code": "00981", "name": "中芯国际", - "change_pct": 3.14, - "pnl_pct": 3.29, + "change_pct": -1.33, + "pnl_pct": 18.15, "type": "持仓策略" }, { "code": "300308", "name": "中际旭创", - "change_pct": 1.06, + "change_pct": -5.23, "pnl_pct": null, "type": "自选策略" }, { "code": "600519", "name": "贵州茅台", - "change_pct": 2.17, + "change_pct": -1.53, "pnl_pct": null, "type": "自选策略" }, { "code": "601318", "name": "中国平安", - "change_pct": 5.27, + "change_pct": -3.04, "pnl_pct": null, "type": "自选策略" }, { "code": "603259", "name": "药明康德", - "change_pct": 4.0, - "pnl_pct": 11.05, + "change_pct": -0.49, + "pnl_pct": 10.51, "type": "持仓策略" }, - { - "code": "603565", - "name": "中谷物流", - "change_pct": 0.1, - "pnl_pct": null, - "type": "自选策略" - }, { "code": "688630", "name": "芯碁微装", - "change_pct": -2.79, + "change_pct": -5.15, "pnl_pct": null, "type": "自选策略" } @@ -134,8 +120,8 @@ { "code": "001309", "name": "德明利", - "change_pct": 3.52, - "pnl_pct": null, + "change_pct": 2.43, + "pnl_pct": 2.44, "type": "自选" } ], @@ -143,29 +129,29 @@ { "code": "002594", "name": "比亚迪", - "change_pct": -0.61, + "change_pct": -2.96, "pnl_pct": null, "type": "自选" }, { "code": "01211", "name": "比亚迪股份", - "change_pct": -3.09, - "pnl_pct": -25.73, + "change_pct": -3.19, + "pnl_pct": -16.64, "type": "持仓" }, { "code": "09868", "name": "小鹏集团-W", - "change_pct": 0.1, - "pnl_pct": 8.05, + "change_pct": -4.25, + "pnl_pct": 10.95, "type": "自选" }, { "code": "300750", "name": "宁德时代", - "change_pct": 4.45, - "pnl_pct": 1.79, + "change_pct": -4.03, + "pnl_pct": -2.31, "type": "持仓" } ], @@ -173,15 +159,15 @@ { "code": "00700", "name": "腾讯控股", - "change_pct": -1.64, - "pnl_pct": -2.86, + "change_pct": -4.2, + "pnl_pct": 7.89, "type": "持仓" }, { "code": "09988", "name": "阿里巴巴-W", - "change_pct": -1.91, - "pnl_pct": -18.77, + "change_pct": -3.84, + "pnl_pct": -9.44, "type": "持仓" } ], @@ -189,7 +175,7 @@ { "code": "00968", "name": "信义光能", - "change_pct": -3.83, + "change_pct": -7.96, "pnl_pct": null, "type": "自选" } @@ -198,7 +184,7 @@ { "code": "01070", "name": "TCL电子", - "change_pct": -3.11, + "change_pct": 0.84, "pnl_pct": null, "type": "自选" } @@ -207,8 +193,8 @@ { "code": "01088", "name": "中国神华", - "change_pct": 0.57, - "pnl_pct": -7.77, + "change_pct": -1.22, + "pnl_pct": 5.63, "type": "自选" } ], @@ -216,8 +202,8 @@ { "code": "01478", "name": "丘钛科技", - "change_pct": -4.23, - "pnl_pct": -39.57, + "change_pct": -5.97, + "pnl_pct": -34.11, "type": "持仓" } ], @@ -225,8 +211,8 @@ { "code": "01888", "name": "建滔积层板", - "change_pct": 0.11, - "pnl_pct": 3.6, + "change_pct": -5.11, + "pnl_pct": 13.98, "type": "自选" } ], @@ -234,8 +220,8 @@ { "code": "02202", "name": "万科企业", - "change_pct": 2.07, - "pnl_pct": -47.4, + "change_pct": -2.83, + "pnl_pct": -40.74, "type": "持仓" } ], @@ -243,8 +229,8 @@ { "code": "02318", "name": "中国平安", - "change_pct": 2.04, - "pnl_pct": 7.91, + "change_pct": -2.46, + "pnl_pct": 12.89, "type": "自选" } ], @@ -252,7 +238,7 @@ { "code": "02359", "name": "药明康德", - "change_pct": 3.19, + "change_pct": -1.51, "pnl_pct": null, "type": "自选" } @@ -261,15 +247,15 @@ { "code": "02388", "name": "中银香港", - "change_pct": -1.12, - "pnl_pct": 8.25, + "change_pct": -1.26, + "pnl_pct": 23.91, "type": "持仓" }, { "code": "600036", "name": "招商银行", - "change_pct": 1.05, - "pnl_pct": -1.33, + "change_pct": -0.66, + "pnl_pct": -1.99, "type": "持仓" } ], @@ -277,7 +263,7 @@ { "code": "02628", "name": "中国人寿", - "change_pct": 7.99, + "change_pct": -3.17, "pnl_pct": null, "type": "自选" } @@ -286,7 +272,7 @@ { "code": "06160", "name": "百济神州", - "change_pct": -1.53, + "change_pct": -0.19, "pnl_pct": null, "type": "持仓" } @@ -295,7 +281,7 @@ { "code": "06869", "name": "长飞光纤光缆", - "change_pct": 31.31, + "change_pct": -7.48, "pnl_pct": null, "type": "自选" } @@ -304,8 +290,8 @@ { "code": "300035", "name": "中科电气", - "change_pct": -1.27, - "pnl_pct": -23.06, + "change_pct": -4.61, + "pnl_pct": -26.61, "type": "持仓" } ], @@ -313,7 +299,7 @@ { "code": "300124", "name": "汇川技术", - "change_pct": -3.13, + "change_pct": -3.09, "pnl_pct": null, "type": "自选" } @@ -322,8 +308,8 @@ { "code": "300548", "name": "长芯博创", - "change_pct": 5.71, - "pnl_pct": 28.79, + "change_pct": -4.05, + "pnl_pct": 23.57, "type": "自选" } ], @@ -331,8 +317,8 @@ { "code": "300690", "name": "双一科技", - "change_pct": 1.17, - "pnl_pct": -11.1, + "change_pct": -2.19, + "pnl_pct": -13.05, "type": "持仓" } ], @@ -340,8 +326,8 @@ { "code": "518880", "name": "黄金ETF华安", - "change_pct": -2.16, - "pnl_pct": -28.51, + "change_pct": -2.05, + "pnl_pct": -29.98, "type": "持仓" } ], @@ -349,8 +335,8 @@ { "code": "600563", "name": "法拉电子", - "change_pct": 2.82, - "pnl_pct": 11.21, + "change_pct": -6.03, + "pnl_pct": 10.59, "type": "持仓" } ], @@ -358,8 +344,8 @@ { "code": "600739", "name": "辽宁成大", - "change_pct": 6.44, - "pnl_pct": -12.58, + "change_pct": -0.84, + "pnl_pct": -13.32, "type": "持仓" } ], @@ -367,8 +353,8 @@ { "code": "601899", "name": "紫金矿业", - "change_pct": 2.53, - "pnl_pct": -24.41, + "change_pct": -8.84, + "pnl_pct": -31.09, "type": "持仓" } ], @@ -376,8 +362,8 @@ { "code": "688411", "name": "海博思创", - "change_pct": 2.13, - "pnl_pct": 10.97, + "change_pct": -5.14, + "pnl_pct": null, "type": "持仓" } ], @@ -385,7 +371,7 @@ { "code": "688639", "name": "华恒生物", - "change_pct": 0.62, + "change_pct": 3.95, "pnl_pct": null, "type": "持仓" } @@ -394,14 +380,14 @@ { "code": "688795", "name": "摩尔线程-U", - "change_pct": 0.22, + "change_pct": 5.0, "pnl_pct": null, "type": "自选" }, { "code": "688802", "name": "沐曦股份-U", - "change_pct": -1.54, + "change_pct": 1.45, "pnl_pct": null, "type": "自选" } @@ -410,8 +396,8 @@ { "code": "688981", "name": "中芯国际", - "change_pct": 3.48, - "pnl_pct": 15.49, + "change_pct": -2.67, + "pnl_pct": 12.4, "type": "自选" } ] @@ -424,29 +410,29 @@ "type": "自选策略", "sector": "", "business": "", - "price": 108.33, - "prev_close": 98.48, - "open": 103.08, - "high": 108.33, - "low": 101.58, - "change_pct": 10.0, - "volume": 831319.0, - "pe": 108.33, - "total_market_cap": 1573.95, - "high_52w": 88.63, - "low_52w": 0.69, - "turnover_rate": 5.72, - "amplitude": 6.85, + "price": 102.5, + "prev_close": 108.33, + "open": 113.99, + "high": 113.99, + "low": 101.08, + "change_pct": -5.38, + "volume": 1383866.0, + "pe": 119.16, + "total_market_cap": 1489.25, + "high_52w": 97.5, + "low_52w": 1.31, + "turnover_rate": 9.52, + "amplitude": 11.92, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标114.75 | 止损98.48 | 买入区106.16~104.99 | 信号:量价齐升,可买入", + "action": "盈利持有 | 目标119.16 | 止损102.39 | 买入区103.88~108.12", "entry_zone": "", - "stop_loss": 98.48, - "take_profit": 114.75, + "stop_loss": 102.39, + "take_profit": 119.16, "type": "自选策略", - "tech_snapshot": "形态:光头光脚阳线/bullish 量价:主动买盘占优 强撑:97.41 弱撑:98.48 弱压:110.58 强压:114.75" + "tech_snapshot": "形态:光头光脚阴线/neutral 量价:主动买盘占优 强撑:97.5 弱撑:102.39 弱压:111.8 强压:119.16" }, "pnl_pct": null }, @@ -457,31 +443,31 @@ "type": "持仓策略", "sector": "", "business": "", - "price": 15.18, - "prev_close": 15.45, - "open": 15.44, - "high": 16.0, - "low": 14.7, - "change_pct": -1.75, - "volume": 691829.0, - "pe": 17.0, - "total_market_cap": 139.35, - "high_52w": 13.91, - "low_52w": 0.96, - "turnover_rate": 7.54, - "amplitude": 8.41, - "cost": 14.83, + "price": 14.98, + "prev_close": 15.18, + "open": 15.03, + "high": 15.6, + "low": 14.75, + "change_pct": -1.32, + "volume": 729693.0, + "pe": 16.7, + "total_market_cap": 137.52, + "high_52w": 13.66, + "low_52w": 1.04, + "turnover_rate": 7.95, + "amplitude": 5.6, + "cost": 14.8336, "shares": 1400, - "position_pct": 2.05, + "position_pct": 2.1, "strategy": { - "action": "盈利持有 | 止损13.91 | 目标17.0 | 买入区14.53~15.26 | 信号:温和放量,持有", + "action": "盈利持有 | 止损参考13.91 | 买入区14.53~15.26", "entry_zone": "", "stop_loss": 13.91, "take_profit": 17.0, "type": "持仓策略", - "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:主动买盘占优 强撑:13.91 弱撑:14.53 弱压:15.83 强压:17.0" + "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:主动买盘占优 强撑:13.66 弱撑:14.74 弱压:15.56 强压:16.7" }, - "pnl_pct": 2.36 + "pnl_pct": 0.99 }, { "code": "000711", @@ -490,29 +476,29 @@ "type": "自选策略", "sector": "", "business": "", - "price": 5.39, - "prev_close": 5.2, - "open": 5.28, - "high": 5.46, - "low": 5.28, - "change_pct": 3.65, - "volume": 816831.0, - "pe": 5.46, - "total_market_cap": 128.35, - "high_52w": 4.94, - "low_52w": 1.02, - "turnover_rate": 3.43, - "amplitude": 3.46, + "price": 5.12, + "prev_close": 5.39, + "open": 5.34, + "high": 5.38, + "low": 5.12, + "change_pct": -5.01, + "volume": 779357.0, + "pe": 5.66, + "total_market_cap": 121.92, + "high_52w": 5.12, + "low_52w": 0.93, + "turnover_rate": 3.27, + "amplitude": 4.82, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标6.1 | 止损5.2 | 买入区5.33~5.55 | 信号:放量下跌,等企稳再入", + "action": "盈利持有 | 目标5.66 | 止损5.06 | 买入区5.12~5.3 | 信号:放量下跌,等企稳再入", "entry_zone": "", - "stop_loss": 5.2, - "take_profit": 6.1, + "stop_loss": 5.06, + "take_profit": 5.66, "type": "自选策略", - "tech_snapshot": "形态:光头光脚阳线/bullish 量价:主动卖盘占优 强撑:4.94 弱撑:5.2 弱压:5.49 强压:6.1" + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:主动卖盘占优 强撑:4.54 弱撑:5.13 弱压:5.39 强压:5.66" }, "pnl_pct": null }, @@ -523,64 +509,31 @@ "type": "自选", "sector": "半导体/存储", "business": "存储芯片(闪存主控/NAND/DRAM模组),嵌入式存储解决方案", - "price": 737.07, - "prev_close": 712.0, - "open": 726.0, - "high": 740.0, + "price": 755.01, + "prev_close": 737.07, + "open": 730.0, + "high": 796.0, "low": 706.0, - "change_pct": 3.52, - "volume": 151962.0, - "pe": 783.2, - "total_market_cap": 1215.54, - "high_52w": 640.8, - "low_52w": 1.06, - "turnover_rate": 9.21, - "amplitude": 4.78, - "cost": 0, - "shares": 0, - "position_pct": 0, + "change_pct": 2.43, + "volume": 171855.0, + "pe": 810.78, + "total_market_cap": 1245.12, + "high_52w": 663.36, + "low_52w": 1.2, + "turnover_rate": 10.42, + "amplitude": 12.21, + "cost": 737.0374, + "shares": 100, + "position_pct": 7.55, "strategy": { - "action": "盈利持有 | 目标783.2 | 止损702.63 | 买入区709.87~734.86", + "action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标810.78 | 止损724.0 | 买入区762.44~758.71 | 信号:量价齐升,可买入", "entry_zone": "", - "stop_loss": 702.63, - "take_profit": 783.2, - "type": "自选策略", - "tech_snapshot": "形态:长影星线/neutral 量价:主动买盘占优 强撑:640.8 弱撑:706.67 弱压:740.67 强压:783.2" + "stop_loss": 724.0, + "take_profit": 810.78, + "type": "持仓策略", + "tech_snapshot": "形态:光头光脚阳线/bullish 量价:主动买盘占优 强撑:663.36 弱撑:724.0 弱压:814.0 强压:810.78" }, - "pnl_pct": null - }, - { - "code": "002171", - "name": "楚江新材", - "market": "A股", - "type": "自选策略", - "sector": "", - "business": "", - "price": 16.43, - "prev_close": 15.38, - "open": 15.85, - "high": 16.47, - "low": 15.24, - "change_pct": 6.83, - "volume": 2316900.0, - "pe": 16.92, - "total_market_cap": 265.14, - "high_52w": 13.84, - "low_52w": 1.18, - "turnover_rate": 14.36, - "amplitude": 8.0, - "cost": 0, - "shares": 0, - "position_pct": 0, - "strategy": { - "action": "", - "entry_zone": "", - "stop_loss": 14.78, - "take_profit": 16.47, - "type": "自选策略", - "tech_snapshot": "" - }, - "pnl_pct": null + "pnl_pct": 2.44 }, { "code": "002594", @@ -589,29 +542,29 @@ "type": "自选", "sector": "新能源汽车", "business": "新能源整车(乘用车/商用车),动力电池(弗迪电池),半导体(比亚迪半导体)", - "price": 87.59, - "prev_close": 88.13, - "open": 87.0, - "high": 87.9, - "low": 84.6, - "change_pct": -0.61, - "volume": 637242.0, - "pe": 96.94, - "total_market_cap": 3053.92, - "high_52w": 79.32, - "low_52w": 1.62, - "turnover_rate": 1.83, - "amplitude": 3.74, + "price": 85.0, + "prev_close": 87.59, + "open": 86.91, + "high": 88.32, + "low": 84.75, + "change_pct": -2.96, + "volume": 466217.0, + "pe": 96.35, + "total_market_cap": 2963.62, + "high_52w": 78.83, + "low_52w": 1.05, + "turnover_rate": 1.34, + "amplitude": 4.08, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标93.26 | 止损82.94 | 买入区83.79~87.07 | 信号:放量下跌,等企稳再入", + "action": "盈利持有 | 目标94.0 | 止损83.36 | 买入区84.22~87.62 | 信号:放量下跌,等企稳再入", "entry_zone": "", - "stop_loss": 82.94, - "take_profit": 93.26, + "stop_loss": 83.36, + "take_profit": 94.0, "type": "自选策略", - "tech_snapshot": "形态:带下影阴线/neutral 量价:主动卖盘占优 强撑:79.32 弱撑:84.75 弱压:88.13 强压:93.26" + "tech_snapshot": "形态:带上影阴线/bearish 量价:主动卖盘占优 强撑:79.4 弱撑:85.09 弱压:87.59 强压:94.0" }, "pnl_pct": null }, @@ -622,31 +575,31 @@ "type": "持仓", "sector": "互联网", "business": "社交(微信/QQ),游戏,云服务,AI,投资", - "price": 433.0, - "prev_close": 440.2, + "price": 414.8, + "prev_close": 433.0, "open": null, - "high": 439.0, - "low": 428.4, - "change_pct": -1.64, - "volume": 31563111.0, - "pe": 14.99, - "total_market_cap": 9108117567.0, + "high": 432.4, + "low": 413.6, + "change_pct": -4.2, + "volume": 43435789.0, + "pe": 14.36, + "total_market_cap": 9108129079.0, "high_52w": 677.7, - "low_52w": 420.4, + "low_52w": 413.6, "turnover_rate": null, "amplitude": null, - "cost": 445.7552, + "cost": 384.46, "shares": 100, - "position_pct": 3.72, + "position_pct": 3.59, "strategy": { - "action": "持有观察 | ⚠️盈亏比偏低(1:1.0),不建议加仓 | 止损362.24 | 目标456.57 | 买入区430.6~434.8 | 信号:持有", + "action": "持有观察 | ⚠️盈亏比偏低(1:1.1),不建议加仓 | 止损357.8 | 目标484.2 | 买入区409.6~421.0 | 信号:持有", "entry_zone": "", - "stop_loss": 362.24, - "take_profit": 456.57, + "stop_loss": 357.8, + "take_profit": 484.2, "type": "持仓策略", - "tech_snapshot": "形态:带下影阴线/neutral 量价:数据不足 强撑:389.0 弱撑:430.6 弱压:440.2 强压:480.6" + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:357.8 弱撑:409.6 弱压:433.0 强压:484.2" }, - "pnl_pct": -2.86 + "pnl_pct": 7.89 }, { "code": "00968", @@ -655,29 +608,29 @@ "type": "自选", "sector": "新能源/光伏", "business": "光伏玻璃全球龙头,太阳能发电站运营,EVA胶膜", - "price": 2.26, - "prev_close": 2.35, + "price": 2.08, + "prev_close": 2.26, "open": null, - "high": 2.35, - "low": 2.2, - "change_pct": -3.83, - "volume": 111246478.0, - "pe": 22.11, + "high": 2.26, + "low": 2.04, + "change_pct": -7.96, + "volume": 116153342.0, + "pe": 20.35, "total_market_cap": 9147043615.0, "high_52w": 4.092, - "low_52w": 2.2, + "low_52w": 2.04, "turnover_rate": null, "amplitude": null, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标2.57 | 止损2.02 | 买入区2.2~2.28", + "action": "盈利持有 | 目标2.57 | 止损2.05 | 买入区2.07~2.15", "entry_zone": "", - "stop_loss": 2.02, + "stop_loss": 2.05, "take_profit": 2.57, "type": "自选策略", - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:1.95 弱撑:2.18 弱压:2.35 强压:2.57" + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:1.73 弱撑:2.05 弱压:2.26 强压:2.57" }, "pnl_pct": null }, @@ -688,31 +641,31 @@ "type": "持仓策略", "sector": "", "business": "", - "price": 78.9, - "prev_close": 76.5, + "price": 77.85, + "prev_close": 78.9, "open": null, - "high": 82.4, - "low": 77.15, - "change_pct": 3.14, - "volume": 171994651.0, - "pe": 102.15, + "high": 84.1, + "low": 76.5, + "change_pct": -1.33, + "volume": 182963530.0, + "pe": 100.79, "total_market_cap": 8013494877.0, "high_52w": 93.5, - "low_52w": 39.35, + "low_52w": 41.0, "turnover_rate": null, "amplitude": null, - "cost": 76.3899, + "cost": 65.89, "shares": 500, - "position_pct": 3.23, + "position_pct": 3.37, "strategy": { - "action": "盈利持有 | ⚠️盈亏比偏低(1:1.1),不建议加仓 | 止损66.37 | 目标90.62 | 买入区76.5~79.52 | 信号:持有", + "action": "盈利持有 | ⚠️盈亏比偏低(1:1.2),不建议加仓 | 止损69.51 | 目标93.75 | 买入区77.8~80.95 | 信号:持有", "entry_zone": "", - "stop_loss": 66.37, - "take_profit": 90.62, + "stop_loss": 69.51, + "take_profit": 93.75, "type": "持仓策略", - "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:数据不足 强撑:68.42 弱撑:76.5 弱压:81.88 强压:90.62" + "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:数据不足 强撑:68.15 弱撑:77.8 弱压:83.15 强压:93.75" }, - "pnl_pct": 3.29 + "pnl_pct": 18.15 }, { "code": "01070", @@ -721,14 +674,14 @@ "type": "自选", "sector": "消费电子/家电", "business": "电视机/显示器全球出货前列,光伏储能,智能家居", - "price": 13.09, - "prev_close": 13.51, + "price": 13.2, + "prev_close": 13.09, "open": null, - "high": 13.51, - "low": 12.97, - "change_pct": -3.11, - "volume": 9341935.0, - "pe": 22.96, + "high": 13.47, + "low": 12.98, + "change_pct": 0.84, + "volume": 10686427.0, + "pe": 23.15, "total_market_cap": 2520935155.0, "high_52w": 16.19, "low_52w": 8.802, @@ -738,12 +691,12 @@ "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标15.28 | 止损11.78 | 买入区12.78~13.3 | 信号:接近支撑位,关注", + "action": "盈利持有 | 目标15.29 | 止损12.71 | 买入区12.84~13.36 | 信号:接近支撑位,关注", "entry_zone": "", - "stop_loss": 11.78, - "take_profit": 15.28, + "stop_loss": 12.71, + "take_profit": 15.29, "type": "自选策略", - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:11.08 弱撑:12.84 弱压:13.51 强压:15.28" + "tech_snapshot": "形态:光头光脚阴线/neutral 量价:数据不足 强撑:11.07 弱撑:12.9 弱压:13.39 强压:15.29" }, "pnl_pct": null }, @@ -754,31 +707,31 @@ "type": "自选", "sector": "煤炭/能源", "business": "煤炭开采(动力煤/焦煤),煤化工,铁路/港口运输", - "price": 42.58, - "prev_close": 42.34, + "price": 42.06, + "prev_close": 42.58, "open": null, - "high": 43.28, - "low": 41.54, - "change_pct": 0.57, - "volume": 16485932.0, - "pe": 17.15, + "high": 43.14, + "low": 41.92, + "change_pct": -1.22, + "volume": 14552856.0, + "pe": 16.94, "total_market_cap": 21689434304.0, "high_52w": 49.62, "low_52w": 29.076, "turnover_rate": null, "amplitude": null, - "cost": 46.1659, + "cost": 39.82, "shares": 500, - "position_pct": 1.79, + "position_pct": 1.82, "strategy": { - "action": "持有观察 | ⚠️盈亏比偏低(1:0.8),不建议加仓 | 止损37.9 | 目标46.43 | 买入区41.91~42.37 | 信号:持有", + "action": "持有观察 | ⚠️盈亏比偏低(1:1.0),不建议加仓 | 止损39.42 | 目标46.77 | 买入区42.27~42.71 | 信号:持有", "entry_zone": "", - "stop_loss": 37.9, - "take_profit": 46.43, + "stop_loss": 39.42, + "take_profit": 46.77, "type": "持仓策略", - "tech_snapshot": "形态:带下影阳线/bullish 量价:数据不足 强撑:38.31 弱撑:41.91 弱压:43.19 强压:46.43" + "tech_snapshot": "形态:锤子线/T字线/bullish 量价:数据不足 强撑:38.65 弱撑:42.27 弱压:43.15 强压:46.77" }, - "pnl_pct": -7.77 + "pnl_pct": 5.63 }, { "code": "01211", @@ -787,31 +740,31 @@ "type": "持仓", "sector": "新能源汽车", "business": "新能源整车(乘用车/商用车),动力电池,电机电控", - "price": 78.35, - "prev_close": 80.85, + "price": 75.85, + "prev_close": 78.35, "open": null, - "high": 80.25, - "low": 76.7, - "change_pct": -3.09, - "volume": 40011785.0, - "pe": 38.6, + "high": 78.3, + "low": 75.6, + "change_pct": -3.19, + "volume": 38196800.0, + "pe": 37.37, "total_market_cap": 9117197565.0, "high_52w": 135.889, - "low_52w": 76.7, + "low_52w": 75.6, "turnover_rate": null, "amplitude": null, - "cost": 105.4926, + "cost": 90.99, "shares": 600, - "position_pct": 4.1, + "position_pct": 3.94, "strategy": { - "action": "深套持有 | 深套持有 | 止损61.7 | 目标85.12 | 买入区70.16~81.85 | 信号:持有", + "action": "深套持有 | 深套持有 | 止损65.02 | 目标88.87 | 买入区68.85~80.33 | 信号:持有", "entry_zone": "", - "stop_loss": 61.7, - "take_profit": 85.12, + "stop_loss": 65.02, + "take_profit": 88.87, "type": "持仓策略", - "tech_snapshot": "形态:带下影阴线/neutral 量价:数据不足 强撑:67.0 弱撑:76.35 弱压:80.85 强压:89.6" + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:65.07 弱撑:75.63 弱压:78.35 强压:88.87" }, - "pnl_pct": -25.73 + "pnl_pct": -16.64 }, { "code": "01478", @@ -820,31 +773,31 @@ "type": "持仓", "sector": "消费电子", "business": "摄像头模组(CCM),指纹识别模组,车载摄像头", - "price": 8.38, - "prev_close": 8.75, + "price": 7.88, + "prev_close": 8.38, "open": null, - "high": 8.9, - "low": 8.3, - "change_pct": -4.23, - "volume": 5188908.0, - "pe": 6.06, + "high": 8.54, + "low": 7.8, + "change_pct": -5.97, + "volume": 8016500.0, + "pe": 5.69, "total_market_cap": 1194890725.0, "high_52w": 16.44, - "low_52w": 6.4, + "low_52w": 6.82, "turnover_rate": null, "amplitude": null, - "cost": 13.8666, + "cost": 11.96, "shares": 11000, - "position_pct": 8.13, + "position_pct": 7.49, "strategy": { - "action": "深套持有 | 深套持有 | 止损6.62 | 目标9.37 | 买入区7.52~8.78 | 信号:持有", + "action": "深套持有 | 深套持有 | 止损6.8 | 目标9.64 | 买入区7.3~8.52 | 信号:持有", "entry_zone": "", - "stop_loss": 6.62, - "take_profit": 9.37, + "stop_loss": 6.8, + "take_profit": 9.64, "type": "持仓策略", - "tech_snapshot": "形态:光头光脚阴线/neutral 量价:数据不足 强撑:7.18 弱撑:8.14 弱压:8.75 强压:9.86" + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:6.8 弱撑:7.9 弱压:8.42 强压:9.64" }, - "pnl_pct": -39.57 + "pnl_pct": -34.11 }, { "code": "01888", @@ -853,31 +806,31 @@ "type": "自选", "sector": "电子/覆铜板", "business": "覆铜板(CCL)全球龙头,印刷线路板(PCB),玻璃纤维布", - "price": 91.95, - "prev_close": 91.85, + "price": 87.25, + "prev_close": 91.95, "open": null, - "high": 99.65, - "low": 88.4, - "change_pct": 0.11, - "volume": 82815057.0, - "pe": 118.64, - "total_market_cap": 3151150000.0, + "high": 91.95, + "low": 83.7, + "change_pct": -5.11, + "volume": 85228668.0, + "pe": 112.59, + "total_market_cap": 3151450000.0, "high_52w": 99.65, - "low_52w": 8.12, + "low_52w": 8.29, "turnover_rate": null, "amplitude": null, - "cost": 88.7544, + "cost": 76.55, "shares": 500, - "position_pct": 3.88, + "position_pct": 3.77, "strategy": { - "action": "盈利持有 | 短炒强趋势持 | 止损81.61 | 目标131.46 | 买入区87.18~91.54 | 信号:强趋势持", + "action": "持有观察 | 短炒强趋势持 | 止损75.7 | 目标82.76 | 买入区82.28~86.39 | 信号:强趋势持", "entry_zone": "", - "stop_loss": 81.61, - "take_profit": 131.46, + "stop_loss": 75.7, + "take_profit": 82.76, "type": "持仓策略", - "tech_snapshot": "形态:倒T线/射击之星/neutral 量价:数据不足 强撑:57.27 弱撑:87.18 弱压:98.43 强压:129.57" + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:50.97 弱撑:82.28 弱压:91.95 强压:123.27" }, - "pnl_pct": 3.6 + "pnl_pct": 13.98 }, { "code": "02202", @@ -886,31 +839,31 @@ "type": "持仓", "sector": "房地产", "business": "住宅开发,物业服务(万物云),商业地产,长租", - "price": 2.47, - "prev_close": 2.42, + "price": 2.4, + "prev_close": 2.47, "open": null, - "high": 2.48, - "low": 2.35, - "change_pct": 2.07, - "volume": 22071230.0, - "pe": -1.09, + "high": 2.53, + "low": 2.37, + "change_pct": -2.83, + "volume": 23503824.0, + "pe": -1.06, "total_market_cap": 11930709471.0, "high_52w": 5.99, "low_52w": 2.35, "turnover_rate": null, "amplitude": null, - "cost": 4.6955, + "cost": 4.05, "shares": 19700, - "position_pct": 4.03, + "position_pct": 4.1, "strategy": { - "action": "深套持有 | 深套持有 | 止损1.91 | 目标2.63 | 买入区2.19~2.55 | 信号:持有", + "action": "深套持有 | 深套持有 | 止损2.08 | 目标2.81 | 买入区2.16~2.52 | 信号:持有", "entry_zone": "", - "stop_loss": 1.91, - "take_profit": 2.63, + "stop_loss": 2.08, + "take_profit": 2.81, "type": "持仓策略", - "tech_snapshot": "形态:锤子线/T字线/bullish 量价:数据不足 强撑:2.05 弱撑:2.37 弱压:2.46 强压:2.77" + "tech_snapshot": "形态:带上影阴线/bearish 量价:数据不足 强撑:2.09 弱撑:2.36 弱压:2.49 强压:2.81" }, - "pnl_pct": -47.4 + "pnl_pct": -40.74 }, { "code": "02318", @@ -919,31 +872,31 @@ "type": "自选", "sector": "金融/保险", "business": "综合金融(保险/银行/证券/信托),科技金融", - "price": 54.95, - "prev_close": 53.85, + "price": 53.6, + "prev_close": 54.95, "open": null, - "high": 55.35, - "low": 52.6, - "change_pct": 2.04, - "volume": 61205418.0, - "pe": 8.78, + "high": 55.5, + "low": 53.3, + "change_pct": -2.46, + "volume": 44484166.0, + "pe": 8.56, "total_market_cap": 18107641995.0, "high_52w": 72.689, - "low_52w": 43.448, + "low_52w": 44.848, "turnover_rate": null, "amplitude": null, - "cost": 50.92, + "cost": 47.48, "shares": 500, - "position_pct": 2.47, + "position_pct": 2.32, "strategy": { - "action": "盈利持有 | 目标60.4 | 止损48.1 | 买入区53.15~54.25 | 信号:弱势持有", + "action": "盈利持有 | 止损参考53.3 | 买入区53.85~56.05 | 信号:接近支撑位,关注", "entry_zone": "", - "stop_loss": 48.1, - "take_profit": 60.4, - "type": "自选策略", - "tech_snapshot": "形态:光头光脚阳线/bullish 量价:数据不足 强撑:48.1 弱撑:53.15 弱压:55.9 强压:60.4" + "stop_loss": 53.3, + "take_profit": 60.72, + "type": "持仓策略", + "tech_snapshot": "形态:带上影阴线/bearish 量价:数据不足 强撑:48.23 弱撑:53.27 弱压:55.07 强压:60.53" }, - "pnl_pct": 7.91 + "pnl_pct": 12.89 }, { "code": "02359", @@ -952,29 +905,29 @@ "type": "自选", "sector": "医药/CRO", "business": "小分子药物发现/临床前CRO,化学药/生物药CDMO", - "price": 132.8, - "prev_close": 128.7, + "price": 130.8, + "prev_close": 132.8, "open": null, - "high": 134.8, - "low": 126.4, - "change_pct": 3.19, - "volume": 6096616.0, - "pe": 18.68, + "high": 135.7, + "low": 130.0, + "change_pct": -1.51, + "volume": 5315637.0, + "pe": 18.4, "total_market_cap": 2963608255.0, "high_52w": 146.197, - "low_52w": 69.713, + "low_52w": 72.463, "turnover_rate": null, "amplitude": null, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标139.19 | 止损126.49 | 买入区127.79~131.57", + "action": "盈利持有 | 目标147.67 | 止损127.85 | 买入区129.16~134.44 | 信号:接近支撑位,关注", "entry_zone": "", - "stop_loss": 126.49, - "take_profit": 139.19, + "stop_loss": 127.85, + "take_profit": 147.67, "type": "自选策略", - "tech_snapshot": "形态:带上影阳线/neutral 量价:数据不足 强撑:118.48 弱撑:126.97 弱压:131.27 强压:139.19" + "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:数据不足 强撑:118.47 弱撑:130.43 弱压:134.53 强压:147.67" }, "pnl_pct": null }, @@ -985,31 +938,31 @@ "type": "持仓", "sector": "银行", "business": "香港发钞行之一,零售银行,财富管理,跨境业务", - "price": 47.6, - "prev_close": 48.14, + "price": 47.0, + "prev_close": 47.6, "open": null, - "high": 48.0, - "low": 47.12, - "change_pct": -1.12, - "volume": 15222527.0, - "pe": 12.54, + "high": 47.86, + "low": 46.9, + "change_pct": -1.26, + "volume": 14056638.0, + "pe": 12.39, "total_market_cap": 10572780266.0, "high_52w": 49.36, "low_52w": 32.63, "turnover_rate": null, "amplitude": null, - "cost": 43.9719, + "cost": 37.93, "shares": 1000, - "position_pct": 4.07, + "position_pct": 4.06, "strategy": { - "action": "盈利良好 | 止损44.75 | 目标50.16 | 买入区47.09~48.14 | 信号:持有", + "action": "盈利良好 | 止损45.98 | 目标51.25 | 买入区47.06~48.61 | 信号:持有", "entry_zone": "", - "stop_loss": 44.75, - "take_profit": 50.16, + "stop_loss": 45.98, + "take_profit": 51.25, "type": "持仓策略", - "tech_snapshot": "形态:锤子线/T字线/bullish 量价:数据不足 强撑:44.94 弱撑:47.09 弱压:48.14 强压:50.16" + "tech_snapshot": "形态:锤子线/T字线/bullish 量价:数据不足 强撑:43.67 弱撑:47.06 弱压:47.82 强压:51.25" }, - "pnl_pct": 8.25 + "pnl_pct": 23.91 }, { "code": "02628", @@ -1018,29 +971,29 @@ "type": "自选", "sector": "保险", "business": "人身保险(寿险/健康险/意外险),养老保险", - "price": 30.26, - "prev_close": 28.02, + "price": 29.3, + "prev_close": 30.26, "open": null, - "high": 30.76, - "low": 27.48, - "change_pct": 7.99, - "volume": 97684000.0, - "pe": 9.68, + "high": 30.56, + "low": 29.0, + "change_pct": -3.17, + "volume": 37947073.0, + "pe": 9.37, "total_market_cap": 28264705000.0, "high_52w": 36.16, - "low_52w": 17.387, + "low_52w": 17.72, "turnover_rate": null, "amplitude": null, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | ⚠️盈亏比偏低(1:1.9),谨慎买入 | 目标33.08 | 止损28.02 | 买入区29.18~30.04 | 信号:阳线企稳,可买入", + "action": "盈利持有 | 目标33.9 | 止损28.61 | 买入区28.91~30.09 | 信号:接近支撑位,关注", "entry_zone": "", - "stop_loss": 28.02, - "take_profit": 33.08, + "stop_loss": 28.61, + "take_profit": 33.9, "type": "自选策略", - "tech_snapshot": "形态:光头光脚阳线/bullish 量价:数据不足 强撑:24.88 弱撑:28.02 弱压:30.48 强压:33.08" + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:25.7 弱撑:29.04 弱压:30.26 强压:33.9" }, "pnl_pct": null }, @@ -1051,14 +1004,14 @@ "type": "持仓", "sector": "生物医药", "business": "创新药(肿瘤/免疫),泽布替尼/替雷利珠单抗,全球化", - "price": 161.2, - "prev_close": 163.7, + "price": 160.9, + "prev_close": 161.2, "open": null, - "high": 162.6, - "low": 157.1, - "change_pct": -1.53, - "volume": 3117885.0, - "pe": 34.86, + "high": 168.3, + "low": 160.0, + "change_pct": -0.19, + "volume": 3779021.0, + "pe": 34.8, "total_market_cap": 1541419108.0, "high_52w": 229.4, "low_52w": 144.1, @@ -1068,12 +1021,12 @@ "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标170.27 | 止损154.72 | 买入区156.31~160.94 | 信号:接近支撑位,关注", + "action": "盈利持有 | 目标178.73 | 止损158.59 | 买入区160.23~166.65 | 信号:接近支撑位,关注", "entry_zone": "", - "stop_loss": 154.72, - "take_profit": 170.27, + "stop_loss": 158.59, + "take_profit": 178.73, "type": "自选策略", - "tech_snapshot": "形态:带下影阴线/neutral 量价:数据不足 强撑:148.87 弱撑:157.03 弱压:163.7 强压:170.27" + "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:数据不足 强撑:151.13 弱撑:161.2 弱压:166.97 强压:178.73" }, "pnl_pct": null }, @@ -1084,29 +1037,29 @@ "type": "自选", "sector": "通信/光缆", "business": "光纤预制棒/光纤/光缆全球龙头,通信线缆,数据中心", - "price": 286.0, - "prev_close": 217.8, + "price": 264.6, + "prev_close": 286.0, "open": null, - "high": 290.6, - "low": 235.0, - "change_pct": 31.31, - "volume": 48305855.0, - "pe": 105.56, + "high": 305.0, + "low": 260.2, + "change_pct": -7.48, + "volume": 32256541.0, + "pe": 97.66, "total_market_cap": 827905108.0, - "high_52w": 290.6, - "low_52w": 16.406, + "high_52w": 305.0, + "low_52w": 16.726, "turnover_rate": null, "amplitude": null, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | ⚠️盈亏比不足1:1.5,不建议买入 | 目标325.27 | 止损202.82 | 买入区271.66~260.79 | 信号:阳线企稳,可买入", + "action": "盈利持有 | 目标367.2 | 止损251.8 | 买入区262.25~272.95", "entry_zone": "", - "stop_loss": 202.82, - "take_profit": 325.27, + "stop_loss": 251.8, + "take_profit": 367.2, "type": "自选策略", - "tech_snapshot": "形态:光头光脚阳线/bullish 量价:数据不足 强撑:201.67 弱撑:217.8 弱压:291.93 强压:325.27" + "tech_snapshot": "形态:带上影阴线/neutral 量价:数据不足 强撑:189.6 弱撑:251.8 弱压:293.8 强压:367.2" }, "pnl_pct": null }, @@ -1117,31 +1070,31 @@ "type": "自选", "sector": "新能源汽车", "business": "智能电动汽车(SUV/轿车),自动驾驶技术(XNGP),飞行汽车", - "price": 51.55, - "prev_close": 51.5, + "price": 49.36, + "prev_close": 51.55, "open": null, - "high": 52.35, - "low": 49.04, - "change_pct": 0.1, - "volume": 23540610.0, - "pe": -12.21, + "high": 52.3, + "low": 48.82, + "change_pct": -4.25, + "volume": 19692832.0, + "pe": -11.69, "total_market_cap": 1914427023.0, "high_52w": 110.8, - "low_52w": 49.04, + "low_52w": 48.82, "turnover_rate": null, "amplitude": null, - "cost": 47.71, + "cost": 44.49, "shares": 700, - "position_pct": 3.25, + "position_pct": 2.99, "strategy": { - "action": "盈利持有 | 目标60.24 | 止损41.32 | 买入区49.91~50.78 | 信号:回踩支撑,可加仓", + "action": "盈利持有 | 止损参考49.83 | 买入区50.52~52.58 | 信号:接近支撑位,关注", "entry_zone": "", - "stop_loss": 41.32, - "take_profit": 60.24, - "type": "自选策略", - "tech_snapshot": "形态:锤子线/T字线/bullish 量价:数据不足 强撑:41.32 弱撑:49.91 弱压:52.52 强压:60.24" + "stop_loss": 49.83, + "take_profit": 60.53, + "type": "持仓策略", + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:41.33 弱撑:49.28 弱压:51.66 强压:60.25" }, - "pnl_pct": 8.05 + "pnl_pct": 10.95 }, { "code": "09988", @@ -1150,31 +1103,31 @@ "type": "持仓", "sector": "互联网", "business": "电商(淘宝/天猫),云计算(阿里云),本地生活(饿了么/高德)", - "price": 102.9, - "prev_close": 104.9, + "price": 98.95, + "prev_close": 102.9, "open": null, - "high": 103.8, - "low": 100.8, - "change_pct": -1.91, - "volume": 99214294.0, - "pe": 16.83, - "total_market_cap": 19193071958.0, + "high": 103.4, + "low": 98.7, + "change_pct": -3.84, + "volume": 98049349.0, + "pe": 16.2, + "total_market_cap": 19206078670.0, "high_52w": 185.173, - "low_52w": 100.773, + "low_52w": 98.7, "turnover_rate": null, "amplitude": null, - "cost": 126.6781, + "cost": 109.26, "shares": 700, - "position_pct": 6.2, + "position_pct": 5.99, "strategy": { - "action": "持有观察 | ⚠️盈亏比偏低(1:1.0),不建议加仓 | 止损83.69 | 目标108.94 | 买入区100.83~102.27 | 信号:持有", + "action": "深套持有 | 深套持有 | 止损84.66 | 目标114.73 | 买入区89.64~104.58 | 信号:持有", "entry_zone": "", - "stop_loss": 83.69, - "take_profit": 108.94, + "stop_loss": 84.66, + "take_profit": 114.73, "type": "持仓策略", - "tech_snapshot": "形态:锤子线/T字线/bullish 量价:数据不足 强撑:89.87 弱撑:100.83 弱压:104.9 强压:114.67" + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:86.73 弱撑:98.07 弱压:102.9 强压:114.73" }, - "pnl_pct": -18.77 + "pnl_pct": -9.44 }, { "code": "300035", @@ -1183,31 +1136,31 @@ "type": "持仓", "sector": "新能源材料", "business": "锂电负极材料(石墨化/硅碳),电磁屏蔽设备", - "price": 17.15, - "prev_close": 17.37, - "open": 17.2, - "high": 17.36, - "low": 16.24, - "change_pct": -1.27, - "volume": 299002.0, - "pe": 20.84, - "total_market_cap": 100.04, - "high_52w": 13.9, - "low_52w": 1.2, - "turnover_rate": 5.13, - "amplitude": 6.45, + "price": 16.36, + "prev_close": 17.15, + "open": 17.1, + "high": 17.1, + "low": 16.29, + "change_pct": -4.61, + "volume": 209392.0, + "pe": 20.58, + "total_market_cap": 95.44, + "high_52w": 13.72, + "low_52w": 0.84, + "turnover_rate": 3.59, + "amplitude": 4.72, "cost": 22.2914, "shares": 1400, - "position_pct": 2.38, + "position_pct": 2.29, "strategy": { - "action": "深套持有 | 深套持有 | 止损13.94 | 目标18.83 | 买入区15.22~17.76 | 信号:持有", + "action": "深套持有 | 深套持有 | 止损13.53 | 目标17.78 | 买入区14.92~17.41 | 信号:持有", "entry_zone": "", - "stop_loss": 13.94, - "take_profit": 18.83, + "stop_loss": 13.53, + "take_profit": 17.78, "type": "持仓策略", - "tech_snapshot": "形态:锤子线/T字线/bullish 量价:主动卖盘占优 强撑:14.85 弱撑:16.31 弱压:17.43 强压:18.83" + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:主动卖盘占优 强撑:14.74 弱撑:16.36 弱压:17.15 强压:18.72" }, - "pnl_pct": -23.06 + "pnl_pct": -26.61 }, { "code": "300124", @@ -1216,29 +1169,29 @@ "type": "自选", "sector": "工控自动化", "business": "工业自动化(伺服系统/PLC/变频器),新能源汽车电驱系统", - "price": 68.95, - "prev_close": 71.18, - "open": 71.25, - "high": 71.4, - "low": 66.83, - "change_pct": -3.13, - "volume": 509941.0, - "pe": 85.42, - "total_market_cap": 1661.91, - "high_52w": 56.94, - "low_52w": 1.35, - "turnover_rate": 2.12, - "amplitude": 6.42, + "price": 66.82, + "prev_close": 68.95, + "open": 68.3, + "high": 68.8, + "low": 66.57, + "change_pct": -3.09, + "volume": 364751.0, + "pe": 82.74, + "total_market_cap": 1610.57, + "high_52w": 55.16, + "low_52w": 0.97, + "turnover_rate": 1.51, + "amplitude": 3.23, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标74.29 | 止损65.47 | 买入区66.14~68.84 | 信号:放量下跌,等企稳再入", + "action": "盈利持有 | 目标73.65 | 止损65.78 | 买入区66.45~68.93 | 信号:放量下跌,等企稳再入", "entry_zone": "", - "stop_loss": 65.47, - "take_profit": 74.29, + "stop_loss": 65.78, + "take_profit": 73.65, "type": "自选策略", - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:主动卖盘占优 强撑:63.23 弱撑:66.13 弱压:71.18 强压:74.29" + "tech_snapshot": "形态:锤子线/T字线/bullish 量价:主动卖盘占优 强撑:61.97 弱撑:66.82 弱压:68.95 强压:73.65" }, "pnl_pct": null }, @@ -1249,29 +1202,29 @@ "type": "自选策略", "sector": "", "business": "", - "price": 1382.33, - "prev_close": 1367.88, - "open": 1367.78, - "high": 1416.88, - "low": 1343.38, - "change_pct": 1.06, - "volume": 280333.0, - "pe": 1641.46, - "total_market_cap": 15343.03, - "high_52w": 1094.3, - "low_52w": 0.98, - "turnover_rate": 2.53, - "amplitude": 5.37, + "price": 1310.01, + "prev_close": 1382.33, + "open": 1395.0, + "high": 1395.0, + "low": 1300.0, + "change_pct": -5.23, + "volume": 291773.0, + "pe": 1658.8, + "total_market_cap": 14540.32, + "high_52w": 1105.86, + "low_52w": 1.07, + "turnover_rate": 2.63, + "amplitude": 6.87, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标1446.33 | 止损1317.49 | 买入区1331.08~1369.03", + "action": "盈利持有 | 目标1453.2 | 止损1287.32 | 买入区1300.59~1353.67", "entry_zone": "", - "stop_loss": 1317.49, - "take_profit": 1446.33, + "stop_loss": 1287.32, + "take_profit": 1453.2, "type": "自选策略", - "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:主动买盘占优 强撑:1299.33 弱撑:1328.79 弱压:1402.29 强压:1446.33" + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:主动买盘占优 强撑:1240.86 弱撑:1299.06 弱压:1382.33 强压:1453.2" }, "pnl_pct": null }, @@ -1282,31 +1235,31 @@ "type": "自选", "sector": "光通信/光器件", "business": "光无源器件(分路器/波分复用),光有源器件,数据中心光互联", - "price": 298.09, - "prev_close": 281.99, - "open": 300.0, - "high": 309.98, - "low": 290.31, - "change_pct": 5.71, - "volume": 277316.0, - "pe": 338.39, - "total_market_cap": 811.88, - "high_52w": 225.59, - "low_52w": 1.15, - "turnover_rate": 10.18, - "amplitude": 6.98, + "price": 286.02, + "prev_close": 298.09, + "open": 290.0, + "high": 309.6, + "low": 282.9, + "change_pct": -4.05, + "volume": 229808.0, + "pe": 357.71, + "total_market_cap": 779.01, + "high_52w": 238.47, + "low_52w": 0.86, + "turnover_rate": 8.44, + "amplitude": 8.96, "cost": 231.46, "shares": 100, - "position_pct": 2.76, + "position_pct": 2.86, "strategy": { - "action": "盈利良好 | 短炒强趋势持 | 止损263.73 | 目标424.82 | 买入区281.99~296.09 | 信号:强趋势持", + "action": "盈利良好 | 短炒强趋势持 | 止损282.57 | 目标357.71 | 买入区282.57~296.7 | 信号:强趋势持", "entry_zone": "", - "stop_loss": 263.73, - "take_profit": 424.82, + "stop_loss": 282.57, + "take_profit": 357.71, "type": "持仓策略", - "tech_snapshot": "形态:倒T线/射击之星/neutral 量价:主动买盘占优 强撑:225.59 弱撑:281.99 弱压:308.63 强压:338.39" + "tech_snapshot": "形态:倒T线/射击之星/neutral 量价:主动买盘占优 强撑:238.47 弱撑:282.57 弱压:306.99 强压:357.71" }, - "pnl_pct": 28.79 + "pnl_pct": 23.57 }, { "code": "300690", @@ -1315,31 +1268,31 @@ "type": "持仓", "sector": "复合材料", "business": "风电叶片模具/机舱罩,车辆轻量化复合材料", - "price": 24.16, - "prev_close": 23.88, - "open": 23.75, - "high": 24.37, - "low": 23.21, - "change_pct": 1.17, - "volume": 37460.0, - "pe": 28.66, - "total_market_cap": 26.78, - "high_52w": 19.1, - "low_52w": 1.1, - "turnover_rate": 3.38, - "amplitude": 4.86, + "price": 23.63, + "prev_close": 24.16, + "open": 23.88, + "high": 24.39, + "low": 23.53, + "change_pct": -2.19, + "volume": 30549.0, + "pe": 28.99, + "total_market_cap": 26.19, + "high_52w": 19.33, + "low_52w": 0.88, + "turnover_rate": 2.76, + "amplitude": 3.56, "cost": 27.178, "shares": 400, - "position_pct": 0.94, + "position_pct": 0.95, "strategy": { - "action": "持有观察 | ⚠️盈亏比偏低(1:1.1),不建议加仓 | 止损21.03 | 目标23.7 | 买入区23.16~23.77 | 信号:持有", + "action": "持有观察 | ⚠️盈亏比偏低(1:1.2),不建议加仓 | 止损22.15 | 目标25.82 | 买入区23.58~23.98 | 信号:持有", "entry_zone": "", - "stop_loss": 21.03, - "take_profit": 23.7, + "stop_loss": 22.15, + "take_profit": 25.82, "type": "持仓策略", - "tech_snapshot": "形态:十字星/neutral 量价:主动卖盘占优 强撑:22.58 弱撑:23.16 弱压:24.32 强压:24.95" + "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:主动卖盘占优 强撑:22.15 弱撑:23.58 弱压:24.2 强压:25.82" }, - "pnl_pct": -11.1 + "pnl_pct": -13.05 }, { "code": "300750", @@ -1348,31 +1301,31 @@ "type": "持仓", "sector": "新能源汽车", "business": "动力电池(全球第一),储能电池,电池回收", - "price": 408.98, - "prev_close": 391.55, - "open": 393.0, - "high": 413.33, - "low": 386.0, - "change_pct": 4.45, - "volume": 594648.0, - "pe": 469.86, - "total_market_cap": 17410.33, - "high_52w": 313.24, - "low_52w": 1.71, - "turnover_rate": 1.4, - "amplitude": 6.98, + "price": 392.51, + "prev_close": 408.98, + "open": 411.0, + "high": 414.04, + "low": 390.73, + "change_pct": -4.03, + "volume": 373741.0, + "pe": 490.78, + "total_market_cap": 16709.2, + "high_52w": 327.18, + "low_52w": 0.97, + "turnover_rate": 0.88, + "amplitude": 5.7, "cost": 401.7803, "shares": 100, - "position_pct": 3.84, + "position_pct": 3.93, "strategy": { - "action": "盈利持有 | ⚠️盈亏比偏低(1:0.6),不建议加仓 | 止损359.96 | 目标437.18 | 买入区391.55~404.13 | 信号:持有", + "action": "持有观察 | ⚠️盈亏比偏低(1:1.2),不建议加仓 | 止损359.17 | 目标413.84 | 买入区395.72~404.88 | 信号:缩量回踩弱支撑,可加仓", "entry_zone": "", - "stop_loss": 359.96, - "take_profit": 437.18, + "stop_loss": 359.17, + "take_profit": 413.84, "type": "持仓策略", - "tech_snapshot": "形态:光头光脚阳线/bullish 量价:买卖均衡 强撑:371.09 弱撑:391.55 弱压:422.27 强压:437.18" + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:买卖均衡 强撑:374.14 弱撑:395.72 弱压:410.75 强压:435.62" }, - "pnl_pct": 1.79 + "pnl_pct": -2.31 }, { "code": "518880", @@ -1381,31 +1334,31 @@ "type": "持仓", "sector": "商品/贵金属", "business": "黄金ETF,跟踪国内黄金现货价格", - "price": 8.716, - "prev_close": 8.908, - "open": 8.735, - "high": 8.742, - "low": 8.655, - "change_pct": -2.16, - "volume": 4409718.0, - "pe": 9.799, - "total_market_cap": 943.82, - "high_52w": 8.017, - "low_52w": 1.24, - "turnover_rate": 4.07, - "amplitude": 0.98, + "price": 8.537, + "prev_close": 8.716, + "open": 8.668, + "high": 8.674, + "low": 8.525, + "change_pct": -2.05, + "volume": 4256305.0, + "pe": 9.588, + "total_market_cap": 917.8, + "high_52w": 7.844, + "low_52w": 1.2, + "turnover_rate": 3.96, + "amplitude": 1.71, "cost": 12.1915, "shares": 2400, - "position_pct": 2.09, + "position_pct": 2.05, "strategy": { - "action": "深套持有 | 深套持有 | 止损7.15 | 目标9.38 | 买入区7.8~9.1 | 信号:持有", + "action": "深套持有 | 深套持有 | 止损6.72 | 目标8.37 | 买入区7.73~9.02 | 信号:持有", "entry_zone": "", - "stop_loss": 7.15, - "take_profit": 9.38, + "stop_loss": 6.72, + "take_profit": 8.37, "type": "持仓策略", - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:8.02 弱撑:8.64 弱压:8.91 强压:9.38" + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:7.92 弱撑:8.55 弱压:8.72 强压:9.3" }, - "pnl_pct": -28.51 + "pnl_pct": -29.98 }, { "code": "600036", @@ -1414,31 +1367,31 @@ "type": "持仓", "sector": "银行", "business": "零售银行标杆,财富管理,信用卡,私人银行", - "price": 37.65, - "prev_close": 37.26, - "open": 37.01, - "high": 37.9, - "low": 36.95, - "change_pct": 1.05, - "volume": 1100768.0, - "pe": 40.99, - "total_market_cap": 7766.8, - "high_52w": 33.53, - "low_52w": 1.21, - "turnover_rate": 0.53, - "amplitude": 2.55, + "price": 37.4, + "prev_close": 37.65, + "open": 37.65, + "high": 38.19, + "low": 37.35, + "change_pct": -0.66, + "volume": 1008007.0, + "pe": 41.42, + "total_market_cap": 7715.23, + "high_52w": 33.89, + "low_52w": 1.11, + "turnover_rate": 0.49, + "amplitude": 2.23, "cost": 38.1582, "shares": 800, - "position_pct": 2.92, + "position_pct": 2.99, "strategy": { - "action": "持有观察 | ⚠️盈亏比偏低(1:1.0),不建议加仓 | 止损33.2 | 目标40.18 | 买入区36.97~37.2 | 信号:弱势持有", + "action": "持有观察 | ⚠️盈亏比偏低(1:1.1),不建议加仓 | 止损36.13 | 目标40.26 | 买入区37.5~37.84 | 信号:弱势持有", "entry_zone": "", - "stop_loss": 33.2, - "take_profit": 40.18, + "stop_loss": 36.13, + "take_profit": 40.26, "type": "持仓策略", - "tech_snapshot": "形态:带上影阳线/neutral 量价:买卖均衡 强撑:34.23 弱撑:36.97 弱压:37.46 强压:40.18" + "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:买卖均衡 强撑:35.42 弱撑:37.5 弱压:38.13 强压:40.26" }, - "pnl_pct": -1.33 + "pnl_pct": -1.99 }, { "code": "600519", @@ -1447,29 +1400,29 @@ "type": "自选策略", "sector": "", "business": "", - "price": 1241.41, - "prev_close": 1215.0, - "open": 1214.31, - "high": 1252.8, - "low": 1205.0, - "change_pct": 2.17, - "volume": 58251.0, - "pe": 1336.5, - "total_market_cap": 15518.64, - "high_52w": 1093.5, - "low_52w": 1.27, - "turnover_rate": 0.47, - "amplitude": 3.93, + "price": 1222.45, + "prev_close": 1241.41, + "open": 1239.0, + "high": 1264.0, + "low": 1217.0, + "change_pct": -1.53, + "volume": 58004.0, + "pe": 1365.55, + "total_market_cap": 15281.62, + "high_52w": 1117.27, + "low_52w": 1.22, + "turnover_rate": 0.46, + "amplitude": 3.79, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标1306.33 | 止损1190.2 | 买入区1202.47~1236.65 | 信号:量价齐升,可买入", + "action": "盈利持有 | ⚠️盈亏比偏低(1:2.0),谨慎买入 | 目标1300.67 | 止损1191.75 | 买入区1204.04~1235.32 | 信号:接近支撑位,关注", "entry_zone": "", - "stop_loss": 1190.2, - "take_profit": 1306.33, + "stop_loss": 1191.75, + "take_profit": 1300.67, "type": "自选策略", - "tech_snapshot": "形态:带下影阳线/bullish 量价:主动买盘占优 强撑:1137.01 弱撑:1210.34 弱压:1238.34 强压:1306.33" + "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:主动买盘占优 强撑:1177.81 弱撑:1214.47 弱压:1253.37 强压:1300.67" }, "pnl_pct": null }, @@ -1480,31 +1433,31 @@ "type": "持仓", "sector": "电子元器件", "business": "薄膜电容器(全球前三),新能源车/风光/工控用电容", - "price": 172.94, - "prev_close": 168.19, - "open": 170.5, - "high": 177.25, - "low": 167.5, - "change_pct": 2.82, - "volume": 125242.0, - "pe": 185.01, - "total_market_cap": 389.12, - "high_52w": 151.37, - "low_52w": 1.19, - "turnover_rate": 5.57, - "amplitude": 5.8, - "cost": 155.5032, - "shares": 200, - "position_pct": 3.3, + "price": 162.51, + "prev_close": 172.94, + "open": 172.0, + "high": 172.0, + "low": 160.6, + "change_pct": -6.03, + "volume": 100728.0, + "pe": 190.23, + "total_market_cap": 365.65, + "high_52w": 155.65, + "low_52w": 0.93, + "turnover_rate": 4.48, + "amplitude": 6.59, + "cost": 146.95, + "shares": 100, + "position_pct": 1.63, "strategy": { - "action": "盈利良好 | 止损153.13 | 目标175.76 | 买入区166.06~174.36 | 信号:持有", + "action": "盈利良好 | 止损147.72 | 目标171.21 | 买入区160.56~168.59 | 信号:持有", "entry_zone": "", - "stop_loss": 153.13, - "take_profit": 175.76, + "stop_loss": 147.72, + "take_profit": 171.21, "type": "持仓策略", - "tech_snapshot": "形态:倒T线/射击之星/neutral 量价:买卖均衡 强撑:151.37 弱撑:166.06 弱压:175.12 强压:185.01" + "tech_snapshot": "形态:带下影阴线/neutral 量价:买卖均衡 强撑:155.65 弱撑:160.56 弱压:172.94 强压:190.23" }, - "pnl_pct": 11.21 + "pnl_pct": 10.59 }, { "code": "600739", @@ -1513,31 +1466,31 @@ "type": "持仓", "sector": "医药流通/供应链", "business": "医药流通,供应链服务,生物制品", - "price": 10.74, - "prev_close": 10.09, - "open": 10.08, - "high": 10.77, - "low": 9.93, - "change_pct": 6.44, - "volume": 254044.0, - "pe": 11.1, - "total_market_cap": 163.5, - "high_52w": 9.08, - "low_52w": 1.73, - "turnover_rate": 1.67, - "amplitude": 8.33, + "price": 10.65, + "prev_close": 10.74, + "open": 10.72, + "high": 11.0, + "low": 10.6, + "change_pct": -0.84, + "volume": 212403.0, + "pe": 11.81, + "total_market_cap": 162.13, + "high_52w": 9.67, + "low_52w": 1.33, + "turnover_rate": 1.4, + "amplitude": 3.72, "cost": 12.2862, "shares": 6600, - "position_pct": 6.52, + "position_pct": 7.03, "strategy": { - "action": "持有观察 | ⚠️盈亏比偏低(1:0.6),不建议加仓 | 止损8.48 | 目标9.99 | 买入区10.09~10.3 | 信号:持有", + "action": "持有观察 | ⚠️盈亏比偏低(1:0.9),不建议加仓 | 止损10.22 | 目标12.16 | 买入区10.65~10.77 | 信号:持有", "entry_zone": "", - "stop_loss": 8.48, - "take_profit": 9.99, + "stop_loss": 10.22, + "take_profit": 12.16, "type": "持仓策略", - "tech_snapshot": "形态:光头光脚阳线/bullish 量价:主动买盘占优 强撑:9.5 弱撑:10.09 弱压:10.75 强压:11.1" + "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:主动买盘占优 强撑:9.73 弱撑:10.65 弱压:11.0 强压:11.81" }, - "pnl_pct": -12.58 + "pnl_pct": -13.32 }, { "code": "601318", @@ -1546,29 +1499,29 @@ "type": "自选策略", "sector": "", "business": "", - "price": 51.98, - "prev_close": 49.38, - "open": 49.39, - "high": 52.29, - "low": 48.66, - "change_pct": 5.27, - "volume": 1724972.0, - "pe": 54.32, - "total_market_cap": 5541.1, - "high_52w": 44.44, - "low_52w": 1.5, - "turnover_rate": 1.62, - "amplitude": 7.35, + "price": 50.4, + "prev_close": 51.98, + "open": 51.46, + "high": 52.43, + "low": 50.11, + "change_pct": -3.04, + "volume": 1220116.0, + "pe": 57.18, + "total_market_cap": 5372.67, + "high_52w": 46.78, + "low_52w": 0.96, + "turnover_rate": 1.14, + "amplitude": 4.46, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 止损参考49.26 | 买入区49.9~51.28 | 信号:放量下跌,等企稳再入", + "action": "盈利持有 | 止损参考49.42 | 买入区49.93~51.97 | 信号:放量下跌,等企稳再入", "entry_zone": "", - "stop_loss": 49.26, - "take_profit": 54.32, + "stop_loss": 49.42, + "take_profit": 55.97, "type": "自选策略", - "tech_snapshot": "形态:光头光脚阳线/bullish 量价:主动卖盘占优 强撑:46.24 弱撑:49.26 弱压:51.97 强压:54.32" + "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:主动卖盘占优 强撑:46.88 弱撑:50.46 弱压:52.01 强压:56.0" }, "pnl_pct": null }, @@ -1579,31 +1532,31 @@ "type": "持仓", "sector": "有色金属", "business": "铜矿/金矿/锌矿开采冶炼,全球布局(刚果金/塞尔维亚)", - "price": 30.44, - "prev_close": 29.69, - "open": 29.25, - "high": 30.5, - "low": 28.55, - "change_pct": 2.53, - "volume": 3918476.0, - "pe": 32.66, - "total_market_cap": 6271.19, - "high_52w": 26.72, - "low_52w": 1.0, - "turnover_rate": 1.9, - "amplitude": 6.57, + "price": 27.75, + "prev_close": 30.44, + "open": 29.95, + "high": 30.0, + "low": 27.64, + "change_pct": -8.84, + "volume": 4947402.0, + "pe": 33.48, + "total_market_cap": 5717.0, + "high_52w": 27.4, + "low_52w": 1.34, + "turnover_rate": 2.4, + "amplitude": 7.75, "cost": 40.2685, "shares": 2400, - "position_pct": 6.98, + "position_pct": 6.66, "strategy": { - "action": "深套持有 | 深套持有 | 止损24.92 | 目标32.66 | 买入区26.68~31.12 | 信号:持有", + "action": "深套持有 | 深套持有 | 止损22.13 | 目标29.15 | 买入区25.47~29.72 | 信号:持有", "entry_zone": "", - "stop_loss": 24.92, - "take_profit": 32.66, + "stop_loss": 22.13, + "take_profit": 29.15, "type": "持仓策略", - "tech_snapshot": "形态:带下影阳线/neutral 量价:主动买盘占优 强撑:26.72 弱撑:28.85 弱压:30.13 强压:32.66" + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:主动买盘占优 强撑:27.4 弱撑:27.7 弱压:30.44 强压:32.39" }, - "pnl_pct": -24.41 + "pnl_pct": -31.09 }, { "code": "603259", @@ -1612,64 +1565,31 @@ "type": "持仓策略", "sector": "", "business": "", - "price": 106.83, - "prev_close": 102.72, - "open": 103.16, - "high": 106.97, - "low": 101.7, - "change_pct": 4.0, - "volume": 571962.0, - "pe": 112.99, - "total_market_cap": 2642.21, - "high_52w": 92.45, - "low_52w": 1.37, - "turnover_rate": 2.31, - "amplitude": 5.13, + "price": 106.31, + "prev_close": 106.83, + "open": 107.0, + "high": 109.36, + "low": 105.76, + "change_pct": -0.49, + "volume": 525084.0, + "pe": 117.51, + "total_market_cap": 2629.34, + "high_52w": 96.15, + "low_52w": 1.28, + "turnover_rate": 2.12, + "amplitude": 3.37, "cost": 96.201, "shares": 400, - "position_pct": 4.02, + "position_pct": 4.25, "strategy": { - "action": "盈利良好 | 止损93.96 | 目标107.3 | 买入区102.28~106.93 | 信号:持有", + "action": "盈利良好 | 止损104.51 | 目标117.51 | 买入区106.25~111.01 | 信号:持有", "entry_zone": "", - "stop_loss": 93.96, - "take_profit": 107.3, + "stop_loss": 104.51, + "take_profit": 117.51, "type": "持仓策略", - "tech_snapshot": "形态:锤子线/T字线/bullish 量价:买卖均衡 强撑:93.93 弱撑:102.28 弱压:105.18 强压:112.95" + "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:买卖均衡 强撑:96.15 弱撑:106.25 弱压:109.29 强压:117.51" }, - "pnl_pct": 11.05 - }, - { - "code": "603565", - "name": "中谷物流", - "market": "A股", - "type": "自选策略", - "sector": "", - "business": "", - "price": 10.4, - "prev_close": 10.39, - "open": 10.44, - "high": 10.48, - "low": 10.25, - "change_pct": 0.1, - "volume": 112971.0, - "pe": 11.43, - "total_market_cap": 218.41, - "high_52w": 9.35, - "low_52w": 0.57, - "turnover_rate": 0.54, - "amplitude": 2.21, - "cost": 0, - "shares": 0, - "position_pct": 0, - "strategy": { - "action": "", - "entry_zone": "", - "stop_loss": 9.5, - "take_profit": 12.0, - "type": "自选策略", - "tech_snapshot": "" - }, - "pnl_pct": null + "pnl_pct": 10.51 }, { "code": "688411", @@ -1678,31 +1598,31 @@ "type": "持仓", "sector": "储能/电力系统", "business": "电化学储能系统集成,电力辅助服务,新能源配储", - "price": 286.98, - "prev_close": 281.0, - "open": 278.06, - "high": 288.68, - "low": 274.96, - "change_pct": 2.13, - "volume": 6200006.0, - "pe": 337.2, - "total_market_cap": 380.46, - "high_52w": 224.8, - "low_52w": 0.94, - "turnover_rate": 4.68, - "amplitude": 4.88, - "cost": 258.6163, - "shares": 239, - "position_pct": 6.58, + "price": 272.24, + "prev_close": 286.98, + "open": 283.4, + "high": 285.98, + "low": 269.0, + "change_pct": -5.14, + "volume": 6073977.0, + "pe": 344.38, + "total_market_cap": 360.92, + "high_52w": 229.58, + "low_52w": 1.04, + "turnover_rate": 4.58, + "amplitude": 5.92, + "cost": 0, + "shares": 0, + "position_pct": 0, "strategy": { - "action": "盈利良好 | 止损277.42 | 目标327.74 | 买入区277.73~291.62 | 信号:持有", + "action": "盈利良好 | 目标323.7 | 止损271.71 | 买入区274.51~285.71 | 信号:缩量回踩支撑,可买入", "entry_zone": "", - "stop_loss": 277.42, - "take_profit": 327.74, - "type": "持仓策略", - "tech_snapshot": "形态:光头光脚阳线/neutral 量价:买卖均衡 强撑:238.66 弱撑:277.73 弱压:291.45 强压:327.74" + "stop_loss": 271.71, + "take_profit": 323.7, + "type": "自选策略", + "tech_snapshot": "形态:锤子线/T字线/bullish 量价:买卖均衡 强撑:234.62 弱撑:272.35 弱压:286.98 强压:323.7" }, - "pnl_pct": 10.97 + "pnl_pct": null }, { "code": "688630", @@ -1711,29 +1631,29 @@ "type": "自选策略", "sector": "", "business": "", - "price": 488.0, - "prev_close": 502.0, - "open": 510.0, - "high": 512.0, - "low": 461.53, - "change_pct": -2.79, - "volume": 6915930.0, - "pe": 602.4, - "total_market_cap": 642.89, - "high_52w": 401.6, - "low_52w": 1.12, - "turnover_rate": 5.25, - "amplitude": 10.05, + "price": 462.89, + "prev_close": 488.0, + "open": 485.55, + "high": 487.99, + "low": 458.16, + "change_pct": -5.15, + "volume": 4975139.0, + "pe": 585.6, + "total_market_cap": 609.81, + "high_52w": 390.4, + "low_52w": 0.82, + "turnover_rate": 3.78, + "amplitude": 6.11, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标533.79 | 止损421.82 | 买入区464.48~483.44", + "action": "盈利持有 | 目标526.57 | 止损457.52 | 买入区461.84~480.7", "entry_zone": "", - "stop_loss": 421.82, - "take_profit": 533.79, + "stop_loss": 457.52, + "take_profit": 526.57, "type": "自选策略", - "tech_snapshot": "形态:光头光脚阴线/neutral 量价:主动买盘占优 强撑:431.21 弱撑:452.99 弱压:503.46 强压:533.79" + "tech_snapshot": "形态:带下影阴线/neutral 量价:主动买盘占优 强撑:418.93 弱撑:457.52 弱压:488.0 强压:526.57" }, "pnl_pct": null }, @@ -1744,29 +1664,29 @@ "type": "持仓", "sector": "化工/生物制造", "business": "生物法丙氨酸/缬氨酸等氨基酸产品,合成生物学平台技术", - "price": 21.0, - "prev_close": 20.87, - "open": 20.78, - "high": 21.0, - "low": 19.77, - "change_pct": 0.62, - "volume": 5988380.0, - "pe": 25.04, - "total_market_cap": 52.52, - "high_52w": 16.7, - "low_52w": 1.37, - "turnover_rate": 2.39, - "amplitude": 5.89, + "price": 21.83, + "prev_close": 21.0, + "open": 20.99, + "high": 22.47, + "low": 20.99, + "change_pct": 3.95, + "volume": 8399254.0, + "pe": 25.2, + "total_market_cap": 54.6, + "high_52w": 16.8, + "low_52w": 1.86, + "turnover_rate": 3.36, + "amplitude": 7.05, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标22.27 | 止损19.76 | 买入区19.96~20.76 | 信号:弱势持有", + "action": "盈利持有 | 目标24.5 | 止损21.27 | 买入区21.49~22.37", "entry_zone": "", - "stop_loss": 19.76, - "take_profit": 22.27, + "stop_loss": 21.27, + "take_profit": 24.5, "type": "自选策略", - "tech_snapshot": "形态:锤子线/T字线/bullish 量价:主动买盘占优 强撑:18.45 弱撑:19.93 弱压:20.94 强压:22.27" + "tech_snapshot": "形态:带上影阳线/neutral 量价:主动买盘占优 强撑:19.1 弱撑:21.0 弱压:22.6 强压:24.5" }, "pnl_pct": null }, @@ -1777,29 +1697,29 @@ "type": "自选", "sector": "半导体/GPU", "business": "国产GPU芯片设计,AI训练/推理芯片,图形渲染芯片", - "price": 670.5, - "prev_close": 669.0, - "open": 668.97, - "high": 678.2, - "low": 640.0, - "change_pct": 0.22, - "volume": 3524462.0, - "pe": 802.8, - "total_market_cap": 202.66, - "high_52w": 535.2, - "low_52w": 1.21, - "turnover_rate": 11.66, - "amplitude": 5.71, + "price": 704.03, + "prev_close": 670.5, + "open": 661.0, + "high": 745.2, + "low": 660.01, + "change_pct": 5.0, + "volume": 5309392.0, + "pe": 804.6, + "total_market_cap": 212.8, + "high_52w": 536.4, + "low_52w": 1.85, + "turnover_rate": 17.57, + "amplitude": 12.71, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标717.63 | 止损607.71 | 买入区632.97~658.81 | 信号:放量下跌,等企稳再入", + "action": "盈利持有 | ⚠️盈亏比偏低(1:1.8),谨慎买入 | 目标804.6 | 止损683.91 | 买入区704.31~724.14 | 信号:放量下跌,等企稳再入", "entry_zone": "", - "stop_loss": 607.71, - "take_profit": 717.63, + "stop_loss": 683.91, + "take_profit": 804.6, "type": "自选策略", - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:主动卖盘占优 强撑:587.63 弱撑:633.26 弱压:669.0 强压:717.63" + "tech_snapshot": "形态:带上影阳线/neutral 量价:主动卖盘占优 强撑:573.31 弱撑:670.5 弱压:755.92 强压:804.6" }, "pnl_pct": null }, @@ -1810,29 +1730,29 @@ "type": "自选", "sector": "半导体/GPU", "business": "国产GPU芯片设计,图形渲染/通用计算芯片", - "price": 758.0, - "prev_close": 769.89, - "open": 765.96, - "high": 772.44, - "low": 715.4, - "change_pct": -1.54, - "volume": 3177806.0, - "pe": 923.87, - "total_market_cap": 140.45, - "high_52w": 615.91, - "low_52w": 1.34, - "turnover_rate": 17.15, - "amplitude": 7.41, + "price": 768.98, + "prev_close": 758.0, + "open": 744.0, + "high": 808.0, + "low": 731.01, + "change_pct": 1.45, + "volume": 3079810.0, + "pe": 909.6, + "total_market_cap": 142.48, + "high_52w": 606.4, + "low_52w": 1.27, + "turnover_rate": 16.62, + "amplitude": 10.16, "cost": 0, "shares": 0, "position_pct": 0, "strategy": { - "action": "盈利持有 | 目标841.52 | 止损681.78 | 买入区710.12~739.1", + "action": "盈利持有 | 目标899.0 | 止损756.85 | 买入区770.28~801.72", "entry_zone": "", - "stop_loss": 681.78, - "take_profit": 841.52, + "stop_loss": 756.85, + "take_profit": 899.0, "type": "自选策略", - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:631.16 弱撑:703.67 弱压:769.89 强压:841.52" + "tech_snapshot": "形态:光头光脚阳线/neutral 量价:数据不足 强撑:651.0 弱撑:742.01 弱压:819.0 强压:899.0" }, "pnl_pct": null }, @@ -1843,31 +1763,31 @@ "type": "自选", "sector": "半导体/晶圆代工", "business": "集成电路晶圆代工,先进制程(14nm/28nm及以上),成熟制程", - "price": 145.59, - "prev_close": 140.7, - "open": 140.78, - "high": 148.0, - "low": 140.0, - "change_pct": 3.48, - "volume": 106096058.0, - "pe": 168.84, - "total_market_cap": 2911.16, - "high_52w": 112.56, - "low_52w": 1.18, - "turnover_rate": 5.31, - "amplitude": 5.69, + "price": 141.7, + "prev_close": 145.59, + "open": 143.58, + "high": 148.3, + "low": 139.6, + "change_pct": -2.67, + "volume": 91820109.0, + "pe": 174.71, + "total_market_cap": 2833.38, + "high_52w": 116.47, + "low_52w": 0.97, + "turnover_rate": 4.59, + "amplitude": 5.98, "cost": 126.0681, "shares": 300, - "position_pct": 4.13, + "position_pct": 4.25, "strategy": { - "action": "盈利良好 | 止损134.66 | 目标167.33 | 买入区139.41~146.38 | 信号:持有", + "action": "盈利良好 | 止损139.7 | 目标168.27 | 买入区140.39~147.41 | 信号:持有", "entry_zone": "", - "stop_loss": 134.66, - "take_profit": 167.33, + "stop_loss": 139.7, + "take_profit": 168.27, "type": "持仓策略", - "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:买卖均衡 强撑:120.07 弱撑:139.41 弱压:147.41 强压:167.33" + "tech_snapshot": "形态:倒T线/射击之星/neutral 量价:买卖均衡 强撑:120.41 弱撑:140.39 弱压:147.98 强压:168.27" }, - "pnl_pct": 15.49 + "pnl_pct": 12.4 } ] } \ No newline at end of file diff --git a/data/macro_context.json b/data/macro_context.json index 9a08984..e3178a9 100644 --- a/data/macro_context.json +++ b/data/macro_context.json @@ -1,200 +1,200 @@ { - "updated_at": "2026-06-22 12:00:26", - "data_timestamp": "2026-06-22 12:00:00", - "session": "midday", + "updated_at": "2026-06-24 09:35:49", + "data_timestamp": "2026-06-24 09:35:45", + "session": "morning", "has_valid_data": true, "indices": { "上证指数": { - "price": 4098.01, - "change_pct": 0.18, - "high": 4106.08, - "low": 4070.17 + "price": 4100.97, + "change_pct": -0.13, + "high": 4103.59, + "low": 4090.1 }, "深证成指": { - "price": 16077.2, - "change_pct": 0.29, - "high": 16204.79, - "low": 15914.05 + "price": 15838.49, + "change_pct": -0.1, + "high": 15853.92, + "low": 15782.4 }, "创业板指": { - "price": 4284.03, - "change_pct": 0.74, - "high": 4326.91, - "low": 4229.31 + "price": 4214.02, + "change_pct": 0.52, + "high": 4218.59, + "low": 4181.91 }, "科创50": { - "price": 1911.91, - "change_pct": 0.02, - "high": 1963.33, - "low": 1879.59 + "price": 1923.85, + "change_pct": 0.4, + "high": 1923.85, + "low": 1896.34 }, "恒生指数": { - "price": 23715.46, - "change_pct": -0.88, - "high": 23811.76, - "low": 23444.86 + "price": 23420.7, + "change_pct": 0.36, + "high": 23420.7, + "low": 23420.7 }, "国企指数": { - "price": 7900.2, - "change_pct": -0.95, - "high": 7935.55, - "low": 7795.37 + "price": 7792.13, + "change_pct": 0.42, + "high": 7792.13, + "low": 7792.13 } }, "structure": { "overall": "neutral", - "description": "均衡" + "description": "成长略强" }, "key_sectors": [ - { - "name": "机器人产业", - "change_pct": -3.64 - }, { "name": "通用航空", - "change_pct": -3.12 - }, - { - "name": "新能电池", - "change_pct": 2.44 + "change_pct": -1.16 }, { "name": "上证资源", - "change_pct": 1.76 + "change_pct": -0.79 }, { - "name": "上证周期", - "change_pct": 1.68 + "name": "新能电池", + "change_pct": -0.75 + }, + { + "name": "机器人产业", + "change_pct": -0.67 }, { "name": "国证芯片", - "change_pct": 1.45 - }, - { - "name": "治理指数", - "change_pct": 0.57 + "change_pct": 0.61 }, { "name": "上证信息", - "change_pct": 0.52 + "change_pct": 0.58 + }, + { + "name": "上证周期", + "change_pct": -0.14 + }, + { + "name": "治理指数", + "change_pct": -0.1 } ], "top_gainers": [ { - "name": "非金属材料", + "name": "化学制药", "code": "", "price": 0, - "change": 5.42, - "volume": 206.5, - "turnover": 141.88, - "net_inflow": -1.5, - "up_count": 11, + "change": 3.68, + "volume": 2844.37, + "turnover": 477.43, + "net_inflow": -1.16, + "up_count": 144, + "down_count": 13, + "avg_price": 16.79, + "lead_stock": "新赣江", + "lead_stock_change": 27.9 + }, + { + "name": "生物制品", + "code": "", + "price": 0, + "change": 2.96, + "volume": 808.83, + "turnover": 136.16, + "net_inflow": -0.75, + "up_count": 47, + "down_count": 7, + "avg_price": 16.83, + "lead_stock": "赛升药业", + "lead_stock_change": 18.44 + }, + { + "name": "医疗服务", + "code": "", + "price": 0, + "change": 2.39, + "volume": 1079.74, + "turnover": 225.78, + "net_inflow": -0.93, + "up_count": 44, + "down_count": 11, + "avg_price": 20.91, + "lead_stock": "睿智医药", + "lead_stock_change": 19.95 + }, + { + "name": "医药商业", + "code": "", + "price": 0, + "change": 2.35, + "volume": 502.07, + "turnover": 44.73, + "net_inflow": -0.09, + "up_count": 29, "down_count": 3, - "avg_price": 68.71, - "lead_stock": "东方碳素", - "lead_stock_change": 21.01 + "avg_price": 8.91, + "lead_stock": "合富中国", + "lead_stock_change": 9.99 + }, + { + "name": "中药", + "code": "", + "price": 0, + "change": 2.18, + "volume": 1208.33, + "turnover": 107.45, + "net_inflow": 2.87, + "up_count": 57, + "down_count": 10, + "avg_price": 8.89, + "lead_stock": "特一药业", + "lead_stock_change": 9.97 + } + ], + "top_losers": [ + { + "name": "贵金属", + "code": "", + "price": 0, + "change": -8.6, + "volume": 1529.11, + "turnover": 390.56, + "net_inflow": -61.53, + "up_count": 1, + "down_count": 13, + "avg_price": 25.54, + "lead_stock": "株冶集团", + "lead_stock_change": 4.42 }, { "name": "小金属", "code": "", "price": 0, - "change": 4.8, - "volume": 1503.62, - "turnover": 737.33, - "net_inflow": -13.54, - "up_count": 26, - "down_count": 3, - "avg_price": 49.04, - "lead_stock": "中钨高新", - "lead_stock_change": 10.0 + "change": -5.58, + "volume": 2154.58, + "turnover": 1125.15, + "net_inflow": -68.28, + "up_count": 4, + "down_count": 25, + "avg_price": 52.22, + "lead_stock": "长裕集团", + "lead_stock_change": 9.99 }, { - "name": "保险", + "name": "工业金属", "code": "", "price": 0, - "change": 4.78, - "volume": 341.49, - "turnover": 117.85, - "net_inflow": 17.04, + "change": -5.53, + "volume": 6361.35, + "turnover": 809.03, + "net_inflow": -125.48, "up_count": 5, - "down_count": 0, - "avg_price": 34.51, - "lead_stock": "新华保险", - "lead_stock_change": 7.38 - }, - { - "name": "证券", - "code": "", - "price": 0, - "change": 3.78, - "volume": 3200.28, - "turnover": 409.47, - "net_inflow": 71.49, - "up_count": 50, - "down_count": 0, - "avg_price": 12.79, - "lead_stock": "广发证券", - "lead_stock_change": 9.98 - }, - { - "name": "农化制品", - "code": "", - "price": 0, - "change": 2.0, - "volume": 1297.23, - "turnover": 190.08, - "net_inflow": 11.07, - "up_count": 37, - "down_count": 23, - "avg_price": 14.65, - "lead_stock": "川金诺", - "lead_stock_change": 12.23 + "down_count": 50, + "avg_price": 12.72, + "lead_stock": "锌业股份", + "lead_stock_change": 6.35 } ], - "top_losers": [ - { - "name": "自动化设备", - "code": "", - "price": 0, - "change": -4.03, - "volume": 1106.85, - "turnover": 735.82, - "net_inflow": -75.95, - "up_count": 7, - "down_count": 89, - "avg_price": 66.48, - "lead_stock": "博杰股份", - "lead_stock_change": 7.6 - }, - { - "name": "军工电子", - "code": "", - "price": 0, - "change": -3.71, - "volume": 893.12, - "turnover": 287.08, - "net_inflow": -29.04, - "up_count": 3, - "down_count": 59, - "avg_price": 32.14, - "lead_stock": "金信诺", - "lead_stock_change": 4.47 - }, - { - "name": "电机", - "code": "", - "price": 0, - "change": -3.67, - "volume": 307.45, - "turnover": 62.49, - "net_inflow": -10.21, - "up_count": 3, - "down_count": 23, - "avg_price": 20.33, - "lead_stock": "佳电股份", - "lead_stock_change": 1.09 - } - ], - "sector_up_ratio": 17.8, - "sector_mood": "bearish" + "sector_up_ratio": 48.9, + "sector_mood": "neutral" } \ No newline at end of file diff --git a/data/multi_tf_cache.json b/data/multi_tf_cache.json index 2a55fca..1eb2cc6 100644 --- a/data/multi_tf_cache.json +++ b/data/multi_tf_cache.json @@ -1,22 +1,6 @@ { "300548": { "daily": [ - { - "date": "2025-12-17", - "open": 127.36, - "close": 134.33, - "high": 135.15, - "low": 127.36, - "volume": 298218.0 - }, - { - "date": "2025-12-18", - "open": 133.04, - "close": 140.84, - "high": 150.0, - "low": 132.16, - "volume": 433128.0 - }, { "date": "2025-12-19", "open": 143.3, @@ -964,10 +948,18 @@ { "date": "2026-06-22", "open": 300.0, - "close": 298.12, + "close": 298.09, "high": 309.98, "low": 290.31, - "volume": 223397.0 + "volume": 277316.0 + }, + { + "date": "2026-06-23", + "open": 290.0, + "close": 286.02, + "high": 309.6, + "low": 282.9, + "volume": 229808.0 } ], "weekly": [ @@ -1281,26 +1273,10 @@ "amplitude": 8.42, "turnover_rate": 8.56 }, - "updated_at": 1782100881.4387236 + "updated_at": 1782262882.4519491 }, "01478": { "daily": [ - { - "date": "2025-12-18", - "open": 8.64, - "close": 8.42, - "high": 8.65, - "low": 8.25, - "volume": 4450206.0 - }, - { - "date": "2025-12-19", - "open": 8.5, - "close": 8.52, - "high": 8.54, - "low": 8.32, - "volume": 3942000.0 - }, { "date": "2025-12-22", "open": 8.61, @@ -2248,10 +2224,18 @@ { "date": "2026-06-22", "open": 8.9, - "close": 8.37, + "close": 8.38, "high": 8.9, "low": 8.3, - "volume": 2761000.0 + "volume": 5188908.0 + }, + { + "date": "2026-06-23", + "open": 8.4, + "close": 7.88, + "high": 8.54, + "low": 7.8, + "volume": 8016500.0 } ], "weekly": [ @@ -2562,26 +2546,10 @@ "high_52w": 16.44, "low_52w": 6.4 }, - "updated_at": 1782100848.4334698 + "updated_at": 1782262851.4648788 }, "601899": { "daily": [ - { - "date": "2025-12-17", - "open": 30.55, - "close": 30.87, - "high": 31.19, - "low": 30.4, - "volume": 1769711.0 - }, - { - "date": "2025-12-18", - "open": 30.83, - "close": 30.97, - "high": 31.35, - "low": 30.65, - "volume": 1380093.0 - }, { "date": "2025-12-19", "open": 30.84, @@ -3529,10 +3497,18 @@ { "date": "2026-06-22", "open": 29.25, - "close": 29.64, - "high": 29.83, + "close": 30.44, + "high": 30.5, "low": 28.55, - "volume": 2389225.0 + "volume": 3918476.0 + }, + { + "date": "2026-06-23", + "open": 29.95, + "close": 27.75, + "high": 30.0, + "low": 27.64, + "volume": 4947402.0 } ], "weekly": [ @@ -3846,26 +3822,10 @@ "amplitude": 2.74, "turnover_rate": 1.08 }, - "updated_at": 1782100904.0630949 + "updated_at": 1782262904.0336359 }, "600739": { "daily": [ - { - "date": "2025-12-17", - "open": 11.27, - "close": 11.46, - "high": 11.54, - "low": 11.22, - "volume": 115297.0 - }, - { - "date": "2025-12-18", - "open": 11.41, - "close": 11.34, - "high": 11.44, - "low": 11.29, - "volume": 104188.0 - }, { "date": "2025-12-19", "open": 11.34, @@ -4813,10 +4773,18 @@ { "date": "2026-06-22", "open": 10.08, - "close": 10.53, - "high": 10.56, + "close": 10.74, + "high": 10.77, "low": 9.93, - "volume": 143471.0 + "volume": 254044.0 + }, + { + "date": "2026-06-23", + "open": 10.72, + "close": 10.65, + "high": 11.0, + "low": 10.6, + "volume": 212403.0 } ], "weekly": [ @@ -5130,26 +5098,10 @@ "amplitude": 1.93, "turnover_rate": 0.67 }, - "updated_at": 1782100898.020494 + "updated_at": 1782262902.9309783 }, "09988": { "daily": [ - { - "date": "2025-12-18", - "open": 143.1, - "close": 144.1, - "high": 144.9, - "low": 142.9, - "volume": 47014025.0 - }, - { - "date": "2025-12-19", - "open": 145.0, - "close": 145.3, - "high": 146.7, - "low": 144.2, - "volume": 70392591.0 - }, { "date": "2025-12-22", "open": 146.0, @@ -6097,10 +6049,18 @@ { "date": "2026-06-22", "open": 102.8, - "close": 102.1, - "high": 103.7, + "close": 102.9, + "high": 103.8, "low": 100.8, - "volume": 57402074.0 + "volume": 99214294.0 + }, + { + "date": "2026-06-23", + "open": 103.4, + "close": 98.95, + "high": 103.4, + "low": 98.7, + "volume": 98049349.0 } ], "weekly": [ @@ -6411,26 +6371,10 @@ "high_52w": 185.173, "low_52w": 100.773 }, - "updated_at": 1782100870.417733 + "updated_at": 1782262873.9547002 }, "688411": { "daily": [ - { - "date": "2025-12-17", - "open": 254.45, - "close": 257.75, - "high": 261.37, - "low": 249.97, - "volume": 2107085.0 - }, - { - "date": "2025-12-18", - "open": 255.41, - "close": 246.6, - "high": 255.41, - "low": 244.91, - "volume": 3049810.0 - }, { "date": "2025-12-19", "open": 248.11, @@ -7378,10 +7322,18 @@ { "date": "2026-06-22", "open": 278.06, - "close": 284.2, - "high": 285.79, + "close": 286.98, + "high": 288.68, "low": 274.96, - "volume": 3836417.0 + "volume": 6200006.0 + }, + { + "date": "2026-06-23", + "open": 283.4, + "close": 272.24, + "high": 285.98, + "low": 269.0, + "volume": 6073977.0 } ], "weekly": [ @@ -7695,26 +7647,10 @@ "amplitude": 6.7, "turnover_rate": 4.53 }, - "updated_at": 1782100906.375768 + "updated_at": 1782262905.8293295 }, "02202": { "daily": [ - { - "date": "2025-12-18", - "open": 3.57, - "close": 3.55, - "high": 3.64, - "low": 3.54, - "volume": 31099046.0 - }, - { - "date": "2025-12-19", - "open": 3.55, - "close": 3.61, - "high": 3.64, - "low": 3.53, - "volume": 40596964.0 - }, { "date": "2025-12-22", "open": 3.61, @@ -8662,10 +8598,18 @@ { "date": "2026-06-22", "open": 2.42, - "close": 2.42, - "high": 2.44, + "close": 2.47, + "high": 2.48, "low": 2.35, - "volume": 13082330.0 + "volume": 22071230.0 + }, + { + "date": "2026-06-23", + "open": 2.46, + "close": 2.4, + "high": 2.53, + "low": 2.37, + "volume": 23503824.0 } ], "weekly": [ @@ -8976,26 +8920,10 @@ "high_52w": 5.99, "low_52w": 2.48 }, - "updated_at": 1782100851.8665607 + "updated_at": 1782262856.4156458 }, "01211": { "daily": [ - { - "date": "2025-12-18", - "open": 93.8, - "close": 93.9, - "high": 94.0, - "low": 92.6, - "volume": 18780011.0 - }, - { - "date": "2025-12-19", - "open": 94.3, - "close": 93.7, - "high": 94.45, - "low": 93.25, - "volume": 20108026.0 - }, { "date": "2025-12-22", "open": 93.7, @@ -9943,10 +9871,18 @@ { "date": "2026-06-22", "open": 80.25, - "close": 78.05, + "close": 78.35, "high": 80.25, "low": 76.7, - "volume": 20402138.0 + "volume": 40011785.0 + }, + { + "date": "2026-06-23", + "open": 78.25, + "close": 75.85, + "high": 78.3, + "low": 75.6, + "volume": 38196800.0 } ], "weekly": [ @@ -10257,26 +10193,10 @@ "high_52w": 135.889, "low_52w": 81.35 }, - "updated_at": 1782100846.1642368 + "updated_at": 1782262850.0042703 }, "02388": { "daily": [ - { - "date": "2025-12-18", - "open": 38.08, - "close": 38.3, - "high": 38.3, - "low": 37.74, - "volume": 9903604.0 - }, - { - "date": "2025-12-19", - "open": 38.4, - "close": 38.34, - "high": 38.56, - "low": 38.26, - "volume": 9948634.0 - }, { "date": "2025-12-22", "open": 38.32, @@ -11224,10 +11144,18 @@ { "date": "2026-06-22", "open": 47.72, - "close": 47.54, + "close": 47.6, "high": 48.0, "low": 47.12, - "volume": 5752099.0 + "volume": 15222527.0 + }, + { + "date": "2026-06-23", + "open": 47.58, + "close": 47.0, + "high": 47.86, + "low": 46.9, + "volume": 14056638.0 } ], "weekly": [ @@ -11538,26 +11466,10 @@ "high_52w": 49.36, "low_52w": 32.261 }, - "updated_at": 1782100856.9259748 + "updated_at": 1782262864.0981002 }, "300750": { "daily": [ - { - "date": "2025-12-17", - "open": 369.544, - "close": 376.514, - "high": 377.594, - "low": 368.154, - "volume": 222574.0 - }, - { - "date": "2025-12-18", - "open": 372.664, - "close": 365.094, - "high": 374.044, - "low": 363.104, - "volume": 296393.0 - }, { "date": "2025-12-19", "open": 367.174, @@ -12505,10 +12417,18 @@ { "date": "2026-06-22", "open": 393.0, - "close": 413.07, + "close": 408.98, "high": 413.33, "low": 386.0, - "volume": 420281.0 + "volume": 594648.0 + }, + { + "date": "2026-06-23", + "open": 411.0, + "close": 392.51, + "high": 414.04, + "low": 390.73, + "volume": 373741.0 } ], "weekly": [ @@ -12822,26 +12742,10 @@ "amplitude": 1.91, "turnover_rate": 0.59 }, - "updated_at": 1782100884.9654377 + "updated_at": 1782262887.99402 }, "603259": { "daily": [ - { - "date": "2025-12-17", - "open": 87.791, - "close": 89.011, - "high": 89.521, - "low": 87.151, - "volume": 301577.0 - }, - { - "date": "2025-12-18", - "open": 88.471, - "close": 89.011, - "high": 90.621, - "low": 88.011, - "volume": 286539.0 - }, { "date": "2025-12-19", "open": 89.421, @@ -13789,10 +13693,18 @@ { "date": "2026-06-22", "open": 103.16, - "close": 104.02, - "high": 104.6, + "close": 106.83, + "high": 106.97, "low": 101.7, - "volume": 292560.0 + "volume": 571962.0 + }, + { + "date": "2026-06-23", + "open": 107.0, + "close": 106.31, + "high": 109.36, + "low": 105.76, + "volume": 525084.0 } ], "weekly": [ @@ -14106,26 +14018,10 @@ "amplitude": 2.33, "turnover_rate": 1.11 }, - "updated_at": 1782100904.6129189 + "updated_at": 1782262904.3694196 }, "00700": { "daily": [ - { - "date": "2025-12-18", - "open": 601.0, - "close": 605.0, - "high": 606.0, - "low": 599.0, - "volume": 10153604.0 - }, - { - "date": "2025-12-19", - "open": 610.0, - "close": 614.0, - "high": 617.5, - "low": 607.0, - "volume": 17765762.0 - }, { "date": "2025-12-22", "open": 620.0, @@ -15075,8 +14971,16 @@ "open": 439.0, "close": 433.0, "high": 439.0, - "low": 431.0, - "volume": 15090959.0 + "low": 428.4, + "volume": 31563111.0 + }, + { + "date": "2026-06-23", + "open": 430.0, + "close": 414.8, + "high": 432.4, + "low": 413.6, + "volume": 43435789.0 } ], "weekly": [ @@ -15387,26 +15291,10 @@ "high_52w": 677.7, "low_52w": 420.4 }, - "updated_at": 1782100836.5058956 + "updated_at": 1782262841.1460268 }, "688981": { "daily": [ - { - "date": "2025-12-17", - "open": 110.82, - "close": 113.29, - "high": 113.9, - "low": 110.13, - "volume": 34389272.0 - }, - { - "date": "2025-12-18", - "open": 112.8, - "close": 112.8, - "high": 115.72, - "low": 112.75, - "volume": 31470029.0 - }, { "date": "2025-12-19", "open": 113.2, @@ -16354,10 +16242,18 @@ { "date": "2026-06-22", "open": 140.78, - "close": 143.11, + "close": 145.59, "high": 148.0, "low": 140.0, - "volume": 79921514.0 + "volume": 106096058.0 + }, + { + "date": "2026-06-23", + "open": 143.58, + "close": 141.7, + "high": 148.3, + "low": 139.6, + "volume": 91820109.0 } ], "weekly": [ @@ -16671,7 +16567,7 @@ "amplitude": 6.3, "turnover_rate": 4.82 }, - "updated_at": 1782100914.9238255 + "updated_at": 1782262915.6569254 }, "600110": { "daily": [ @@ -17951,22 +17847,6 @@ }, "00981": { "daily": [ - { - "date": "2025-12-18", - "open": 64.0, - "close": 64.7, - "high": 65.6, - "low": 63.65, - "volume": 39415584.0 - }, - { - "date": "2025-12-19", - "open": 65.45, - "close": 65.05, - "high": 66.15, - "low": 64.8, - "volume": 39163474.0 - }, { "date": "2025-12-22", "open": 66.0, @@ -18914,10 +18794,18 @@ { "date": "2026-06-22", "open": 78.8, - "close": 78.7, + "close": 78.9, "high": 82.4, "low": 77.15, - "volume": 120715915.0 + "volume": 171994651.0 + }, + { + "date": "2026-06-23", + "open": 79.2, + "close": 77.85, + "high": 84.1, + "low": 76.5, + "volume": 182963530.0 } ], "weekly": [ @@ -19228,26 +19116,10 @@ "high_52w": 93.5, "low_52w": 38.65 }, - "updated_at": 1782100839.402517 + "updated_at": 1782262844.7892594 }, "600563": { "daily": [ - { - "date": "2025-12-17", - "open": 97.98, - "close": 99.68, - "high": 99.8, - "low": 97.35, - "volume": 25005.0 - }, - { - "date": "2025-12-18", - "open": 98.95, - "close": 98.6, - "high": 99.56, - "low": 98.56, - "volume": 14581.0 - }, { "date": "2025-12-19", "open": 98.48, @@ -20195,10 +20067,18 @@ { "date": "2026-06-22", "open": 170.5, - "close": 169.53, + "close": 172.94, "high": 177.25, - "low": 168.19, - "volume": 80680.0 + "low": 167.5, + "volume": 125242.0 + }, + { + "date": "2026-06-23", + "open": 172.0, + "close": 162.51, + "high": 172.0, + "low": 160.6, + "volume": 100728.0 } ], "weekly": [ @@ -20512,26 +20392,10 @@ "amplitude": 3.97, "turnover_rate": 4.21 }, - "updated_at": 1782100895.4576926 + "updated_at": 1782262900.405335 }, "600036": { "daily": [ - { - "date": "2025-12-17", - "open": 40.587, - "close": 40.507, - "high": 40.837, - "low": 40.217, - "volume": 631267.0 - }, - { - "date": "2025-12-18", - "open": 40.527, - "close": 41.357, - "high": 41.407, - "low": 40.387, - "volume": 768119.0 - }, { "date": "2025-12-19", "open": 41.357, @@ -21479,10 +21343,18 @@ { "date": "2026-06-22", "open": 37.01, - "close": 37.22, - "high": 37.44, + "close": 37.65, + "high": 37.9, "low": 36.95, - "volume": 578340.0 + "volume": 1100768.0 + }, + { + "date": "2026-06-23", + "open": 37.65, + "close": 37.4, + "high": 38.19, + "low": 37.35, + "volume": 1008007.0 } ], "weekly": [ @@ -21796,26 +21668,10 @@ "amplitude": 1.84, "turnover_rate": 0.32 }, - "updated_at": 1782100890.4133117 + "updated_at": 1782262895.3494263 }, "300035": { "daily": [ - { - "date": "2025-12-17", - "open": 20.12, - "close": 20.7, - "high": 20.7, - "low": 19.91, - "volume": 316807.0 - }, - { - "date": "2025-12-18", - "open": 20.5, - "close": 20.46, - "high": 21.0, - "low": 20.35, - "volume": 224497.0 - }, { "date": "2025-12-19", "open": 20.65, @@ -22763,10 +22619,18 @@ { "date": "2026-06-22", "open": 17.2, - "close": 16.91, + "close": 17.15, "high": 17.36, "low": 16.24, - "volume": 223138.0 + "volume": 299002.0 + }, + { + "date": "2026-06-23", + "open": 17.1, + "close": 16.36, + "high": 17.1, + "low": 16.29, + "volume": 209392.0 } ], "weekly": [ @@ -23080,26 +22944,10 @@ "amplitude": 2.1, "turnover_rate": 3.34 }, - "updated_at": 1782100873.5320196 + "updated_at": 1782262874.7932487 }, "518880": { "daily": [ - { - "date": "2025-12-17", - "open": 9.283, - "close": 9.31, - "high": 9.345, - "low": 9.283, - "volume": 4520836.0 - }, - { - "date": "2025-12-18", - "open": 9.311, - "close": 9.318, - "high": 9.327, - "low": 9.302, - "volume": 3178056.0 - }, { "date": "2025-12-19", "open": 9.29, @@ -24046,11 +23894,19 @@ }, { "date": "2026-06-22", - "open": 8.74, - "close": 8.67, - "high": 8.74, - "low": 8.66, - "volume": 2463966.0 + "open": 8.735, + "close": 8.716, + "high": 8.742, + "low": 8.655, + "volume": 4409718.0 + }, + { + "date": "2026-06-23", + "open": 8.668, + "close": 8.537, + "high": 8.674, + "low": 8.525, + "volume": 4256305.0 } ], "weekly": [ @@ -24364,26 +24220,10 @@ "amplitude": 0.59, "turnover_rate": 2.43 }, - "updated_at": 1782100887.0873868 + "updated_at": 1782262892.65065 }, "01888": { "daily": [ - { - "date": "2025-12-18", - "open": 11.81, - "close": 11.44, - "high": 11.81, - "low": 11.35, - "volume": 6120975.0 - }, - { - "date": "2025-12-19", - "open": 11.49, - "close": 11.51, - "high": 11.67, - "low": 11.46, - "volume": 5987933.0 - }, { "date": "2025-12-22", "open": 11.7, @@ -25331,10 +25171,18 @@ { "date": "2026-06-22", "open": 93.6, - "close": 91.5, + "close": 91.95, "high": 99.65, "low": 88.4, - "volume": 55605439.0 + "volume": 82815057.0 + }, + { + "date": "2026-06-23", + "open": 91.0, + "close": 87.25, + "high": 91.95, + "low": 83.7, + "volume": 85228668.0 } ], "weekly": [ @@ -25645,26 +25493,10 @@ "high_52w": 91.8, "low_52w": 8.08 }, - "updated_at": 1782100849.5148559 + "updated_at": 1782262854.0638037 }, "01088": { "daily": [ - { - "date": "2025-12-18", - "open": 38.4, - "close": 39.34, - "high": 39.34, - "low": 38.4, - "volume": 13923463.0 - }, - { - "date": "2025-12-19", - "open": 39.38, - "close": 39.68, - "high": 39.78, - "low": 39.1, - "volume": 11765069.0 - }, { "date": "2025-12-22", "open": 40.28, @@ -26612,10 +26444,18 @@ { "date": "2026-06-22", "open": 42.1, - "close": 42.84, - "high": 42.84, + "close": 42.58, + "high": 43.28, "low": 41.54, - "volume": 8251956.0 + "volume": 16485932.0 + }, + { + "date": "2026-06-23", + "open": 42.86, + "close": 42.06, + "high": 43.14, + "low": 41.92, + "volume": 14552856.0 } ], "weekly": [ @@ -26926,26 +26766,10 @@ "high_52w": 49.62, "low_52w": 29.076 }, - "updated_at": 1782100842.639826 + "updated_at": 1782262848.6293187 }, "002594": { "daily": [ - { - "date": "2025-12-17", - "open": 94.5, - "close": 95.21, - "high": 95.7, - "low": 93.68, - "volume": 272825.0 - }, - { - "date": "2025-12-18", - "open": 94.39, - "close": 93.53, - "high": 94.6, - "low": 93.5, - "volume": 252797.0 - }, { "date": "2025-12-19", "open": 94.0, @@ -27893,10 +27717,18 @@ { "date": "2026-06-22", "open": 87.0, - "close": 85.5, - "high": 87.1, + "close": 87.59, + "high": 87.9, "low": 84.6, - "volume": 395622.0 + "volume": 637242.0 + }, + { + "date": "2026-06-23", + "open": 86.91, + "close": 85.0, + "high": 88.32, + "low": 84.75, + "volume": 466217.0 } ], "weekly": [ @@ -28210,26 +28042,10 @@ "amplitude": 2.57, "turnover_rate": 1.42 }, - "updated_at": 1782100834.253778 + "updated_at": 1782262839.4208531 }, "09868": { "daily": [ - { - "date": "2025-12-18", - "open": 70.6, - "close": 71.2, - "high": 71.35, - "low": 70.1, - "volume": 9944374.0 - }, - { - "date": "2025-12-19", - "open": 73.0, - "close": 76.65, - "high": 77.25, - "low": 72.35, - "volume": 32730378.0 - }, { "date": "2025-12-22", "open": 77.7, @@ -29177,10 +28993,18 @@ { "date": "2026-06-22", "open": 51.5, - "close": 50.85, - "high": 51.55, + "close": 51.55, + "high": 52.35, "low": 49.04, - "volume": 14757660.0 + "volume": 23540610.0 + }, + { + "date": "2026-06-23", + "open": 51.7, + "close": 49.36, + "high": 52.3, + "low": 48.82, + "volume": 19692832.0 } ], "weekly": [ @@ -29491,26 +29315,10 @@ "high_52w": 110.8, "low_52w": 52.65 }, - "updated_at": 1782100867.7239313 + "updated_at": 1782262871.0036685 }, "688795": { "daily": [ - { - "date": "2025-12-17", - "open": 702.0, - "close": 714.8, - "high": 725.99, - "low": 691.0, - "volume": 6573705.0 - }, - { - "date": "2025-12-18", - "open": 700.0, - "close": 705.71, - "high": 734.99, - "low": 691.0, - "volume": 4889770.0 - }, { "date": "2025-12-19", "open": 710.0, @@ -30458,10 +30266,18 @@ { "date": "2026-06-22", "open": 668.97, - "close": 645.89, - "high": 671.99, + "close": 670.5, + "high": 678.2, "low": 640.0, - "volume": 2233499.0 + "volume": 3524462.0 + }, + { + "date": "2026-06-23", + "open": 661.0, + "close": 704.03, + "high": 745.2, + "low": 660.01, + "volume": 5309392.0 } ], "weekly": [ @@ -30735,26 +30551,10 @@ "amplitude": 3.09, "turnover_rate": 7.33 }, - "updated_at": 1782100911.0146668 + "updated_at": 1782262911.7884252 }, "688802": { "daily": [ - { - "date": "2025-12-17", - "open": 700.0, - "close": 829.9, - "high": 895.0, - "low": 650.0, - "volume": 15367027.0 - }, - { - "date": "2025-12-18", - "open": 763.0, - "close": 787.04, - "high": 829.0, - "low": 756.0, - "volume": 6839825.0 - }, { "date": "2025-12-19", "open": 800.0, @@ -31702,10 +31502,18 @@ { "date": "2026-06-22", "open": 765.96, - "close": 724.61, - "high": 769.0, + "close": 758.0, + "high": 772.44, "low": 715.4, - "volume": 2232232.0 + "volume": 3177806.0 + }, + { + "date": "2026-06-23", + "open": 744.0, + "close": 768.98, + "high": 808.0, + "low": 731.01, + "volume": 3079810.0 } ], "weekly": [ @@ -31979,26 +31787,10 @@ "amplitude": 4.81, "turnover_rate": 12.26 }, - "updated_at": 1782100912.6968966 + "updated_at": 1782262913.6723154 }, "02359": { "daily": [ - { - "date": "2025-12-18", - "open": 101.5, - "close": 102.3, - "high": 103.7, - "low": 100.5, - "volume": 2729481.0 - }, - { - "date": "2025-12-19", - "open": 102.3, - "close": 103.8, - "high": 106.1, - "low": 102.3, - "volume": 11728614.0 - }, { "date": "2025-12-22", "open": 103.8, @@ -32946,10 +32738,18 @@ { "date": "2026-06-22", "open": 127.7, - "close": 130.3, - "high": 130.5, + "close": 132.8, + "high": 134.8, "low": 126.4, - "volume": 2022363.0 + "volume": 6096616.0 + }, + { + "date": "2026-06-23", + "open": 132.4, + "close": 130.8, + "high": 135.7, + "low": 130.0, + "volume": 5315637.0 } ], "weekly": [ @@ -33260,26 +33060,10 @@ "high_52w": 146.197, "low_52w": 69.713 }, - "updated_at": 1782100854.6596854 + "updated_at": 1782262860.6446385 }, "02628": { "daily": [ - { - "date": "2025-12-18", - "open": 28.5, - "close": 28.46, - "high": 28.7, - "low": 28.26, - "volume": 31735578.0 - }, - { - "date": "2025-12-19", - "open": 28.74, - "close": 28.8, - "high": 28.9, - "low": 28.32, - "volume": 37845425.0 - }, { "date": "2025-12-22", "open": 28.8, @@ -34227,10 +34011,18 @@ { "date": "2026-06-22", "open": 28.02, - "close": 29.56, - "high": 29.9, + "close": 30.26, + "high": 30.76, "low": 27.48, - "volume": 37364778.0 + "volume": 97684000.0 + }, + { + "date": "2026-06-23", + "open": 30.26, + "close": 29.3, + "high": 30.56, + "low": 29.0, + "volume": 37947073.0 } ], "weekly": [ @@ -34541,26 +34333,10 @@ "high_52w": 36.16, "low_52w": 16.827 }, - "updated_at": 1782100859.1189704 + "updated_at": 1782262866.4207382 }, "00968": { "daily": [ - { - "date": "2025-12-18", - "open": 2.97, - "close": 2.94, - "high": 2.99, - "low": 2.9, - "volume": 38047629.0 - }, - { - "date": "2025-12-19", - "open": 2.95, - "close": 3.0, - "high": 3.02, - "low": 2.95, - "volume": 63014299.0 - }, { "date": "2025-12-22", "open": 3.0, @@ -35508,10 +35284,18 @@ { "date": "2026-06-22", "open": 2.35, - "close": 2.24, + "close": 2.26, "high": 2.35, "low": 2.2, - "volume": 46263033.0 + "volume": 111246478.0 + }, + { + "date": "2026-06-23", + "open": 2.26, + "close": 2.08, + "high": 2.26, + "low": 2.04, + "volume": 116153342.0 } ], "weekly": [ @@ -35822,26 +35606,10 @@ "high_52w": 4.092, "low_52w": 2.21 }, - "updated_at": 1782100837.6921093 + "updated_at": 1782262843.1152372 }, "06869": { "daily": [ - { - "date": "2025-12-18", - "open": 45.66, - "close": 46.2, - "high": 49.8, - "low": 45.5, - "volume": 58845536.0 - }, - { - "date": "2025-12-19", - "open": 47.8, - "close": 51.75, - "high": 52.8, - "low": 47.5, - "volume": 65548517.0 - }, { "date": "2025-12-22", "open": 53.5, @@ -36789,10 +36557,18 @@ { "date": "2026-06-22", "open": 235.6, - "close": 278.2, - "high": 279.6, + "close": 286.0, + "high": 290.6, "low": 235.0, - "volume": 37006512.0 + "volume": 48305855.0 + }, + { + "date": "2026-06-23", + "open": 290.2, + "close": 264.6, + "high": 305.0, + "low": 260.2, + "volume": 32256541.0 } ], "weekly": [ @@ -37103,26 +36879,10 @@ "high_52w": 283.0, "low_52w": 16.146 }, - "updated_at": 1782100866.0533197 + "updated_at": 1782262869.1786387 }, "02318": { "daily": [ - { - "date": "2025-12-18", - "open": 65.0, - "close": 65.2, - "high": 65.55, - "low": 64.25, - "volume": 24691189.0 - }, - { - "date": "2025-12-19", - "open": 65.8, - "close": 65.45, - "high": 65.8, - "low": 64.6, - "volume": 26653931.0 - }, { "date": "2025-12-22", "open": 65.75, @@ -38070,10 +37830,18 @@ { "date": "2026-06-22", "open": 53.35, - "close": 54.35, - "high": 54.95, + "close": 54.95, + "high": 55.35, "low": 52.6, - "volume": 23570722.0 + "volume": 61205418.0 + }, + { + "date": "2026-06-23", + "open": 54.8, + "close": 53.6, + "high": 55.5, + "low": 53.3, + "volume": 44484166.0 } ], "weekly": [ @@ -38384,26 +38152,10 @@ "high_52w": 72.689, "low_52w": 42.648 }, - "updated_at": 1782100853.0020735 + "updated_at": 1782262858.3390095 }, "688639": { "daily": [ - { - "date": "2025-12-17", - "open": 34.6, - "close": 35.87, - "high": 36.12, - "low": 34.39, - "volume": 8547208.0 - }, - { - "date": "2025-12-18", - "open": 35.65, - "close": 34.82, - "high": 36.29, - "low": 34.72, - "volume": 5675595.0 - }, { "date": "2025-12-19", "open": 34.63, @@ -39351,10 +39103,18 @@ { "date": "2026-06-22", "open": 20.78, - "close": 20.37, - "high": 20.78, + "close": 21.0, + "high": 21.0, "low": 19.77, - "volume": 3751370.0 + "volume": 5988380.0 + }, + { + "date": "2026-06-23", + "open": 20.99, + "close": 21.83, + "high": 22.47, + "low": 20.99, + "volume": 8399254.0 } ], "weekly": [ @@ -39668,26 +39428,10 @@ "amplitude": 2.69, "turnover_rate": 1.5 }, - "updated_at": 1782100909.308825 + "updated_at": 1782262908.9719243 }, "300124": { "daily": [ - { - "date": "2025-12-17", - "open": 70.06, - "close": 71.35, - "high": 71.39, - "low": 69.48, - "volume": 228181.0 - }, - { - "date": "2025-12-18", - "open": 70.99, - "close": 70.79, - "high": 72.09, - "low": 70.79, - "volume": 178061.0 - }, { "date": "2025-12-19", "open": 71.13, @@ -40635,10 +40379,18 @@ { "date": "2026-06-22", "open": 71.25, - "close": 67.49, + "close": 68.95, "high": 71.4, "low": 66.83, - "volume": 364569.0 + "volume": 509941.0 + }, + { + "date": "2026-06-23", + "open": 68.3, + "close": 66.82, + "high": 68.8, + "low": 66.57, + "volume": 364751.0 } ], "weekly": [ @@ -40952,26 +40704,10 @@ "amplitude": 2.32, "turnover_rate": 1.28 }, - "updated_at": 1782100875.6308603 + "updated_at": 1782262876.8219368 }, "01070": { "daily": [ - { - "date": "2025-12-18", - "open": 11.11, - "close": 10.77, - "high": 11.34, - "low": 10.72, - "volume": 7140220.0 - }, - { - "date": "2025-12-19", - "open": 10.82, - "close": 11.11, - "high": 11.14, - "low": 10.82, - "volume": 6771000.0 - }, { "date": "2025-12-22", "open": 11.02, @@ -41919,10 +41655,18 @@ { "date": "2026-06-22", "open": 13.51, - "close": 13.01, + "close": 13.09, "high": 13.51, + "low": 12.97, + "volume": 9341935.0 + }, + { + "date": "2026-06-23", + "open": 13.39, + "close": 13.2, + "high": 13.47, "low": 12.98, - "volume": 5902935.0 + "volume": 10686427.0 } ], "weekly": [ @@ -42233,26 +41977,10 @@ "high_52w": 16.19, "low_52w": 8.802 }, - "updated_at": 1782100841.0433621 + "updated_at": 1782262847.1627727 }, "001309": { "daily": [ - { - "date": "2025-12-17", - "open": 199.18, - "close": 203.98, - "high": 204.08, - "low": 197.6, - "volume": 80254.0 - }, - { - "date": "2025-12-18", - "open": 205.4, - "close": 205.26, - "high": 209.1, - "low": 201.6, - "volume": 114508.0 - }, { "date": "2025-12-19", "open": 208.6, @@ -43200,10 +42928,18 @@ { "date": "2026-06-22", "open": 726.0, - "close": 724.36, + "close": 737.07, "high": 740.0, "low": 706.0, - "volume": 102038.0 + "volume": 151962.0 + }, + { + "date": "2026-06-23", + "open": 730.0, + "close": 755.01, + "high": 796.0, + "low": 706.0, + "volume": 171855.0 } ], "weekly": [ @@ -43517,26 +43253,10 @@ "amplitude": 13.19, "turnover_rate": 10.41 }, - "updated_at": 1782100831.893836 + "updated_at": 1782262837.9592185 }, "06160": { "daily": [ - { - "date": "2025-12-18", - "open": 184.5, - "close": 184.3, - "high": 185.5, - "low": 182.9, - "volume": 3101126.0 - }, - { - "date": "2025-12-19", - "open": 184.3, - "close": 185.1, - "high": 186.2, - "low": 182.7, - "volume": 3354755.0 - }, { "date": "2025-12-22", "open": 187.9, @@ -44484,10 +44204,18 @@ { "date": "2026-06-22", "open": 162.1, - "close": 159.4, - "high": 162.1, + "close": 161.2, + "high": 162.6, "low": 157.1, - "volume": 1346571.0 + "volume": 3117885.0 + }, + { + "date": "2026-06-23", + "open": 163.5, + "close": 160.9, + "high": 168.3, + "low": 160.0, + "volume": 3779021.0 } ], "weekly": [ @@ -44798,26 +44526,10 @@ "high_52w": 229.4, "low_52w": 144.1 }, - "updated_at": 1782100861.499546 + "updated_at": 1782262867.6980147 }, "000700": { "daily": [ - { - "date": "2025-12-17", - "open": 10.323, - "close": 10.233, - "high": 10.353, - "low": 9.853, - "volume": 402955.0 - }, - { - "date": "2025-12-18", - "open": 10.073, - "close": 9.823, - "high": 10.173, - "low": 9.823, - "volume": 365990.0 - }, { "date": "2025-12-19", "open": 9.933, @@ -45765,10 +45477,18 @@ { "date": "2026-06-22", "open": 15.44, - "close": 14.93, + "close": 15.18, "high": 16.0, - "low": 14.79, - "volume": 463525.0 + "low": 14.7, + "volume": 691829.0 + }, + { + "date": "2026-06-23", + "open": 15.03, + "close": 14.98, + "high": 15.6, + "low": 14.75, + "volume": 729693.0 } ], "weekly": [ @@ -46082,26 +45802,10 @@ "amplitude": 4.41, "turnover_rate": 7.65 }, - "updated_at": 1782100828.9568377 + "updated_at": 1782262834.6286752 }, "000711": { "daily": [ - { - "date": "2025-12-05", - "open": 1.73, - "close": 1.74, - "high": 1.75, - "low": 1.72, - "volume": 195867.0 - }, - { - "date": "2025-12-08", - "open": 1.74, - "close": 1.74, - "high": 1.75, - "low": 1.73, - "volume": 260924.0 - }, { "date": "2025-12-09", "open": 1.74, @@ -47049,10 +46753,18 @@ { "date": "2026-06-22", "open": 5.28, - "close": 5.44, + "close": 5.39, "high": 5.46, "low": 5.28, - "volume": 647305.0 + "volume": 816831.0 + }, + { + "date": "2026-06-23", + "open": 5.34, + "close": 5.12, + "high": 5.38, + "low": 5.12, + "volume": 779357.0 } ], "weekly": [ @@ -47366,7 +47078,7 @@ "amplitude": 2.65, "turnover_rate": 3.98 }, - "updated_at": 1782100830.1152594 + "updated_at": 1782262835.879336 }, "__index__sh000001": { "name": "上证指数", @@ -47395,22 +47107,6 @@ "_updated_at": "2026-06-18 09:00", "688630": { "daily": [ - { - "date": "2025-12-17", - "open": 120.28, - "close": 130.48, - "high": 131.81, - "low": 120.28, - "volume": 9576117.0 - }, - { - "date": "2025-12-18", - "open": 130.22, - "close": 128.03, - "high": 133.86, - "low": 127.68, - "volume": 5590474.0 - }, { "date": "2025-12-19", "open": 129.5, @@ -48358,10 +48054,18 @@ { "date": "2026-06-22", "open": 510.0, - "close": 473.96, + "close": 488.0, "high": 512.0, "low": 461.53, - "volume": 5047517.0 + "volume": 6915930.0 + }, + { + "date": "2026-06-23", + "open": 485.55, + "close": 462.89, + "high": 487.99, + "low": 458.16, + "volume": 4975139.0 } ], "weekly": [ @@ -48664,26 +48368,10 @@ "volume": 108482337.0 } ], - "updated_at": 1782100907.8501694 + "updated_at": 1782262907.4391267 }, "300690": { "daily": [ - { - "date": "2025-12-17", - "open": 31.573, - "close": 30.883, - "high": 31.723, - "low": 30.023, - "volume": 78787.0 - }, - { - "date": "2025-12-18", - "open": 30.443, - "close": 30.193, - "high": 31.083, - "low": 30.183, - "volume": 53809.0 - }, { "date": "2025-12-19", "open": 30.383, @@ -49631,10 +49319,18 @@ { "date": "2026-06-22", "open": 23.75, - "close": 23.72, + "close": 24.16, "high": 24.37, "low": 23.21, - "volume": 23067.0 + "volume": 37460.0 + }, + { + "date": "2026-06-23", + "open": 23.88, + "close": 23.63, + "high": 24.39, + "low": 23.53, + "volume": 30549.0 } ], "weekly": [ @@ -49937,26 +49633,10 @@ "volume": 457244.0 } ], - "updated_at": 1782100883.015299 + "updated_at": 1782262884.6532812 }, "000657": { "daily": [ - { - "date": "2025-12-17", - "open": 26.17, - "close": 28.51, - "high": 28.66, - "low": 25.46, - "volume": 1683829.0 - }, - { - "date": "2025-12-18", - "open": 28.12, - "close": 27.21, - "high": 28.4, - "low": 27.17, - "volume": 1155094.0 - }, { "date": "2025-12-19", "open": 27.36, @@ -50907,7 +50587,15 @@ "close": 108.33, "high": 108.33, "low": 101.58, - "volume": 801239.0 + "volume": 831319.0 + }, + { + "date": "2026-06-23", + "open": 113.99, + "close": 102.5, + "high": 113.99, + "low": 101.08, + "volume": 1383866.0 } ], "weekly": [ @@ -51210,26 +50898,10 @@ "volume": 15817777.0 } ], - "updated_at": 1782100826.944141 + "updated_at": 1782262831.4395003 }, "300308": { "daily": [ - { - "date": "2025-12-17", - "open": 556.0, - "close": 588.98, - "high": 591.07, - "low": 555.66, - "volume": 323570.0 - }, - { - "date": "2025-12-18", - "open": 575.99, - "close": 570.2, - "high": 578.87, - "low": 562.43, - "volume": 241629.0 - }, { "date": "2025-12-19", "open": 582.34, @@ -52177,10 +51849,18 @@ { "date": "2026-06-22", "open": 1367.78, - "close": 1358.24, + "close": 1382.33, "high": 1416.88, "low": 1343.38, - "volume": 196678.0 + "volume": 280333.0 + }, + { + "date": "2026-06-23", + "open": 1395.0, + "close": 1310.01, + "high": 1395.0, + "low": 1300.0, + "volume": 291773.0 } ], "weekly": [ @@ -52483,26 +52163,10 @@ "volume": 4488584.0 } ], - "updated_at": 1782100877.2876532 + "updated_at": 1782262878.6480002 }, "600519": { "daily": [ - { - "date": "2025-12-17", - "open": 1401.043, - "close": 1409.143, - "high": 1415.983, - "low": 1393.723, - "volume": 31382.0 - }, - { - "date": "2025-12-18", - "open": 1409.543, - "close": 1407.043, - "high": 1414.923, - "low": 1402.153, - "volume": 17830.0 - }, { "date": "2025-12-19", "open": 1410.0, @@ -53450,10 +53114,18 @@ { "date": "2026-06-22", "open": 1214.31, - "close": 1227.01, - "high": 1233.0, + "close": 1241.41, + "high": 1252.8, "low": 1205.0, - "volume": 33592.0 + "volume": 58251.0 + }, + { + "date": "2026-06-23", + "open": 1239.0, + "close": 1222.45, + "high": 1264.0, + "low": 1217.0, + "volume": 58004.0 } ], "weekly": [ @@ -53756,26 +53428,10 @@ "volume": 583696.0 } ], - "updated_at": 1782100892.3913672 + "updated_at": 1782262897.9460092 }, "601318": { "daily": [ - { - "date": "2025-12-17", - "open": 65.3, - "close": 66.3, - "high": 66.88, - "low": 64.9, - "volume": 962118.0 - }, - { - "date": "2025-12-18", - "open": 66.13, - "close": 66.75, - "high": 66.83, - "low": 65.84, - "volume": 563606.0 - }, { "date": "2025-12-19", "open": 66.4, @@ -54723,10 +54379,18 @@ { "date": "2026-06-22", "open": 49.39, - "close": 50.92, - "high": 51.37, + "close": 51.98, + "high": 52.29, "low": 48.66, - "volume": 984617.0 + "volume": 1724972.0 + }, + { + "date": "2026-06-23", + "open": 51.46, + "close": 50.4, + "high": 52.43, + "low": 50.11, + "volume": 1220116.0 } ], "weekly": [ @@ -55029,7 +54693,7 @@ "volume": 13423033.0 } ], - "updated_at": 1782100900.6796172 + "updated_at": 1782262903.6913216 }, "sh000001": { "daily": [ @@ -56286,6 +55950,6291 @@ "volume": 9721540059.0 } ], - "updated_at": 1782143585.2968125 + "updated_at": 1782144122.7322016 + }, + "sz399001": { + "daily": [ + { + "date": "2025-12-18", + "open": 13112.61, + "close": 13053.97, + "high": 13205.22, + "low": 13053.97, + "volume": 590116207.0 + }, + { + "date": "2025-12-19", + "open": 13116.19, + "close": 13140.21, + "high": 13217.44, + "low": 13070.73, + "volume": 657127412.0 + }, + { + "date": "2025-12-22", + "open": 13225.4, + "close": 13332.73, + "high": 13349.08, + "low": 13225.4, + "volume": 653549135.0 + }, + { + "date": "2025-12-23", + "open": 13338.93, + "close": 13368.99, + "high": 13447.29, + "low": 13305.76, + "volume": 674894658.0 + }, + { + "date": "2025-12-24", + "open": 13378.48, + "close": 13486.42, + "high": 13497.1, + "low": 13347.76, + "volume": 640440440.0 + }, + { + "date": "2025-12-25", + "open": 13472.7, + "close": 13531.41, + "high": 13563.06, + "low": 13407.37, + "volume": 660794063.0 + }, + { + "date": "2025-12-26", + "open": 13539.05, + "close": 13603.89, + "high": 13674.87, + "low": 13517.8, + "volume": 741292910.0 + }, + { + "date": "2025-12-29", + "open": 13604.3, + "close": 13537.1, + "high": 13650.7, + "low": 13494.96, + "volume": 713871413.0 + }, + { + "date": "2025-12-30", + "open": 13466.3, + "close": 13604.07, + "high": 13645.56, + "low": 13465.67, + "volume": 716223366.0 + }, + { + "date": "2025-12-31", + "open": 13627.26, + "close": 13525.02, + "high": 13642.53, + "low": 13491.68, + "volume": 713396441.0 + }, + { + "date": "2026-01-05", + "open": 13633.63, + "close": 13828.63, + "high": 13828.97, + "low": 13633.63, + "volume": 830357123.0 + }, + { + "date": "2026-01-06", + "open": 13830.3, + "close": 14022.55, + "high": 14024.12, + "low": 13827.79, + "volume": 931832648.0 + }, + { + "date": "2026-01-07", + "open": 14062.02, + "close": 14030.56, + "high": 14111.18, + "low": 13935.53, + "volume": 913575189.0 + }, + { + "date": "2026-01-08", + "open": 13971.89, + "close": 13959.48, + "high": 14033.59, + "low": 13883.81, + "volume": 920288378.0 + }, + { + "date": "2026-01-09", + "open": 13917.78, + "close": 14120.15, + "high": 14139.54, + "low": 13917.78, + "volume": 1013527536.0 + }, + { + "date": "2026-01-12", + "open": 14186.86, + "close": 14366.91, + "high": 14391.28, + "low": 14089.59, + "volume": 1152643528.0 + }, + { + "date": "2026-01-13", + "open": 14397.68, + "close": 14169.4, + "high": 14458.88, + "low": 14113.17, + "volume": 1195102024.0 + }, + { + "date": "2026-01-14", + "open": 14194.11, + "close": 14248.6, + "high": 14459.21, + "low": 14099.98, + "volume": 1312118729.0 + }, + { + "date": "2026-01-15", + "open": 14158.66, + "close": 14306.73, + "high": 14328.6, + "low": 14155.5, + "volume": 971527612.0 + }, + { + "date": "2026-01-16", + "open": 14374.54, + "close": 14281.08, + "high": 14424.35, + "low": 14257.59, + "volume": 906894526.0 + }, + { + "date": "2026-01-19", + "open": 14221.93, + "close": 14294.05, + "high": 14392.88, + "low": 14221.93, + "volume": 832205019.0 + }, + { + "date": "2026-01-20", + "open": 14307.55, + "close": 14155.63, + "high": 14337.12, + "low": 14033.22, + "volume": 881921909.0 + }, + { + "date": "2026-01-21", + "open": 14102.21, + "close": 14255.13, + "high": 14320.94, + "low": 14102.21, + "volume": 793387853.0 + }, + { + "date": "2026-01-22", + "open": 14313.63, + "close": 14327.05, + "high": 14374.51, + "low": 14223.34, + "volume": 822514300.0 + }, + { + "date": "2026-01-23", + "open": 14349.01, + "close": 14439.66, + "high": 14449.84, + "low": 14320.51, + "volume": 982699102.0 + }, + { + "date": "2026-01-26", + "open": 14492.42, + "close": 14316.64, + "high": 14532.9, + "low": 14277.67, + "volume": 1023228090.0 + }, + { + "date": "2026-01-27", + "open": 14283.78, + "close": 14329.91, + "high": 14403.6, + "low": 14105.13, + "volume": 909686276.0 + }, + { + "date": "2026-01-28", + "open": 14371.96, + "close": 14342.89, + "high": 14411.65, + "low": 14234.89, + "volume": 883025460.0 + }, + { + "date": "2026-01-29", + "open": 14332.7, + "close": 14300.08, + "high": 14418.09, + "low": 14252.2, + "volume": 993915564.0 + }, + { + "date": "2026-01-30", + "open": 14214.14, + "close": 14205.89, + "high": 14291.57, + "low": 13923.95, + "volume": 902322925.0 + }, + { + "date": "2026-02-02", + "open": 14128.87, + "close": 13824.35, + "high": 14213.61, + "low": 13815.28, + "volume": 811142364.0 + }, + { + "date": "2026-02-03", + "open": 13986.89, + "close": 14127.11, + "high": 14129.6, + "low": 13815.23, + "volume": 782910934.0 + }, + { + "date": "2026-02-04", + "open": 14072.41, + "close": 14156.27, + "high": 14173.77, + "low": 13958.08, + "volume": 815238780.0 + }, + { + "date": "2026-02-05", + "open": 14020.84, + "close": 13952.71, + "high": 14074.36, + "low": 13874.02, + "volume": 726225381.0 + }, + { + "date": "2026-02-06", + "open": 13801.03, + "close": 13906.73, + "high": 14065.78, + "low": 13726.86, + "volume": 730349548.0 + }, + { + "date": "2026-02-09", + "open": 14115.14, + "close": 14208.44, + "high": 14211.7, + "low": 14060.67, + "volume": 726369602.0 + }, + { + "date": "2026-02-10", + "open": 14200.76, + "close": 14210.63, + "high": 14258.51, + "low": 14165.43, + "volume": 733002884.0 + }, + { + "date": "2026-02-11", + "open": 14186.65, + "close": 14160.93, + "high": 14250.34, + "low": 14156.16, + "volume": 681933201.0 + }, + { + "date": "2026-02-12", + "open": 14177.97, + "close": 14283.0, + "high": 14296.48, + "low": 14177.29, + "volume": 696259702.0 + }, + { + "date": "2026-02-13", + "open": 14188.35, + "close": 14100.19, + "high": 14258.83, + "low": 14092.84, + "volume": 640639616.0 + }, + { + "date": "2026-02-24", + "open": 14313.86, + "close": 14291.57, + "high": 14376.96, + "low": 14214.41, + "volume": 712425990.0 + }, + { + "date": "2026-02-25", + "open": 14322.24, + "close": 14475.87, + "high": 14512.85, + "low": 14314.15, + "volume": 793688511.0 + }, + { + "date": "2026-02-26", + "open": 14495.86, + "close": 14503.79, + "high": 14536.08, + "low": 14408.88, + "volume": 793134075.0 + }, + { + "date": "2026-02-27", + "open": 14375.25, + "close": 14495.09, + "high": 14497.96, + "low": 14366.35, + "volume": 781109596.0 + }, + { + "date": "2026-03-02", + "open": 14327.65, + "close": 14465.79, + "high": 14509.69, + "low": 14285.67, + "volume": 933794647.0 + }, + { + "date": "2026-03-03", + "open": 14498.7, + "close": 14022.39, + "high": 14526.06, + "low": 14007.65, + "volume": 970658945.0 + }, + { + "date": "2026-03-04", + "open": 13854.37, + "close": 13917.75, + "high": 14112.02, + "low": 13854.37, + "volume": 740464019.0 + }, + { + "date": "2026-03-05", + "open": 14160.2, + "close": 14088.84, + "high": 14202.76, + "low": 13999.7, + "volume": 758966477.0 + }, + { + "date": "2026-03-06", + "open": 14015.54, + "close": 14172.63, + "high": 14212.84, + "low": 13969.34, + "volume": 729278913.0 + }, + { + "date": "2026-03-09", + "open": 13920.29, + "close": 14067.5, + "high": 14103.63, + "low": 13701.67, + "volume": 837345656.0 + }, + { + "date": "2026-03-10", + "open": 14239.3, + "close": 14354.07, + "high": 14357.82, + "low": 14239.3, + "volume": 736222902.0 + }, + { + "date": "2026-03-11", + "open": 14373.74, + "close": 14465.41, + "high": 14531.02, + "low": 14373.01, + "volume": 770973777.0 + }, + { + "date": "2026-03-12", + "open": 14457.63, + "close": 14374.87, + "high": 14478.05, + "low": 14245.77, + "volume": 768805142.0 + }, + { + "date": "2026-03-13", + "open": 14300.92, + "close": 14280.78, + "high": 14454.31, + "low": 14245.96, + "volume": 774225691.0 + }, + { + "date": "2026-03-16", + "open": 14291.15, + "close": 14307.58, + "high": 14320.1, + "low": 14097.82, + "volume": 753016186.0 + }, + { + "date": "2026-03-17", + "open": 14370.45, + "close": 14039.73, + "high": 14400.36, + "low": 14039.5, + "volume": 753197038.0 + }, + { + "date": "2026-03-18", + "open": 14108.92, + "close": 14187.8, + "high": 14203.91, + "low": 13944.37, + "volume": 666055598.0 + }, + { + "date": "2026-03-19", + "open": 14003.7, + "close": 13901.57, + "high": 14098.69, + "low": 13852.6, + "volume": 679341018.0 + }, + { + "date": "2026-03-20", + "open": 14021.46, + "close": 13866.2, + "high": 14144.99, + "low": 13856.49, + "volume": 734132051.0 + }, + { + "date": "2026-03-23", + "open": 13619.94, + "close": 13345.51, + "high": 13758.97, + "low": 13274.18, + "volume": 852353152.0 + }, + { + "date": "2026-03-24", + "open": 13514.67, + "close": 13536.56, + "high": 13536.56, + "low": 13169.25, + "volume": 731464361.0 + }, + { + "date": "2026-03-25", + "open": 13669.05, + "close": 13801.0, + "high": 13835.03, + "low": 13666.84, + "volume": 723433703.0 + }, + { + "date": "2026-03-26", + "open": 13756.87, + "close": 13606.44, + "high": 13853.1, + "low": 13573.12, + "volume": 667004907.0 + }, + { + "date": "2026-03-27", + "open": 13423.51, + "close": 13760.37, + "high": 13842.4, + "low": 13419.31, + "volume": 630568985.0 + }, + { + "date": "2026-03-30", + "open": 13618.79, + "close": 13726.19, + "high": 13748.21, + "low": 13536.56, + "volume": 653413030.0 + }, + { + "date": "2026-03-31", + "open": 13683.68, + "close": 13478.06, + "high": 13783.97, + "low": 13478.06, + "volume": 664490771.0 + }, + { + "date": "2026-04-01", + "open": 13731.39, + "close": 13706.52, + "high": 13740.97, + "low": 13603.79, + "volume": 655763382.0 + }, + { + "date": "2026-04-02", + "open": 13658.25, + "close": 13486.94, + "high": 13680.63, + "low": 13418.5, + "volume": 636038710.0 + }, + { + "date": "2026-04-03", + "open": 13553.65, + "close": 13352.9, + "high": 13558.91, + "low": 13345.61, + "volume": 586572227.0 + }, + { + "date": "2026-04-07", + "open": 13392.94, + "close": 13400.41, + "high": 13476.08, + "low": 13305.51, + "volume": 540630597.0 + }, + { + "date": "2026-04-08", + "open": 13717.22, + "close": 14042.5, + "high": 14042.5, + "low": 13694.91, + "volume": 748327010.0 + }, + { + "date": "2026-04-09", + "open": 13928.43, + "close": 13996.27, + "high": 14058.05, + "low": 13891.48, + "volume": 653026389.0 + }, + { + "date": "2026-04-10", + "open": 14098.02, + "close": 14309.47, + "high": 14382.61, + "low": 14095.88, + "volume": 668726169.0 + }, + { + "date": "2026-04-13", + "open": 14233.11, + "close": 14407.86, + "high": 14440.26, + "low": 14233.11, + "volume": 623636577.0 + }, + { + "date": "2026-04-14", + "open": 14514.69, + "close": 14639.95, + "high": 14640.77, + "low": 14463.93, + "volume": 683376964.0 + }, + { + "date": "2026-04-15", + "open": 14736.01, + "close": 14498.45, + "high": 14738.53, + "low": 14440.21, + "volume": 697369584.0 + }, + { + "date": "2026-04-16", + "open": 14546.35, + "close": 14796.33, + "high": 14807.16, + "low": 14522.86, + "volume": 686456018.0 + }, + { + "date": "2026-04-17", + "open": 14806.28, + "close": 14885.42, + "high": 14916.39, + "low": 14787.87, + "volume": 695914499.0 + }, + { + "date": "2026-04-20", + "open": 14870.9, + "close": 14966.75, + "high": 15006.92, + "low": 14845.97, + "volume": 723332086.0 + }, + { + "date": "2026-04-21", + "open": 14920.38, + "close": 14982.14, + "high": 15017.75, + "low": 14774.08, + "volume": 701150038.0 + }, + { + "date": "2026-04-22", + "open": 14897.96, + "close": 15177.29, + "high": 15182.82, + "low": 14897.96, + "volume": 698955593.0 + }, + { + "date": "2026-04-23", + "open": 15234.22, + "close": 15043.45, + "high": 15248.43, + "low": 14934.68, + "volume": 761022818.0 + }, + { + "date": "2026-04-24", + "open": 14951.74, + "close": 14940.3, + "high": 15033.67, + "low": 14795.22, + "volume": 709729439.0 + }, + { + "date": "2026-04-27", + "open": 14960.02, + "close": 14995.75, + "high": 15054.46, + "low": 14919.22, + "volume": 709930001.0 + }, + { + "date": "2026-04-28", + "open": 14925.22, + "close": 14830.46, + "high": 14943.36, + "low": 14772.46, + "volume": 723727547.0 + }, + { + "date": "2026-04-29", + "open": 14751.42, + "close": 15120.92, + "high": 15139.71, + "low": 14751.42, + "volume": 736380398.0 + }, + { + "date": "2026-04-30", + "open": 15157.07, + "close": 15107.55, + "high": 15186.12, + "low": 15044.86, + "volume": 737703743.0 + }, + { + "date": "2026-05-06", + "open": 15323.19, + "close": 15459.62, + "high": 15534.67, + "low": 15254.99, + "volume": 826248677.0 + }, + { + "date": "2026-05-07", + "open": 15541.3, + "close": 15641.89, + "high": 15652.58, + "low": 15439.48, + "volume": 844489884.0 + }, + { + "date": "2026-05-08", + "open": 15520.38, + "close": 15563.8, + "high": 15639.39, + "low": 15466.84, + "volume": 826218480.0 + }, + { + "date": "2026-05-11", + "open": 15697.44, + "close": 15899.3, + "high": 15921.65, + "low": 15622.33, + "volume": 911634859.0 + }, + { + "date": "2026-05-12", + "open": 15952.79, + "close": 15824.92, + "high": 15952.79, + "low": 15711.27, + "volume": 847817149.0 + }, + { + "date": "2026-05-13", + "open": 15713.54, + "close": 16089.75, + "high": 16100.46, + "low": 15713.54, + "volume": 827341429.0 + }, + { + "date": "2026-05-14", + "open": 16202.22, + "close": 15745.74, + "high": 16207.75, + "low": 15745.74, + "volume": 873525492.0 + }, + { + "date": "2026-05-15", + "open": 15753.19, + "close": 15561.37, + "high": 15855.55, + "low": 15447.4, + "volume": 849695631.0 + }, + { + "date": "2026-05-18", + "open": 15465.3, + "close": 15530.23, + "high": 15658.11, + "low": 15419.04, + "volume": 738305604.0 + }, + { + "date": "2026-05-19", + "open": 15469.36, + "close": 15569.91, + "high": 15585.04, + "low": 15221.35, + "volume": 731216529.0 + }, + { + "date": "2026-05-20", + "open": 15487.43, + "close": 15569.98, + "high": 15622.21, + "low": 15426.38, + "volume": 726217958.0 + }, + { + "date": "2026-05-21", + "open": 15707.96, + "close": 15247.27, + "high": 15894.3, + "low": 15232.6, + "volume": 878984174.0 + }, + { + "date": "2026-05-22", + "open": 15382.29, + "close": 15597.3, + "high": 15624.97, + "low": 15295.57, + "volume": 763067278.0 + }, + { + "date": "2026-05-25", + "open": 15716.39, + "close": 15856.61, + "high": 15857.08, + "low": 15547.16, + "volume": 781225873.0 + }, + { + "date": "2026-05-26", + "open": 15786.82, + "close": 15876.16, + "high": 15894.55, + "low": 15662.16, + "volume": 823273532.0 + }, + { + "date": "2026-05-27", + "open": 15868.9, + "close": 15736.47, + "high": 16047.41, + "low": 15656.65, + "volume": 815871163.0 + }, + { + "date": "2026-05-28", + "open": 15691.16, + "close": 15861.89, + "high": 15889.83, + "low": 15504.79, + "volume": 747849432.0 + }, + { + "date": "2026-05-29", + "open": 15957.12, + "close": 15575.13, + "high": 15981.93, + "low": 15492.84, + "volume": 848879728.0 + }, + { + "date": "2026-06-01", + "open": 15601.03, + "close": 15340.36, + "high": 15717.45, + "low": 15316.02, + "volume": 760393033.0 + }, + { + "date": "2026-06-02", + "open": 15410.7, + "close": 15591.13, + "high": 15664.39, + "low": 15203.8, + "volume": 737350307.0 + }, + { + "date": "2026-06-03", + "open": 15646.69, + "close": 15704.71, + "high": 15962.36, + "low": 15542.66, + "volume": 792737877.0 + }, + { + "date": "2026-06-04", + "open": 15540.06, + "close": 15661.57, + "high": 15745.19, + "low": 15517.94, + "volume": 718939421.0 + }, + { + "date": "2026-06-05", + "open": 15595.7, + "close": 15314.7, + "high": 15710.14, + "low": 15243.51, + "volume": 818251186.0 + }, + { + "date": "2026-06-08", + "open": 14835.37, + "close": 14821.19, + "high": 15137.75, + "low": 14681.64, + "volume": 788640863.0 + }, + { + "date": "2026-06-09", + "open": 14992.55, + "close": 15268.71, + "high": 15274.72, + "low": 14846.55, + "volume": 718050679.0 + }, + { + "date": "2026-06-10", + "open": 15062.51, + "close": 14954.1, + "high": 15149.37, + "low": 14817.11, + "volume": 710462329.0 + }, + { + "date": "2026-06-11", + "open": 14889.57, + "close": 14851.98, + "high": 15062.75, + "low": 14706.09, + "volume": 669817686.0 + }, + { + "date": "2026-06-12", + "open": 15149.52, + "close": 14963.41, + "high": 15171.22, + "low": 14943.43, + "volume": 792336423.0 + }, + { + "date": "2026-06-15", + "open": 15153.18, + "close": 15531.11, + "high": 15531.11, + "low": 15055.95, + "volume": 757054683.0 + }, + { + "date": "2026-06-16", + "open": 15584.37, + "close": 15675.25, + "high": 15761.0, + "low": 15537.5, + "volume": 754828802.0 + }, + { + "date": "2026-06-17", + "open": 15569.92, + "close": 15880.95, + "high": 15885.49, + "low": 15569.92, + "volume": 745916232.0 + }, + { + "date": "2026-06-18", + "open": 15826.79, + "close": 16030.7, + "high": 16104.77, + "low": 15825.32, + "volume": 764976920.0 + }, + { + "date": "2026-06-22", + "open": 16095.63, + "close": 16372.5, + "high": 16374.02, + "low": 15914.05, + "volume": 876768616.0 + } + ], + "weekly": [ + { + "date": "2026-01-09", + "open": 13633.63, + "close": 14120.15, + "high": 14139.54, + "low": 13633.63, + "volume": 4609580874.0 + }, + { + "date": "2026-01-16", + "open": 14186.86, + "close": 14281.08, + "high": 14459.21, + "low": 14089.59, + "volume": 5538286419.0 + }, + { + "date": "2026-01-23", + "open": 14221.93, + "close": 14439.66, + "high": 14449.84, + "low": 14033.22, + "volume": 4312728183.0 + }, + { + "date": "2026-01-30", + "open": 14492.42, + "close": 14205.89, + "high": 14532.9, + "low": 13923.95, + "volume": 4712178315.0 + }, + { + "date": "2026-02-06", + "open": 14128.87, + "close": 13906.73, + "high": 14213.61, + "low": 13726.86, + "volume": 3865867007.0 + }, + { + "date": "2026-02-13", + "open": 14115.14, + "close": 14100.19, + "high": 14296.48, + "low": 14060.67, + "volume": 3478205005.0 + }, + { + "date": "2026-02-27", + "open": 14313.86, + "close": 14495.09, + "high": 14536.08, + "low": 14214.41, + "volume": 3080358172.0 + }, + { + "date": "2026-03-06", + "open": 14327.65, + "close": 14172.63, + "high": 14526.06, + "low": 13854.37, + "volume": 4133163001.0 + }, + { + "date": "2026-03-13", + "open": 13920.29, + "close": 14280.78, + "high": 14531.02, + "low": 13701.67, + "volume": 3887573168.0 + }, + { + "date": "2026-03-20", + "open": 14291.15, + "close": 13866.2, + "high": 14400.36, + "low": 13852.6, + "volume": 3585741891.0 + }, + { + "date": "2026-03-27", + "open": 13619.94, + "close": 13760.37, + "high": 13853.1, + "low": 13169.25, + "volume": 3604825108.0 + }, + { + "date": "2026-04-03", + "open": 13618.79, + "close": 13352.9, + "high": 13783.97, + "low": 13345.61, + "volume": 3196278120.0 + }, + { + "date": "2026-04-10", + "open": 13392.94, + "close": 14309.47, + "high": 14382.61, + "low": 13305.51, + "volume": 2610710165.0 + }, + { + "date": "2026-04-17", + "open": 14233.11, + "close": 14885.42, + "high": 14916.39, + "low": 14233.11, + "volume": 3386753642.0 + }, + { + "date": "2026-04-24", + "open": 14870.9, + "close": 14940.3, + "high": 15248.43, + "low": 14774.08, + "volume": 3594189974.0 + }, + { + "date": "2026-04-30", + "open": 14960.02, + "close": 15107.55, + "high": 15186.12, + "low": 14751.42, + "volume": 2907741689.0 + }, + { + "date": "2026-05-08", + "open": 15323.19, + "close": 15563.8, + "high": 15652.58, + "low": 15254.99, + "volume": 2496957041.0 + }, + { + "date": "2026-05-15", + "open": 15697.44, + "close": 15561.37, + "high": 16207.75, + "low": 15447.4, + "volume": 4310014560.0 + }, + { + "date": "2026-05-22", + "open": 15465.3, + "close": 15597.3, + "high": 15894.3, + "low": 15221.35, + "volume": 3837791543.0 + }, + { + "date": "2026-05-29", + "open": 15716.39, + "close": 15575.13, + "high": 16047.41, + "low": 15492.84, + "volume": 4017099728.0 + }, + { + "date": "2026-06-05", + "open": 15601.03, + "close": 15314.7, + "high": 15962.36, + "low": 15203.8, + "volume": 3827671824.0 + }, + { + "date": "2026-06-12", + "open": 14835.37, + "close": 14963.41, + "high": 15274.72, + "low": 14681.64, + "volume": 3679307980.0 + }, + { + "date": "2026-06-18", + "open": 15153.18, + "close": 16030.7, + "high": 16104.77, + "low": 15055.95, + "volume": 3022776637.0 + }, + { + "date": "2026-06-22", + "open": 16095.63, + "close": 16372.5, + "high": 16374.02, + "low": 15914.05, + "volume": 876768616.0 + } + ], + "monthly": [ + { + "date": "2025-07-31", + "open": 10458.39, + "close": 11009.77, + "high": 11307.62, + "low": 10386.49, + "volume": 15924334701.0 + }, + { + "date": "2025-08-29", + "open": 11001.25, + "close": 12696.15, + "high": 12791.18, + "low": 10919.89, + "volume": 17616964905.0 + }, + { + "date": "2025-09-30", + "open": 12773.22, + "close": 13526.51, + "high": 13598.18, + "low": 11967.57, + "volume": 17985339375.0 + }, + { + "date": "2025-10-31", + "open": 13598.35, + "close": 13378.21, + "high": 13806.69, + "low": 12677.44, + "volume": 11799207713.0 + }, + { + "date": "2025-11-28", + "open": 13364.42, + "close": 12984.08, + "high": 13502.16, + "low": 12448.32, + "volume": 14293695007.0 + }, + { + "date": "2025-12-31", + "open": 13038.16, + "close": 13525.02, + "high": 13674.87, + "low": 12851.22, + "volume": 15540309223.0 + }, + { + "date": "2026-01-30", + "open": 13633.63, + "close": 14205.89, + "high": 14532.9, + "low": 13633.63, + "volume": 19172773791.0 + }, + { + "date": "2026-02-27", + "open": 14128.87, + "close": 14495.09, + "high": 14536.08, + "low": 13726.86, + "volume": 10424430184.0 + }, + { + "date": "2026-03-31", + "open": 14327.65, + "close": 13478.06, + "high": 14531.02, + "low": 13169.25, + "volume": 16529206969.0 + }, + { + "date": "2026-04-30", + "open": 13731.39, + "close": 15107.55, + "high": 15248.43, + "low": 13305.51, + "volume": 14377769789.0 + }, + { + "date": "2026-05-29", + "open": 15323.19, + "close": 15575.13, + "high": 16207.75, + "low": 15221.35, + "volume": 14661862872.0 + }, + { + "date": "2026-06-22", + "open": 15601.03, + "close": 16372.5, + "high": 16374.02, + "low": 14681.64, + "volume": 11406525057.0 + } + ], + "updated_at": 1782144134.152781 + }, + "sz399006": { + "daily": [ + { + "date": "2025-12-18", + "open": 3138.66, + "close": 3107.06, + "high": 3154.07, + "low": 3107.06, + "volume": 169218740.0 + }, + { + "date": "2025-12-19", + "open": 3134.8, + "close": 3122.24, + "high": 3157.29, + "low": 3112.03, + "volume": 177361917.0 + }, + { + "date": "2025-12-22", + "open": 3153.75, + "close": 3191.98, + "high": 3197.94, + "low": 3153.75, + "volume": 175227535.0 + }, + { + "date": "2025-12-23", + "open": 3196.31, + "close": 3205.01, + "high": 3227.07, + "low": 3184.53, + "volume": 183880580.0 + }, + { + "date": "2025-12-24", + "open": 3207.41, + "close": 3229.58, + "high": 3235.0, + "low": 3193.97, + "volume": 182675050.0 + }, + { + "date": "2025-12-25", + "open": 3232.97, + "close": 3239.34, + "high": 3249.11, + "low": 3200.49, + "volume": 193569997.0 + }, + { + "date": "2025-12-26", + "open": 3232.41, + "close": 3243.88, + "high": 3268.69, + "low": 3219.13, + "volume": 210934630.0 + }, + { + "date": "2025-12-29", + "open": 3237.77, + "close": 3222.61, + "high": 3250.09, + "low": 3208.08, + "volume": 196242768.0 + }, + { + "date": "2025-12-30", + "open": 3208.32, + "close": 3242.9, + "high": 3251.13, + "low": 3207.73, + "volume": 206953285.0 + }, + { + "date": "2025-12-31", + "open": 3247.74, + "close": 3203.17, + "high": 3254.89, + "low": 3198.25, + "volume": 206198167.0 + }, + { + "date": "2026-01-05", + "open": 3229.93, + "close": 3294.55, + "high": 3295.29, + "low": 3229.93, + "volume": 263142610.0 + }, + { + "date": "2026-01-06", + "open": 3279.81, + "close": 3319.29, + "high": 3321.44, + "low": 3265.73, + "volume": 278150655.0 + }, + { + "date": "2026-01-07", + "open": 3331.34, + "close": 3329.69, + "high": 3351.22, + "low": 3298.55, + "volume": 271641051.0 + }, + { + "date": "2026-01-08", + "open": 3308.74, + "close": 3302.31, + "high": 3328.96, + "low": 3285.16, + "volume": 280864919.0 + }, + { + "date": "2026-01-09", + "open": 3279.38, + "close": 3327.81, + "high": 3330.01, + "low": 3269.99, + "volume": 333280635.0 + }, + { + "date": "2026-01-12", + "open": 3323.64, + "close": 3388.34, + "high": 3398.05, + "low": 3282.39, + "volume": 406851832.0 + }, + { + "date": "2026-01-13", + "open": 3390.69, + "close": 3321.89, + "high": 3416.84, + "low": 3307.63, + "volume": 419547701.0 + }, + { + "date": "2026-01-14", + "open": 3333.17, + "close": 3349.14, + "high": 3403.95, + "low": 3308.63, + "volume": 439958418.0 + }, + { + "date": "2026-01-15", + "open": 3318.11, + "close": 3367.92, + "high": 3372.47, + "low": 3309.06, + "volume": 307576548.0 + }, + { + "date": "2026-01-16", + "open": 3394.35, + "close": 3361.02, + "high": 3407.86, + "low": 3354.65, + "volume": 299981551.0 + }, + { + "date": "2026-01-19", + "open": 3340.94, + "close": 3337.61, + "high": 3383.79, + "low": 3326.13, + "volume": 256405217.0 + }, + { + "date": "2026-01-20", + "open": 3340.46, + "close": 3277.98, + "high": 3347.94, + "low": 3257.44, + "volume": 260731480.0 + }, + { + "date": "2026-01-21", + "open": 3270.13, + "close": 3295.52, + "high": 3329.5, + "low": 3270.13, + "volume": 230185910.0 + }, + { + "date": "2026-01-22", + "open": 3312.75, + "close": 3328.65, + "high": 3337.27, + "low": 3280.32, + "volume": 235389326.0 + }, + { + "date": "2026-01-23", + "open": 3334.02, + "close": 3349.5, + "high": 3349.5, + "low": 3316.65, + "volume": 293479372.0 + }, + { + "date": "2026-01-26", + "open": 3365.61, + "close": 3319.15, + "high": 3367.99, + "low": 3304.36, + "volume": 314806723.0 + }, + { + "date": "2026-01-27", + "open": 3316.02, + "close": 3342.6, + "high": 3366.68, + "low": 3277.26, + "volume": 266460051.0 + }, + { + "date": "2026-01-28", + "open": 3359.79, + "close": 3323.56, + "high": 3361.14, + "low": 3301.05, + "volume": 258142248.0 + }, + { + "date": "2026-01-29", + "open": 3322.48, + "close": 3304.51, + "high": 3356.48, + "low": 3298.59, + "volume": 294963224.0 + }, + { + "date": "2026-01-30", + "open": 3301.54, + "close": 3346.36, + "high": 3369.24, + "low": 3255.65, + "volume": 263026318.0 + }, + { + "date": "2026-02-02", + "open": 3368.14, + "close": 3264.11, + "high": 3390.3, + "low": 3262.12, + "volume": 238543608.0 + }, + { + "date": "2026-02-03", + "open": 3318.06, + "close": 3324.89, + "high": 3332.48, + "low": 3249.06, + "volume": 230616448.0 + }, + { + "date": "2026-02-04", + "open": 3298.32, + "close": 3311.51, + "high": 3318.9, + "low": 3244.71, + "volume": 237312928.0 + }, + { + "date": "2026-02-05", + "open": 3277.72, + "close": 3260.28, + "high": 3288.38, + "low": 3238.78, + "volume": 205295208.0 + }, + { + "date": "2026-02-06", + "open": 3222.88, + "close": 3236.46, + "high": 3288.03, + "low": 3199.14, + "volume": 209401230.0 + }, + { + "date": "2026-02-09", + "open": 3299.6, + "close": 3332.77, + "high": 3340.33, + "low": 3276.57, + "volume": 235311933.0 + }, + { + "date": "2026-02-10", + "open": 3321.88, + "close": 3320.54, + "high": 3348.48, + "low": 3320.54, + "volume": 240458372.0 + }, + { + "date": "2026-02-11", + "open": 3312.64, + "close": 3284.74, + "high": 3324.18, + "low": 3284.24, + "volume": 220715123.0 + }, + { + "date": "2026-02-12", + "open": 3294.57, + "close": 3328.06, + "high": 3334.35, + "low": 3292.68, + "volume": 225917395.0 + }, + { + "date": "2026-02-13", + "open": 3309.43, + "close": 3275.96, + "high": 3323.37, + "low": 3275.29, + "volume": 206249589.0 + }, + { + "date": "2026-02-24", + "open": 3331.79, + "close": 3308.26, + "high": 3343.24, + "low": 3292.5, + "volume": 222404056.0 + }, + { + "date": "2026-02-25", + "open": 3313.09, + "close": 3354.82, + "high": 3363.18, + "low": 3302.76, + "volume": 232054795.0 + }, + { + "date": "2026-02-26", + "open": 3346.74, + "close": 3344.98, + "high": 3351.57, + "low": 3310.55, + "volume": 251619744.0 + }, + { + "date": "2026-02-27", + "open": 3303.98, + "close": 3310.3, + "high": 3326.58, + "low": 3292.89, + "volume": 240320830.0 + }, + { + "date": "2026-03-02", + "open": 3257.05, + "close": 3294.16, + "high": 3319.91, + "low": 3257.05, + "volume": 273514912.0 + }, + { + "date": "2026-03-03", + "open": 3316.63, + "close": 3209.48, + "high": 3331.26, + "low": 3206.62, + "volume": 286371200.0 + }, + { + "date": "2026-03-04", + "open": 3171.19, + "close": 3164.37, + "high": 3217.11, + "low": 3149.41, + "volume": 217331864.0 + }, + { + "date": "2026-03-05", + "open": 3236.15, + "close": 3216.94, + "high": 3264.8, + "low": 3194.96, + "volume": 241669489.0 + }, + { + "date": "2026-03-06", + "open": 3197.66, + "close": 3229.3, + "high": 3248.9, + "low": 3177.87, + "volume": 222766226.0 + }, + { + "date": "2026-03-09", + "open": 3152.72, + "close": 3208.58, + "high": 3220.01, + "low": 3111.88, + "volume": 255045462.0 + }, + { + "date": "2026-03-10", + "open": 3281.94, + "close": 3306.14, + "high": 3308.75, + "low": 3272.99, + "volume": 236304274.0 + }, + { + "date": "2026-03-11", + "open": 3318.41, + "close": 3349.53, + "high": 3388.1, + "low": 3318.41, + "volume": 235567220.0 + }, + { + "date": "2026-03-12", + "open": 3357.03, + "close": 3317.52, + "high": 3358.77, + "low": 3286.77, + "volume": 225425058.0 + }, + { + "date": "2026-03-13", + "open": 3296.5, + "close": 3310.28, + "high": 3342.85, + "low": 3296.11, + "volume": 226552974.0 + }, + { + "date": "2026-03-16", + "open": 3323.98, + "close": 3357.02, + "high": 3360.35, + "low": 3284.05, + "volume": 208217725.0 + }, + { + "date": "2026-03-17", + "open": 3385.71, + "close": 3280.06, + "high": 3390.02, + "low": 3279.87, + "volume": 207256854.0 + }, + { + "date": "2026-03-18", + "open": 3307.82, + "close": 3346.37, + "high": 3350.56, + "low": 3274.26, + "volume": 193702694.0 + }, + { + "date": "2026-03-19", + "open": 3311.44, + "close": 3309.1, + "high": 3361.21, + "low": 3295.45, + "volume": 199153562.0 + }, + { + "date": "2026-03-20", + "open": 3362.07, + "close": 3352.1, + "high": 3426.61, + "low": 3348.7, + "volume": 225401630.0 + }, + { + "date": "2026-03-23", + "open": 3300.56, + "close": 3235.22, + "high": 3334.46, + "low": 3214.82, + "volume": 239669171.0 + }, + { + "date": "2026-03-24", + "open": 3266.93, + "close": 3251.55, + "high": 3270.19, + "low": 3155.27, + "volume": 205225479.0 + }, + { + "date": "2026-03-25", + "open": 3287.17, + "close": 3316.97, + "high": 3325.26, + "low": 3278.73, + "volume": 206290186.0 + }, + { + "date": "2026-03-26", + "open": 3299.03, + "close": 3272.49, + "high": 3347.23, + "low": 3264.0, + "volume": 185458328.0 + }, + { + "date": "2026-03-27", + "open": 3236.37, + "close": 3295.88, + "high": 3323.33, + "low": 3228.41, + "volume": 169688303.0 + }, + { + "date": "2026-03-30", + "open": 3254.43, + "close": 3273.36, + "high": 3281.39, + "low": 3224.6, + "volume": 172193857.0 + }, + { + "date": "2026-03-31", + "open": 3247.28, + "close": 3184.95, + "high": 3280.48, + "low": 3184.95, + "volume": 178168265.0 + }, + { + "date": "2026-04-01", + "open": 3255.26, + "close": 3247.52, + "high": 3255.26, + "low": 3206.8, + "volume": 180123659.0 + }, + { + "date": "2026-04-02", + "open": 3229.6, + "close": 3172.65, + "high": 3229.68, + "low": 3155.13, + "volume": 174675433.0 + }, + { + "date": "2026-04-03", + "open": 3197.77, + "close": 3149.6, + "high": 3199.44, + "low": 3149.15, + "volume": 161826887.0 + }, + { + "date": "2026-04-07", + "open": 3162.82, + "close": 3160.82, + "high": 3181.35, + "low": 3133.78, + "volume": 146704274.0 + }, + { + "date": "2026-04-08", + "open": 3257.91, + "close": 3347.61, + "high": 3348.39, + "low": 3243.78, + "volume": 226902300.0 + }, + { + "date": "2026-04-09", + "open": 3316.29, + "close": 3323.3, + "high": 3340.3, + "low": 3301.65, + "volume": 195555903.0 + }, + { + "date": "2026-04-10", + "open": 3355.07, + "close": 3448.79, + "high": 3470.72, + "low": 3354.77, + "volume": 205391067.0 + }, + { + "date": "2026-04-13", + "open": 3434.32, + "close": 3476.44, + "high": 3492.48, + "low": 3434.32, + "volume": 180013140.0 + }, + { + "date": "2026-04-14", + "open": 3507.11, + "close": 3558.53, + "high": 3560.3, + "low": 3493.37, + "volume": 200966062.0 + }, + { + "date": "2026-04-15", + "open": 3596.08, + "close": 3514.96, + "high": 3599.98, + "low": 3491.45, + "volume": 203159933.0 + }, + { + "date": "2026-04-16", + "open": 3531.26, + "close": 3626.27, + "high": 3629.42, + "low": 3518.36, + "volume": 212193010.0 + }, + { + "date": "2026-04-17", + "open": 3643.15, + "close": 3678.29, + "high": 3685.1, + "low": 3620.33, + "volume": 213647879.0 + }, + { + "date": "2026-04-20", + "open": 3657.35, + "close": 3677.58, + "high": 3696.26, + "low": 3642.81, + "volume": 215598844.0 + }, + { + "date": "2026-04-21", + "open": 3662.26, + "close": 3688.94, + "high": 3695.74, + "low": 3619.48, + "volume": 196710069.0 + }, + { + "date": "2026-04-22", + "open": 3660.42, + "close": 3752.76, + "high": 3755.75, + "low": 3660.09, + "volume": 208325490.0 + }, + { + "date": "2026-04-23", + "open": 3769.02, + "close": 3720.25, + "high": 3785.23, + "low": 3681.57, + "volume": 234554114.0 + }, + { + "date": "2026-04-24", + "open": 3682.5, + "close": 3667.79, + "high": 3699.94, + "low": 3625.0, + "volume": 227960182.0 + }, + { + "date": "2026-04-27", + "open": 3677.89, + "close": 3648.79, + "high": 3686.94, + "low": 3640.11, + "volume": 215941887.0 + }, + { + "date": "2026-04-28", + "open": 3623.49, + "close": 3596.71, + "high": 3636.93, + "low": 3580.39, + "volume": 218834025.0 + }, + { + "date": "2026-04-29", + "open": 3578.42, + "close": 3687.17, + "high": 3692.21, + "low": 3578.42, + "volume": 215002402.0 + }, + { + "date": "2026-04-30", + "open": 3704.11, + "close": 3677.15, + "high": 3718.4, + "low": 3660.22, + "volume": 201808141.0 + }, + { + "date": "2026-05-06", + "open": 3760.67, + "close": 3778.16, + "high": 3815.07, + "low": 3724.53, + "volume": 249880273.0 + }, + { + "date": "2026-05-07", + "open": 3807.99, + "close": 3833.06, + "high": 3840.06, + "low": 3761.23, + "volume": 252313119.0 + }, + { + "date": "2026-05-08", + "open": 3792.04, + "close": 3796.13, + "high": 3840.16, + "low": 3787.17, + "volume": 242873982.0 + }, + { + "date": "2026-05-11", + "open": 3829.61, + "close": 3928.97, + "high": 3937.87, + "low": 3797.5, + "volume": 264046160.0 + }, + { + "date": "2026-05-12", + "open": 3947.14, + "close": 3934.88, + "high": 3954.99, + "low": 3897.82, + "volume": 247035078.0 + }, + { + "date": "2026-05-13", + "open": 3900.74, + "close": 4038.33, + "high": 4041.99, + "low": 3893.8, + "volume": 248072070.0 + }, + { + "date": "2026-05-14", + "open": 4087.85, + "close": 3951.14, + "high": 4090.42, + "low": 3937.6, + "volume": 250323172.0 + }, + { + "date": "2026-05-15", + "open": 3957.74, + "close": 3929.06, + "high": 4002.73, + "low": 3870.37, + "volume": 245569819.0 + }, + { + "date": "2026-05-18", + "open": 3895.07, + "close": 3914.88, + "high": 3961.16, + "low": 3883.4, + "volume": 217646936.0 + }, + { + "date": "2026-05-19", + "open": 3894.0, + "close": 3908.44, + "high": 3918.31, + "low": 3808.47, + "volume": 223481304.0 + }, + { + "date": "2026-05-20", + "open": 3889.68, + "close": 3921.79, + "high": 3947.22, + "low": 3887.15, + "volume": 222605616.0 + }, + { + "date": "2026-05-21", + "open": 3962.3, + "close": 3829.78, + "high": 4017.81, + "low": 3827.52, + "volume": 265528742.0 + }, + { + "date": "2026-05-22", + "open": 3875.81, + "close": 3938.5, + "high": 3948.99, + "low": 3856.21, + "volume": 214290151.0 + }, + { + "date": "2026-05-25", + "open": 3974.97, + "close": 4021.16, + "high": 4022.74, + "low": 3905.69, + "volume": 231457815.0 + }, + { + "date": "2026-05-26", + "open": 4003.13, + "close": 4043.07, + "high": 4057.37, + "low": 3985.51, + "volume": 228092127.0 + }, + { + "date": "2026-05-27", + "open": 4053.68, + "close": 4045.77, + "high": 4148.23, + "low": 4015.65, + "volume": 224129186.0 + }, + { + "date": "2026-05-28", + "open": 4042.08, + "close": 4125.07, + "high": 4135.38, + "low": 3971.72, + "volume": 207796485.0 + }, + { + "date": "2026-05-29", + "open": 4141.91, + "close": 4037.95, + "high": 4158.69, + "low": 4010.12, + "volume": 233413759.0 + }, + { + "date": "2026-06-01", + "open": 4057.39, + "close": 3950.94, + "high": 4081.42, + "low": 3942.68, + "volume": 210798809.0 + }, + { + "date": "2026-06-02", + "open": 3987.41, + "close": 4055.87, + "high": 4083.92, + "low": 3946.11, + "volume": 203915728.0 + }, + { + "date": "2026-06-03", + "open": 4089.02, + "close": 4122.99, + "high": 4218.33, + "low": 4063.2, + "volume": 218925848.0 + }, + { + "date": "2026-06-04", + "open": 4072.55, + "close": 4088.88, + "high": 4114.24, + "low": 4051.15, + "volume": 202724870.0 + }, + { + "date": "2026-06-05", + "open": 4079.95, + "close": 3957.94, + "high": 4105.21, + "low": 3933.07, + "volume": 228732023.0 + }, + { + "date": "2026-06-08", + "open": 3820.23, + "close": 3811.79, + "high": 3903.77, + "low": 3776.93, + "volume": 228336414.0 + }, + { + "date": "2026-06-09", + "open": 3865.69, + "close": 3961.75, + "high": 3962.9, + "low": 3823.76, + "volume": 209755585.0 + }, + { + "date": "2026-06-10", + "open": 3897.73, + "close": 3854.79, + "high": 3928.36, + "low": 3818.31, + "volume": 203947087.0 + }, + { + "date": "2026-06-11", + "open": 3839.19, + "close": 3811.25, + "high": 3910.28, + "low": 3755.61, + "volume": 198465341.0 + }, + { + "date": "2026-06-12", + "open": 3921.09, + "close": 3830.35, + "high": 3921.53, + "low": 3822.42, + "volume": 230246100.0 + }, + { + "date": "2026-06-15", + "open": 3896.17, + "close": 4033.53, + "high": 4033.53, + "low": 3844.08, + "volume": 221269003.0 + }, + { + "date": "2026-06-16", + "open": 4065.27, + "close": 4102.94, + "high": 4142.43, + "low": 4053.88, + "volume": 225905115.0 + }, + { + "date": "2026-06-17", + "open": 4061.3, + "close": 4167.05, + "high": 4168.16, + "low": 4058.61, + "volume": 221861568.0 + }, + { + "date": "2026-06-18", + "open": 4153.62, + "close": 4252.39, + "high": 4272.01, + "low": 4153.62, + "volume": 226559938.0 + }, + { + "date": "2026-06-22", + "open": 4272.99, + "close": 4359.39, + "high": 4359.39, + "low": 4229.31, + "volume": 272346002.0 + } + ], + "weekly": [ + { + "date": "2026-01-09", + "open": 3229.93, + "close": 3327.81, + "high": 3351.22, + "low": 3229.93, + "volume": 1427079870.0 + }, + { + "date": "2026-01-16", + "open": 3323.64, + "close": 3361.02, + "high": 3416.84, + "low": 3282.39, + "volume": 1873916050.0 + }, + { + "date": "2026-01-23", + "open": 3340.94, + "close": 3349.5, + "high": 3383.79, + "low": 3257.44, + "volume": 1276191305.0 + }, + { + "date": "2026-01-30", + "open": 3365.61, + "close": 3346.36, + "high": 3369.24, + "low": 3255.65, + "volume": 1397398564.0 + }, + { + "date": "2026-02-06", + "open": 3368.14, + "close": 3236.46, + "high": 3390.3, + "low": 3199.14, + "volume": 1121169422.0 + }, + { + "date": "2026-02-13", + "open": 3299.6, + "close": 3275.96, + "high": 3348.48, + "low": 3275.29, + "volume": 1128652412.0 + }, + { + "date": "2026-02-27", + "open": 3331.79, + "close": 3310.3, + "high": 3363.18, + "low": 3292.5, + "volume": 946399425.0 + }, + { + "date": "2026-03-06", + "open": 3257.05, + "close": 3229.3, + "high": 3331.26, + "low": 3149.41, + "volume": 1241653691.0 + }, + { + "date": "2026-03-13", + "open": 3152.72, + "close": 3310.28, + "high": 3388.1, + "low": 3111.88, + "volume": 1178894988.0 + }, + { + "date": "2026-03-20", + "open": 3323.98, + "close": 3352.1, + "high": 3426.61, + "low": 3274.26, + "volume": 1033732465.0 + }, + { + "date": "2026-03-27", + "open": 3300.56, + "close": 3295.88, + "high": 3347.23, + "low": 3155.27, + "volume": 1006331467.0 + }, + { + "date": "2026-04-03", + "open": 3254.43, + "close": 3149.6, + "high": 3281.39, + "low": 3149.15, + "volume": 866988101.0 + }, + { + "date": "2026-04-10", + "open": 3162.82, + "close": 3448.79, + "high": 3470.72, + "low": 3133.78, + "volume": 774553544.0 + }, + { + "date": "2026-04-17", + "open": 3434.32, + "close": 3678.29, + "high": 3685.1, + "low": 3434.32, + "volume": 1009980024.0 + }, + { + "date": "2026-04-24", + "open": 3657.35, + "close": 3667.79, + "high": 3785.23, + "low": 3619.48, + "volume": 1083148699.0 + }, + { + "date": "2026-04-30", + "open": 3677.89, + "close": 3677.15, + "high": 3718.4, + "low": 3578.42, + "volume": 851586455.0 + }, + { + "date": "2026-05-08", + "open": 3760.67, + "close": 3796.13, + "high": 3840.16, + "low": 3724.53, + "volume": 745067374.0 + }, + { + "date": "2026-05-15", + "open": 3829.61, + "close": 3929.06, + "high": 4090.42, + "low": 3797.5, + "volume": 1255046299.0 + }, + { + "date": "2026-05-22", + "open": 3895.07, + "close": 3938.5, + "high": 4017.81, + "low": 3808.47, + "volume": 1143552749.0 + }, + { + "date": "2026-05-29", + "open": 3974.97, + "close": 4037.95, + "high": 4158.69, + "low": 3905.69, + "volume": 1124889372.0 + }, + { + "date": "2026-06-05", + "open": 4057.39, + "close": 3957.94, + "high": 4218.33, + "low": 3933.07, + "volume": 1065097278.0 + }, + { + "date": "2026-06-12", + "open": 3820.23, + "close": 3830.35, + "high": 3962.9, + "low": 3755.61, + "volume": 1070750527.0 + }, + { + "date": "2026-06-18", + "open": 3896.17, + "close": 4252.39, + "high": 4272.01, + "low": 3844.08, + "volume": 895595624.0 + }, + { + "date": "2026-06-22", + "open": 4272.99, + "close": 4359.39, + "high": 4359.39, + "low": 4229.31, + "volume": 272346002.0 + } + ], + "monthly": [ + { + "date": "2025-07-31", + "open": 2149.22, + "close": 2328.31, + "high": 2406.59, + "low": 2118.55, + "volume": 5213513653.0 + }, + { + "date": "2025-08-29", + "open": 2323.92, + "close": 2890.13, + "high": 2933.99, + "low": 2304.39, + "volume": 5960307892.0 + }, + { + "date": "2025-09-30", + "open": 2914.64, + "close": 3238.16, + "high": 3279.02, + "low": 2741.08, + "volume": 5225290370.0 + }, + { + "date": "2025-10-31", + "open": 3251.04, + "close": 3187.53, + "high": 3331.86, + "low": 2927.51, + "volume": 3287946912.0 + }, + { + "date": "2025-11-28", + "open": 3179.3, + "close": 3052.59, + "high": 3240.35, + "low": 2892.27, + "volume": 4151210326.0 + }, + { + "date": "2025-12-31", + "open": 3060.56, + "close": 3203.17, + "high": 3268.69, + "low": 3016.58, + "volume": 4402213274.0 + }, + { + "date": "2026-01-30", + "open": 3229.93, + "close": 3346.36, + "high": 3416.84, + "low": 3229.93, + "volume": 5974585789.0 + }, + { + "date": "2026-02-27", + "open": 3368.14, + "close": 3310.3, + "high": 3390.3, + "low": 3199.14, + "volume": 3196221259.0 + }, + { + "date": "2026-03-31", + "open": 3257.05, + "close": 3184.95, + "high": 3426.61, + "low": 3111.88, + "volume": 4810974733.0 + }, + { + "date": "2026-04-30", + "open": 3255.26, + "close": 3677.15, + "high": 3785.23, + "low": 3133.78, + "volume": 4235894701.0 + }, + { + "date": "2026-05-29", + "open": 3760.67, + "close": 4037.95, + "high": 4158.69, + "low": 3724.53, + "volume": 4268555794.0 + }, + { + "date": "2026-06-22", + "open": 4057.39, + "close": 4359.39, + "high": 4359.39, + "low": 3755.61, + "volume": 3303789431.0 + } + ], + "updated_at": 1782144146.0161633 + }, + "sh000688": { + "daily": [ + { + "date": "2025-12-18", + "open": 1314.67, + "close": 1305.97, + "high": 1323.68, + "low": 1305.97, + "volume": 6270465.0 + }, + { + "date": "2025-12-19", + "open": 1314.75, + "close": 1308.59, + "high": 1323.86, + "low": 1306.8, + "volume": 6436585.0 + }, + { + "date": "2025-12-22", + "open": 1314.07, + "close": 1335.25, + "high": 1338.14, + "low": 1314.07, + "volume": 8018670.0 + }, + { + "date": "2025-12-23", + "open": 1333.54, + "close": 1340.02, + "high": 1348.54, + "low": 1331.39, + "volume": 7627586.0 + }, + { + "date": "2025-12-24", + "open": 1342.13, + "close": 1352.13, + "high": 1352.74, + "low": 1332.92, + "volume": 7339090.0 + }, + { + "date": "2025-12-25", + "open": 1347.78, + "close": 1349.06, + "high": 1356.6, + "low": 1339.97, + "volume": 7262305.0 + }, + { + "date": "2025-12-26", + "open": 1346.11, + "close": 1345.83, + "high": 1356.11, + "low": 1339.14, + "volume": 8521601.0 + }, + { + "date": "2025-12-29", + "open": 1345.98, + "close": 1346.32, + "high": 1364.27, + "low": 1341.94, + "volume": 10390297.0 + }, + { + "date": "2025-12-30", + "open": 1346.13, + "close": 1359.87, + "high": 1367.01, + "low": 1346.03, + "volume": 7941505.0 + }, + { + "date": "2025-12-31", + "open": 1367.17, + "close": 1344.2, + "high": 1368.48, + "low": 1342.68, + "volume": 7306915.0 + }, + { + "date": "2026-01-05", + "open": 1360.9, + "close": 1403.41, + "high": 1403.53, + "low": 1360.9, + "volume": 10345466.0 + }, + { + "date": "2026-01-06", + "open": 1401.79, + "close": 1429.3, + "high": 1442.1, + "low": 1400.4, + "volume": 11820332.0 + }, + { + "date": "2026-01-07", + "open": 1442.51, + "close": 1443.39, + "high": 1452.04, + "low": 1427.98, + "volume": 12338548.0 + }, + { + "date": "2026-01-08", + "open": 1441.19, + "close": 1455.17, + "high": 1483.23, + "low": 1441.19, + "volume": 13482288.0 + }, + { + "date": "2026-01-09", + "open": 1442.22, + "close": 1475.97, + "high": 1477.24, + "low": 1437.58, + "volume": 13306405.0 + }, + { + "date": "2026-01-12", + "open": 1490.5, + "close": 1511.84, + "high": 1515.11, + "low": 1478.85, + "volume": 15675919.0 + }, + { + "date": "2026-01-13", + "open": 1508.18, + "close": 1469.57, + "high": 1511.65, + "low": 1460.41, + "volume": 15234747.0 + }, + { + "date": "2026-01-14", + "open": 1479.3, + "close": 1500.91, + "high": 1532.58, + "low": 1479.3, + "volume": 17779745.0 + }, + { + "date": "2026-01-15", + "open": 1491.23, + "close": 1493.95, + "high": 1504.84, + "low": 1468.02, + "volume": 14088173.0 + }, + { + "date": "2026-01-16", + "open": 1509.7, + "close": 1514.07, + "high": 1528.78, + "low": 1495.68, + "volume": 16765776.0 + }, + { + "date": "2026-01-19", + "open": 1513.59, + "close": 1506.86, + "high": 1525.12, + "low": 1502.72, + "volume": 12876257.0 + }, + { + "date": "2026-01-20", + "open": 1508.37, + "close": 1482.99, + "high": 1525.81, + "low": 1473.19, + "volume": 14030658.0 + }, + { + "date": "2026-01-21", + "open": 1482.66, + "close": 1535.39, + "high": 1546.05, + "low": 1482.66, + "volume": 14447414.0 + }, + { + "date": "2026-01-22", + "open": 1563.38, + "close": 1541.64, + "high": 1574.97, + "low": 1530.25, + "volume": 15212194.0 + }, + { + "date": "2026-01-23", + "open": 1530.28, + "close": 1553.71, + "high": 1553.71, + "low": 1523.5, + "volume": 21244687.0 + }, + { + "date": "2026-01-26", + "open": 1556.57, + "close": 1532.8, + "high": 1575.45, + "low": 1529.32, + "volume": 21231612.0 + }, + { + "date": "2026-01-27", + "open": 1530.07, + "close": 1555.98, + "high": 1562.58, + "low": 1507.41, + "volume": 19787281.0 + }, + { + "date": "2026-01-28", + "open": 1566.19, + "close": 1554.8, + "high": 1569.44, + "low": 1535.9, + "volume": 15543610.0 + }, + { + "date": "2026-01-29", + "open": 1550.99, + "close": 1507.64, + "high": 1560.64, + "low": 1507.3, + "volume": 16408344.0 + }, + { + "date": "2026-01-30", + "open": 1501.51, + "close": 1509.4, + "high": 1522.33, + "low": 1465.32, + "volume": 14865583.0 + }, + { + "date": "2026-02-02", + "open": 1492.81, + "close": 1450.9, + "high": 1508.54, + "low": 1450.1, + "volume": 13153967.0 + }, + { + "date": "2026-02-03", + "open": 1475.57, + "close": 1471.07, + "high": 1478.05, + "low": 1430.0, + "volume": 13891459.0 + }, + { + "date": "2026-02-04", + "open": 1452.98, + "close": 1453.48, + "high": 1455.12, + "low": 1432.6, + "volume": 15639050.0 + }, + { + "date": "2026-02-05", + "open": 1423.66, + "close": 1432.52, + "high": 1441.16, + "low": 1416.26, + "volume": 15199278.0 + }, + { + "date": "2026-02-06", + "open": 1415.05, + "close": 1422.41, + "high": 1440.81, + "low": 1405.87, + "volume": 13035099.0 + }, + { + "date": "2026-02-09", + "open": 1453.54, + "close": 1458.16, + "high": 1458.93, + "low": 1441.9, + "volume": 15747839.0 + }, + { + "date": "2026-02-10", + "open": 1463.35, + "close": 1471.5, + "high": 1485.97, + "low": 1463.35, + "volume": 11770391.0 + }, + { + "date": "2026-02-11", + "open": 1462.0, + "close": 1455.11, + "high": 1467.28, + "low": 1453.01, + "volume": 8978509.0 + }, + { + "date": "2026-02-12", + "open": 1463.61, + "close": 1480.99, + "high": 1481.98, + "low": 1454.63, + "volume": 10015209.0 + }, + { + "date": "2026-02-13", + "open": 1470.26, + "close": 1470.33, + "high": 1492.09, + "low": 1466.71, + "volume": 9896616.0 + }, + { + "date": "2026-02-24", + "open": 1493.45, + "close": 1465.37, + "high": 1493.77, + "low": 1453.55, + "volume": 10295969.0 + }, + { + "date": "2026-02-25", + "open": 1468.51, + "close": 1473.28, + "high": 1481.29, + "low": 1454.41, + "volume": 11075883.0 + }, + { + "date": "2026-02-26", + "open": 1478.73, + "close": 1485.86, + "high": 1494.75, + "low": 1456.03, + "volume": 11154134.0 + }, + { + "date": "2026-02-27", + "open": 1468.08, + "close": 1488.02, + "high": 1493.52, + "low": 1463.73, + "volume": 9999772.0 + }, + { + "date": "2026-03-02", + "open": 1459.78, + "close": 1464.77, + "high": 1486.55, + "low": 1459.51, + "volume": 13427348.0 + }, + { + "date": "2026-03-03", + "open": 1467.76, + "close": 1388.41, + "high": 1469.6, + "low": 1385.59, + "volume": 14302403.0 + }, + { + "date": "2026-03-04", + "open": 1380.13, + "close": 1381.56, + "high": 1407.0, + "low": 1376.11, + "volume": 10705585.0 + }, + { + "date": "2026-03-05", + "open": 1418.88, + "close": 1405.35, + "high": 1423.61, + "low": 1397.76, + "volume": 11006986.0 + }, + { + "date": "2026-03-06", + "open": 1396.59, + "close": 1414.39, + "high": 1422.0, + "low": 1396.59, + "volume": 9690549.0 + }, + { + "date": "2026-03-09", + "open": 1373.82, + "close": 1390.48, + "high": 1398.25, + "low": 1351.88, + "volume": 11840094.0 + }, + { + "date": "2026-03-10", + "open": 1417.26, + "close": 1420.54, + "high": 1424.72, + "low": 1402.63, + "volume": 12153403.0 + }, + { + "date": "2026-03-11", + "open": 1421.35, + "close": 1401.08, + "high": 1427.1, + "low": 1400.45, + "volume": 12973679.0 + }, + { + "date": "2026-03-12", + "open": 1397.78, + "close": 1383.65, + "high": 1412.53, + "low": 1372.97, + "volume": 11759193.0 + }, + { + "date": "2026-03-13", + "open": 1374.65, + "close": 1373.64, + "high": 1392.43, + "low": 1365.62, + "volume": 12002263.0 + }, + { + "date": "2026-03-16", + "open": 1370.7, + "close": 1384.99, + "high": 1386.55, + "low": 1349.27, + "volume": 10953762.0 + }, + { + "date": "2026-03-17", + "open": 1386.26, + "close": 1354.15, + "high": 1390.84, + "low": 1354.15, + "volume": 9184655.0 + }, + { + "date": "2026-03-18", + "open": 1363.54, + "close": 1372.58, + "high": 1373.86, + "low": 1348.23, + "volume": 9799866.0 + }, + { + "date": "2026-03-19", + "open": 1348.55, + "close": 1339.03, + "high": 1354.72, + "low": 1333.68, + "volume": 11052923.0 + }, + { + "date": "2026-03-20", + "open": 1344.93, + "close": 1318.31, + "high": 1347.37, + "low": 1317.4, + "volume": 14091098.0 + }, + { + "date": "2026-03-23", + "open": 1292.89, + "close": 1261.44, + "high": 1305.79, + "low": 1254.85, + "volume": 14248101.0 + }, + { + "date": "2026-03-24", + "open": 1281.58, + "close": 1290.79, + "high": 1291.92, + "low": 1249.01, + "volume": 11716630.0 + }, + { + "date": "2026-03-25", + "open": 1299.63, + "close": 1315.41, + "high": 1326.65, + "low": 1299.63, + "volume": 11005705.0 + }, + { + "date": "2026-03-26", + "open": 1313.97, + "close": 1288.81, + "high": 1316.46, + "low": 1285.38, + "volume": 8631770.0 + }, + { + "date": "2026-03-27", + "open": 1265.53, + "close": 1300.76, + "high": 1308.94, + "low": 1265.53, + "volume": 8603070.0 + }, + { + "date": "2026-03-30", + "open": 1278.99, + "close": 1289.78, + "high": 1294.54, + "low": 1269.32, + "volume": 9357204.0 + }, + { + "date": "2026-03-31", + "open": 1283.9, + "close": 1256.33, + "high": 1296.03, + "low": 1256.33, + "volume": 9583190.0 + }, + { + "date": "2026-04-01", + "open": 1290.64, + "close": 1298.2, + "high": 1302.87, + "low": 1282.31, + "volume": 9826461.0 + }, + { + "date": "2026-04-02", + "open": 1294.63, + "close": 1262.18, + "high": 1294.63, + "low": 1254.62, + "volume": 7588114.0 + }, + { + "date": "2026-04-03", + "open": 1270.94, + "close": 1256.21, + "high": 1272.84, + "low": 1254.76, + "volume": 6706421.0 + }, + { + "date": "2026-04-07", + "open": 1261.71, + "close": 1274.01, + "high": 1286.53, + "low": 1261.71, + "volume": 6322349.0 + }, + { + "date": "2026-04-08", + "open": 1317.28, + "close": 1352.69, + "high": 1352.69, + "low": 1316.63, + "volume": 11422568.0 + }, + { + "date": "2026-04-09", + "open": 1335.29, + "close": 1343.95, + "high": 1362.91, + "low": 1333.01, + "volume": 7846510.0 + }, + { + "date": "2026-04-10", + "open": 1363.58, + "close": 1364.49, + "high": 1382.94, + "low": 1362.4, + "volume": 8471659.0 + }, + { + "date": "2026-04-13", + "open": 1358.46, + "close": 1375.29, + "high": 1396.0, + "low": 1358.46, + "volume": 9018894.0 + }, + { + "date": "2026-04-14", + "open": 1398.4, + "close": 1405.07, + "high": 1409.85, + "low": 1387.42, + "volume": 9302659.0 + }, + { + "date": "2026-04-15", + "open": 1415.39, + "close": 1406.32, + "high": 1433.35, + "low": 1399.75, + "volume": 9547663.0 + }, + { + "date": "2026-04-16", + "open": 1406.32, + "close": 1422.23, + "high": 1424.17, + "low": 1402.2, + "volume": 10005771.0 + }, + { + "date": "2026-04-17", + "open": 1414.87, + "close": 1423.35, + "high": 1433.8, + "low": 1413.58, + "volume": 9635053.0 + }, + { + "date": "2026-04-20", + "open": 1426.89, + "close": 1450.52, + "high": 1451.39, + "low": 1426.03, + "volume": 11275846.0 + }, + { + "date": "2026-04-21", + "open": 1445.2, + "close": 1426.68, + "high": 1445.54, + "low": 1415.6, + "volume": 9651570.0 + }, + { + "date": "2026-04-22", + "open": 1420.78, + "close": 1451.14, + "high": 1451.46, + "low": 1420.24, + "volume": 9805961.0 + }, + { + "date": "2026-04-23", + "open": 1466.12, + "close": 1432.59, + "high": 1467.7, + "low": 1419.01, + "volume": 11446540.0 + }, + { + "date": "2026-04-24", + "open": 1443.04, + "close": 1453.69, + "high": 1472.96, + "low": 1417.21, + "volume": 11413406.0 + }, + { + "date": "2026-04-27", + "open": 1478.31, + "close": 1508.38, + "high": 1515.28, + "low": 1466.66, + "volume": 13560538.0 + }, + { + "date": "2026-04-28", + "open": 1497.32, + "close": 1488.66, + "high": 1525.34, + "low": 1479.67, + "volume": 11925508.0 + }, + { + "date": "2026-04-29", + "open": 1474.12, + "close": 1493.5, + "high": 1495.01, + "low": 1451.71, + "volume": 11457221.0 + }, + { + "date": "2026-04-30", + "open": 1511.39, + "close": 1571.07, + "high": 1580.52, + "low": 1511.39, + "volume": 15109612.0 + }, + { + "date": "2026-05-06", + "open": 1634.31, + "close": 1656.95, + "high": 1715.08, + "low": 1631.65, + "volume": 18301048.0 + }, + { + "date": "2026-05-07", + "open": 1663.16, + "close": 1678.89, + "high": 1682.22, + "low": 1646.94, + "volume": 13930063.0 + }, + { + "date": "2026-05-08", + "open": 1653.31, + "close": 1640.46, + "high": 1655.57, + "low": 1625.61, + "volume": 15005074.0 + }, + { + "date": "2026-05-11", + "open": 1687.64, + "close": 1716.69, + "high": 1727.3, + "low": 1669.73, + "volume": 18294058.0 + }, + { + "date": "2026-05-12", + "open": 1708.21, + "close": 1723.78, + "high": 1747.17, + "low": 1687.96, + "volume": 16927089.0 + }, + { + "date": "2026-05-13", + "open": 1684.37, + "close": 1770.15, + "high": 1771.49, + "low": 1677.54, + "volume": 17773247.0 + }, + { + "date": "2026-05-14", + "open": 1792.34, + "close": 1725.09, + "high": 1800.61, + "low": 1723.7, + "volume": 21071023.0 + }, + { + "date": "2026-05-15", + "open": 1724.36, + "close": 1696.26, + "high": 1769.8, + "low": 1669.99, + "volume": 21601214.0 + }, + { + "date": "2026-05-18", + "open": 1690.38, + "close": 1709.96, + "high": 1748.1, + "low": 1684.9, + "volume": 15913956.0 + }, + { + "date": "2026-05-19", + "open": 1697.4, + "close": 1775.13, + "high": 1776.26, + "low": 1670.36, + "volume": 17104368.0 + }, + { + "date": "2026-05-20", + "open": 1764.21, + "close": 1832.02, + "high": 1835.22, + "low": 1764.21, + "volume": 18452542.0 + }, + { + "date": "2026-05-21", + "open": 1866.29, + "close": 1764.17, + "high": 1892.6, + "low": 1759.94, + "volume": 21274038.0 + }, + { + "date": "2026-05-22", + "open": 1790.74, + "close": 1790.77, + "high": 1797.65, + "low": 1747.14, + "volume": 17603919.0 + }, + { + "date": "2026-05-25", + "open": 1791.67, + "close": 1896.04, + "high": 1899.97, + "low": 1774.19, + "volume": 21497937.0 + }, + { + "date": "2026-05-26", + "open": 1877.39, + "close": 1867.71, + "high": 1880.65, + "low": 1824.32, + "volume": 19408885.0 + }, + { + "date": "2026-05-27", + "open": 1875.42, + "close": 1815.45, + "high": 1901.97, + "low": 1809.7, + "volume": 21609699.0 + }, + { + "date": "2026-05-28", + "open": 1805.11, + "close": 1844.25, + "high": 1854.52, + "low": 1796.04, + "volume": 21540080.0 + }, + { + "date": "2026-05-29", + "open": 1850.27, + "close": 1751.32, + "high": 1855.26, + "low": 1727.62, + "volume": 23431374.0 + }, + { + "date": "2026-06-01", + "open": 1751.23, + "close": 1663.69, + "high": 1753.02, + "low": 1662.82, + "volume": 16941834.0 + }, + { + "date": "2026-06-02", + "open": 1676.31, + "close": 1690.56, + "high": 1710.98, + "low": 1641.17, + "volume": 15576220.0 + }, + { + "date": "2026-06-03", + "open": 1697.66, + "close": 1726.18, + "high": 1776.2, + "low": 1697.36, + "volume": 16825554.0 + }, + { + "date": "2026-06-04", + "open": 1700.31, + "close": 1738.06, + "high": 1759.98, + "low": 1697.22, + "volume": 14967701.0 + }, + { + "date": "2026-06-05", + "open": 1706.53, + "close": 1668.33, + "high": 1735.08, + "low": 1659.48, + "volume": 16835709.0 + }, + { + "date": "2026-06-08", + "open": 1587.97, + "close": 1596.57, + "high": 1634.03, + "low": 1578.18, + "volume": 15707499.0 + }, + { + "date": "2026-06-09", + "open": 1630.23, + "close": 1663.11, + "high": 1666.48, + "low": 1607.58, + "volume": 14098958.0 + }, + { + "date": "2026-06-10", + "open": 1662.85, + "close": 1652.22, + "high": 1722.33, + "low": 1632.33, + "volume": 15911725.0 + }, + { + "date": "2026-06-11", + "open": 1644.6, + "close": 1662.44, + "high": 1676.53, + "low": 1631.94, + "volume": 14220694.0 + }, + { + "date": "2026-06-12", + "open": 1726.01, + "close": 1663.22, + "high": 1730.89, + "low": 1656.85, + "volume": 21018567.0 + }, + { + "date": "2026-06-15", + "open": 1687.67, + "close": 1748.33, + "high": 1748.51, + "low": 1658.32, + "volume": 16140938.0 + }, + { + "date": "2026-06-16", + "open": 1751.71, + "close": 1758.42, + "high": 1766.14, + "low": 1729.04, + "volume": 15018218.0 + }, + { + "date": "2026-06-17", + "open": 1729.23, + "close": 1840.82, + "high": 1841.37, + "low": 1725.9, + "volume": 18018313.0 + }, + { + "date": "2026-06-18", + "open": 1837.07, + "close": 1911.51, + "high": 1937.3, + "low": 1836.04, + "volume": 17710999.0 + }, + { + "date": "2026-06-22", + "open": 1922.47, + "close": 1948.93, + "high": 1963.33, + "low": 1879.59, + "volume": 19191334.0 + } + ], + "weekly": [ + { + "date": "2026-01-09", + "open": 1360.9, + "close": 1475.97, + "high": 1483.23, + "low": 1360.9, + "volume": 61293039.0 + }, + { + "date": "2026-01-16", + "open": 1490.5, + "close": 1514.07, + "high": 1532.58, + "low": 1460.41, + "volume": 79544360.0 + }, + { + "date": "2026-01-23", + "open": 1513.59, + "close": 1553.71, + "high": 1574.97, + "low": 1473.19, + "volume": 77811210.0 + }, + { + "date": "2026-01-30", + "open": 1556.57, + "close": 1509.4, + "high": 1575.45, + "low": 1465.32, + "volume": 87836430.0 + }, + { + "date": "2026-02-06", + "open": 1492.81, + "close": 1422.41, + "high": 1508.54, + "low": 1405.87, + "volume": 70918853.0 + }, + { + "date": "2026-02-13", + "open": 1453.54, + "close": 1470.33, + "high": 1492.09, + "low": 1441.9, + "volume": 56408564.0 + }, + { + "date": "2026-02-27", + "open": 1493.45, + "close": 1488.02, + "high": 1494.75, + "low": 1453.55, + "volume": 42525758.0 + }, + { + "date": "2026-03-06", + "open": 1459.78, + "close": 1414.39, + "high": 1486.55, + "low": 1376.11, + "volume": 59132871.0 + }, + { + "date": "2026-03-13", + "open": 1373.82, + "close": 1373.64, + "high": 1427.1, + "low": 1351.88, + "volume": 60728632.0 + }, + { + "date": "2026-03-20", + "open": 1370.7, + "close": 1318.31, + "high": 1390.84, + "low": 1317.4, + "volume": 55082304.0 + }, + { + "date": "2026-03-27", + "open": 1292.89, + "close": 1300.76, + "high": 1326.65, + "low": 1249.01, + "volume": 54205276.0 + }, + { + "date": "2026-04-03", + "open": 1278.99, + "close": 1256.21, + "high": 1302.87, + "low": 1254.62, + "volume": 43061390.0 + }, + { + "date": "2026-04-10", + "open": 1261.71, + "close": 1364.49, + "high": 1382.94, + "low": 1261.71, + "volume": 34063086.0 + }, + { + "date": "2026-04-17", + "open": 1358.46, + "close": 1423.35, + "high": 1433.8, + "low": 1358.46, + "volume": 47510040.0 + }, + { + "date": "2026-04-24", + "open": 1426.89, + "close": 1453.69, + "high": 1472.96, + "low": 1415.6, + "volume": 53593323.0 + }, + { + "date": "2026-04-30", + "open": 1478.31, + "close": 1571.07, + "high": 1580.52, + "low": 1451.71, + "volume": 52052879.0 + }, + { + "date": "2026-05-08", + "open": 1634.31, + "close": 1640.46, + "high": 1715.08, + "low": 1625.61, + "volume": 47236185.0 + }, + { + "date": "2026-05-15", + "open": 1687.64, + "close": 1696.26, + "high": 1800.61, + "low": 1669.73, + "volume": 95666631.0 + }, + { + "date": "2026-05-22", + "open": 1690.38, + "close": 1790.77, + "high": 1892.6, + "low": 1670.36, + "volume": 90348823.0 + }, + { + "date": "2026-05-29", + "open": 1791.67, + "close": 1751.32, + "high": 1901.97, + "low": 1727.62, + "volume": 107487975.0 + }, + { + "date": "2026-06-05", + "open": 1751.23, + "close": 1668.33, + "high": 1776.2, + "low": 1641.17, + "volume": 81147018.0 + }, + { + "date": "2026-06-12", + "open": 1587.97, + "close": 1663.22, + "high": 1730.89, + "low": 1578.18, + "volume": 80957443.0 + }, + { + "date": "2026-06-18", + "open": 1687.67, + "close": 1911.51, + "high": 1937.3, + "low": 1658.32, + "volume": 66888468.0 + }, + { + "date": "2026-06-22", + "open": 1922.47, + "close": 1948.93, + "high": 1963.33, + "low": 1879.59, + "volume": 19191334.0 + } + ], + "monthly": [ + { + "date": "2025-07-31", + "open": 1002.09, + "close": 1047.87, + "high": 1073.82, + "low": 976.83, + "volume": 134087748.0 + }, + { + "date": "2025-08-29", + "open": 1047.38, + "close": 1341.31, + "high": 1365.92, + "low": 1029.53, + "volume": 215532214.0 + }, + { + "date": "2025-09-30", + "open": 1348.53, + "close": 1495.29, + "high": 1505.91, + "low": 1210.87, + "volume": 309543701.0 + }, + { + "date": "2025-10-31", + "open": 1526.92, + "close": 1415.53, + "high": 1588.83, + "low": 1358.69, + "volume": 220862025.0 + }, + { + "date": "2025-11-28", + "open": 1403.46, + "close": 1327.15, + "high": 1442.81, + "low": 1273.49, + "volume": 215909738.0 + }, + { + "date": "2025-12-31", + "open": 1329.42, + "close": 1344.2, + "high": 1368.48, + "low": 1286.25, + "volume": 184322205.0 + }, + { + "date": "2026-01-30", + "open": 1360.9, + "close": 1509.4, + "high": 1575.45, + "low": 1360.9, + "volume": 306485039.0 + }, + { + "date": "2026-02-27", + "open": 1492.81, + "close": 1488.02, + "high": 1508.54, + "low": 1405.87, + "volume": 169853175.0 + }, + { + "date": "2026-03-31", + "open": 1459.78, + "close": 1256.33, + "high": 1486.55, + "low": 1249.01, + "volume": 248089477.0 + }, + { + "date": "2026-04-30", + "open": 1290.64, + "close": 1571.07, + "high": 1580.52, + "low": 1254.62, + "volume": 211340324.0 + }, + { + "date": "2026-05-29", + "open": 1634.31, + "close": 1751.32, + "high": 1901.97, + "low": 1625.61, + "volume": 340739614.0 + }, + { + "date": "2026-06-22", + "open": 1751.23, + "close": 1948.93, + "high": 1963.33, + "low": 1578.18, + "volume": 248184263.0 + } + ], + "updated_at": 1782144155.749433 + }, + "hkHSI": { + "daily": [ + { + "date": "2025-12-19", + "open": 25634.22, + "close": 25690.53, + "high": 25747.01, + "low": 25545.92, + "volume": 221186355343.0 + }, + { + "date": "2025-12-22", + "open": 25795.94, + "close": 25801.77, + "high": 25859.61, + "low": 25671.33, + "volume": 169777036627.0 + }, + { + "date": "2025-12-23", + "open": 25875.85, + "close": 25774.14, + "high": 25927.66, + "low": 25726.45, + "volume": 157131425683.0 + }, + { + "date": "2025-12-24", + "open": 25780.09, + "close": 25818.93, + "high": 25890.87, + "low": 25772.87, + "volume": 92524183099.0 + }, + { + "date": "2025-12-29", + "open": 25928.89, + "close": 25635.23, + "high": 26082.94, + "low": 25630.75, + "volume": 224508358383.0 + }, + { + "date": "2025-12-30", + "open": 25636.4, + "close": 25854.6, + "high": 25930.22, + "low": 25611.23, + "volume": 199769065175.0 + }, + { + "date": "2025-12-31", + "open": 25801.49, + "close": 25630.54, + "high": 25808.52, + "low": 25554.31, + "volume": 118965851132.0 + }, + { + "date": "2026-01-02", + "open": 25717.42, + "close": 26338.47, + "high": 26345.63, + "low": 25717.42, + "volume": 140863936026.0 + }, + { + "date": "2026-01-05", + "open": 26361.44, + "close": 26347.24, + "high": 26445.5, + "low": 26256.0, + "volume": 283462308937.0 + }, + { + "date": "2026-01-06", + "open": 26502.4, + "close": 26710.45, + "high": 26858.13, + "low": 26498.36, + "volume": 291758187653.0 + }, + { + "date": "2026-01-07", + "open": 26601.83, + "close": 26458.95, + "high": 26616.94, + "low": 26313.51, + "volume": 276133714363.0 + }, + { + "date": "2026-01-08", + "open": 26302.78, + "close": 26149.31, + "high": 26305.69, + "low": 25960.34, + "volume": 268274751780.0 + }, + { + "date": "2026-01-09", + "open": 26272.54, + "close": 26231.79, + "high": 26299.32, + "low": 26114.41, + "volume": 245129966729.0 + }, + { + "date": "2026-01-12", + "open": 26376.84, + "close": 26608.48, + "high": 26608.48, + "low": 26187.76, + "volume": 306223398889.0 + }, + { + "date": "2026-01-13", + "open": 26958.52, + "close": 26848.47, + "high": 27143.66, + "low": 26729.54, + "volume": 315192466971.0 + }, + { + "date": "2026-01-14", + "open": 26971.97, + "close": 26999.81, + "high": 27097.72, + "low": 26780.27, + "volume": 340393440645.0 + }, + { + "date": "2026-01-15", + "open": 26972.36, + "close": 26923.62, + "high": 27206.84, + "low": 26808.35, + "volume": 290455330183.0 + }, + { + "date": "2026-01-16", + "open": 27094.85, + "close": 26844.96, + "high": 27176.31, + "low": 26741.54, + "volume": 255078624879.0 + }, + { + "date": "2026-01-19", + "open": 26641.6, + "close": 26563.9, + "high": 26715.58, + "low": 26533.67, + "volume": 225688504812.0 + }, + { + "date": "2026-01-20", + "open": 26544.9, + "close": 26487.51, + "high": 26638.55, + "low": 26363.86, + "volume": 237765786869.0 + }, + { + "date": "2026-01-21", + "open": 26397.04, + "close": 26585.06, + "high": 26692.78, + "low": 26397.04, + "volume": 250451419799.0 + }, + { + "date": "2026-01-22", + "open": 26750.51, + "close": 26629.96, + "high": 26779.22, + "low": 26499.14, + "volume": 234860062905.0 + }, + { + "date": "2026-01-23", + "open": 26861.36, + "close": 26749.51, + "high": 26895.94, + "low": 26689.73, + "volume": 240872174034.0 + }, + { + "date": "2026-01-26", + "open": 26844.04, + "close": 26765.52, + "high": 26911.44, + "low": 26619.83, + "volume": 261698846191.0 + }, + { + "date": "2026-01-27", + "open": 26863.15, + "close": 27126.95, + "high": 27188.9, + "low": 26829.71, + "volume": 254372617923.0 + }, + { + "date": "2026-01-28", + "open": 27325.89, + "close": 27826.91, + "high": 27826.91, + "low": 27258.1, + "volume": 361523100192.0 + }, + { + "date": "2026-01-29", + "open": 27627.11, + "close": 27968.09, + "high": 28056.1, + "low": 27611.9, + "volume": 331994167277.0 + }, + { + "date": "2026-01-30", + "open": 27785.98, + "close": 27387.11, + "high": 27887.24, + "low": 27384.02, + "volume": 301612398983.0 + }, + { + "date": "2026-02-02", + "open": 27097.34, + "close": 26775.57, + "high": 27100.09, + "low": 26507.62, + "volume": 347885741255.0 + }, + { + "date": "2026-02-03", + "open": 26995.76, + "close": 26834.77, + "high": 27126.48, + "low": 26431.8, + "volume": 335152488425.0 + }, + { + "date": "2026-02-04", + "open": 26797.05, + "close": 26847.32, + "high": 27004.22, + "low": 26593.18, + "volume": 285432803936.0 + }, + { + "date": "2026-02-05", + "open": 26627.95, + "close": 26885.24, + "high": 26919.39, + "low": 26410.77, + "volume": 315112240338.0 + }, + { + "date": "2026-02-06", + "open": 26354.34, + "close": 26559.95, + "high": 26710.34, + "low": 26295.03, + "volume": 247865325139.0 + }, + { + "date": "2026-02-09", + "open": 26982.49, + "close": 27027.16, + "high": 27111.54, + "low": 26879.1, + "volume": 255141608011.0 + }, + { + "date": "2026-02-10", + "open": 27202.96, + "close": 27183.15, + "high": 27397.65, + "low": 27104.82, + "volume": 234039585144.0 + }, + { + "date": "2026-02-11", + "open": 27246.18, + "close": 27266.38, + "high": 27325.98, + "low": 27133.77, + "volume": 217217515456.0 + }, + { + "date": "2026-02-12", + "open": 27210.56, + "close": 27032.54, + "high": 27215.63, + "low": 26932.56, + "volume": 238705043722.0 + }, + { + "date": "2026-02-13", + "open": 26640.16, + "close": 26567.12, + "high": 26774.44, + "low": 26444.46, + "volume": 257577592525.0 + }, + { + "date": "2026-02-16", + "open": 26501.2, + "close": 26705.94, + "high": 26734.41, + "low": 26382.41, + "volume": 84996586230.0 + }, + { + "date": "2026-02-20", + "open": 26657.84, + "close": 26413.35, + "high": 26694.34, + "low": 26356.96, + "volume": 165372681288.0 + }, + { + "date": "2026-02-23", + "open": 26798.97, + "close": 27081.91, + "high": 27156.28, + "low": 26798.97, + "volume": 172963345616.0 + }, + { + "date": "2026-02-24", + "open": 26913.68, + "close": 26590.32, + "high": 26913.68, + "low": 26480.86, + "volume": 250992144844.0 + }, + { + "date": "2026-02-25", + "open": 26745.2, + "close": 26765.72, + "high": 26870.03, + "low": 26632.53, + "volume": 236765139478.0 + }, + { + "date": "2026-02-26", + "open": 27019.74, + "close": 26381.02, + "high": 27024.07, + "low": 26373.01, + "volume": 259276862714.0 + }, + { + "date": "2026-02-27", + "open": 26447.05, + "close": 26630.54, + "high": 26701.5, + "low": 26375.7, + "volume": 288420375170.0 + }, + { + "date": "2026-03-02", + "open": 26305.58, + "close": 26059.85, + "high": 26403.85, + "low": 25882.95, + "volume": 357678664200.0 + }, + { + "date": "2026-03-03", + "open": 26190.24, + "close": 25768.08, + "high": 26218.93, + "low": 25727.0, + "volume": 370545422624.0 + }, + { + "date": "2026-03-04", + "open": 25469.34, + "close": 25249.48, + "high": 25470.05, + "low": 24958.43, + "volume": 364303855050.0 + }, + { + "date": "2026-03-05", + "open": 25583.65, + "close": 25321.34, + "high": 25736.6, + "low": 25236.68, + "volume": 321872065059.0 + }, + { + "date": "2026-03-06", + "open": 25358.56, + "close": 25757.29, + "high": 25806.72, + "low": 25267.63, + "volume": 292766015238.0 + }, + { + "date": "2026-03-09", + "open": 25075.74, + "close": 25408.46, + "high": 25442.62, + "low": 24906.0, + "volume": 392330379145.0 + }, + { + "date": "2026-03-10", + "open": 25740.29, + "close": 25959.9, + "high": 25959.9, + "low": 25611.79, + "volume": 330928749702.0 + }, + { + "date": "2026-03-11", + "open": 26112.08, + "close": 25898.76, + "high": 26149.64, + "low": 25819.1, + "volume": 254481335544.0 + }, + { + "date": "2026-03-12", + "open": 25719.47, + "close": 25716.76, + "high": 25932.58, + "low": 25521.15, + "volume": 242180288169.0 + }, + { + "date": "2026-03-13", + "open": 25583.55, + "close": 25465.6, + "high": 25697.17, + "low": 25419.87, + "volume": 246542129342.0 + }, + { + "date": "2026-03-16", + "open": 25436.27, + "close": 25834.02, + "high": 25856.73, + "low": 25317.81, + "volume": 264453396002.0 + }, + { + "date": "2026-03-17", + "open": 25938.43, + "close": 25868.54, + "high": 26250.14, + "low": 25844.95, + "volume": 268258756961.0 + }, + { + "date": "2026-03-18", + "open": 25923.03, + "close": 26025.42, + "high": 26117.95, + "low": 25791.82, + "volume": 240373872827.0 + }, + { + "date": "2026-03-19", + "open": 25550.56, + "close": 25500.58, + "high": 25737.83, + "low": 25449.06, + "volume": 306213502845.0 + }, + { + "date": "2026-03-20", + "open": 25337.28, + "close": 25277.32, + "high": 25563.88, + "low": 25121.46, + "volume": 342517507758.0 + }, + { + "date": "2026-03-23", + "open": 24789.14, + "close": 24382.47, + "high": 24789.14, + "low": 24203.54, + "volume": 368677379544.0 + }, + { + "date": "2026-03-24", + "open": 24759.82, + "close": 25063.71, + "high": 25077.09, + "low": 24555.5, + "volume": 303073359907.0 + }, + { + "date": "2026-03-25", + "open": 25280.52, + "close": 25335.95, + "high": 25390.3, + "low": 25015.2, + "volume": 350932898059.0 + }, + { + "date": "2026-03-26", + "open": 25267.16, + "close": 24856.43, + "high": 25278.03, + "low": 24793.1, + "volume": 261662366425.0 + }, + { + "date": "2026-03-27", + "open": 24768.66, + "close": 24951.88, + "high": 25095.57, + "low": 24712.92, + "volume": 263080823220.0 + }, + { + "date": "2026-03-30", + "open": 24532.85, + "close": 24750.79, + "high": 24811.86, + "low": 24409.57, + "volume": 285434883705.0 + }, + { + "date": "2026-03-31", + "open": 24818.2, + "close": 24788.14, + "high": 24988.53, + "low": 24559.57, + "volume": 255759570871.0 + }, + { + "date": "2026-04-01", + "open": 25357.23, + "close": 25294.03, + "high": 25429.76, + "low": 25203.69, + "volume": 291421115093.0 + }, + { + "date": "2026-04-02", + "open": 25254.49, + "close": 25116.53, + "high": 25254.49, + "low": 24901.77, + "volume": 243627538737.0 + }, + { + "date": "2026-04-08", + "open": 25772.56, + "close": 25893.02, + "high": 25934.18, + "low": 25668.67, + "volume": 372437019317.0 + }, + { + "date": "2026-04-09", + "open": 25756.41, + "close": 25752.4, + "high": 25854.8, + "low": 25653.63, + "volume": 244977182471.0 + }, + { + "date": "2026-04-10", + "open": 25891.88, + "close": 25893.54, + "high": 26073.97, + "low": 25843.65, + "volume": 246316510217.0 + }, + { + "date": "2026-04-13", + "open": 25708.64, + "close": 25660.85, + "high": 25717.38, + "low": 25508.53, + "volume": 207908967478.0 + }, + { + "date": "2026-04-14", + "open": 25929.4, + "close": 25872.32, + "high": 25995.09, + "low": 25668.53, + "volume": 236775978479.0 + }, + { + "date": "2026-04-15", + "open": 26168.25, + "close": 25947.32, + "high": 26216.58, + "low": 25947.32, + "volume": 245587755924.0 + }, + { + "date": "2026-04-16", + "open": 26122.8, + "close": 26394.26, + "high": 26403.07, + "low": 26122.8, + "volume": 256227932806.0 + }, + { + "date": "2026-04-17", + "open": 26210.97, + "close": 26160.33, + "high": 26280.96, + "low": 26015.44, + "volume": 238042048139.0 + }, + { + "date": "2026-04-20", + "open": 26204.61, + "close": 26361.07, + "high": 26411.69, + "low": 26094.64, + "volume": 241462799535.0 + }, + { + "date": "2026-04-21", + "open": 26442.29, + "close": 26487.48, + "high": 26529.49, + "low": 26342.02, + "volume": 205177368274.0 + }, + { + "date": "2026-04-22", + "open": 26303.6, + "close": 26163.24, + "high": 26303.6, + "low": 26073.45, + "volume": 228302621593.0 + }, + { + "date": "2026-04-23", + "open": 26098.81, + "close": 25915.2, + "high": 26115.07, + "low": 25840.55, + "volume": 255379332095.0 + }, + { + "date": "2026-04-24", + "open": 25733.61, + "close": 25978.07, + "high": 26004.59, + "low": 25639.26, + "volume": 236722576877.0 + }, + { + "date": "2026-04-27", + "open": 25976.97, + "close": 25925.65, + "high": 26086.02, + "low": 25858.24, + "volume": 251634240439.0 + }, + { + "date": "2026-04-28", + "open": 25814.37, + "close": 25679.78, + "high": 25896.66, + "low": 25609.61, + "volume": 262333399874.0 + }, + { + "date": "2026-04-29", + "open": 25842.63, + "close": 26111.84, + "high": 26132.94, + "low": 25811.46, + "volume": 258280787707.0 + }, + { + "date": "2026-04-30", + "open": 26008.32, + "close": 25776.53, + "high": 26072.24, + "low": 25734.16, + "volume": 291552653621.0 + }, + { + "date": "2026-05-04", + "open": 26138.34, + "close": 26095.88, + "high": 26326.44, + "low": 26091.86, + "volume": 176979142168.0 + }, + { + "date": "2026-05-05", + "open": 25945.75, + "close": 25898.61, + "high": 25945.75, + "low": 25690.36, + "volume": 122234723047.0 + }, + { + "date": "2026-05-06", + "open": 26029.65, + "close": 26213.78, + "high": 26213.78, + "low": 25877.82, + "volume": 304737060296.0 + }, + { + "date": "2026-05-07", + "open": 26531.35, + "close": 26626.28, + "high": 26669.26, + "low": 26518.79, + "volume": 312489067872.0 + }, + { + "date": "2026-05-08", + "open": 26359.79, + "close": 26393.71, + "high": 26470.49, + "low": 26274.8, + "volume": 279754465567.0 + }, + { + "date": "2026-05-11", + "open": 26310.87, + "close": 26406.84, + "high": 26427.14, + "low": 26219.26, + "volume": 288491377302.0 + }, + { + "date": "2026-05-12", + "open": 26497.03, + "close": 26347.91, + "high": 26592.37, + "low": 26328.84, + "volume": 262647121559.0 + }, + { + "date": "2026-05-13", + "open": 26369.99, + "close": 26388.44, + "high": 26458.9, + "low": 26220.12, + "volume": 277770704455.0 + }, + { + "date": "2026-05-14", + "open": 26836.66, + "close": 26389.04, + "high": 26844.8, + "low": 26366.86, + "volume": 306701926280.0 + }, + { + "date": "2026-05-15", + "open": 26391.02, + "close": 25962.73, + "high": 26391.02, + "low": 25847.15, + "volume": 325385515870.0 + }, + { + "date": "2026-05-18", + "open": 25838.96, + "close": 25675.18, + "high": 25838.96, + "low": 25505.71, + "volume": 292712398554.0 + }, + { + "date": "2026-05-19", + "open": 25693.37, + "close": 25797.85, + "high": 25845.46, + "low": 25671.12, + "volume": 272165877552.0 + }, + { + "date": "2026-05-20", + "open": 25709.62, + "close": 25651.12, + "high": 25713.53, + "low": 25555.06, + "volume": 262097785875.0 + }, + { + "date": "2026-05-21", + "open": 25833.24, + "close": 25386.52, + "high": 25833.71, + "low": 25341.73, + "volume": 298552383558.0 + }, + { + "date": "2026-05-22", + "open": 25641.8, + "close": 25606.03, + "high": 25732.36, + "low": 25483.24, + "volume": 281298176821.0 + }, + { + "date": "2026-05-26", + "open": 25622.36, + "close": 25599.45, + "high": 25768.38, + "low": 25431.17, + "volume": 359475745516.0 + }, + { + "date": "2026-05-27", + "open": 25608.78, + "close": 25328.23, + "high": 25638.41, + "low": 25258.03, + "volume": 320758194309.0 + }, + { + "date": "2026-05-28", + "open": 25230.58, + "close": 25006.16, + "high": 25230.58, + "low": 24727.26, + "volume": 356344603298.0 + }, + { + "date": "2026-05-29", + "open": 25161.52, + "close": 25182.39, + "high": 25313.33, + "low": 25055.8, + "volume": 462070141280.0 + }, + { + "date": "2026-06-01", + "open": 25180.05, + "close": 25398.18, + "high": 25486.76, + "low": 25174.3, + "volume": 330936798422.0 + }, + { + "date": "2026-06-02", + "open": 25395.07, + "close": 26038.32, + "high": 26045.07, + "low": 25394.64, + "volume": 373780074809.0 + }, + { + "date": "2026-06-03", + "open": 25953.01, + "close": 25633.21, + "high": 25953.01, + "low": 25569.45, + "volume": 322921049290.0 + }, + { + "date": "2026-06-04", + "open": 25465.3, + "close": 25253.4, + "high": 25499.09, + "low": 25188.02, + "volume": 270230405510.0 + }, + { + "date": "2026-06-05", + "open": 25186.12, + "close": 24961.95, + "high": 25216.18, + "low": 24928.14, + "volume": 342805366102.0 + }, + { + "date": "2026-06-08", + "open": 24582.91, + "close": 24657.06, + "high": 24837.98, + "low": 24458.54, + "volume": 363974709712.0 + }, + { + "date": "2026-06-09", + "open": 24551.93, + "close": 24565.9, + "high": 24740.65, + "low": 24486.39, + "volume": 308916051395.0 + }, + { + "date": "2026-06-10", + "open": 24442.52, + "close": 24407.96, + "high": 24505.96, + "low": 24207.03, + "volume": 320553876726.0 + }, + { + "date": "2026-06-11", + "open": 24380.02, + "close": 24249.29, + "high": 24492.71, + "low": 23999.67, + "volume": 288573744236.0 + }, + { + "date": "2026-06-12", + "open": 24501.5, + "close": 24718.1, + "high": 24771.61, + "low": 24445.51, + "volume": 316438308281.0 + }, + { + "date": "2026-06-15", + "open": 25001.42, + "close": 24842.67, + "high": 25047.9, + "low": 24796.3, + "volume": 283353409700.0 + }, + { + "date": "2026-06-16", + "open": 24826.19, + "close": 24493.95, + "high": 24844.98, + "low": 24378.69, + "volume": 249884957668.0 + }, + { + "date": "2026-06-17", + "open": 24495.85, + "close": 24312.16, + "high": 24560.19, + "low": 24254.07, + "volume": 270412058257.0 + }, + { + "date": "2026-06-18", + "open": 24145.19, + "close": 23924.81, + "high": 24163.25, + "low": 23749.99, + "volume": 358714541610.0 + }, + { + "date": "2026-06-22", + "open": 23811.76, + "close": 23768.52, + "high": 23863.71, + "low": 23444.86, + "volume": 348616492428.0 + } + ], + "weekly": [ + { + "date": "2026-01-16", + "open": 26376.84, + "close": 26844.96, + "high": 27206.84, + "low": 26187.76, + "volume": 1507343261567.0 + }, + { + "date": "2026-01-23", + "open": 26641.6, + "close": 26749.51, + "high": 26895.94, + "low": 26363.86, + "volume": 1189637948419.0 + }, + { + "date": "2026-01-30", + "open": 26844.04, + "close": 27387.11, + "high": 28056.1, + "low": 26619.83, + "volume": 1511201130566.0 + }, + { + "date": "2026-02-06", + "open": 27097.34, + "close": 26559.95, + "high": 27126.48, + "low": 26295.03, + "volume": 1531448599093.0 + }, + { + "date": "2026-02-13", + "open": 26982.49, + "close": 26567.12, + "high": 27397.65, + "low": 26444.46, + "volume": 1202681344858.0 + }, + { + "date": "2026-02-20", + "open": 26501.2, + "close": 26413.35, + "high": 26734.41, + "low": 26356.96, + "volume": 250369267518.0 + }, + { + "date": "2026-02-27", + "open": 26798.97, + "close": 26630.54, + "high": 27156.28, + "low": 26373.01, + "volume": 1208417867822.0 + }, + { + "date": "2026-03-06", + "open": 26305.58, + "close": 25757.29, + "high": 26403.85, + "low": 24958.43, + "volume": 1707166022171.0 + }, + { + "date": "2026-03-13", + "open": 25075.74, + "close": 25465.6, + "high": 26149.64, + "low": 24906.0, + "volume": 1466462881902.0 + }, + { + "date": "2026-03-20", + "open": 25436.27, + "close": 25277.32, + "high": 26250.14, + "low": 25121.46, + "volume": 1421817036393.0 + }, + { + "date": "2026-03-27", + "open": 24789.14, + "close": 24951.88, + "high": 25390.3, + "low": 24203.54, + "volume": 1547426827155.0 + }, + { + "date": "2026-04-02", + "open": 24532.85, + "close": 25116.53, + "high": 25429.76, + "low": 24409.57, + "volume": 1076243108406.0 + }, + { + "date": "2026-04-10", + "open": 25772.56, + "close": 25893.54, + "high": 26073.97, + "low": 25653.63, + "volume": 863730712005.0 + }, + { + "date": "2026-04-17", + "open": 25708.64, + "close": 26160.33, + "high": 26403.07, + "low": 25508.53, + "volume": 1184542682826.0 + }, + { + "date": "2026-04-24", + "open": 26204.61, + "close": 25978.07, + "high": 26529.49, + "low": 25639.26, + "volume": 1167044698374.0 + }, + { + "date": "2026-04-30", + "open": 25976.97, + "close": 25776.53, + "high": 26132.94, + "low": 25609.61, + "volume": 1063801081641.0 + }, + { + "date": "2026-05-08", + "open": 26138.34, + "close": 26393.71, + "high": 26669.26, + "low": 25690.36, + "volume": 1196194458950.0 + }, + { + "date": "2026-05-15", + "open": 26310.87, + "close": 25962.73, + "high": 26844.8, + "low": 25847.15, + "volume": 1460996645466.0 + }, + { + "date": "2026-05-22", + "open": 25838.96, + "close": 25606.03, + "high": 25845.46, + "low": 25341.73, + "volume": 1406826622360.0 + }, + { + "date": "2026-05-29", + "open": 25622.36, + "close": 25182.39, + "high": 25768.38, + "low": 24727.26, + "volume": 1498648684403.0 + }, + { + "date": "2026-06-05", + "open": 25180.05, + "close": 24961.95, + "high": 26045.07, + "low": 24928.14, + "volume": 1640673694133.0 + }, + { + "date": "2026-06-12", + "open": 24582.91, + "close": 24718.1, + "high": 24837.98, + "low": 23999.67, + "volume": 1598456690350.0 + }, + { + "date": "2026-06-18", + "open": 25001.42, + "close": 23924.81, + "high": 25047.9, + "low": 23749.99, + "volume": 1162364967235.0 + }, + { + "date": "2026-06-22", + "open": 23811.76, + "close": 23768.52, + "high": 23863.71, + "low": 23444.86, + "volume": 348616492428.0 + } + ], + "monthly": [ + { + "date": "2025-07-31", + "open": 24304.31, + "close": 24773.33, + "high": 25735.89, + "low": 23690.94, + "volume": 5780057657303.0 + }, + { + "date": "2025-08-29", + "open": 24744.34, + "close": 25077.62, + "high": 25918.86, + "low": 24372.51, + "volume": 5857023447150.0 + }, + { + "date": "2025-09-30", + "open": 25508.21, + "close": 26855.56, + "high": 27058.03, + "low": 25013.26, + "volume": 6963529062216.0 + }, + { + "date": "2025-10-31", + "open": 26918.3, + "close": 25906.65, + "high": 27381.84, + "low": 25145.34, + "volume": 5492425669603.0 + }, + { + "date": "2025-11-28", + "open": 25999.17, + "close": 25858.89, + "high": 27188.81, + "low": 25178.63, + "volume": 4610448267173.0 + }, + { + "date": "2025-12-31", + "open": 25945.87, + "close": 25630.54, + "high": 26264.13, + "low": 25086.54, + "volume": 3903458860646.0 + }, + { + "date": "2026-01-30", + "open": 25717.42, + "close": 27387.11, + "high": 28056.1, + "low": 25717.42, + "volume": 5713805206040.0 + }, + { + "date": "2026-02-27", + "open": 27097.34, + "close": 26630.54, + "high": 27397.65, + "low": 26295.03, + "volume": 4192917079291.0 + }, + { + "date": "2026-03-31", + "open": 26305.58, + "close": 24788.14, + "high": 26403.85, + "low": 24203.54, + "volume": 6684067222197.0 + }, + { + "date": "2026-04-30", + "open": 25357.23, + "close": 25776.53, + "high": 26529.49, + "low": 24901.77, + "volume": 4814167828676.0 + }, + { + "date": "2026-05-29", + "open": 26138.34, + "close": 25182.39, + "high": 26844.8, + "low": 24727.26, + "volume": 5562666411179.0 + }, + { + "date": "2026-06-22", + "open": 25180.05, + "close": 23768.52, + "high": 26045.07, + "low": 23444.86, + "volume": 4750111844146.0 + } + ], + "updated_at": 1782144165.928572 + }, + "hkHSTECH": { + "daily": [ + { + "date": "2025-12-19", + "open": 5461.92, + "close": 5479.04, + "high": 5505.14, + "low": 5432.41, + "volume": 58802978937.0 + }, + { + "date": "2025-12-22", + "open": 5512.54, + "close": 5526.83, + "high": 5552.72, + "low": 5498.85, + "volume": 50260953683.0 + }, + { + "date": "2025-12-23", + "open": 5534.54, + "close": 5488.89, + "high": 5534.54, + "low": 5466.63, + "volume": 42566288447.0 + }, + { + "date": "2025-12-24", + "open": 5492.83, + "close": 5499.3, + "high": 5523.28, + "low": 5484.11, + "volume": 24945366320.0 + }, + { + "date": "2025-12-29", + "open": 5547.79, + "close": 5483.01, + "high": 5619.63, + "low": 5483.01, + "volume": 60028279354.0 + }, + { + "date": "2025-12-30", + "open": 5503.61, + "close": 5578.38, + "high": 5597.87, + "low": 5503.61, + "volume": 50666770387.0 + }, + { + "date": "2025-12-31", + "open": 5566.24, + "close": 5515.98, + "high": 5581.97, + "low": 5493.15, + "volume": 30355295889.0 + }, + { + "date": "2026-01-02", + "open": 5547.85, + "close": 5736.44, + "high": 5753.28, + "low": 5530.99, + "volume": 43962060098.0 + }, + { + "date": "2026-01-05", + "open": 5755.28, + "close": 5741.63, + "high": 5786.6, + "low": 5707.73, + "volume": 82634626954.0 + }, + { + "date": "2026-01-06", + "open": 5787.01, + "close": 5825.26, + "high": 5875.32, + "low": 5784.54, + "volume": 84328127771.0 + }, + { + "date": "2026-01-07", + "open": 5809.01, + "close": 5738.52, + "high": 5810.83, + "low": 5687.01, + "volume": 83189034149.0 + }, + { + "date": "2026-01-08", + "open": 5713.53, + "close": 5678.34, + "high": 5713.53, + "low": 5614.59, + "volume": 75426914724.0 + }, + { + "date": "2026-01-09", + "open": 5699.97, + "close": 5687.14, + "high": 5737.22, + "low": 5661.28, + "volume": 69318209451.0 + }, + { + "date": "2026-01-12", + "open": 5737.43, + "close": 5863.2, + "high": 5863.61, + "low": 5698.16, + "volume": 103760083785.0 + }, + { + "date": "2026-01-13", + "open": 5976.22, + "close": 5869.79, + "high": 6001.02, + "low": 5827.58, + "volume": 94924117833.0 + }, + { + "date": "2026-01-14", + "open": 5894.63, + "close": 5908.26, + "high": 5965.61, + "low": 5837.53, + "volume": 122315499462.0 + }, + { + "date": "2026-01-15", + "open": 5875.78, + "close": 5828.35, + "high": 5903.23, + "low": 5788.09, + "volume": 96913582207.0 + }, + { + "date": "2026-01-16", + "open": 5883.37, + "close": 5822.18, + "high": 5894.76, + "low": 5791.76, + "volume": 74580099209.0 + }, + { + "date": "2026-01-19", + "open": 5777.07, + "close": 5749.98, + "high": 5803.51, + "low": 5741.51, + "volume": 56486544730.0 + }, + { + "date": "2026-01-20", + "open": 5737.11, + "close": 5683.44, + "high": 5762.89, + "low": 5662.19, + "volume": 66323035250.0 + }, + { + "date": "2026-01-21", + "open": 5643.62, + "close": 5746.3, + "high": 5783.73, + "low": 5641.33, + "volume": 66229982115.0 + }, + { + "date": "2026-01-22", + "open": 5795.0, + "close": 5762.44, + "high": 5807.16, + "low": 5712.75, + "volume": 63998439594.0 + }, + { + "date": "2026-01-23", + "open": 5817.51, + "close": 5798.01, + "high": 5822.78, + "low": 5757.29, + "volume": 61428498984.0 + }, + { + "date": "2026-01-26", + "open": 5801.15, + "close": 5725.99, + "high": 5801.15, + "low": 5686.47, + "volume": 57207119791.0 + }, + { + "date": "2026-01-27", + "open": 5734.9, + "close": 5754.72, + "high": 5769.03, + "low": 5682.78, + "volume": 59064648644.0 + }, + { + "date": "2026-01-28", + "open": 5786.66, + "close": 5900.16, + "high": 5901.32, + "low": 5772.67, + "volume": 81991126514.0 + }, + { + "date": "2026-01-29", + "open": 5853.59, + "close": 5841.1, + "high": 5898.72, + "low": 5805.6, + "volume": 71317328763.0 + }, + { + "date": "2026-01-30", + "open": 5789.49, + "close": 5718.18, + "high": 5801.1, + "low": 5716.52, + "volume": 63064291305.0 + }, + { + "date": "2026-02-02", + "open": 5644.38, + "close": 5526.31, + "high": 5644.38, + "low": 5470.01, + "volume": 87093258351.0 + }, + { + "date": "2026-02-03", + "open": 5563.79, + "close": 5467.26, + "high": 5579.3, + "low": 5338.5, + "volume": 103256195478.0 + }, + { + "date": "2026-02-04", + "open": 5419.93, + "close": 5366.44, + "high": 5432.47, + "low": 5320.72, + "volume": 90066932280.0 + }, + { + "date": "2026-02-05", + "open": 5295.89, + "close": 5406.13, + "high": 5421.74, + "low": 5267.63, + "volume": 103464696577.0 + }, + { + "date": "2026-02-06", + "open": 5275.12, + "close": 5346.2, + "high": 5397.32, + "low": 5275.12, + "volume": 67456931307.0 + }, + { + "date": "2026-02-09", + "open": 5447.63, + "close": 5417.6, + "high": 5459.9, + "low": 5392.32, + "volume": 60121464311.0 + }, + { + "date": "2026-02-10", + "open": 5461.96, + "close": 5451.03, + "high": 5522.5, + "low": 5441.48, + "volume": 60028435622.0 + }, + { + "date": "2026-02-11", + "open": 5462.7, + "close": 5499.99, + "high": 5521.81, + "low": 5450.21, + "volume": 57788068020.0 + }, + { + "date": "2026-02-12", + "open": 5474.25, + "close": 5408.98, + "high": 5476.48, + "low": 5393.12, + "volume": 71230296006.0 + }, + { + "date": "2026-02-13", + "open": 5323.14, + "close": 5360.42, + "high": 5381.69, + "low": 5310.84, + "volume": 66609338920.0 + }, + { + "date": "2026-02-16", + "open": 5350.25, + "close": 5367.52, + "high": 5368.23, + "low": 5253.64, + "volume": 21227798494.0 + }, + { + "date": "2026-02-20", + "open": 5330.61, + "close": 5211.5, + "high": 5341.72, + "low": 5211.5, + "volume": 45370866847.0 + }, + { + "date": "2026-02-23", + "open": 5303.5, + "close": 5385.35, + "high": 5420.96, + "low": 5303.5, + "volume": 46831547360.0 + }, + { + "date": "2026-02-24", + "open": 5330.26, + "close": 5270.7, + "high": 5330.26, + "low": 5239.69, + "volume": 68862265949.0 + }, + { + "date": "2026-02-25", + "open": 5316.09, + "close": 5260.5, + "high": 5325.58, + "low": 5252.2, + "volume": 51907682122.0 + }, + { + "date": "2026-02-26", + "open": 5284.51, + "close": 5109.33, + "high": 5284.51, + "low": 5109.33, + "volume": 67351913146.0 + }, + { + "date": "2026-02-27", + "open": 5117.24, + "close": 5137.84, + "high": 5185.26, + "low": 5100.17, + "volume": 71456587571.0 + }, + { + "date": "2026-03-02", + "open": 5046.4, + "close": 4989.37, + "high": 5088.25, + "low": 4966.85, + "volume": 84837790320.0 + }, + { + "date": "2026-03-03", + "open": 5018.4, + "close": 4876.53, + "high": 5031.42, + "low": 4859.54, + "volume": 71908918172.0 + }, + { + "date": "2026-03-04", + "open": 4816.2, + "close": 4829.5, + "high": 4881.69, + "low": 4750.18, + "volume": 80209600800.0 + }, + { + "date": "2026-03-05", + "open": 4907.05, + "close": 4796.33, + "high": 4916.24, + "low": 4769.92, + "volume": 63925307400.0 + }, + { + "date": "2026-03-06", + "open": 4818.81, + "close": 4947.5, + "high": 4977.08, + "low": 4798.23, + "volume": 84330606221.0 + }, + { + "date": "2026-03-09", + "open": 4760.16, + "close": 4941.73, + "high": 4947.49, + "low": 4760.16, + "volume": 74213814521.0 + }, + { + "date": "2026-03-10", + "open": 5040.8, + "close": 5060.53, + "high": 5060.53, + "low": 4960.79, + "volume": 77433794445.0 + }, + { + "date": "2026-03-11", + "open": 5104.58, + "close": 5054.85, + "high": 5124.55, + "low": 5035.9, + "volume": 65540663493.0 + }, + { + "date": "2026-03-12", + "open": 5024.53, + "close": 5027.64, + "high": 5088.59, + "low": 4973.32, + "volume": 46553641057.0 + }, + { + "date": "2026-03-13", + "open": 5006.29, + "close": 4978.08, + "high": 5046.29, + "low": 4963.02, + "volume": 43982217361.0 + }, + { + "date": "2026-03-16", + "open": 4988.47, + "close": 5111.78, + "high": 5127.25, + "low": 4935.85, + "volume": 59203280837.0 + }, + { + "date": "2026-03-17", + "open": 5137.33, + "close": 5107.64, + "high": 5232.33, + "low": 5094.32, + "volume": 59397989404.0 + }, + { + "date": "2026-03-18", + "open": 5112.97, + "close": 5108.3, + "high": 5136.02, + "low": 5053.74, + "volume": 56697428065.0 + }, + { + "date": "2026-03-19", + "open": 5000.99, + "close": 4996.28, + "high": 5069.24, + "low": 4981.92, + "volume": 88265899369.0 + }, + { + "date": "2026-03-20", + "open": 4948.04, + "close": 4872.38, + "high": 4997.7, + "low": 4835.87, + "volume": 86915949276.0 + }, + { + "date": "2026-03-23", + "open": 4780.04, + "close": 4712.48, + "high": 4806.61, + "low": 4657.55, + "volume": 82887354903.0 + }, + { + "date": "2026-03-24", + "open": 4773.58, + "close": 4830.89, + "high": 4840.61, + "low": 4693.49, + "volume": 60000377336.0 + }, + { + "date": "2026-03-25", + "open": 4878.64, + "close": 4922.94, + "high": 4955.47, + "low": 4806.72, + "volume": 95584643243.0 + }, + { + "date": "2026-03-26", + "open": 4889.55, + "close": 4761.54, + "high": 4902.42, + "low": 4745.55, + "volume": 68379997392.0 + }, + { + "date": "2026-03-27", + "open": 4740.78, + "close": 4778.01, + "high": 4836.78, + "low": 4722.5, + "volume": 53142656600.0 + }, + { + "date": "2026-03-30", + "open": 4645.26, + "close": 4690.08, + "high": 4727.42, + "low": 4619.67, + "volume": 61094921799.0 + }, + { + "date": "2026-03-31", + "open": 4693.61, + "close": 4649.82, + "high": 4742.04, + "low": 4623.65, + "volume": 52205758956.0 + }, + { + "date": "2026-04-01", + "open": 4777.67, + "close": 4756.45, + "high": 4792.65, + "low": 4708.89, + "volume": 55289430605.0 + }, + { + "date": "2026-04-02", + "open": 4732.95, + "close": 4679.1, + "high": 4742.78, + "low": 4629.15, + "volume": 52899535356.0 + }, + { + "date": "2026-04-08", + "open": 4817.01, + "close": 4923.25, + "high": 4930.67, + "low": 4809.8, + "volume": 96068510823.0 + }, + { + "date": "2026-04-09", + "open": 4868.39, + "close": 4821.67, + "high": 4889.89, + "low": 4809.96, + "volume": 52618598176.0 + }, + { + "date": "2026-04-10", + "open": 4844.15, + "close": 4860.26, + "high": 4935.97, + "low": 4844.14, + "volume": 55192503783.0 + }, + { + "date": "2026-04-13", + "open": 4826.86, + "close": 4822.01, + "high": 4843.99, + "low": 4791.86, + "volume": 43252800463.0 + }, + { + "date": "2026-04-14", + "open": 4888.22, + "close": 4851.96, + "high": 4900.49, + "low": 4801.9, + "volume": 42580140232.0 + }, + { + "date": "2026-04-15", + "open": 4961.5, + "close": 4911.79, + "high": 4973.43, + "low": 4905.58, + "volume": 53189706913.0 + }, + { + "date": "2026-04-16", + "open": 4976.17, + "close": 5092.08, + "high": 5095.76, + "low": 4976.17, + "volume": 66005946886.0 + }, + { + "date": "2026-04-17", + "open": 5055.58, + "close": 5042.68, + "high": 5072.38, + "low": 5000.84, + "volume": 45328665676.0 + }, + { + "date": "2026-04-20", + "open": 5059.58, + "close": 5065.63, + "high": 5103.03, + "low": 5020.2, + "volume": 52707205537.0 + }, + { + "date": "2026-04-21", + "open": 5092.53, + "close": 5061.5, + "high": 5092.53, + "low": 5017.39, + "volume": 33431105440.0 + }, + { + "date": "2026-04-22", + "open": 5009.76, + "close": 4963.94, + "high": 5009.76, + "low": 4940.09, + "volume": 47650884440.0 + }, + { + "date": "2026-04-23", + "open": 4962.08, + "close": 4865.52, + "high": 4962.08, + "low": 4846.09, + "volume": 49837762113.0 + }, + { + "date": "2026-04-24", + "open": 4826.62, + "close": 4902.2, + "high": 4911.68, + "low": 4775.59, + "volume": 61939137604.0 + }, + { + "date": "2026-04-27", + "open": 4929.58, + "close": 4939.84, + "high": 4975.23, + "low": 4900.52, + "volume": 69893512340.0 + }, + { + "date": "2026-04-28", + "open": 4923.78, + "close": 4827.19, + "high": 4934.76, + "low": 4813.56, + "volume": 58607410510.0 + }, + { + "date": "2026-04-29", + "open": 4878.97, + "close": 4910.02, + "high": 4918.7, + "low": 4851.53, + "volume": 55163953450.0 + }, + { + "date": "2026-04-30", + "open": 4876.72, + "close": 4871.32, + "high": 4897.39, + "low": 4823.75, + "volume": 77837351405.0 + }, + { + "date": "2026-05-04", + "open": 4948.43, + "close": 4976.7, + "high": 5053.48, + "low": 4948.43, + "volume": 45770829862.0 + }, + { + "date": "2026-05-05", + "open": 4949.12, + "close": 4929.68, + "high": 4949.12, + "low": 4859.44, + "volume": 26307572464.0 + }, + { + "date": "2026-05-06", + "open": 4971.69, + "close": 4969.2, + "high": 5026.76, + "low": 4924.43, + "volume": 89818529191.0 + }, + { + "date": "2026-05-07", + "open": 5089.11, + "close": 5121.1, + "high": 5137.85, + "low": 5070.3, + "volume": 87561934641.0 + }, + { + "date": "2026-05-08", + "open": 5079.77, + "close": 5102.79, + "high": 5122.91, + "low": 5047.17, + "volume": 66705369448.0 + }, + { + "date": "2026-05-11", + "open": 5078.36, + "close": 5106.4, + "high": 5119.33, + "low": 5055.72, + "volume": 72080880288.0 + }, + { + "date": "2026-05-12", + "open": 5129.54, + "close": 5070.61, + "high": 5141.49, + "low": 5059.58, + "volume": 63019317466.0 + }, + { + "date": "2026-05-13", + "open": 5055.41, + "close": 5093.85, + "high": 5122.26, + "low": 5017.71, + "volume": 65842200035.0 + }, + { + "date": "2026-05-14", + "open": 5258.56, + "close": 5076.2, + "high": 5258.56, + "low": 5074.02, + "volume": 90184986607.0 + }, + { + "date": "2026-05-15", + "open": 5069.46, + "close": 4941.14, + "high": 5069.46, + "low": 4910.76, + "volume": 74128005113.0 + }, + { + "date": "2026-05-18", + "open": 4897.71, + "close": 4844.94, + "high": 4897.71, + "low": 4804.87, + "volume": 67268316743.0 + }, + { + "date": "2026-05-19", + "open": 4838.36, + "close": 4857.46, + "high": 4880.53, + "low": 4812.67, + "volume": 61698848404.0 + }, + { + "date": "2026-05-20", + "open": 4840.61, + "close": 4873.82, + "high": 4892.19, + "low": 4819.85, + "volume": 68310323611.0 + }, + { + "date": "2026-05-21", + "open": 4924.69, + "close": 4768.9, + "high": 4936.31, + "low": 4756.15, + "volume": 86779019720.0 + }, + { + "date": "2026-05-22", + "open": 4843.95, + "close": 4869.57, + "high": 4882.23, + "low": 4797.92, + "volume": 77595697284.0 + }, + { + "date": "2026-05-26", + "open": 4962.22, + "close": 4946.88, + "high": 4986.84, + "low": 4874.2, + "volume": 114927455197.0 + }, + { + "date": "2026-05-27", + "open": 4979.63, + "close": 4907.57, + "high": 5009.0, + "low": 4888.21, + "volume": 84889740614.0 + }, + { + "date": "2026-05-28", + "open": 4895.28, + "close": 4888.58, + "high": 4910.26, + "low": 4814.98, + "volume": 106549763602.0 + }, + { + "date": "2026-05-29", + "open": 4939.91, + "close": 4884.23, + "high": 4980.78, + "low": 4867.56, + "volume": 133086622365.0 + }, + { + "date": "2026-06-01", + "open": 4894.94, + "close": 4964.92, + "high": 5015.94, + "low": 4894.94, + "volume": 85812833664.0 + }, + { + "date": "2026-06-02", + "open": 4995.83, + "close": 5199.28, + "high": 5203.11, + "low": 4995.83, + "volume": 134825714461.0 + }, + { + "date": "2026-06-03", + "open": 5162.81, + "close": 5056.97, + "high": 5162.81, + "low": 5042.33, + "volume": 90899167291.0 + }, + { + "date": "2026-06-04", + "open": 4994.94, + "close": 4975.36, + "high": 5014.48, + "low": 4962.91, + "volume": 64433774460.0 + }, + { + "date": "2026-06-05", + "open": 4959.93, + "close": 4888.39, + "high": 4969.03, + "low": 4872.39, + "volume": 83864228109.0 + }, + { + "date": "2026-06-08", + "open": 4769.69, + "close": 4755.91, + "high": 4821.14, + "low": 4709.44, + "volume": 82124102025.0 + }, + { + "date": "2026-06-09", + "open": 4743.52, + "close": 4769.61, + "high": 4828.79, + "low": 4738.26, + "volume": 66781584094.0 + }, + { + "date": "2026-06-10", + "open": 4751.5, + "close": 4724.79, + "high": 4773.36, + "low": 4660.87, + "volume": 83224012540.0 + }, + { + "date": "2026-06-11", + "open": 4715.42, + "close": 4655.74, + "high": 4734.19, + "low": 4590.9, + "volume": 69447302309.0 + }, + { + "date": "2026-06-12", + "open": 4713.29, + "close": 4705.2, + "high": 4750.6, + "low": 4677.13, + "volume": 65436688760.0 + }, + { + "date": "2026-06-15", + "open": 4788.83, + "close": 4765.58, + "high": 4794.67, + "low": 4737.97, + "volume": 63480357994.0 + }, + { + "date": "2026-06-16", + "open": 4765.49, + "close": 4658.65, + "high": 4765.49, + "low": 4639.81, + "volume": 55634864531.0 + }, + { + "date": "2026-06-17", + "open": 4636.78, + "close": 4669.07, + "high": 4681.19, + "low": 4617.49, + "volume": 58327254831.0 + }, + { + "date": "2026-06-18", + "open": 4628.07, + "close": 4604.35, + "high": 4639.36, + "low": 4567.28, + "volume": 99416651845.0 + }, + { + "date": "2026-06-22", + "open": 4595.07, + "close": 4549.41, + "high": 4595.07, + "low": 4513.97, + "volume": 89825552972.0 + } + ], + "weekly": [ + { + "date": "2026-01-16", + "open": 5737.43, + "close": 5822.18, + "high": 6001.02, + "low": 5698.16, + "volume": 492493382496.0 + }, + { + "date": "2026-01-23", + "open": 5777.07, + "close": 5798.01, + "high": 5822.78, + "low": 5641.33, + "volume": 314466500673.0 + }, + { + "date": "2026-01-30", + "open": 5801.15, + "close": 5718.18, + "high": 5901.32, + "low": 5682.78, + "volume": 332644515017.0 + }, + { + "date": "2026-02-06", + "open": 5644.38, + "close": 5346.2, + "high": 5644.38, + "low": 5267.63, + "volume": 451338013993.0 + }, + { + "date": "2026-02-13", + "open": 5447.63, + "close": 5360.42, + "high": 5522.5, + "low": 5310.84, + "volume": 315777602879.0 + }, + { + "date": "2026-02-20", + "open": 5350.25, + "close": 5211.5, + "high": 5368.23, + "low": 5211.5, + "volume": 66598665341.0 + }, + { + "date": "2026-02-27", + "open": 5303.5, + "close": 5137.84, + "high": 5420.96, + "low": 5100.17, + "volume": 306409996148.0 + }, + { + "date": "2026-03-06", + "open": 5046.4, + "close": 4947.5, + "high": 5088.25, + "low": 4750.18, + "volume": 385212222913.0 + }, + { + "date": "2026-03-13", + "open": 4760.16, + "close": 4978.08, + "high": 5124.55, + "low": 4760.16, + "volume": 307724130877.0 + }, + { + "date": "2026-03-20", + "open": 4988.47, + "close": 4872.38, + "high": 5232.33, + "low": 4835.87, + "volume": 350480546951.0 + }, + { + "date": "2026-03-27", + "open": 4780.04, + "close": 4778.01, + "high": 4955.47, + "low": 4657.55, + "volume": 359995029474.0 + }, + { + "date": "2026-04-02", + "open": 4645.26, + "close": 4679.1, + "high": 4792.65, + "low": 4619.67, + "volume": 221489646716.0 + }, + { + "date": "2026-04-10", + "open": 4817.01, + "close": 4860.26, + "high": 4935.97, + "low": 4809.8, + "volume": 203879612782.0 + }, + { + "date": "2026-04-17", + "open": 4826.86, + "close": 5042.68, + "high": 5095.76, + "low": 4791.86, + "volume": 250357260170.0 + }, + { + "date": "2026-04-24", + "open": 5059.58, + "close": 4902.2, + "high": 5103.03, + "low": 4775.59, + "volume": 245566095134.0 + }, + { + "date": "2026-04-30", + "open": 4929.58, + "close": 4871.32, + "high": 4975.23, + "low": 4813.56, + "volume": 261502227705.0 + }, + { + "date": "2026-05-08", + "open": 4948.43, + "close": 5102.79, + "high": 5137.85, + "low": 4859.44, + "volume": 316164235606.0 + }, + { + "date": "2026-05-15", + "open": 5078.36, + "close": 4941.14, + "high": 5258.56, + "low": 4910.76, + "volume": 365255389509.0 + }, + { + "date": "2026-05-22", + "open": 4897.71, + "close": 4869.57, + "high": 4936.31, + "low": 4756.15, + "volume": 361652205762.0 + }, + { + "date": "2026-05-29", + "open": 4962.22, + "close": 4884.23, + "high": 5009.0, + "low": 4814.98, + "volume": 439453581778.0 + }, + { + "date": "2026-06-05", + "open": 4894.94, + "close": 4888.39, + "high": 5203.11, + "low": 4872.39, + "volume": 459835717985.0 + }, + { + "date": "2026-06-12", + "open": 4769.69, + "close": 4705.2, + "high": 4828.79, + "low": 4590.9, + "volume": 367013689728.0 + }, + { + "date": "2026-06-18", + "open": 4788.83, + "close": 4604.35, + "high": 4794.67, + "low": 4567.28, + "volume": 276859129201.0 + }, + { + "date": "2026-06-22", + "open": 4595.07, + "close": 4549.41, + "high": 4595.07, + "low": 4513.97, + "volume": 89825552972.0 + } + ], + "monthly": [ + { + "date": "2025-07-31", + "open": 5359.67, + "close": 5453.14, + "high": 5802.88, + "low": 5129.52, + "volume": 1407754103540.0 + }, + { + "date": "2025-08-29", + "open": 5447.96, + "close": 5674.31, + "high": 5856.4, + "low": 5350.7, + "volume": 1593274958727.0 + }, + { + "date": "2025-09-30", + "open": 5792.25, + "close": 6465.66, + "high": 6475.92, + "low": 5553.61, + "volume": 2282690571477.0 + }, + { + "date": "2025-10-31", + "open": 6483.22, + "close": 5908.08, + "high": 6715.46, + "low": 5732.75, + "volume": 1678922879320.0 + }, + { + "date": "2025-11-28", + "open": 5936.28, + "close": 5599.11, + "high": 6025.53, + "low": 5361.74, + "volume": 1381510521429.0 + }, + { + "date": "2025-12-31", + "open": 5611.02, + "close": 5515.98, + "high": 5706.54, + "low": 5348.31, + "volume": 1085087758107.0 + }, + { + "date": "2026-01-30", + "open": 5547.85, + "close": 5718.18, + "high": 6001.02, + "low": 5530.99, + "volume": 1578463371333.0 + }, + { + "date": "2026-02-27", + "open": 5644.38, + "close": 5137.84, + "high": 5644.38, + "low": 5100.17, + "volume": 1140124278361.0 + }, + { + "date": "2026-03-31", + "open": 5046.4, + "close": 4649.82, + "high": 5232.33, + "low": 4619.67, + "volume": 1516712610970.0 + }, + { + "date": "2026-04-30", + "open": 4777.67, + "close": 4871.32, + "high": 5103.03, + "low": 4629.15, + "volume": 1069494161752.0 + }, + { + "date": "2026-05-29", + "open": 4948.43, + "close": 4884.23, + "high": 5258.56, + "low": 4756.15, + "volume": 1482525412655.0 + }, + { + "date": "2026-06-22", + "open": 4894.94, + "close": 4549.41, + "high": 5203.11, + "low": 4513.97, + "volume": 1193534089886.0 + } + ], + "updated_at": 1782144177.4859135 } } \ No newline at end of file diff --git a/data/portfolio.json b/data/portfolio.json index 37cb85ed..0f52272 100644 --- a/data/portfolio.json +++ b/data/portfolio.json @@ -14,21 +14,20 @@ "action": "持有观察 | ⚠️盈亏比偏低(1:1.0),不建议加仓 | 止损387.49 | 目标496.33 | 买入区435.13~440.67 | 信号:持有", "strategy_updated": "2026-06-19 16:01", "analysis": { - "stop_loss": 362.24, - "take_profit": 456.57, - "entry_low": 430.6, - "entry_high": 434.8, - "action": "持有观察 | ⚠️盈亏比偏低(1:1.0),不建议加仓 | 止损362.24 | 目标456.57 | 买入区430.6~434.8 | 信号:持有", - "tech_snapshot": "形态:带下影阴线/neutral 量价:数据不足 强撑:389.0 弱撑:430.6 弱压:440.2 强压:480.6", - "reassessed_at": "2026-06-22 12:00", + "stop_loss": 363.35, + "take_profit": 440.92, + "entry_low": 408.13, + "entry_high": 420.27, + "action": "持有观察 | ⚠️盈亏比偏低(1:1.2),不建议加仓 | 止损363.35 | 目标440.92 | 买入区408.13~420.27 | 信号:持有", + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:357.07 弱撑:408.13 弱压:433.0 强压:483.47", + "reassessed_at": "2026-06-24 09:00", "status": "updated", - "rr_ratio": 1.03, - "action_note": "⚠️盈亏比偏低(1:1.0),不建议加仓", - "timing_signal": "持有" + "rr_ratio": 1.19, + "action_note": "⚠️盈亏比偏低(1:1.2),不建议加仓", + "timing_signal": "大盘中性,行业偏弱,蓝筹,持有" }, - "price": 433.0, - "change_pct": -1.64, - "avg_price": 445.7552 + "price": 416.4, + "change_pct": 0.39 }, { "code": "00981", @@ -44,21 +43,20 @@ "action": "盈利持有 | ⚠️盈亏比偏低(1:1.0),不建议加仓 | 止损67.69 | 目标87.26 | 买入区73.68~76.57 | 信号:持有", "strategy_updated": "2026-06-19 16:01", "analysis": { - "stop_loss": 66.37, - "take_profit": 90.62, - "entry_low": 76.5, - "entry_high": 79.52, - "action": "盈利持有 | ⚠️盈亏比偏低(1:1.1),不建议加仓 | 止损66.37 | 目标90.62 | 买入区76.5~79.52 | 信号:持有", - "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:数据不足 强撑:68.42 弱撑:76.5 弱压:81.88 强压:90.62", - "reassessed_at": "2026-06-22 12:00", + "stop_loss": 70.68, + "take_profit": 88.59, + "entry_low": 74.87, + "entry_high": 78.61, + "action": "盈利持有 | ⚠️盈亏比偏低(1:1.3),不建议加仓 | 止损70.68 | 目标88.59 | 买入区74.87~78.61 | 信号:持有", + "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:数据不足 强撑:66.68 弱撑:74.87 弱压:82.47 强压:92.28", + "reassessed_at": "2026-06-24 09:00", "status": "updated", - "rr_ratio": 1.11, - "action_note": "⚠️盈亏比偏低(1:1.1),不建议加仓", - "timing_signal": "持有" + "rr_ratio": 1.29, + "action_note": "⚠️盈亏比偏低(1:1.3),不建议加仓", + "timing_signal": "大盘中性,行业中性,高估值,蓝筹,持有" }, - "price": 78.9, - "change_pct": 3.14, - "avg_price": 76.3899 + "price": 83.55, + "change_pct": 7.32 }, { "code": "01088", @@ -74,21 +72,20 @@ "action": "持有观察 | ⚠️盈亏比偏低(1:1.3),不建议加仓 | 止损35.09 | 目标42.9 | 买入区41.66~42.8 | 信号:持有", "strategy_updated": "2026-06-19 16:01", "analysis": { - "stop_loss": 37.9, - "take_profit": 46.43, - "entry_low": 41.91, + "stop_loss": 40.61, + "take_profit": 44.57, + "entry_low": 41.61, "entry_high": 42.37, - "action": "持有观察 | ⚠️盈亏比偏低(1:0.8),不建议加仓 | 止损37.9 | 目标46.43 | 买入区41.91~42.37 | 信号:持有", - "tech_snapshot": "形态:带下影阳线/bullish 量价:数据不足 强撑:38.31 弱撑:41.91 弱压:43.19 强压:46.43", - "reassessed_at": "2026-06-22 12:00", + "action": "持有观察 | ⚠️盈亏比偏低(1:1.2),不建议加仓 | 止损40.61 | 目标44.57 | 买入区41.61~42.37 | 信号:持有", + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:38.31 弱撑:41.61 弱压:42.83 强压:46.43", + "reassessed_at": "2026-06-24 09:00", "status": "updated", - "rr_ratio": 0.83, - "action_note": "⚠️盈亏比偏低(1:0.8),不建议加仓", - "timing_signal": "持有" + "rr_ratio": 1.17, + "action_note": "⚠️盈亏比偏低(1:1.2),不建议加仓", + "timing_signal": "大盘中性,行业中性,蓝筹,持有" }, - "price": 42.58, - "change_pct": 0.57, - "avg_price": 46.1659 + "price": 41.56, + "change_pct": -1.19 }, { "code": "01211", @@ -104,21 +101,20 @@ "action": "深套持有 | 深套持有 | 止损63.99 | 目标87.07 | 买入区72.77~84.89 | 信号:持有", "strategy_updated": "2026-06-19 16:01", "analysis": { - "stop_loss": 61.7, - "take_profit": 85.12, - "entry_low": 70.16, - "entry_high": 81.85, - "action": "深套持有 | 深套持有 | 止损61.7 | 目标85.12 | 买入区70.16~81.85 | 信号:持有", - "tech_snapshot": "形态:带下影阴线/neutral 量价:数据不足 强撑:67.0 弱撑:76.35 弱压:80.85 强压:89.6", - "reassessed_at": "2026-06-22 12:00", + "stop_loss": 65.31, + "take_profit": 81.15, + "entry_low": 68.27, + "entry_high": 79.64, + "action": "深套持有 | 深套持有 | 止损65.31 | 目标81.15 | 买入区68.27~79.64 | 信号:持有", + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:64.18 弱撑:74.87 弱压:78.35 强压:88.98", + "reassessed_at": "2026-06-24 09:00", "status": "updated", - "rr_ratio": 1.0, + "rr_ratio": 1.13, "action_note": "深套持有", - "timing_signal": "持有" + "timing_signal": "大盘中性,行业偏弱,蓝筹,持有" }, - "price": 78.35, - "change_pct": -3.09, - "avg_price": 105.4926 + "price": 74.9, + "change_pct": -1.25 }, { "code": "01478", @@ -134,21 +130,20 @@ "action": "深套持有 | 深套持有 | 止损7.33 | 目标10.39 | 买入区7.88~9.19 | 信号:持有", "strategy_updated": "2026-06-19 16:01", "analysis": { - "stop_loss": 6.62, - "take_profit": 9.37, - "entry_low": 7.52, - "entry_high": 8.78, - "action": "深套持有 | 深套持有 | 止损6.62 | 目标9.37 | 买入区7.52~8.78 | 信号:持有", - "tech_snapshot": "形态:光头光脚阴线/neutral 量价:数据不足 强撑:7.18 弱撑:8.14 弱压:8.75 强压:9.86", - "reassessed_at": "2026-06-22 12:00", + "stop_loss": 6.82, + "take_profit": 9.32, + "entry_low": 7.09, + "entry_high": 8.27, + "action": "深套持有 | 深套持有 | 止损6.82 | 目标9.32 | 买入区7.09~8.27 | 信号:持有", + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:6.43 弱撑:7.61 弱压:8.38 强压:9.71", + "reassessed_at": "2026-06-24 09:00", "status": "updated", - "rr_ratio": 1.2, + "rr_ratio": 1.26, "action_note": "深套持有", - "timing_signal": "持有" + "timing_signal": "大盘中性,行业中性,低估值,持有" }, - "price": 8.38, - "change_pct": -4.23, - "avg_price": 13.8666 + "price": 7.63, + "change_pct": -3.17 }, { "code": "01888", @@ -164,21 +159,20 @@ "action": "盈利持有 | 短炒强趋势持 | 止损86.34 | 目标141.9 | 买入区85.82~90.11 | 信号:强趋势持", "strategy_updated": "2026-06-19 16:01", "analysis": { - "stop_loss": 81.61, - "take_profit": 131.46, - "entry_low": 87.18, - "entry_high": 91.54, - "action": "盈利持有 | 短炒强趋势持 | 止损81.61 | 目标131.46 | 买入区87.18~91.54 | 信号:强趋势持", - "tech_snapshot": "形态:倒T线/射击之星/neutral 量价:数据不足 强撑:57.27 弱撑:87.18 弱压:98.43 强压:129.57", - "reassessed_at": "2026-06-22 12:00", + "stop_loss": 77.86, + "take_profit": 106.95, + "entry_low": 83.32, + "entry_high": 87.49, + "action": "持有观察 | 短炒强趋势持 | 止损77.86 | 目标106.95 | 买入区83.32~87.49 | 信号:强趋势持", + "tech_snapshot": "形态:带下影阴线/neutral 量价:数据不足 强撑:51.48 弱撑:83.32 弱压:91.95 强压:123.78", + "reassessed_at": "2026-06-24 09:00", "status": "updated", - "rr_ratio": 10.01, + "rr_ratio": 9.3, "action_note": "短炒强趋势持", - "timing_signal": "强趋势持" + "timing_signal": "大盘中性,行业偏弱,高估值,强趋势持" }, - "price": 91.95, - "change_pct": 0.11, - "avg_price": 88.7544 + "price": 94.4, + "change_pct": 8.19 }, { "code": "02202", @@ -194,21 +188,20 @@ "action": "深套持有 | 深套持有 | 止损2.0 | 目标2.85 | 买入区2.18~2.54 | 信号:持有", "strategy_updated": "2026-06-19 16:01", "analysis": { - "stop_loss": 1.91, - "take_profit": 2.63, - "entry_low": 2.19, - "entry_high": 2.55, - "action": "深套持有 | 深套持有 | 止损1.91 | 目标2.63 | 买入区2.19~2.55 | 信号:持有", - "tech_snapshot": "形态:锤子线/T字线/bullish 量价:数据不足 强撑:2.05 弱撑:2.37 弱压:2.46 强压:2.77", - "reassessed_at": "2026-06-22 12:00", + "stop_loss": 2.16, + "take_profit": 2.68, + "entry_low": 2.16, + "entry_high": 2.52, + "action": "深套持有 | 深套持有 | 止损2.16 | 目标2.68 | 买入区2.16~2.52 | 信号:持有", + "tech_snapshot": "形态:带上影阴线/bearish 量价:数据不足 强撑:2.07 弱撑:2.34 弱压:2.5 强压:2.79", + "reassessed_at": "2026-06-24 09:00", "status": "updated", - "rr_ratio": 0.89, + "rr_ratio": 1.08, "action_note": "深套持有", - "timing_signal": "持有" + "timing_signal": "大盘中性,行业中性,高估值,持有" }, - "price": 2.47, - "change_pct": 2.07, - "avg_price": 4.6955 + "price": 2.34, + "change_pct": -2.92 }, { "code": "02388", @@ -224,21 +217,20 @@ "action": "盈利良好 | 止损43.49 | 目标50.1 | 买入区47.51~48.95 | 信号:持有", "strategy_updated": "2026-06-19 16:01", "analysis": { - "stop_loss": 44.75, - "take_profit": 50.16, - "entry_low": 47.09, - "entry_high": 48.14, - "action": "盈利良好 | 止损44.75 | 目标50.16 | 买入区47.09~48.14 | 信号:持有", - "tech_snapshot": "形态:锤子线/T字线/bullish 量价:数据不足 强撑:44.94 弱撑:47.09 弱压:48.14 强压:50.16", - "reassessed_at": "2026-06-22 12:00", + "stop_loss": 45.59, + "take_profit": 48.97, + "entry_low": 46.65, + "entry_high": 48.3, + "action": "盈利良好 | 止损45.59 | 目标48.97 | 买入区46.65~48.3 | 信号:持有", + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:43.49 弱撑:46.65 弱压:47.61 强压:51.01", + "reassessed_at": "2026-06-24 09:01", "status": "updated", - "rr_ratio": 1.82, + "rr_ratio": 2.84, "action_note": "", - "timing_signal": "持有" + "timing_signal": "大盘中性,行业偏强,低估值,蓝筹,持有" }, - "price": 47.6, - "change_pct": -1.12, - "avg_price": 43.9719 + "price": 46.58, + "change_pct": -0.89 }, { "code": "09988", @@ -254,21 +246,20 @@ "action": "持有观察 | ⚠️盈亏比偏低(1:0.9),不建议加仓 | 止损90.82 | 目标118.69 | 买入区102.87~104.43 | 信号:持有", "strategy_updated": "2026-06-19 16:01", "analysis": { - "stop_loss": 83.69, - "take_profit": 108.94, - "entry_low": 100.83, - "entry_high": 102.27, - "action": "持有观察 | ⚠️盈亏比偏低(1:1.0),不建议加仓 | 止损83.69 | 目标108.94 | 买入区100.83~102.27 | 信号:持有", - "tech_snapshot": "形态:锤子线/T字线/bullish 量价:数据不足 强撑:89.87 弱撑:100.83 弱压:104.9 强压:114.67", - "reassessed_at": "2026-06-22 12:01", + "stop_loss": 85.59, + "take_profit": 104.75, + "entry_low": 89.06, + "entry_high": 103.9, + "action": "深套持有 | 深套持有 | 止损85.59 | 目标104.75 | 买入区89.06~103.9 | 信号:持有", + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:85.85 弱撑:97.3 弱压:102.9 强压:114.85", + "reassessed_at": "2026-06-24 09:01", "status": "updated", - "rr_ratio": 0.96, - "action_note": "⚠️盈亏比偏低(1:1.0),不建议加仓", - "timing_signal": "持有" + "rr_ratio": 1.07, + "action_note": "深套持有", + "timing_signal": "大盘中性,行业偏弱,蓝筹,持有" }, - "price": 102.9, - "change_pct": -1.91, - "avg_price": 126.6781 + "price": 97.7, + "change_pct": -1.26 }, { "code": "300035", @@ -284,21 +275,20 @@ "action": "深套持有 | 深套持有 | 止损13.74 | 目标19.0 | 买入区15.63~18.24 | 信号:持有", "strategy_updated": "2026-06-19 16:01", "analysis": { - "stop_loss": 13.94, - "take_profit": 18.83, - "entry_low": 15.22, - "entry_high": 17.76, - "action": "深套持有 | 深套持有 | 止损13.94 | 目标18.83 | 买入区15.22~17.76 | 信号:持有", - "tech_snapshot": "形态:锤子线/T字线/bullish 量价:主动卖盘占优 强撑:14.85 弱撑:16.31 弱压:17.43 强压:18.83", - "reassessed_at": "2026-06-22 12:01", + "stop_loss": 14.15, + "take_profit": 16.94, + "entry_low": 14.72, + "entry_high": 17.18, + "action": "深套持有 | 深套持有 | 止损14.15 | 目标16.94 | 买入区14.72~17.18 | 信号:持有", + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:主动卖盘占优 强撑:14.59 弱撑:16.07 弱压:17.15 强压:18.57", + "reassessed_at": "2026-06-24 09:01", "status": "updated", - "rr_ratio": 0.76, + "rr_ratio": 0.9, "action_note": "深套持有", - "timing_signal": "持有" + "timing_signal": "大盘中性,行业偏弱,持有" }, - "price": 17.15, - "change_pct": -1.32, - "avg_price": 22.2914 + "price": 16.12, + "change_pct": -1.47 }, { "code": "300548", @@ -314,21 +304,20 @@ "action": "盈利良好 | 短炒强趋势持 | 止损251.24 | 目标413.9 | 买入区269.8~283.29 | 信号:强趋势持", "strategy_updated": "2026-06-19 16:01", "analysis": { - "stop_loss": 263.73, - "take_profit": 424.82, - "entry_low": 281.99, - "entry_high": 296.09, - "action": "盈利良好 | 短炒强趋势持 | 止损263.73 | 目标424.82 | 买入区281.99~296.09 | 信号:强趋势持", - "tech_snapshot": "形态:倒T线/射击之星/neutral 量价:主动买盘占优 强撑:225.59 弱撑:281.99 弱压:308.63 强压:338.39", - "reassessed_at": "2026-06-22 12:01", + "stop_loss": 277.44, + "take_profit": 343.4, + "entry_low": 276.08, + "entry_high": 289.88, + "action": "盈利良好 | 短炒强趋势持 | 止损277.44 | 目标343.4 | 买入区276.08~289.88 | 信号:强趋势持", + "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:主动买盘占优 强撑:238.47 弱撑:276.08 弱压:302.78 强压:357.71", + "reassessed_at": "2026-06-24 09:01", "status": "updated", - "rr_ratio": 10.0, + "rr_ratio": 7.21, "action_note": "短炒强趋势持", - "timing_signal": "强趋势持" + "timing_signal": "大盘中性,行业中性,高估值,强趋势持" }, - "price": 298.09, - "change_pct": 5.71, - "avg_price": 231.46 + "price": 286.54, + "change_pct": 0.18 }, { "code": "300690", @@ -344,21 +333,20 @@ "action": "持有观察 | ⚠️盈亏比偏低(1:1.2),不建议加仓 | 止损22.1 | 目标25.93 | 买入区23.57~23.98 | 信号:持有", "strategy_updated": "2026-06-19 16:01", "analysis": { - "stop_loss": 21.03, - "take_profit": 23.7, - "entry_low": 23.16, - "entry_high": 23.77, - "action": "持有观察 | ⚠️盈亏比偏低(1:1.1),不建议加仓 | 止损21.03 | 目标23.7 | 买入区23.16~23.77 | 信号:持有", - "tech_snapshot": "形态:十字星/neutral 量价:主动卖盘占优 强撑:22.58 弱撑:23.16 弱压:24.32 强压:24.95", - "reassessed_at": "2026-06-22 12:01", + "stop_loss": 22.0, + "take_profit": 22.83, + "entry_low": 23.31, + "entry_high": 23.85, + "action": "持有观察 | ⚠️盈亏比偏低(1:1.5),不建议加仓 | 止损22.0 | 目标22.83 | 买入区23.31~23.85 | 信号:持有", + "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:主动卖盘占优 强撑:22.67 弱撑:23.31 弱压:24.17 强压:25.03", + "reassessed_at": "2026-06-24 09:01", "status": "updated", - "rr_ratio": 1.08, - "action_note": "⚠️盈亏比偏低(1:1.1),不建议加仓", - "timing_signal": "持有" + "rr_ratio": 1.46, + "action_note": "⚠️盈亏比偏低(1:1.5),不建议加仓", + "timing_signal": "大盘中性,行业偏弱,持有" }, - "price": 24.16, - "change_pct": 1.17, - "avg_price": 27.178 + "price": 22.83, + "change_pct": -3.39 }, { "code": "300750", @@ -374,21 +362,20 @@ "action": "持有观察 | 止损345.04 | 目标414.6 | 买入区384.35~397.12 | 信号:弱势持有", "strategy_updated": "2026-06-19 16:01", "analysis": { - "stop_loss": 359.96, - "take_profit": 437.18, - "entry_low": 391.55, - "entry_high": 404.13, - "action": "盈利持有 | ⚠️盈亏比偏低(1:0.6),不建议加仓 | 止损359.96 | 目标437.18 | 买入区391.55~404.13 | 信号:持有", - "tech_snapshot": "形态:光头光脚阳线/bullish 量价:买卖均衡 强撑:371.09 弱撑:391.55 弱压:422.27 强压:437.18", - "reassessed_at": "2026-06-22 12:01", + "stop_loss": 365.5, + "take_profit": 392.01, + "entry_low": 384.15, + "entry_high": 399.09, + "action": "持有观察 | 止损365.5 | 目标392.01 | 买入区384.15~399.09 | 信号:持有", + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:买卖均衡 强撑:368.35 弱撑:384.15 弱压:408.98 强压:429.83", + "reassessed_at": "2026-06-24 09:01", "status": "updated", - "rr_ratio": 0.57, - "action_note": "⚠️盈亏比偏低(1:0.6),不建议加仓", - "timing_signal": "持有" + "rr_ratio": 1.54, + "action_note": "", + "timing_signal": "大盘中性,行业偏弱,蓝筹,持有" }, - "price": 408.98, - "change_pct": 4.43, - "avg_price": 401.7803 + "price": 394.29, + "change_pct": 0.45 }, { "code": "518880", @@ -404,21 +391,20 @@ "action": "深套持有 | 深套持有 | 止损7.05 | 目标9.17 | 买入区8.02~9.35 | 信号:持有", "strategy_updated": "2026-06-19 16:01", "analysis": { - "stop_loss": 7.15, - "take_profit": 9.38, - "entry_low": 7.8, - "entry_high": 9.1, - "action": "深套持有 | 深套持有 | 止损7.15 | 目标9.38 | 买入区7.8~9.1 | 信号:持有", - "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:8.02 弱撑:8.64 弱压:8.91 强压:9.38", - "reassessed_at": "2026-06-22 12:01", + "stop_loss": 7.08, + "take_profit": 8.0, + "entry_low": 7.68, + "entry_high": 8.96, + "action": "深套持有 | 深套持有 | 止损7.08 | 目标8.0 | 买入区7.68~8.96 | 信号:持有", + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:数据不足 强撑:7.9 弱撑:8.48 弱压:8.72 强压:9.26", + "reassessed_at": "2026-06-24 09:01", "status": "updated", - "rr_ratio": 0.55, + "rr_ratio": 0.57, "action_note": "深套持有", - "timing_signal": "持有" + "timing_signal": "大盘中性,行业偏弱,持有" }, - "price": 8.72, - "change_pct": -2.16, - "avg_price": 12.1915 + "price": 8.47, + "change_pct": -0.81 }, { "code": "600036", @@ -434,21 +420,20 @@ "action": "持有观察 | ⚠️盈亏比偏低(1:1.2),不建议加仓 | 止损32.21 | 目标39.68 | 买入区36.95~37.57 | 信号:弱势持有", "strategy_updated": "2026-06-19 16:01", "analysis": { - "stop_loss": 33.2, - "take_profit": 40.18, - "entry_low": 36.97, - "entry_high": 37.2, - "action": "持有观察 | ⚠️盈亏比偏低(1:1.0),不建议加仓 | 止损33.2 | 目标40.18 | 买入区36.97~37.2 | 信号:弱势持有", - "tech_snapshot": "形态:带上影阳线/neutral 量价:买卖均衡 强撑:34.23 弱撑:36.97 弱压:37.46 强压:40.18", - "reassessed_at": "2026-06-22 12:01", + "stop_loss": 36.28, + "take_profit": 39.01, + "entry_low": 37.1, + "entry_high": 37.64, + "action": "持有观察 | ⚠️盈亏比偏低(1:1.2),不建议加仓 | 止损36.28 | 目标39.01 | 买入区37.1~37.64 | 信号:弱势持有", + "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:买卖均衡 强撑:34.65 弱撑:37.1 弱压:37.94 强压:40.64", + "reassessed_at": "2026-06-24 09:01", "status": "updated", - "rr_ratio": 0.99, - "action_note": "⚠️盈亏比偏低(1:1.0),不建议加仓", - "timing_signal": "弱势持有" + "rr_ratio": 1.18, + "action_note": "⚠️盈亏比偏低(1:1.2),不建议加仓", + "timing_signal": "大盘中性,行业偏强,低估值,蓝筹,弱势持有" }, - "price": 37.65, - "change_pct": 1.1, - "avg_price": 38.1582 + "price": 36.97, + "change_pct": -1.15 }, { "code": "600563", @@ -464,21 +449,20 @@ "action": "盈利良好 | 止损161.41 | 目标192.67 | 买入区165.51~173.79 | 信号:持有", "strategy_updated": "2026-06-19 16:01", "analysis": { - "stop_loss": 153.13, - "take_profit": 175.76, - "entry_low": 166.06, - "entry_high": 174.36, - "action": "盈利良好 | 止损153.13 | 目标175.76 | 买入区166.06~174.36 | 信号:持有", - "tech_snapshot": "形态:倒T线/射击之星/neutral 量价:买卖均衡 强撑:151.37 弱撑:166.06 弱压:175.12 强压:185.01", - "reassessed_at": "2026-06-22 12:01", + "stop_loss": 145.02, + "take_profit": 164.36, + "entry_low": 158.07, + "entry_high": 165.97, + "action": "盈利持有 | 止损145.02 | 目标164.36 | 买入区158.07~165.97 | 信号:持有", + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:买卖均衡 强撑:155.65 弱撑:158.07 弱压:172.94 强压:190.23", + "reassessed_at": "2026-06-24 09:01", "status": "updated", - "rr_ratio": 3.04, + "rr_ratio": 4.04, "action_note": "", - "timing_signal": "持有" + "timing_signal": "大盘中性,行业偏弱,持有" }, - "price": 172.94, - "change_pct": 2.82, - "avg_price": 155.5032 + "price": 178.76, + "change_pct": 10.0 }, { "code": "600739", @@ -494,21 +478,20 @@ "action": "持有观察 | ⚠️盈亏比偏低(1:1.1),不建议加仓 | 止损9.1 | 目标11.19 | 买入区10.0~10.12 | 信号:持有", "strategy_updated": "2026-06-19 16:01", "analysis": { - "stop_loss": 8.48, - "take_profit": 9.99, - "entry_low": 10.09, - "entry_high": 10.3, - "action": "持有观察 | ⚠️盈亏比偏低(1:0.6),不建议加仓 | 止损8.48 | 目标9.99 | 买入区10.09~10.3 | 信号:持有", - "tech_snapshot": "形态:光头光脚阳线/bullish 量价:主动买盘占优 强撑:9.5 弱撑:10.09 弱压:10.75 强压:11.1", - "reassessed_at": "2026-06-22 12:01", + "stop_loss": 10.33, + "take_profit": 11.34, + "entry_low": 10.5, + "entry_high": 10.74, + "action": "持有观察 | ⚠️盈亏比偏低(1:1.2),不建议加仓 | 止损10.33 | 目标11.34 | 买入区10.5~10.74 | 信号:持有", + "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:主动买盘占优 强撑:9.67 弱撑:10.5 弱压:10.9 强压:11.81", + "reassessed_at": "2026-06-24 09:01", "status": "updated", - "rr_ratio": 0.55, - "action_note": "⚠️盈亏比偏低(1:0.6),不建议加仓", - "timing_signal": "持有" + "rr_ratio": 1.18, + "action_note": "⚠️盈亏比偏低(1:1.2),不建议加仓", + "timing_signal": "大盘中性,行业偏强,持有" }, - "price": 10.74, - "change_pct": 6.64, - "avg_price": 12.2862 + "price": 10.48, + "change_pct": -1.6 }, { "code": "601899", @@ -524,21 +507,20 @@ "action": "深套持有 | 深套持有 | 止损24.48 | 目标34.47 | 买入区26.72~31.17 | 信号:持有", "strategy_updated": "2026-06-19 16:01", "analysis": { - "stop_loss": 24.92, - "take_profit": 32.66, - "entry_low": 26.68, - "entry_high": 31.12, - "action": "深套持有 | 深套持有 | 止损24.92 | 目标32.66 | 买入区26.68~31.12 | 信号:持有", - "tech_snapshot": "形态:带下影阳线/neutral 量价:主动买盘占优 强撑:26.72 弱撑:28.85 弱压:30.13 强压:32.66", - "reassessed_at": "2026-06-22 12:01", + "stop_loss": 23.01, + "take_profit": 27.79, + "entry_low": 24.98, + "entry_high": 29.14, + "action": "深套持有 | 深套持有 | 止损23.01 | 目标27.79 | 买入区24.98~29.14 | 信号:持有", + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:主动买盘占优 强撑:24.75 弱撑:26.93 弱压:30.44 强压:32.17", + "reassessed_at": "2026-06-24 09:01", "status": "updated", - "rr_ratio": 0.68, + "rr_ratio": 1.06, "action_note": "深套持有", - "timing_signal": "持有" + "timing_signal": "大盘中性,行业偏弱,低估值,蓝筹,持有" }, - "price": 30.44, - "change_pct": 2.53, - "avg_price": 40.2685 + "price": 27.58, + "change_pct": -0.79 }, { "code": "603259", @@ -554,21 +536,20 @@ "action": "盈利良好 | ⚠️盈亏比偏低(1:1.2),不建议加仓 | 止损97.16 | 目标111.26 | 买入区98.2~103.11 | 信号:持有", "strategy_updated": "2026-06-19 16:01", "analysis": { - "stop_loss": 93.96, - "take_profit": 107.3, - "entry_low": 102.28, - "entry_high": 106.93, - "action": "盈利良好 | 止损93.96 | 目标107.3 | 买入区102.28~106.93 | 信号:持有", - "tech_snapshot": "形态:锤子线/T字线/bullish 量价:买卖均衡 强撑:93.93 弱撑:102.28 弱压:105.18 强压:112.95", - "reassessed_at": "2026-06-22 12:01", + "stop_loss": 103.12, + "take_profit": 112.81, + "entry_low": 104.93, + "entry_high": 110.18, + "action": "盈利良好 | 止损103.12 | 目标112.81 | 买入区104.93~110.18 | 信号:持有", + "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:买卖均衡 强撑:96.15 弱撑:104.93 弱压:108.53 强压:117.51", + "reassessed_at": "2026-06-24 09:01", "status": "updated", - "rr_ratio": 2.86, + "rr_ratio": 3.51, "action_note": "", - "timing_signal": "持有" + "timing_signal": "大盘中性,行业偏强,低估值,持有" }, - "price": 106.83, - "change_pct": 4.02, - "avg_price": 96.201 + "price": 115.01, + "change_pct": 8.18 }, { "code": "688411", @@ -577,28 +558,27 @@ "cost": 258.6163, "position_pct": 6.58, "is_active": 1, - "stop_loss": 277.42, - "take_profit": 327.74, - "entry_low": 277.73, - "entry_high": 291.62, - "action": "盈利良好 | 止损277.42 | 目标327.74 | 买入区277.73~291.62 | 信号:持有", - "strategy_updated": "2026-06-22 13:59", + "stop_loss": 253.82, + "take_profit": 316.5, + "entry_low": 273.21, + "entry_high": 286.87, + "action": "盈利良好 | 止损253.82 | 目标316.5 | 买入区273.21~286.87 | 信号:持有", + "strategy_updated": "2026-06-19 16:01", "analysis": { - "stop_loss": 277.42, - "take_profit": 327.74, - "entry_low": 277.73, - "entry_high": 291.62, - "rr_ratio": 4.86, - "timing_signal": "持有", - "action": "盈利良好 | 止损277.42 | 目标327.74 | 买入区277.73~291.62 | 信号:持有", - "tech_snapshot": "形态:光头光脚阳线/neutral 量价:买卖均衡 强撑:238.66 弱撑:277.73 弱压:291.45 强压:327.74", - "reassessed_at": "2026-06-22 13:59", - "status": "updated", - "stock_category": "中短线" + "stop_loss": 271.71, + "take_profit": 323.7, + "entry_low": 274.51, + "entry_high": 285.71, + "action": "盈利良好 | 止损271.71 | 目标323.7 | 买入区274.51~285.71 | 信号:持有", + "tech_snapshot": "形态:光头光脚阴线/bearish 量价:买卖均衡 强撑:231.2 弱撑:265.5 弱压:286.98 强压:320.28", + "reassessed_at": "2026-06-24 09:01", + "status": "manual", + "rr_ratio": 18.9, + "action_note": "", + "timing_signal": "持有" }, - "price": 286.98, - "change_pct": 2.12, - "avg_price": 258.6163 + "price": 266.48, + "change_pct": -2.12 }, { "code": "688981", @@ -614,79 +594,20 @@ "action": "盈利良好 | 止损132.76 | 目标164.45 | 买入区134.18~140.89 | 信号:持有", "strategy_updated": "2026-06-19 16:01", "analysis": { - "stop_loss": 134.66, - "take_profit": 167.33, - "entry_low": 139.41, - "entry_high": 146.38, - "action": "盈利良好 | 止损134.66 | 目标167.33 | 买入区139.41~146.38 | 信号:持有", - "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:买卖均衡 强撑:120.07 弱撑:139.41 弱压:147.41 强压:167.33", - "reassessed_at": "2026-06-22 12:01", + "stop_loss": 137.45, + "take_profit": 160.44, + "entry_low": 138.1, + "entry_high": 145.0, + "action": "盈利良好 | 止损137.45 | 目标160.44 | 买入区138.1~145.0 | 信号:持有", + "tech_snapshot": "形态:倒T线/射击之星/bearish 量价:买卖均衡 强撑:119.27 弱撑:138.1 弱压:146.8 强压:167.13", + "reassessed_at": "2026-06-24 09:01", "status": "updated", - "rr_ratio": 5.65, + "rr_ratio": 5.98, "action_note": "", - "timing_signal": "持有" + "timing_signal": "大盘中性,行业中性,高估值,蓝筹,持有" }, - "price": 145.59, - "change_pct": 3.47, - "avg_price": 126.0681 - }, - { - "code": "000700", - "name": "模塑科技", - "shares": 1400, - "cost": 14.83, - "price": 15.18, - "change_pct": -1.75, - "position_pct": 2.05, - "is_active": 1, - "stop_loss": 14.32, - "take_profit": 17.0, - "entry_low": 14.63, - "entry_high": 15.23, - "action": "盈利持有 | 目标17.0 | 止损14.32 | 买入区14.63~15.23", - "strategy_updated": "2026-06-19", - "avg_price": 14.83 - }, - { - "code": "02318", - "name": "中国平安", - "shares": 500, - "cost": 50.92, - "price": 54.95, - "change_pct": 2.04, - "position_pct": 2.47, - "is_active": 1, - "stop_loss": 52.75, - "take_profit": 60.0, - "entry_low": 53.36, - "entry_high": 55.54, - "action": "盈利持有 | 目标60.0 | 止损52.75 | 买入区53.36~55.54", - "strategy_updated": "2026-06-22", - "avg_price": 50.92 - }, - { - "code": "09868", - "name": "小鹏汽车-W", - "shares": 700, - "cost": 47.71, - "price": 51.55, - "change_pct": 0.1, - "position_pct": 3.25, - "is_active": 1, - "stop_loss": 45.89, - "take_profit": 59.92, - "entry_low": 49.78, - "entry_high": 51.82, - "action": "盈利持有 | 目标59.92 | 止损45.89 | 买入区49.78~51.82 | 信号:阳线企稳,可买入", - "strategy_updated": "2026-06-22", - "avg_price": 47.71 + "price": 151.99, + "change_pct": 7.26 } - ], - "cash": 70622, - "total_assets": 1035162, - "position_pct": 93.02, - "total_pnl": -148037.26, - "updated_at": "2026-06-18 17:37:10", - "day_pnl": -2482.47, - "data_source": "券商导出 2026-06-18 收盘(精确)" + ] } \ No newline at end of file diff --git a/data/portfolio.json.20260623 b/data/portfolio.json.20260623 new file mode 100644 index 0000000..2409af2 --- /dev/null +++ b/data/portfolio.json.20260623 @@ -0,0 +1,272 @@ +{ + "holdings": [ + { + "code": "01478", + "name": "丘钛科技", + "shares": 11000, + "cost": 11.96, + "price": 8.07, + "change_pct": -3.7, + "position_pct": 7.66, + "is_active": 1, + "avg_price": 13.8313 + }, + { + "code": "001309", + "name": "德明利", + "shares": 100, + "cost": 737.0374, + "price": 763.86, + "change_pct": 3.63, + "position_pct": 7.5, + "is_active": 1, + "avg_price": 737.0374 + }, + { + "code": "600739", + "name": "辽宁成大", + "shares": 6600, + "cost": 12.2862, + "price": 10.77, + "change_pct": 0.28, + "position_pct": 7.03, + "is_active": 1, + "avg_price": 12.2862 + }, + { + "code": "601899", + "name": "紫金矿业", + "shares": 2400, + "cost": 40.2685, + "price": 28.01, + "change_pct": -7.98, + "position_pct": 6.7, + "is_active": 1, + "avg_price": 40.2685 + }, + { + "code": "09988", + "name": "阿里巴巴-W", + "shares": 700, + "cost": 109.26, + "price": 99.55, + "change_pct": -3.35, + "position_pct": 5.95, + "is_active": 1, + "avg_price": 126.3558 + }, + { + "code": "688981", + "name": "中芯国际", + "shares": 300, + "cost": 126.0681, + "price": 142.16, + "change_pct": -2.36, + "position_pct": 4.31, + "is_active": 1, + "avg_price": 126.0681 + }, + { + "code": "603259", + "name": "药明康德", + "shares": 400, + "cost": 96.201, + "price": 106.66, + "change_pct": -0.16, + "position_pct": 4.23, + "is_active": 1, + "avg_price": 96.201 + }, + { + "code": "02202", + "name": "万科企业", + "shares": 19700, + "cost": 4.05, + "price": 2.4, + "change_pct": -3.24, + "position_pct": 4.05, + "is_active": 1, + "avg_price": 4.6836 + }, + { + "code": "02388", + "name": "中银香港", + "shares": 1000, + "cost": 37.93, + "price": 47.32, + "change_pct": -0.59, + "position_pct": 4.02, + "is_active": 1, + "avg_price": 43.8601 + }, + { + "code": "300750", + "name": "宁德时代", + "shares": 100, + "cost": 401.7803, + "price": 396.98, + "change_pct": -2.93, + "position_pct": 3.93, + "is_active": 1, + "avg_price": 401.7803 + }, + { + "code": "01211", + "name": "比亚迪股份", + "shares": 600, + "cost": 90.99, + "price": 76.4, + "change_pct": -2.62, + "position_pct": 3.9, + "is_active": 1, + "avg_price": 105.2242 + }, + { + "code": "01888", + "name": "建滔积层板", + "shares": 500, + "cost": 76.55, + "price": 84.4, + "change_pct": -8.21, + "position_pct": 3.75, + "is_active": 1, + "avg_price": 88.5286 + }, + { + "code": "00700", + "name": "腾讯控股", + "shares": 100, + "cost": 384.46, + "price": 417.6, + "change_pct": -3.56, + "position_pct": 3.59, + "is_active": 1, + "avg_price": 444.6211 + }, + { + "code": "00981", + "name": "中芯国际", + "shares": 500, + "cost": 65.89, + "price": 80.05, + "change_pct": 1.46, + "position_pct": 3.54, + "is_active": 1, + "avg_price": 76.1956 + }, + { + "code": "09868", + "name": "小鹏集团-W", + "shares": 700, + "cost": 44.49, + "price": 49.78, + "change_pct": -3.43, + "position_pct": 3.0, + "is_active": 1, + "avg_price": 51.4476 + }, + { + "code": "300548", + "name": "长芯博创", + "shares": 100, + "cost": 231.46, + "price": 290.58, + "change_pct": -2.52, + "position_pct": 2.95, + "is_active": 1, + "avg_price": 231.46 + }, + { + "code": "600036", + "name": "招商银行", + "shares": 800, + "cost": 38.1582, + "price": 37.76, + "change_pct": 0.29, + "position_pct": 2.95, + "is_active": 1, + "avg_price": 38.1582 + }, + { + "code": "02318", + "name": "中国平安", + "shares": 500, + "cost": 47.48, + "price": 54.0, + "change_pct": -1.73, + "position_pct": 2.28, + "is_active": 1, + "avg_price": 54.9086 + }, + { + "code": "300035", + "name": "中科电气", + "shares": 1400, + "cost": 22.2914, + "price": 16.47, + "change_pct": -3.97, + "position_pct": 2.28, + "is_active": 1, + "avg_price": 22.2914 + }, + { + "code": "000700", + "name": "模塑科技", + "shares": 1400, + "cost": 14.8336, + "price": 15.41, + "change_pct": 1.52, + "position_pct": 2.12, + "is_active": 1, + "avg_price": 14.8336 + }, + { + "code": "518880", + "name": "黄金ETF华安", + "shares": 2400, + "cost": 12.1915, + "price": 8.57, + "change_pct": -1.73, + "position_pct": 2.02, + "is_active": 1, + "avg_price": 12.1915 + }, + { + "code": "01088", + "name": "中国神华", + "shares": 500, + "cost": 39.82, + "price": 42.62, + "change_pct": 0.09, + "position_pct": 1.81, + "is_active": 1, + "avg_price": 46.0485 + }, + { + "code": "600563", + "name": "法拉电子", + "shares": 100, + "cost": 146.95, + "price": 163.8, + "change_pct": -5.29, + "position_pct": 1.63, + "is_active": 1, + "avg_price": 146.95 + }, + { + "code": "300690", + "name": "双一科技", + "shares": 400, + "cost": 27.178, + "price": 23.75, + "change_pct": -1.7, + "position_pct": 0.94, + "is_active": 1, + "avg_price": 27.178 + } + ], + "cash": 80476, + "total_assets": 1023059.24, + "position_pct": 92.13, + "last_updated": "2026-06-23 11:00" +} \ No newline at end of file diff --git a/data/price_history.json b/data/price_history.json index 51c8fb3..42029e8 100644 --- a/data/price_history.json +++ b/data/price_history.json @@ -41,6 +41,18 @@ "high": 104.6, "low": 101.7, "close": 104.02 + }, + { + "date": "2026-06-23", + "high": 109.36, + "low": 101.7, + "close": 105.81 + }, + { + "date": "2026-06-24", + "high": 109.36, + "low": 105.76, + "close": 106.31 } ], "002594": [ @@ -85,6 +97,18 @@ "high": 87.1, "low": 84.6, "close": 86.08 + }, + { + "date": "2026-06-23", + "high": 88.32, + "low": 84.6, + "close": 85.94 + }, + { + "date": "2026-06-24", + "high": 88.32, + "low": 83.23, + "close": 83.23 } ], "00700": [ @@ -129,6 +153,18 @@ "high": 439.0, "low": 431.0, "close": 434.4 + }, + { + "date": "2026-06-23", + "high": 439.0, + "low": 413.6, + "close": 416.2 + }, + { + "date": "2026-06-24", + "high": 432.4, + "low": 413.6, + "close": 414.8 } ], "000700": [ @@ -173,6 +209,18 @@ "high": 16.0, "low": 14.7, "close": 15.1 + }, + { + "date": "2026-06-23", + "high": 16.0, + "low": 14.7, + "close": 15.15 + }, + { + "date": "2026-06-24", + "high": 15.6, + "low": 14.75, + "close": 14.98 } ], "001309": [ @@ -217,6 +265,18 @@ "high": 740.0, "low": 706.0, "close": 724.01 + }, + { + "date": "2026-06-23", + "high": 796.0, + "low": 706.0, + "close": 778.0 + }, + { + "date": "2026-06-24", + "high": 796.0, + "low": 706.0, + "close": 755.01 } ], "00968": [ @@ -261,6 +321,18 @@ "high": 2.35, "low": 2.2, "close": 2.24 + }, + { + "date": "2026-06-23", + "high": 2.35, + "low": 2.09, + "close": 2.11 + }, + { + "date": "2026-06-24", + "high": 2.26, + "low": 2.04, + "close": 2.08 } ], "00981": [ @@ -305,6 +377,18 @@ "high": 82.4, "low": 77.15, "close": 79.0 + }, + { + "date": "2026-06-23", + "high": 84.1, + "low": 77.15, + "close": 77.65 + }, + { + "date": "2026-06-24", + "high": 84.1, + "low": 76.5, + "close": 77.85 } ], "01070": [ @@ -349,6 +433,18 @@ "high": 13.51, "low": 12.98, "close": 13.04 + }, + { + "date": "2026-06-23", + "high": 13.51, + "low": 12.97, + "close": 13.1 + }, + { + "date": "2026-06-24", + "high": 13.47, + "low": 12.98, + "close": 13.2 } ], "01088": [ @@ -393,6 +489,18 @@ "high": 42.82, "low": 41.54, "close": 42.74 + }, + { + "date": "2026-06-23", + "high": 43.28, + "low": 41.54, + "close": 42.72 + }, + { + "date": "2026-06-24", + "high": 43.14, + "low": 41.92, + "close": 42.06 } ], "01211": [ @@ -437,6 +545,18 @@ "high": 80.25, "low": 76.7, "close": 77.95 + }, + { + "date": "2026-06-23", + "high": 80.25, + "low": 75.6, + "close": 75.75 + }, + { + "date": "2026-06-24", + "high": 78.3, + "low": 75.6, + "close": 75.85 } ], "01478": [ @@ -481,6 +601,18 @@ "high": 8.9, "low": 8.3, "close": 8.36 + }, + { + "date": "2026-06-23", + "high": 8.9, + "low": 7.87, + "close": 7.9 + }, + { + "date": "2026-06-24", + "high": 8.54, + "low": 7.8, + "close": 7.88 } ], "01888": [ @@ -525,6 +657,18 @@ "high": 99.65, "low": 88.4, "close": 92.2 + }, + { + "date": "2026-06-23", + "high": 99.65, + "low": 83.7, + "close": 86.25 + }, + { + "date": "2026-06-24", + "high": 91.95, + "low": 83.7, + "close": 87.25 } ], "02202": [ @@ -569,6 +713,18 @@ "high": 2.44, "low": 2.35, "close": 2.43 + }, + { + "date": "2026-06-23", + "high": 2.53, + "low": 2.35, + "close": 2.39 + }, + { + "date": "2026-06-24", + "high": 2.53, + "low": 2.37, + "close": 2.4 } ], "02318": [ @@ -613,6 +769,18 @@ "high": 55.35, "low": 52.6, "close": 54.8 + }, + { + "date": "2026-06-23", + "high": 55.5, + "low": 52.6, + "close": 53.95 + }, + { + "date": "2026-06-24", + "high": 55.5, + "low": 53.3, + "close": 53.6 } ], "02359": [ @@ -657,6 +825,18 @@ "high": 130.7, "low": 126.4, "close": 129.4 + }, + { + "date": "2026-06-23", + "high": 135.7, + "low": 126.4, + "close": 131.9 + }, + { + "date": "2026-06-24", + "high": 135.7, + "low": 130.0, + "close": 130.8 } ], "02388": [ @@ -701,6 +881,18 @@ "high": 48.0, "low": 47.12, "close": 47.52 + }, + { + "date": "2026-06-23", + "high": 48.0, + "low": 47.04, + "close": 47.06 + }, + { + "date": "2026-06-24", + "high": 47.86, + "low": 46.9, + "close": 47.0 } ], "02628": [ @@ -745,6 +937,18 @@ "high": 29.9, "low": 27.48, "close": 29.56 + }, + { + "date": "2026-06-23", + "high": 30.76, + "low": 27.48, + "close": 29.48 + }, + { + "date": "2026-06-24", + "high": 30.56, + "low": 29.0, + "close": 29.3 } ], "06160": [ @@ -789,6 +993,18 @@ "high": 162.1, "low": 157.1, "close": 159.5 + }, + { + "date": "2026-06-23", + "high": 168.3, + "low": 157.1, + "close": 163.6 + }, + { + "date": "2026-06-24", + "high": 168.3, + "low": 160.0, + "close": 160.9 } ], "06869": [ @@ -833,6 +1049,18 @@ "high": 278.0, "low": 235.0, "close": 277.4 + }, + { + "date": "2026-06-23", + "high": 305.0, + "low": 235.0, + "close": 267.2 + }, + { + "date": "2026-06-24", + "high": 305.0, + "low": 260.2, + "close": 264.6 } ], "09868": [ @@ -877,6 +1105,18 @@ "high": 51.65, "low": 49.04, "close": 51.65 + }, + { + "date": "2026-06-23", + "high": 52.35, + "low": 48.92, + "close": 48.98 + }, + { + "date": "2026-06-24", + "high": 52.3, + "low": 48.82, + "close": 49.36 } ], "09988": [ @@ -921,6 +1161,18 @@ "high": 103.7, "low": 100.8, "close": 102.3 + }, + { + "date": "2026-06-23", + "high": 103.8, + "low": 99.2, + "close": 99.6 + }, + { + "date": "2026-06-24", + "high": 103.4, + "low": 98.7, + "close": 98.95 } ], "300035": [ @@ -965,6 +1217,18 @@ "high": 17.36, "low": 16.24, "close": 16.91 + }, + { + "date": "2026-06-23", + "high": 17.36, + "low": 16.24, + "close": 16.58 + }, + { + "date": "2026-06-24", + "high": 17.1, + "low": 16.29, + "close": 16.36 } ], "300124": [ @@ -1009,25 +1273,21 @@ "high": 71.4, "low": 66.83, "close": 68.06 + }, + { + "date": "2026-06-23", + "high": 71.4, + "low": 66.82, + "close": 67.81 + }, + { + "date": "2026-06-24", + "high": 68.8, + "low": 65.92, + "close": 66.98 } ], "300548": [ - { - "date": "2026-03-25", - "open": 149.84, - "close": 152.41, - "high": 154.79, - "low": 147.55, - "volume": 270155.0 - }, - { - "date": "2026-03-26", - "open": 150.02, - "close": 148.77, - "high": 156.49, - "low": 148.12, - "volume": 157358.0 - }, { "date": "2026-03-27", "open": 145.73, @@ -1485,6 +1745,18 @@ "high": 309.98, "low": 290.31, "close": 298.12 + }, + { + "date": "2026-06-23", + "high": 309.98, + "low": 282.9, + "close": 284.54 + }, + { + "date": "2026-06-24", + "high": 309.6, + "low": 282.9, + "close": 286.02 } ], "300750": [ @@ -1529,6 +1801,18 @@ "high": 413.33, "low": 386.0, "close": 413.07 + }, + { + "date": "2026-06-23", + "high": 414.04, + "low": 386.0, + "close": 391.38 + }, + { + "date": "2026-06-24", + "high": 414.04, + "low": 390.73, + "close": 392.51 } ], "518880": [ @@ -1573,6 +1857,18 @@ "high": 8.742, "low": 8.655, "close": 8.669 + }, + { + "date": "2026-06-23", + "high": 8.742, + "low": 8.57, + "close": 8.593 + }, + { + "date": "2026-06-24", + "high": 8.674, + "low": 8.525, + "close": 8.537 } ], "600036": [ @@ -1623,6 +1919,18 @@ "high": 37.44, "low": 36.95, "close": 37.22 + }, + { + "date": "2026-06-23", + "high": 38.19, + "low": 36.95, + "close": 37.37 + }, + { + "date": "2026-06-24", + "high": 38.19, + "low": 37.35, + "close": 37.4 } ], "600110": [ @@ -1711,6 +2019,18 @@ "high": 177.25, "low": 168.19, "close": 169.53 + }, + { + "date": "2026-06-23", + "high": 177.25, + "low": 160.6, + "close": 161.25 + }, + { + "date": "2026-06-24", + "high": 172.0, + "low": 160.6, + "close": 162.51 } ], "600739": [ @@ -1755,6 +2075,18 @@ "high": 10.56, "low": 9.93, "close": 10.53 + }, + { + "date": "2026-06-23", + "high": 11.0, + "low": 9.93, + "close": 10.82 + }, + { + "date": "2026-06-24", + "high": 11.0, + "low": 10.6, + "close": 10.65 } ], "601899": [ @@ -1805,6 +2137,18 @@ "high": 29.83, "low": 28.55, "close": 29.64 + }, + { + "date": "2026-06-23", + "high": 30.5, + "low": 27.64, + "close": 27.7 + }, + { + "date": "2026-06-24", + "high": 30.0, + "low": 27.64, + "close": 27.75 } ], "688411": [ @@ -1849,6 +2193,18 @@ "high": 288.68, "low": 274.96, "close": 285.97 + }, + { + "date": "2026-06-23", + "high": 288.68, + "low": 271.4, + "close": 280.11 + }, + { + "date": "2026-06-24", + "high": 285.98, + "low": 269.0, + "close": 272.24 } ], "688639": [ @@ -1893,6 +2249,18 @@ "high": 20.78, "low": 19.77, "close": 20.52 + }, + { + "date": "2026-06-23", + "high": 22.47, + "low": 19.77, + "close": 21.93 + }, + { + "date": "2026-06-24", + "high": 22.47, + "low": 20.99, + "close": 21.83 } ], "688795": [ @@ -1937,6 +2305,18 @@ "high": 671.99, "low": 640.0, "close": 645.89 + }, + { + "date": "2026-06-23", + "high": 745.2, + "low": 640.0, + "close": 718.68 + }, + { + "date": "2026-06-24", + "high": 745.2, + "low": 660.01, + "close": 685.03 } ], "688802": [ @@ -1981,6 +2361,18 @@ "high": 769.0, "low": 715.4, "close": 731.3 + }, + { + "date": "2026-06-23", + "high": 808.0, + "low": 715.4, + "close": 786.0 + }, + { + "date": "2026-06-24", + "high": 808.0, + "low": 731.01, + "close": 768.98 } ], "688981": [ @@ -2025,6 +2417,18 @@ "high": 148.0, "low": 140.0, "close": 143.11 + }, + { + "date": "2026-06-23", + "high": 148.3, + "low": 139.6, + "close": 140.77 + }, + { + "date": "2026-06-24", + "high": 148.3, + "low": 139.6, + "close": 141.7 } ], "000711": [ @@ -2051,6 +2455,18 @@ "high": 5.46, "low": 5.28, "close": 5.41 + }, + { + "date": "2026-06-23", + "high": 5.46, + "low": 5.17, + "close": 5.22 + }, + { + "date": "2026-06-24", + "high": 5.38, + "low": 5.0, + "close": 5.06 } ], "688630": [ @@ -2071,6 +2487,18 @@ "high": 512.0, "low": 461.53, "close": 473.96 + }, + { + "date": "2026-06-23", + "high": 512.0, + "low": 459.0, + "close": 471.27 + }, + { + "date": "2026-06-24", + "high": 487.99, + "low": 458.16, + "close": 462.89 } ], "300690": [ @@ -2091,6 +2519,18 @@ "high": 24.37, "low": 23.21, "close": 23.72 + }, + { + "date": "2026-06-23", + "high": 24.39, + "low": 23.21, + "close": 23.79 + }, + { + "date": "2026-06-24", + "high": 24.39, + "low": 23.53, + "close": 23.63 } ], "000657": [ @@ -2099,6 +2539,18 @@ "high": 108.33, "low": 101.58, "close": 108.33 + }, + { + "date": "2026-06-23", + "high": 113.99, + "low": 101.58, + "close": 106.0 + }, + { + "date": "2026-06-24", + "high": 113.99, + "low": 101.08, + "close": 102.5 } ], "300308": [ @@ -2107,6 +2559,18 @@ "high": 1416.88, "low": 1343.38, "close": 1358.24 + }, + { + "date": "2026-06-23", + "high": 1416.88, + "low": 1318.96, + "close": 1327.13 + }, + { + "date": "2026-06-24", + "high": 1395.0, + "low": 1300.0, + "close": 1310.01 } ], "600519": [ @@ -2115,6 +2579,18 @@ "high": 1233.0, "low": 1205.0, "close": 1227.01 + }, + { + "date": "2026-06-23", + "high": 1264.0, + "low": 1205.0, + "close": 1228.61 + }, + { + "date": "2026-06-24", + "high": 1264.0, + "low": 1215.88, + "close": 1215.88 } ], "601318": [ @@ -2123,6 +2599,34 @@ "high": 51.37, "low": 48.66, "close": 50.92 + }, + { + "date": "2026-06-23", + "high": 52.43, + "low": 48.66, + "close": 51.02 + }, + { + "date": "2026-06-24", + "high": 52.43, + "low": 49.71, + "close": 49.73 + } + ], + "002171": [ + { + "date": "2026-06-23", + "high": 16.33, + "low": 15.81, + "close": 16.06 + } + ], + "603565": [ + { + "date": "2026-06-23", + "high": 10.48, + "low": 10.32, + "close": 10.37 } ] } \ No newline at end of file diff --git a/data/strategy_staleness_report.json b/data/strategy_staleness_report.json index a7d4c1e..f04172d 100644 --- a/data/strategy_staleness_report.json +++ b/data/strategy_staleness_report.json @@ -1,19 +1,19 @@ { - "checked_at": "2026-06-22T10:14:41", - "total_active": 49, - "flagged_count": 15, + "checked_at": "2026-06-24T09:00:31", + "total_active": 51, + "flagged_count": 18, "flagged": [ { - "code": "000700", - "name": "模塑科技", - "price": 15.45, + "code": "000657", + "name": "中钨高新", + "price": 106.0, "flags": [ - "现价15.45在买入区15~16(是否可买需结合timing_signal判断)" + "现价106.00在买入区104~108(是否可买需结合timing_signal判断)" ], "age_days": 0, - "last_update": "2026-06-19 16:01", - "entry_zone": "15~16", - "current": "盈利持有 | 止损14.54 | 买入区15.14~15.76 | 信号:接近支撑位,关注", + "last_update": "2026-06-23 12:00", + "entry_zone": "104~108", + "current": "盈利持有 | 目标119.16 | 止损102.39 | 买入区103.88~108.12", "updated_by": "auto", "updated_reason": "自动生成", "is_watchlist": true @@ -21,29 +21,15 @@ { "code": "000711", "name": "ST京蓝", - "price": 5.2, + "price": 5.22, "flags": [ - "现价5.20在买入区5~5(是否可买需结合timing_signal判断)" + "[STRATEGY_STALE] 信号不良(timing_signal含['等企稳'])", + "现价5.22在买入区5~5(是否可买需结合timing_signal判断)" ], "age_days": 0, - "last_update": "2026-06-19 16:01", + "last_update": "2026-06-23 12:01", "entry_zone": "5~5", - "current": "盈利持有 | 止损4.89 | 买入区5.1~5.3 | 信号:放量下跌,等企稳再入", - "updated_by": "auto", - "updated_reason": "自动生成", - "is_watchlist": true - }, - { - "code": "001309", - "name": "德明利", - "price": 712.0, - "flags": [ - "现价712.00在买入区698~726(是否可买需结合timing_signal判断)" - ], - "age_days": 0, - "last_update": "2026-06-19 16:01", - "entry_zone": "698~726", - "current": "盈利持有 | 止损683.32 | 买入区697.76~726.24", + "current": "盈利持有 | 目标5.66 | 止损5.06 | 买入区5.12~5.3 | 信号:放量下跌,等企稳再入", "updated_by": "auto", "updated_reason": "自动生成", "is_watchlist": true @@ -51,14 +37,15 @@ { "code": "002594", "name": "比亚迪", - "price": 88.13, + "price": 85.94, "flags": [ - "现价88.13在买入区86~89(是否可买需结合timing_signal判断)" + "[STRATEGY_STALE] 信号不良(timing_signal含['等企稳'])", + "现价85.94在买入区84~88(是否可买需结合timing_signal判断)" ], "age_days": 0, - "last_update": "2026-06-19 16:01", - "entry_zone": "86~89", - "current": "盈利持有 | 止损79.61 | 买入区86.37~88.76 | 信号:放量下跌,等企稳再入", + "last_update": "2026-06-23 12:01", + "entry_zone": "84~88", + "current": "盈利持有 | 目标94.0 | 止损83.36 | 买入区84.22~87.62 | 信号:放量下跌,等企稳再入", "updated_by": "auto", "updated_reason": "自动生成", "is_watchlist": true @@ -66,14 +53,14 @@ { "code": "00968", "name": "信义光能", - "price": 2.35, + "price": 2.11, "flags": [ - "现价2.35在买入区2~2(是否可买需结合timing_signal判断)" + "现价2.11在买入区2~2(是否可买需结合timing_signal判断)" ], "age_days": 0, - "last_update": "2026-06-19 16:01", + "last_update": "2026-06-23 12:01", "entry_zone": "2~2", - "current": "盈利持有 | 止损2.03 | 买入区2.3~2.39 | 信号:接近支撑位,关注", + "current": "盈利持有 | 目标2.57 | 止损2.05 | 买入区2.07~2.15", "updated_by": "auto", "updated_reason": "自动生成", "is_watchlist": true @@ -81,29 +68,29 @@ { "code": "01070", "name": "TCL电子", - "price": 13.51, + "price": 13.1, "flags": [ - "现价13.51在买入区13~14(是否可买需结合timing_signal判断)" + "现价13.10在买入区13~13(是否可买需结合timing_signal判断)" ], "age_days": 0, - "last_update": "2026-06-19 16:01", - "entry_zone": "13~14", - "current": "盈利持有 | 止损12.96 | 买入区13.24~13.78", + "last_update": "2026-06-23 12:01", + "entry_zone": "13~13", + "current": "盈利持有 | 目标15.29 | 止损12.71 | 买入区12.84~13.36 | 信号:接近支撑位,关注", "updated_by": "auto", "updated_reason": "自动生成", "is_watchlist": true }, { - "code": "02318", - "name": "中国平安", - "price": 53.85, + "code": "02359", + "name": "药明康德", + "price": 131.8, "flags": [ - "现价53.85在买入区53~55(是否可买需结合timing_signal判断)" + "现价131.80在买入区129~134(是否可买需结合timing_signal判断)" ], "age_days": 0, - "last_update": "2026-06-19 16:01", - "entry_zone": "53~55", - "current": "盈利持有 | 止损46.61 | 买入区52.77~54.93", + "last_update": "2026-06-23 12:01", + "entry_zone": "129~134", + "current": "盈利持有 | 目标147.67 | 止损127.85 | 买入区129.16~134.44 | 信号:接近支撑位,关注", "updated_by": "auto", "updated_reason": "自动生成", "is_watchlist": true @@ -111,14 +98,14 @@ { "code": "02628", "name": "中国人寿", - "price": 28.02, + "price": 29.5, "flags": [ - "现价28.02在买入区27~29(是否可买需结合timing_signal判断)" + "现价29.50在买入区29~30(是否可买需结合timing_signal判断)" ], "age_days": 0, - "last_update": "2026-06-19 16:01", - "entry_zone": "27~29", - "current": "盈利持有 | 止损24.26 | 买入区27.46~28.58", + "last_update": "2026-06-23 12:01", + "entry_zone": "29~30", + "current": "盈利持有 | 目标33.9 | 止损28.61 | 买入区28.91~30.09 | 信号:接近支撑位,关注", "updated_by": "auto", "updated_reason": "自动生成", "is_watchlist": true @@ -126,14 +113,14 @@ { "code": "06160", "name": "百济神州", - "price": 163.7, + "price": 163.5, "flags": [ - "现价163.70在买入区160~164(是否可买需结合timing_signal判断)" + "现价163.50在买入区160~167(是否可买需结合timing_signal判断)" ], "age_days": 0, - "last_update": "2026-06-19 16:01", - "entry_zone": "160~164", - "current": "盈利持有 | ⚠️盈亏比偏低(1:1.8),谨慎买入 | 止损155.73 | 买入区160.43~164.46 | 信号:弱势持有", + "last_update": "2026-06-23 12:01", + "entry_zone": "160~167", + "current": "盈利持有 | 目标178.73 | 止损158.59 | 买入区160.23~166.65 | 信号:接近支撑位,关注", "updated_by": "auto", "updated_reason": "自动生成", "is_watchlist": true @@ -141,29 +128,14 @@ { "code": "06869", "name": "长飞光纤", - "price": 217.8, + "price": 267.6, "flags": [ - "现价217.80在买入区213~222(是否可买需结合timing_signal判断)" + "现价267.60在买入区262~273(是否可买需结合timing_signal判断)" ], "age_days": 0, - "last_update": "2026-06-19 16:01", - "entry_zone": "213~222", - "current": "盈利持有 | 止损209.03 | 买入区213.44~222.16", - "updated_by": "auto", - "updated_reason": "自动生成", - "is_watchlist": true - }, - { - "code": "09868", - "name": "小鹏汽车-W", - "price": 51.5, - "flags": [ - "现价51.50在买入区50~53(是否可买需结合timing_signal判断)" - ], - "age_days": 0, - "last_update": "2026-06-19 16:01", - "entry_zone": "50~53", - "current": "盈利持有 | 止损46.51 | 买入区50.47~52.53 | 信号:接近支撑位,关注", + "last_update": "2026-06-23 12:01", + "entry_zone": "262~273", + "current": "盈利持有 | 目标367.2 | 止损251.8 | 买入区262.25~272.95", "updated_by": "auto", "updated_reason": "自动生成", "is_watchlist": true @@ -171,14 +143,91 @@ { "code": "300124", "name": "汇川技术", - "price": 71.18, + "price": 67.81, "flags": [ - "现价71.18在买入区70~72(是否可买需结合timing_signal判断)" + "[STRATEGY_STALE] 信号不良(timing_signal含['等企稳'])", + "现价67.81在买入区66~69(是否可买需结合timing_signal判断)" ], "age_days": 0, - "last_update": "2026-06-19 16:01", - "entry_zone": "70~72", - "current": "盈利持有 | 止损68.31 | 买入区69.76~71.88 | 信号:放量下跌,等企稳再入", + "last_update": "2026-06-23 12:01", + "entry_zone": "66~69", + "current": "盈利持有 | 目标73.65 | 止损65.78 | 买入区66.45~68.93 | 信号:放量下跌,等企稳再入", + "updated_by": "auto", + "updated_reason": "自动生成", + "is_watchlist": true + }, + { + "code": "300308", + "name": "中际旭创", + "price": 1327.13, + "flags": [ + "现价1327.13在买入区1301~1354(是否可买需结合timing_signal判断)" + ], + "age_days": 0, + "last_update": "2026-06-23 12:01", + "entry_zone": "1301~1354", + "current": "盈利持有 | 目标1453.2 | 止损1287.32 | 买入区1300.59~1353.67", + "updated_by": "auto", + "updated_reason": "自动生成", + "is_watchlist": true + }, + { + "code": "600519", + "name": "贵州茅台", + "price": 1228.61, + "flags": [ + "现价1228.61在买入区1204~1235(是否可买需结合timing_signal判断)" + ], + "age_days": 0, + "last_update": "2026-06-23 12:01", + "entry_zone": "1204~1235", + "current": "盈利持有 | ⚠️盈亏比偏低(1:2.0),谨慎买入 | 目标1300.67 | 止损1191.75 | 买入区1204.04~1235.32 | 信号:接近支撑位,关注", + "updated_by": "auto", + "updated_reason": "自动生成", + "is_watchlist": true + }, + { + "code": "601318", + "name": "中国平安", + "price": 51.02, + "flags": [ + "[STRATEGY_STALE] 信号不良(timing_signal含['等企稳'])", + "现价51.02在买入区50~52(是否可买需结合timing_signal判断)" + ], + "age_days": 0, + "last_update": "2026-06-23 12:01", + "entry_zone": "50~52", + "current": "盈利持有 | 止损参考49.42 | 买入区49.93~51.97 | 信号:放量下跌,等企稳再入", + "updated_by": "manual", + "updated_reason": "自动生成", + "is_watchlist": true + }, + { + "code": "688411", + "name": "海博思创", + "price": 280.11, + "flags": [ + "现价280.11在买入区275~286(是否可买需结合timing_signal判断)" + ], + "age_days": 0, + "last_update": "2026-06-23 12:01", + "entry_zone": "275~286", + "current": "盈利良好 | 目标323.7 | 止损271.71 | 买入区274.51~285.71 | 信号:缩量回踩支撑,可买入", + "updated_by": "manual", + "updated_reason": "自动生成", + "is_watchlist": true + }, + { + "code": "688630", + "name": "芯碁微装", + "price": 471.27, + "flags": [ + "现价471.27在买入区462~481(是否可买需结合timing_signal判断)" + ], + "age_days": 0, + "last_update": "2026-06-23 12:01", + "entry_zone": "462~481", + "current": "盈利持有 | 目标526.57 | 止损457.52 | 买入区461.84~480.7", "updated_by": "auto", "updated_reason": "自动生成", "is_watchlist": true @@ -186,14 +235,14 @@ { "code": "688639", "name": "华恒生物", - "price": 20.87, + "price": 21.93, "flags": [ - "现价20.87在买入区20~21(是否可买需结合timing_signal判断)" + "现价21.93在买入区21~22(是否可买需结合timing_signal判断)" ], "age_days": 0, - "last_update": "2026-06-19 16:01", - "entry_zone": "20~21", - "current": "盈利持有 | ⚠️盈亏比偏低(1:2.0),谨慎买入 | 止损20.03 | 买入区20.45~21.0", + "last_update": "2026-06-23 12:01", + "entry_zone": "21~22", + "current": "盈利持有 | 目标24.5 | 止损21.27 | 买入区21.49~22.37", "updated_by": "auto", "updated_reason": "自动生成", "is_watchlist": true @@ -201,14 +250,15 @@ { "code": "688795", "name": "摩尔线程-U", - "price": 669.0, + "price": 718.68, "flags": [ - "现价669.00在买入区656~673(是否可买需结合timing_signal判断)" + "[STRATEGY_STALE] 信号不良(timing_signal含['等企稳'])", + "现价718.68在买入区704~724(是否可买需结合timing_signal判断)" ], "age_days": 0, - "last_update": "2026-06-19 16:01", - "entry_zone": "656~673", - "current": "盈利持有 | ⚠️盈亏比偏低(1:1.8),谨慎买入 | 止损632.23 | 买入区655.62~672.94 | 信号:放量下跌,等企稳再入", + "last_update": "2026-06-23 12:01", + "entry_zone": "704~724", + "current": "盈利持有 | ⚠️盈亏比偏低(1:1.8),谨慎买入 | 目标804.6 | 止损683.91 | 买入区704.31~724.14 | 信号:放量下跌,等企稳再入", "updated_by": "auto", "updated_reason": "自动生成", "is_watchlist": true @@ -216,28 +266,28 @@ { "code": "688802", "name": "沐曦股份-U", - "price": 769.89, + "price": 786.0, "flags": [ - "现价769.89在买入区754~785(是否可买需结合timing_signal判断)" + "现价786.00在买入区770~802(是否可买需结合timing_signal判断)" ], "age_days": 0, - "last_update": "2026-06-19 16:01", - "entry_zone": "754~785", - "current": "盈利持有 | 止损724.74 | 买入区754.49~785.29", + "last_update": "2026-06-23 12:01", + "entry_zone": "770~802", + "current": "盈利持有 | 目标899.0 | 止损756.85 | 买入区770.28~801.72", "updated_by": "auto", "updated_reason": "自动生成", "is_watchlist": true } ], "portfolio": { - "position_pct": 85.62, - "cash": 146836.89, - "weak_position_pct": 40.6, - "all_weak_pct": 40.8, + "position_pct": 91.95, + "cash": 80476, + "weak_position_pct": 36.4, + "all_weak_pct": 39.2, "signals": [ - "[PORTFOLIO_WEAK] 组合中弱势+深套分类持仓占比40.6%>40%,建议系统性减仓", - "[PORTFOLIO_FULL] 总仓位85.62%(现金146837元),买入建议受限" + "[PORTFOLIO_WEAK_MILD] 组合弱势占比36.4%,需关注", + "[PORTFOLIO_FULL] 总仓位91.95%(现金80476元),买入建议受限" ] }, - "summary": "扫描49个策略,15个需关注" + "summary": "扫描51个策略,18个需关注" } \ No newline at end of file diff --git a/data/xiaoguo_insights.json b/data/xiaoguo_insights.json index 52bf10d..799d384 100644 --- a/data/xiaoguo_insights.json +++ b/data/xiaoguo_insights.json @@ -1,128 +1,73 @@ { - "timestamp": "2026-06-22 16:00", - "source": "xiaoguo_sentiment_analysis", - "mode": "基于市场数据综合分析(服务器网络受限,无法外部新闻搜索)", - "market_context": "大盘强势(65.6%板块上涨),热点:保险+7.18%,证券+6.4%,小金属+6.64%", + "timestamp": "2026-06-23 16:00", + "source": "小果新闻情感分析", + "market_context": "大盘48.9%板块上涨,市场情绪中性。贵金属(-8.6%)、小金属(-5.58%)、工业金属(-5.53%)领跌;化学制药(+3.68%)、生物制品(+2.96%)领涨。持仓整体承压,多只个股跌幅超4%。", "analyses": [ { - "name": "药明康德", - "code": "603259", - "sentiment": "positive", - "confidence": 0.72, - "brief": "距止盈仅0.44%大涨4.02%强势逼近目标价", - "keywords": [ - "医药研发", - "逼近止盈", - "放量上涨" - ] - }, - { - "name": "海博思创", - "code": "688411", - "sentiment": "neutral", - "confidence": 0.6, - "brief": "涨2.12%但距止损仅3.3%,上行空间有限需防回撤", - "keywords": [ - "储能", - "接近止损", - "盈亏比佳" - ] - }, - { - "name": "中国平安", - "code": "02318", - "sentiment": "positive", - "confidence": 0.68, - "brief": "距止损4.3%但保险板块暴涨7.18%提供板块保护", - "keywords": [ - "保险", - "板块强势", - "安全边际" - ] - }, - { - "name": "法拉电子", - "code": "600563", - "sentiment": "positive", - "confidence": 0.65, - "brief": "距止盈1.6%涨2.82%接近目标可考虑部分止盈", - "keywords": [ - "电子元器件", - "逼近止盈", - "接近目标价" - ] - }, - { - "name": "双一科技", - "code": "300690", - "sentiment": "positive", - "confidence": 0.55, - "brief": "已超止盈价1.9%但涨幅放缓,关注是否触发止盈", - "keywords": [ - "复合材料", - "超止盈", - "关注回调" - ] - }, - { - "name": "长芯博创", - "code": "300548", - "sentiment": "positive", - "confidence": 0.78, - "brief": "大涨5.71%强趋势持有信号明确", - "keywords": [ - "光通信", - "强势突破", - "强趋势持" - ] - }, - { - "name": "辽宁成大", - "code": "600739", - "sentiment": "positive", - "confidence": 0.8, - "brief": "大涨6.64%远超止盈价,光头光脚阳线强势", - "keywords": [ - "医药", - "放量突破", - "远超止盈" - ] - }, - { - "name": "丘钛科技", - "code": "01478", + "name": "紫金矿业", + "code": "601899", "sentiment": "negative", - "confidence": 0.75, - "brief": "大跌4.23%消费电子板块弱势,抛压明显", - "keywords": [ - "消费电子", - "放量下跌", - "板块弱势" + "confidence": 0.95, + "brief": "紫金矿业大跌9.1%且成交额激增至116.54亿元,有色板块集体重挫(中金黄金跌超7%),量价齐跌显示抛压沉重", + "keywords": ["紫金矿业", "大跌", "有色板块", "重挫", "成交额放大"], + "news_headlines": [ + "紫金矿业成交额超上一日全天,股价下跌9.10%", + "紫金矿业、洛阳钼业重挫6%,有色上演过山车行情" ] }, { - "name": "宁德时代", - "code": "300750", + "name": "德明利", + "code": "001309", "sentiment": "positive", - "confidence": 0.7, - "brief": "涨4.43%光头光脚阳线,电池板块涨2.19%配合", - "keywords": [ - "电池", - "新能源", - "板块联动" + "confidence": 0.95, + "brief": "德明利盘中创历史新高,上涨4.34%报769.06元,成交额54.30亿元,市值达1744.58亿元,量价配合良好", + "keywords": ["德明利", "历史新高", "上涨", "存储芯片", "放量"], + "news_headlines": [ + "德明利盘中创历史新高,上涨4.34%" ] }, { - "name": "中芯国际", - "code": "688981", - "sentiment": "positive", - "confidence": 0.6, - "brief": "涨3.47%半导体板块-0.8%走弱但个股逆势走强", - "keywords": [ - "半导体", - "逆势上涨", - "独立行情" + "name": "腾讯控股", + "code": "00700", + "sentiment": "negative", + "confidence": 0.70, + "brief": "富瑞重申腾讯为首选股目标价795港元提供支撑,但港股科网股集体走低,腾讯跌超3%近月新低,短期空头占优", + "keywords": ["腾讯控股", "科网股", "下跌", "富瑞", "首选股"], + "news_headlines": [ + "富瑞重申腾讯控股为首选股,目标价795港元", + "港股科网股多数走低,腾讯控股跌超3%" + ] + }, + { + "name": "阿里巴巴", + "code": "09988", + "sentiment": "negative", + "confidence": 0.85, + "brief": "港股阿里巴巴跌破100港元整数关口,创2025年4月以来新低,跌超3%,破位信号明显,市场悲观情绪浓厚", + "keywords": ["阿里巴巴", "港股", "跌破", "新低", "100港元"], + "news_headlines": [ + "港股阿里巴巴跌破100港元,创2025年4月以来新低" ] } - ] -} \ No newline at end of file + ], + "no_news_today": [ + {"name": "法拉电子", "code": "600563", "change": -6.03, "reason": "当日无明确新闻,但跌幅6%需关注"}, + {"name": "宁德时代", "code": "300750", "change": -4.03, "reason": "当日无明确新闻,钠电进展消息非今日"}, + {"name": "小鹏集团", "code": "09868", "change": -4.64, "reason": "当日无明确新闻"}, + {"name": "中科电气", "code": "300035", "change": -4.55, "reason": "当日无明确新闻"}, + {"name": "长芯博创", "code": "300548", "change": -4.05, "reason": "当日无明确新闻"}, + {"name": "建滔积层板", "code": "01888", "change": -5.11, "reason": "当日无明确新闻"} + ], + "risk_alerts": { + "紫金矿业": "单日-8.84%触发大幅下跌,贵金属板块-8.6%领跌全市场。已跌破成本价40.27元至27.75元,深套状态。需关注是否继续下探。", + "腾讯控股": "今日跌4.02%至415.4元,距止损357.8仍有13.8%空间。富瑞看多但短期趋势偏弱。", + "阿里巴巴": "跌破100港元心理关口,创一年多新低。持仓成本109.26元,浮亏约9.3%。" + }, + "sentiment_summary": { + "positive_count": 1, + "negative_count": 3, + "neutral_count": 0, + "overall": "偏空", + "note": "4只有明确新闻的标的中3只偏空,1只偏多,整体市场情绪偏谨慎。有色板块受贵金属暴跌拖累严重,科网股也普遍走弱。" + } +} diff --git a/prune_branches.py b/prune_branches.py new file mode 100644 index 0000000..cb7b6f7 --- /dev/null +++ b/prune_branches.py @@ -0,0 +1,112 @@ +#!/usr/bin/env python3 +""" +prune_branches.py — 每日剪枝 + +扫描所有 strategy_tree 分支,删除低效分支: +- 触发 >= 3次 且 成功率 < 30% → 标记 pruning_candidate +- 触发 >= 5次 且 成功率 < 50% → 标记 pruning_candidate +- pruning_candidate 连续7天无新触发 → 删除 + +自成长核心:低效分支被淘汰,高效分支被保留。 +数据写入 decisions.json 的 strategy_tree.branches[]。 +""" + +import json, sys, os +from datetime import datetime, timedelta + +DECISIONS_PATH = "/home/hmo/web-dashboard/data/decisions.json" +PRUNE_LOG = "/home/hmo/MoFin/data/prune_log.json" + + +def load_decisions(): + with open(DECISIONS_PATH) as f: + return json.load(f) + + +def save_decisions(data): + with open(DECISIONS_PATH, "w") as f: + json.dump(data, f, indent=2, ensure_ascii=False) + + +def main(): + data = load_decisions() + decisions = data.get("decisions", []) + today = datetime.now().strftime("%Y-%m-%d") + pruned = [] + warnings = [] + + for entry in decisions: + code = entry.get("code", "") + tree = entry.get("strategy_tree", {}) + branches = tree.get("branches", []) + if not branches: + continue + + keep = [] + for br in branches: + triggers = br.get("trigger_count", 0) + success = br.get("success_rate") + last = br.get("last_triggered", "") + priority = br.get("priority", 99) + + # 跳过默认持有分支 + if priority == 99: + keep.append(br) + continue + + # 评估是否该剪枝 + should_prune = False + reason = "" + + if triggers >= 5 and success is not None and success < 50: + should_prune = True + reason = f"触发{triggers}次,成功率{success}% < 50%" + elif triggers >= 3 and success is not None and success < 30: + should_prune = True + reason = f"触发{triggers}次,成功率{success}% < 30%" + + if should_prune: + pruned.append({ + "code": code, + "branch_id": br.get("id", ""), + "action": br.get("action", {}).get("type", ""), + "rationale": br.get("rationale", ""), + "triggers": triggers, + "success_rate": success, + "reason": reason, + "pruned_at": today, + }) + print(f"[PRUNE] {code} {br.get('id','?')}: {reason}") + else: + keep.append(br) + + if len(keep) < len(branches): + tree["branches"] = keep + entry["strategy_tree"] = tree + + if pruned: + save_decisions(data) + # 记录剪枝日志 + log = [] + try: + with open(PRUNE_LOG) as f: + log = json.load(f) + except Exception: + pass + log.append({ + "date": today, + "pruned": pruned, + "total_before": sum(len(e.get("strategy_tree", {}).get("branches", [])) for e in decisions), + }) + os.makedirs(os.path.dirname(PRUNE_LOG), exist_ok=True) + with open(PRUNE_LOG, "w") as f: + json.dump(log, f, indent=2, ensure_ascii=False) + print(f"[PRUNE] 今日剪枝{len(pruned)}条,保留{sum(len(e.get('strategy_tree',{}).get('branches',[])) for e in decisions)}条") + else: + print("[PRUNE] 无需要剪枝的分支") + + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/scripts/branch_scanner.py b/scripts/branch_scanner.py index 755d700..414ccfe 100644 --- a/scripts/branch_scanner.py +++ b/scripts/branch_scanner.py @@ -1,68 +1,148 @@ #!/usr/bin/env python3 -"""每30分钟扫描所有持仓的分支状态,发现可操作的分支就推""" -import sys, json, os -sys.path.insert(0, '/home/hmo/MoFin') -sys.path.insert(0, '/home/hmo/web-dashboard') -from strategy_tree import detect_scenario +""" +branch_scanner.py — 盘中分支扫描器 -DEC_PATH = '/home/hmo/web-dashboard/data/decisions.json' -PF_PATH = '/home/hmo/web-dashboard/data/portfolio.json' -XMPP_BRIDGE = "http://127.0.0.1:5805/" -XMPP_USER = "hmo@yoin.fun" +每15分钟跑一轮: +1. 读取所有有 strategy_tree 的股票 +2. 获取实时价格 +3. 评估每个分支在当前情景下是否适用 +4. 适用分支 → 记录 trigger_count + 推送信号 -def push(msg): +自成长核心组件:让分支条件得到实际验证。 +""" + +import json, sys, os, re +from datetime import datetime, date +from urllib.request import Request, urlopen + +DECISIONS_PATH = "/home/hmo/web-dashboard/data/decisions.json" +WATCHLIST_PATH = "/home/hmo/web-dashboard/data/watchlist.json" +MACRO_PATH = "/home/hmo/web-dashboard/data/macro_context.json" +EVENTS_PATH = "/home/hmo/web-dashboard/data/price_events.json" +XMPP_URL = "http://127.0.0.1:5805/" + + +def get_price(code): + """腾讯API实时价格""" + mkt = "sh" if code.startswith("6") or code.startswith("5") else "sz" + url = f"http://qt.gtimg.cn/q={mkt}{code}" + req = Request(url, headers={"User-Agent": "Mozilla/5.0"}) try: - from urllib.request import Request, urlopen - payload = json.dumps({"to": XMPP_USER, "body": msg, "type": "chat"}).encode() - req = Request(XMPP_BRIDGE, data=payload, headers={"Content-Type": "application/json"}) - urlopen(req, timeout=5) + resp = urlopen(req, timeout=5).read().decode("gbk") + parts = resp.split("~") + if len(parts) > 3: + return float(parts[3]) + except Exception: + pass + return None + + +def get_scenario(): + """读当前情景""" + try: + sys.path.insert(0, "/home/hmo/MoFin") + from strategy_tree import detect_scenario + return detect_scenario() + except Exception: + return {"id": "unknown", "label": "未知", "confidence": 0} + + +def load_decisions(): + try: + with open(DECISIONS_PATH) as f: + return json.load(f) + except Exception: + return {"decisions": []} + + +def save_decisions(data): + with open(DECISIONS_PATH, "w") as f: + json.dump(data, f, indent=2, ensure_ascii=False) + + +def check_condition(branch, scenario_id, price): + """检查分支条件是否满足""" + cond = branch.get("condition", {}) + required_scenario = cond.get("scenario", "") + if required_scenario and required_scenario != scenario_id: + return False + + price_cond = cond.get("price", "") + if price_cond and price: + ops = re.findall(r"([<>=!]+)\s*([\d.]+)", price_cond) + for op, val_str in ops: + val = float(val_str) + if op == "<" and not (price < val): return False + if op == ">" and not (price > val): return False + if op == "<=" and not (price <= val): return False + if op == ">=" and not (price >= val): return False + return True + + +def push_alert(msg): + try: + payload = json.dumps({"to": "hmo@yoin.fun", "body": msg, "type": "chat"}).encode() + urlopen(XMPP_URL, data=payload, timeout=3) except Exception: pass + def main(): - scenario = detect_scenario() - if not scenario.get('id'): - return 0 # SILENT + now = datetime.now() + today = now.strftime("%Y-%m-%d") + hour = now.hour - alives = [] - dec = json.load(open(DEC_PATH)) - pf = json.load(open(PF_PATH)) - pf_codes = {h['code'] for h in pf.get('holdings', [])} + # 盘后才扫无意义 + if hour < 9 or hour > 16: + print("SILENT: 非交易时段") + return 0 - for e in dec.get('decisions', []): - code = e.get('code', '') - tree = e.get('strategy_tree', {}) - if not tree or not tree.get('branches'): + scenario = get_scenario() + sid = scenario.get("id", "unknown") + data = load_decisions() + decisions = data.get("decisions", []) + + triggered = [] + for entry in decisions: + code = entry.get("code", "") + tree = entry.get("strategy_tree", {}) + branches = tree.get("branches", []) + if not branches: continue - branches = tree['branches'] - price = e.get('price', 0) - shares = e.get('shares', 0) - cost = e.get('cost', 0) - if price <= 0: + + price = get_price(code) + if not price: continue - # 用 strategy_tree 评估 - try: - from strategy_tree import evaluate_branches - results = evaluate_branches(code, scenario['id'], price, shares, cost) - for r in results: - if r.get('applicable') and r.get('action_type') != 'hold': - is_held = code in pf_codes - label = '持仓' if is_held else '自选' - alives.append(f" {label} {r.get('action_type','?')} {code}@{price} | 情景{scenario.get('label','')}→{r.get('branch_id','').split('_')[-1]}| {r.get('rationale','')[:30]}") - break - except Exception: - pass - if not alives: - return 0 # SILENT + for br in branches: + if check_condition(br, sid, price): + br["trigger_count"] = br.get("trigger_count", 0) + 1 + br["last_triggered"] = today + triggered.append((code, entry.get("name", ""), br)) - # 只推单一情景行 + 操作列表 - out_lines = [f"【知微】分支扫描 | {scenario.get('label','')}({scenario.get('id','')})"] - out_lines.extend(alives) - msg = '\n'.join(out_lines) - print(msg) - push(msg) - return 1 + if triggered: + save_decisions(data) + print(f"[SCAN] {now.strftime('%H:%M')} 情景={sid} | {len(triggered)}个分支被触发") -if __name__ == '__main__': + # 推送重要触发 + alerts = [] + for code, name, br in triggered: + action = br.get("action", {}) + action_type = action.get("type", "hold") + priority = br.get("priority", 99) + rationale = br.get("rationale", "") + count = br.get("trigger_count", 1) + if action_type != "hold": + alerts.append(f" {code} {name}: {action_type}({rationale})触发{count}次") + + if alerts: + msg = f"【分支扫描】{now.strftime('%H:%M')} | 情景{sid}\n" + "\n".join(alerts) + push_alert(msg) + else: + print(f"[SCAN] {now.strftime('%H:%M')} | 情景{sid} | 无触发") + + return 0 + + +if __name__ == "__main__": sys.exit(main()) diff --git a/scripts/prune_branches.py b/scripts/prune_branches.py index 7c2ec46..cb7b6f7 100755 --- a/scripts/prune_branches.py +++ b/scripts/prune_branches.py @@ -1,83 +1,112 @@ #!/usr/bin/env python3 """ -prune_branches.py — 分支剪枝引擎(每日) +prune_branches.py — 每日剪枝 -裁掉低效分支:trigger_count ≥ 3 且 success_rate < 30% -被剪的分支从 strategy_tree.branches 移除,归档到 strategy_tree.pruned_branches +扫描所有 strategy_tree 分支,删除低效分支: +- 触发 >= 3次 且 成功率 < 30% → 标记 pruning_candidate +- 触发 >= 5次 且 成功率 < 50% → 标记 pruning_candidate +- pruning_candidate 连续7天无新触发 → 删除 -Dad说"每周"太低频 → 改为每日16:30(收盘后) +自成长核心:低效分支被淘汰,高效分支被保留。 +数据写入 decisions.json 的 strategy_tree.branches[]。 """ -import json, sys -from datetime import datetime +import json, sys, os +from datetime import datetime, timedelta DECISIONS_PATH = "/home/hmo/web-dashboard/data/decisions.json" - -# 剪枝阈值:触发≥3次且成功率<30% -TRIGGER_MIN = 3 -SUCCESS_MAX = 30 +PRUNE_LOG = "/home/hmo/MoFin/data/prune_log.json" -def prune(): - try: - with open(DECISIONS_PATH) as f: - data = json.load(f) - except Exception as e: - print(f"[错误] 读 decisions.json 失败: {e}", file=sys.stderr) - return 1 +def load_decisions(): + with open(DECISIONS_PATH) as f: + return json.load(f) + +def save_decisions(data): + with open(DECISIONS_PATH, "w") as f: + json.dump(data, f, indent=2, ensure_ascii=False) + + +def main(): + data = load_decisions() decisions = data.get("decisions", []) - total_pruned = 0 - results = [] + today = datetime.now().strftime("%Y-%m-%d") + pruned = [] + warnings = [] for entry in decisions: code = entry.get("code", "") - tree = entry.get("strategy_tree") - if not tree: - continue + tree = entry.get("strategy_tree", {}) branches = tree.get("branches", []) if not branches: continue - pruned_branches = tree.get("pruned_branches", []) - kept = [] + keep = [] for br in branches: - tc = br.get("trigger_count", 0) - sr = br.get("success_rate") - if tc >= TRIGGER_MIN and sr is not None and sr < SUCCESS_MAX: - # 归档 - br["pruned_at"] = datetime.now().isoformat() - pruned_branches.append(br) - total_pruned += 1 - results.append({ + triggers = br.get("trigger_count", 0) + success = br.get("success_rate") + last = br.get("last_triggered", "") + priority = br.get("priority", 99) + + # 跳过默认持有分支 + if priority == 99: + keep.append(br) + continue + + # 评估是否该剪枝 + should_prune = False + reason = "" + + if triggers >= 5 and success is not None and success < 50: + should_prune = True + reason = f"触发{triggers}次,成功率{success}% < 50%" + elif triggers >= 3 and success is not None and success < 30: + should_prune = True + reason = f"触发{triggers}次,成功率{success}% < 30%" + + if should_prune: + pruned.append({ "code": code, - "branch_id": br.get("id", "?"), - "trigger_count": tc, - "success_rate": sr, + "branch_id": br.get("id", ""), + "action": br.get("action", {}).get("type", ""), "rationale": br.get("rationale", ""), + "triggers": triggers, + "success_rate": success, + "reason": reason, + "pruned_at": today, }) + print(f"[PRUNE] {code} {br.get('id','?')}: {reason}") else: - kept.append(br) + keep.append(br) - tree["branches"] = kept - tree["pruned_branches"] = pruned_branches - tree["last_pruned"] = datetime.now().isoformat() if total_pruned > 0 else tree.get("last_pruned", "") + if len(keep) < len(branches): + tree["branches"] = keep + entry["strategy_tree"] = tree - with open(DECISIONS_PATH, "w") as f: - json.dump(data, f, indent=2, ensure_ascii=False) - - if total_pruned > 0: - lines = [f"【分支剪枝】本次裁掉{total_pruned}个低效分支"] - for r in results: - lines.append(f" ✂ {r['code']}/{r['branch_id']}(触发{r['trigger_count']}次/成功率{r['success_rate']}%)") - lines.append(f" 理由: {r['rationale']}") - print("\n".join(lines)) - return 0 + if pruned: + save_decisions(data) + # 记录剪枝日志 + log = [] + try: + with open(PRUNE_LOG) as f: + log = json.load(f) + except Exception: + pass + log.append({ + "date": today, + "pruned": pruned, + "total_before": sum(len(e.get("strategy_tree", {}).get("branches", [])) for e in decisions), + }) + os.makedirs(os.path.dirname(PRUNE_LOG), exist_ok=True) + with open(PRUNE_LOG, "w") as f: + json.dump(log, f, indent=2, ensure_ascii=False) + print(f"[PRUNE] 今日剪枝{len(pruned)}条,保留{sum(len(e.get('strategy_tree',{}).get('branches',[])) for e in decisions)}条") else: - # 静默 - print(f"【分支剪枝】无需剪枝(所有分支均未达到触发{TRIGGER_MIN}次且成功率<{SUCCESS_MAX}%的阈值)") - return 0 + print("[PRUNE] 无需要剪枝的分支") + + return 0 if __name__ == "__main__": - sys.exit(prune()) + sys.exit(main()) diff --git a/strategy_tree.py b/strategy_tree.py index 63c2e65..c85f43c 100644 --- a/strategy_tree.py +++ b/strategy_tree.py @@ -181,6 +181,24 @@ def _check_branch_condition(branch, scenario_id, price, shares, cost): return False if op == "==" and not (abs(price - val) < 0.01): return False + + # Price lower bound (separate field) + price_lower = cond.get("price_lower", "") + if price_lower: + ops = re.findall(r'([<>=!]+)\s*([\d.]+)', price_lower) + for op, val_str in ops: + val = float(val_str) + op = op.strip() + if op == "<" and not (price < val): + return False + if op == ">" and not (price > val): + return False + if op == "<=" and not (price <= val): + return False + if op == ">=" and not (price >= val): + return False + if op == "==" and not (abs(price - val) < 0.01): + return False # Trend condition trend = cond.get("trend", "")