双阳接力(涨停双响炮)· 打板信号引擎
纯信号引擎:只输出买入 / 卖出提醒,不自动下单,不设虚拟资金、不做模拟成交。
策略条款原文(唯一真相源)见 references/strategy.md;数据源、价格口径与回测依据见 references/pitfalls.md。
适用场景
用户给出「双阳接力 / 涨停双响炮」规格,要求每日定时推送买入与卖出提醒。核心形态:
- 买入:MA60 上方出现第二根真实涨停,且收盘突破第一根涨停最高价;两根间隔 1–8 个交易日;首板放量、中间缩量不破位、二板量能不掉档;当日实际封板才提醒。
- 卖出:板块差异化止盈止损 + T+5 时间止损。
- 看板:只两块,
【今日买入】与【今日卖出】;候选、预筛、监控、持仓明细一律不显示。
快速部署(照做)
- 取当前已加载技能的实际安装目录作为
SKILL(含scripts/monitor.py的那一层)。 - 选择本机可用的 Python 3 绝对路径作为
PY:优先 WorkBuddy 托管运行时,其次sys.executable,最后 PATH 中的python3。 - 把
<技能实际安装目录>与<Python 3绝对路径>替换为本机实际值,不要沿用文档里的示例路径。
SKILL="<技能实际安装目录>"
PY="<Python 3绝对路径>"
"$PY" "$SKILL/scripts/monitor.py" prescreen # 盘前全市场预筛
"$PY" "$SKILL/scripts/monitor.py" --slot 0935
"$PY" "$SKILL/scripts/monitor.py" --slot 1430
"$PY" "$SKILL/scripts/monitor.py" --slot 1510
首次到新机器先做链路自检(--limit 只扫前 N 只,几十秒出结果):
"$PY" "$SKILL/scripts/monitor.py" prescreen --limit 60
"$PY" "$SKILL/scripts/monitor.py" --slot 1430 --limit 300 --force
三档职责
| 档位 | 时间 | 买入 | 卖出 | 为什么是这个点 |
|---|---|---|---|---|
| 开盘档 | 09:35 | 不做 | 是 | 隔夜跳空必须在开盘处理,拖到下午浮亏就变成实亏 |
| 盘中档 | 14:30 | 是 | 是 | 板已扛住全天抛压,炸板概率下降,且仍留足挂单时间;不要用 13:50,那正是尾盘诱多出货窗口 |
| 盘后档 | 15:10 | 核对 | 是 | 收盘数据需 3–5 分钟落库,15:05 易取到脏数据;本档核对 14:30 提醒的票是否真封住,收盘炸板的作废 |
必须先跑 prescreen:全市场约 5000 只,每只取 400 根日 K 加复权因子,耗时 10–20 分钟,盘中临时扫来不及。预筛结果缓存在 <运行时目录>/state/cache/candidates_<YYYYMMDD>.json,当日后续档位直接复用,--force 可强制重扫。
运行时目录(技能目录之外)
持仓台账、预筛缓存、HTML 看板一律写在技能目录之外的运行时目录:
环境变量 SHUANGYANG_HOME → 未设置则 ~/.shuangyang-jieli/
├── state/positions.json 持仓台账(含真实买入价,内部追踪用,不显示)
├── state/cache/candidates_*.json 当日预筛缓存
└── reports/dashboard_*.html 看板
这是硬性约束,不是风格偏好:技能目录会被整体打包发布到公开市场,任何落在其中的运行期文件(尤其是含真实持仓的 positions.json)都会随包外泄。脚本内置校验——即便把 SHUANGYANG_HOME 指向技能目录内部也会强制回退到默认位置;老版本残留在技能目录里的 state/ 会在下次运行时自动迁出。
输出格式(严格照此推送)
【今日买入】
名称 代码 板块 涨停价 X.XX 首封/回封
【今日卖出】
名称 代码 板块 止盈/止损/时间止损
两块都为空时推一行:今日无买入标的,无卖出标的。
同一标的当日只买入提醒一次,重复出现时形态列标注 已提醒。
看板(HTML)
每档除纯文本外,还会生成一份同名内容的 HTML 看板,落在:
<运行时目录>/reports/dashboard_<YYYYMMDD>_<档位>.html # 默认 ~/.shuangyang-jieli/reports/
看板只有两块:今日买入 卡片与 今日卖出 卡片,字段与纯文本逐项一致,不多加任何统计、持仓或候选信息;无标的时卡片内显示空态文案。
配色遵循 A 股习惯:涨停价与止盈为红,止损与浮亏为绿;形态用色块标注首封 / 回封 / 已提醒。生成后脚本会打印 [HTML] <路径>,把该路径交给用户即可。加 --no-html 可只保留纯文本。
参数说明
| 参数 | 作用 |
|---|---|
--slot |
prescreen / 0935 / 1430 / 1510,必填其一 |
--limit N |
只扫前 N 只,试跑与自检用 |
--workers N |
并发线程数,默认 12 |
--date YYYY-MM-DD |
回溯指定日(K 线窗口覆盖约 19 个月) |
--force |
忽略当日候选缓存,重新预筛 |
--json |
输出末尾追加 __JSON__ 机器可读结果 |
--no-html |
不生成 HTML 看板,只输出纯文本 |
自动化挂载
挂四条 automation,仅交易日触发(脚本自行判定非交易日并静默退出):
- 08:30
prescreen(只产候选,不推送) - 09:35
--slot 0935 - 14:30
--slot 1430 - 15:10
--slot 1510
工作目录(cwds)不要设为技能目录。设为技能目录时,Agent 的运行记录会写进 <技能目录>/.workbuddy/memory/,发版时会被一起打包上传。挂到普通工作区目录即可;同时在 automation 的 prompt 里写明「技能目录只存代码,禁止写入任何文件」。
粘贴即用(目标环境不放脚本时)
把 assets/paste-and-run.txt 全文复制到任意 WorkBuddy 对话框,对方 Agent 即可按策略逐档执行。该文件含策略条款全文与执行要求,不依赖本技能安装。
必读注意事项
执行前阅读 references/pitfalls.md,其中记录了已验证的数据源、价格口径、回测依据与已知局限。要点:
- 涨停判定和各条件的价格比较一律用不复权(真实成交价),只有 60 日均线用前复权。
- 一字板必须剔除(无成交机会)。硬板买不到、能买到的多是回封板,这是打板策略的固有成本,回测已按此口径扣除。
- 回测区间 2025-01 至 2026-06 全程牛市、样本仅 1.5 年,实盘前建议在震荡或下跌市复核。