diff --git a/deploy/profile-scripts/per_stock_reassess.py b/deploy/profile-scripts/per_stock_reassess.py index 734af548..bd3a3354 100644 --- a/deploy/profile-scripts/per_stock_reassess.py +++ b/deploy/profile-scripts/per_stock_reassess.py @@ -471,6 +471,21 @@ def main(): except: pass + # ── 确定性技术位锚(与 batch 同源,2026-07-23:双 prompt 曾漂移导致per_stock无锚)── + _ta_sec_ps = "【技术位锚】本次计算不可用,仍须满足:止损<区间下沿<区间上沿<止盈。" + try: + import technical_analysis as _ta_mod + _ta_ps = _ta_mod.full_analysis(code) + if _ta_ps and "error" not in _ta_ps: + _sr_ps = _ta_ps.get("support_resistance", {}) or {} + if _sr_ps.get("weak_support"): + _ta_sec_ps = f"""【技术位锚】(系统基于K线确定性计算,客观事实,非估计值) +强撑={_sr_ps.get('strong_support')} 弱撑={_sr_ps.get('weak_support')} 枢轴={_sr_ps.get('pivot')} +弱压={_sr_ps.get('weak_resist')} 强压={_sr_ps.get('strong_resist')} 有效区间={_sr_ps.get('effective_range')} +⚠️ 参数锚定纪律:买入区下沿参考弱撑/强撑;止损必须严格低于买入区下沿(放弱撑下方1-3%或强撑附近,严禁止损≥区间下沿);止盈参考弱压/强压;偏离须在【修改点及理由】明确说明。""" + except Exception: + pass + _prompt = f"""你是一个资深股票分析师。请对股票{code}评估现有策略是否仍然有效,并输出完整的新策略。 ╔══════════════════════════════════════════════╗ @@ -498,6 +513,8 @@ def main(): ⚠️ 重要:12个维度必须交叉对比,找出矛盾/共振点,给出综合判断。 +{_ta_sec_ps} + 当前实时数据(每条标注时间窗口,禁止使用模型训练数据): 大盘={_macro_desc or "震荡"}(当日实时) | PE/市值={_pe_val} {_pb_val}(最新财报) 资金流={_flow_note}(近5日累计) @@ -525,14 +542,17 @@ def main(): 最后必须输出: 【综合结论】(买入/关注/观望/卖出) 【操作建议】 -【建议止损】 -【建议止盈】 +【买入区间】最低价~最高价(锚定技术位:下沿参考弱撑/强撑,上沿参考枢轴/弱压) +【建议止损】(必须严格低于买入区下沿,放弱撑下方1-3%或强撑附近) +【建议止盈】(参考弱压/强压) +【参数自检】一行,格式"止损X < 区下沿Y < 区上沿Z < 止盈W:通过/不通过+原因" 【建议仓位】⚠️不可省略,非"买入"时写"不新建仓" ⚠️ 输出纪律(必须遵守): 1. 直接以【维持或修改】开头,禁止任何寒暄、开场白、分隔线 2. 禁止输出 或任何 XML/JSON/代码块 -3. 所有【】节标题一个都不能少""" +3. 所有【】节标题一个都不能少 +4. 止损<区间下沿<区间上沿<止盈,违反任一条=输出作废重想""" _full_analysis_text = None try: _llm_result = call_llm(_prompt, max_tokens=4096, timeout=150, retries=1, backoff=20)