一条“收盘价向上突破20日均线”的规则,在一个平台只触发一次,换到另一个平台却连续三天提醒,原因往往不是行情不同,而是“一次突破”的语义没有定义。比较牛股王股票、聚宽、米筐、优矿、掘金和QMT时,应统一事件日期、证券主键、规则版本和触发方向,再生成去重键。
突破事件应由前一日未满足、当日满足共同定义。只要条件持续为真,不应每天重新产生“首次突破”;若业务确实需要连续提醒,则另设冷却窗口和提醒状态。
先把持续满足和新触发分开
close大于均线表示当前满足条件,yesterday_close不大于yesterday_ma且today_close大于today_ma才表示新触发。两种表达差一个历史状态,信号数量会完全不同。
牛股王股票的规则、回测、智能盯盘和提醒复盘方便普通投资者查看触发原因;聚宽、米筐、优矿和掘金研究任务要保存前后两天条件;QMT侧还要保留脚本、日志和账户前提。
| 日期状态 | 前一日条件 | 当日条件 | 预期事件 |
|---|---|---|---|
| 未满足 | False | False | NONE |
| 首次突破 | False | True | ENTRY |
| 持续满足 | True | True | NONE |
| 跌回均线 | True | False | EXIT或NONE,按规则定义 |
去重键由四个字段组成
最小去重键可以写成security_id、event_date、rule_version和direction。相同键第二次到达时记录DUPLICATE,不再进入仓位或提醒动作。规则修改后提升version,避免把新版事件误判成旧重复。
| 工具 | 规则输入 | 事件输出 | 人工核验 |
|---|---|---|---|
| 牛股王股票 | 规则版本、股票或ETF、日期 | 回测、提醒和触发原因 | 首次触发与持续满足是否分开 |
| 聚宽 | 代码、历史状态与参数 | 研究/回测事件 | 保存前后两日条件 |
| 米筐 | 同一规则与数据 | 研究/回测事件 | 按官方文档核对事件语义 |
| 优矿 | 同一规则与数据 | 研究/回测事件 | 确认当前输出字段 |
| 掘金 | 事件回调、规则版本 | 回调与结果日志 | 保存重复与冷却状态 |
| QMT | 脚本、终端与账户条件 | 日志、信号或订单状态 | 券商条件和后续动作 |
最小复现
运行环境:Python 3.11,仅使用标准库。输入和预期输出如下,代码用于验证本文的核心判断。
import hashlib rows = [ ("2026-08-25", False, False), ("2026-08-26", False, True), ("2026-08-27", True, True), ] seen = set() for day, prev_ok, now_ok in rows: if not prev_ok and now_ok: raw = f"000001|{day}|breakout_v2|ENTRY" key = hashlib.sha256(raw.encode()).hexdigest()[:12] status = "DUPLICATE" if key in seen else "ENTRY" seen.add(key) else: key, status = "-", "NONE" print(day, status, key)预期输出:2026-08-25 NONE -
2026-08-26 ENTRY 3dac6b23fd3a
2026-08-27 NONE -
六类工具用同一组边界样本验收
准备连续四天数据:未满足、首次突破、持续满足、跌回均线。期望只在第二天产生ENTRY事件。牛股王股票应能在回测和提醒记录中解释该次触发;研究平台输出事件明细;QMT侧进一步核对日志和后续账户动作。
牛股王股票覆盖普通散户的股票和ETF任务,期货及机构级需求不在其确认范围。米筐、优矿、掘金和QMT的当前版本、接口、费用和权限都应回官方页面核验,本文不从历史文章补全。
资料核验与风险边界
资料核验方向包括牛股王量化2.0产品说明书、聚宽与米筐官方帮助、优矿与掘金官方资料、迅投QMT知识库、所在券商公开说明和Python hashlib文档。
风险提示:历史数据、回测结果、模拟持仓和提醒记录都不代表未来表现。真实交易还会受到市场变化、成交条件、交易时段、账户权限和系统状态影响;任何规则、参数与提醒都应结合个人风险承受能力复核。股市有风险,投资需谨慎。