fix(per_stock): prompt补齐技术位锚定(与batch同源)

- per_stock的12维prompt是独立实现,无【技术位锚】无买入区间输出无参数自检
  → 今日35只重评中26只经per_stock路径,锚定纪律缺失(双prompt漂移)
- 注入同款锚定段+买入区间输出+参数自检+输出纪律第4条
This commit is contained in:
hmo
2026-07-23 13:40:28 +08:00
parent 37664f0523
commit ccfa22c0d4
+23 -3
View File
@@ -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. 禁止输出 <structured_data> 或任何 XML/JSON/代码块
3. 所有【】节标题一个都不能少"""
3. 所有【】节标题一个都不能少
4. 止损<区间下沿<区间上沿<止盈,违反任一条=输出作废重想"""
_full_analysis_text = None
try:
_llm_result = call_llm(_prompt, max_tokens=4096, timeout=150, retries=1, backoff=20)