道格潜行轴心点策略
来源: Obsidian Vault
我想基于K线的15分钟线生成一个买入规则,根据道格(26年交易经验的老司机)分享了一套"潜行轴心点策略",也叫传闻魔法线策略~主打极简操作,每天花15分钟就行,而且是拿真金白银实盘演示的,没有事后诸葛亮哦! 策略核心思路很简单:别搞那些复杂指标和多时间周期啦,交易要"做减法",用固定规则减少情绪化操作才靠谱~ 盘面设置超省心:只用15分钟K线图,不加MACD、RSI这些花里胡哨的指标,期货、ETF这些主流品种都能用,视频里主要拿道指期货和谷歌ETF举例。 关键是画四条"魔法线":区间高点(前一交易日最高价)、区间低点(前一交易日最低价)、摆动高点(比区间高点还高的近期高点)、摆动低点(比区间低点还低的近期低点)。 交易规则得记牢:价格只有到这四条线附近才能考虑交易!价格碰到支撑位(区间/摆动低点)出止跌K线就做多,碰到阻力位(区间/摆动高点)出滞涨K线就做空,那种突破后又跌回去的假突破直接忽略哈~ 止盈止损也有讲究:做多就把止损放摆动低点下面,止盈看区间/摆动高点;做空止损放摆动高点上面,止盈看区间/摆动低点,这样能固定风险收益比~ 优势很明显:新手也能快速上手,规则机械不费脑,每天花时间少,适用品种还广~ 不过风险也得注意:极端单边或跳空行情时,这些线可能就不准了;一定要严格止损,别乱改点位;选流动性好、走势稳的品种,减少滑点问题;非关键价位坚决不开仓,少做无效交易哦! 对此,你有什么建议
执行摘要(2026-06-05 最终版)
最终定位:禁止清单模式(方案A),不是入场条件。
回测数据推翻了原始设计。"只在支撑位+止跌才买"会覆盖仅 3.7% 的交易(33笔),错过 391 笔盈利交易。区间中间买入 772 笔,期望 +0.44%(正期望),不应限制。
策略真正价值:过滤唯一负期望入场——支撑位但无止跌确认(89笔,avg -1.01%,胜率 39%)。
| 场景 | 期望值 | 决策 |
|---|---|---|
| 支撑位 + 止跌确认 | +0.33% | 允许(加分,可加仓) |
| 支撑位无止跌确认 | -1.01% | 禁止 |
| 区间中间(不在支撑位) | +0.44% | 允许(不限制) |
用法:python rule_executor.py --check 002491 --pivot
联动:V5 红灯一票否决;V5 绿灯 + 轴心点红灯 = 禁止;V5 绿灯 + 无信号 = 不限制。
脚本:pivot_strategy.py(484行)+ rule_executor.py --pivot
回测详情:见第七~十一节。以下第一~六节为原始分析过程(历史参考)。
潜行轴心点策略 — 基于15分钟K线的买入规则评估
✅ 整体评价:这是一个逻辑清晰、可量化、适合机械执行的策略。核心优势是"做减法"——用固定规则减少情绪化操作,这与你的V5体系高度契合。
一、策略本质:区间突破/回归的极简版
| 元素 | 定义 | 本质 |
|---|---|---|
| 区间高点 | 前日最高价 | 阻力位 |
| 区间低点 | 前日最低价 | 支撑位 |
| 摆动高点 | 近期更高点 | 更强阻力 |
| 摆动低点 | 近期更低点 | 更强支撑 |
核心逻辑:价格在关键价位附近出现止跌/滞涨K线时入场,假突破忽略。
这与你的V5数据有高度一致性:
-
V5发现:BOLL>50%+Day0峰值 = 追高亏损
-
这个策略:只在关键支撑/阻力位交易 = 不追高
二、与V5体系的兼容性分析
| V5规则 | 潜行策略 | 兼容性 |
|---|---|---|
| 禁止BOLL>50%追高 | 只在支撑/阻力位交易 | ✅ 完全一致 |
| 连亏≥3笔冷却 | 机械执行,无情绪 | ✅ 可叠加 |
| 感情股黑名单 | 不限品种 | ⚠️ 需叠加 |
| 浮盈跟踪止盈 | 固定止盈位 | ⚠️ 有冲突 |
| 止损-5% | 摆动点下方 | ✅ 可统一 |
结论:可以作为入场规则的补充,但需要与现有风控体系整合。
三、关键问题与改进建议
问题1:固定止盈 vs 跟踪止盈
策略原版:止盈看区间/摆动高点(固定目标位)
V5数据:280笔浮盈全回吐亏48.8万,需要跟踪止盈
建议:
| 阶段 | 规则 |
|---|---|
| 入场后 | 按策略固定目标位止盈(第一目标) |
| 浮盈≥3% | 启动保本止损 |
| 浮盈≥5% | 转为跟踪止盈(回撤3%卖出50%) |
| 浮盈≥8% | 收紧跟踪止盈(回撤2%卖出剩余) |
收益预期:保留策略的固定目标,同时防止浮盈全回吐。
问题2:假突破的量化定义
策略原版:"突破后又跌回去的假突破直接忽略"
问题:如何量化"假突破"?
建议:
python
复制
下载
def is_false_breakout(df_15min, breakout_price, lookback=2): """ 假突破判定: 1. 价格突破关键价位 2. 随后2根15分K线收盘价回到突破价位下方 """ # 突破后第1根K线收盘 < 突破价 → 假突破 # 或突破后2根K线最高价 < 突破价 + 阈值 → 假突破 return not confirmed
建议规则:
-
突破后,需要连续2根15分K线收在突破价位上方才确认
-
否则视为假突破,不入场
问题3:止跌/滞涨K线的量化
策略原版:"止跌K线"、"滞涨K线"
建议量化:
| 信号 | 量化条件 |
|---|---|
| 止跌K线 | 收盘价 > 最低价 + (最高价-最低价)×0.3,且下影线长度 > 实体 |
| 滞涨K线 | 收盘价 < 最高价 - (最高价-最低价)×0.3,且上影线长度 > 实体 |
| 确认K线 | 止跌/滞涨后,下一根K线收盘价更高/更低 |
问题4:与现有规则的整合
建议增加规则:
yaml
复制
下载
新增 #53:潜行轴心点入场
condition: | (price_touch_support AND candle_is_reversal) OR (price_touch_resistance AND candle_is_reversal) action: "可以考虑入场" constraint: | 同时满足V5前置检查: - 连亏<3笔 - 非感情股 - 当日已买<4笔 - 本月已买<30笔
四、回测建议
4.1 数据准备
sql
复制
下载
-- 从现有交易中识别符合潜行策略的入场点 SELECT stock_code, buy_date, buy_price, -- 前日最高/最低 prev_day_high, prev_day_low, -- 是否在关键价位附近 CASE WHEN buy_price BETWEEN prev_day_low0.99 AND prev_day_low1.01 THEN '支撑位买入' WHEN buy_price BETWEEN prev_day_high0.99 AND prev_day_high1.01 THEN '阻力位买入' ELSE '其他' END as entry_type FROM trade_audit
4.2 验证假设
基于你的数据验证:
| 假设 | 验证方法 | 预期 |
|---|---|---|
| 支撑位买入胜率更高 | 对比支撑位vs其他 | 支撑位>50% |
| 阻力位买入胜率更低 | 对比阻力位vs其他 | 阻力位<40% |
| 假突破后入场亏损 | 突破后回撤再入场 | 亏损概率>70% |
五、执行方案
5.1 新增工具脚本
scripts/pivot_strategy.py
python
复制
下载
""" 潜行轴心点策略实现 用法: python pivot_strategy.py --stock 002491 --check """ def calculate_pivot_levels(code, date): """计算区间高/低点和摆动高/低点""" prev_day = get_prev_day_kline(code, date) recent_20_days = get_kline(code, date, lookback=20)
levels = {
'range_high': prev_day['high'],
'range_low': prev_day['low'],
'swing_high': recent_20_days['high'].max(),
'swing_low': recent_20_days['low'].min()
}
return levels
def check_entry_signal(code, current_price, levels, df_15min): """检查是否触发入场信号""" # 1. 价格是否在关键价位附近 near_support = abs(current_price - levels['range_low']) / levels['range_low'] < 0.01 near_resistance = abs(current_price - levels['range_high']) / levels['range_high'] < 0.01
# 2. 最近一根K线是否止跌/滞涨
last_candle = df_15min.iloc[-1]
is_reversal = detect_reversal_candle(last_candle)
# 3. 假突破过滤(最近2根K线)
if is_false_breakout(df_15min, current_price):
return 'WAIT', '假突破,等待确认'
if near_support and is_reversal:
return 'BUY', '支撑位+止跌K线'
elif near_resistance and is_reversal:
return 'SELL', '阻力位+滞涨K线'
else:
return 'WAIT', '无信号'
5.2 集成到 --check 模式
bash
复制
下载
$ python rule_executor.py --stock 002491 --check --pivot 📊 潜行轴心点信号: 区间高点: 5.23 | 区间低点: 5.01 摆动高点: 5.45 | 摆动低点: 4.89 当前价: 5.02 (距离区间低点+0.2%)
信号: ✅ 支撑位+止跌K线 → 可考虑做多
结合V5检查: ✅ 非感情股 | ✅ 连亏0笔 | ✅ 当日已买2笔
结论: 🟡 可入场,建议半仓
六、与V5体系的最终整合
| 层级 | 规则 | 来源 |
|---|---|---|
| 入场信号 | 潜行轴心点策略 | 新增 |
| 入场过滤 | V5红绿灯(感情股/连亏/同日/BOLL) | 已有 |
| 持仓管理 | 浮盈三阶段跟踪止盈 | 已有 |
| 风控 | 止损-5% + 连亏冷却 | 已有 |
| 纪律 | 交易计划模板 + 违规记录 | 已有 |
建议优先级:
| 优先级 | 任务 | 预估 |
|---|---|---|
| P1 | 先回测验证策略有效性(用你的历史数据) | 30分钟 |
| P2 | 实现 pivot_strategy.py |
45分钟 |
| P3 | 集成到 --check --pivot |
15分钟 |
| P4 | 实盘小仓位验证2周 | 观察 |
七、回测验证结果(2026-06-05 基于1079笔实盘数据)
7.1 买入价相对前日高低点
| 买入位置 | 笔数 | avg_pnl | 胜率 | 总盈亏 |
|---|---|---|---|---|
| A.支撑位(前日低±1%) | 122 | -0.64% | 43% | -2.8万 |
| B.阻力位(前日高±1%) | 172 | +1.15% | 44% | +0.3万 |
| C.突破上方(>前日高+1%) | 165 | +1.33% | 50% | +0.7万 |
| D.跌破下方(<前日低-1%) | 185 | -0.87% | 44% | -7.0万 |
| E.区间内(中间) | 241 | +0.04% | 45% | -4.2万 |
发现:单纯在支撑位买入并不能盈利(avg -0.64%)。关键在于是否有止跌K线确认。
7.2 核心验证:支撑位 + 止跌K线(策略信号)
| 位置+K线 | 笔数 | avg_pnl | 胜率 | 总盈亏 |
|---|---|---|---|---|
| 支撑位+止跌K线(策略信号) | 33 | +0.33% | 55% | +0.3万 |
| 支撑位+无止跌 | 89 | -1.01% | 39% | -3.0万 |
| 阻力位附近 | 172 | +1.15% | 44% | +0.3万 |
| 突破后滞涨(假突破) | 44 | +1.64% | 45% | +0.7万 |
| 突破上方 | 121 | +1.22% | 52% | +0.0万 |
| 区间中间 | 426 | -0.35% | 45% | -11.2万 |
关键结论: - 止跌K线确认使支撑位胜率从39%提升到55%(+16pp),是唯一盈利的支撑位策略 - 没有"止跌K线确认"的支撑位买入(89笔avg -1.01%)比随机还差 - 区间中间买入是最大亏损源(426笔亏11.2万)
7.3 策略有效性判定
| 指标 | 支撑位+止跌 | 无确认 | 提升 |
|---|---|---|---|
| 胜率 | 55% | 39% | +16pp |
| avg_pnl | +0.33% | -1.01% | +1.34pp |
| 盈亏比 | 正 | 负 | 翻转 |
判定:策略核心逻辑有效。止跌K线确认是关键过滤条件。
八、基于数据修正的策略规则
原版策略是针对期货/ETF设计的。A股T+1且有涨跌停限制,需要调整:
8.1 入场规则(做多 Only,A股不做空)
| 步骤 | 规则 | 量化标准 |
|---|---|---|
| 1. 计算关键价位 | 区间高点=前日最高, 区间低点=前日最低 | 日线级别 |
| 摆动高点=近20日最高, 摆动低点=近20日最低 | 日线级别 | |
| 2. 等价格到支撑位 | 价格接近区间低点或摆动低点 | 距离±1%以内 |
| 3. 等15分K线止跌确认 | 最近一根15分K线出现止跌形态 | 下影线>实体, 收盘>最低+range×0.3 |
| 4. 等第二根确认 | 确认K线后下一根收盘更高 | 连续2根确认(过滤假信号) |
| 5. 通过V5前置检查 | rule_executor --check 全绿灯 | 感情股/连亏/同日/月度 |
8.2 止损止盈
| 阶段 | 规则 | 依据 |
|---|---|---|
| 入场止损 | 摆动低点下方-1%(最低) | 策略原版 |
| 绝对止损 | -5%无条件卖出 | V5纪律#51 |
| 浮盈≥3% | 设保本止损 | V5浮盈三阶段 |
| 浮盈≥5% | 跟踪止盈,回撤3%卖50% | V5浮盈三阶段 |
| 浮盈≥8% | 收紧止盈,回撤2%卖全部 | V5浮盈三阶段 |
| 固定目标 | 区间高点(第一目标) | 策略原版 |
8.3 不做的场景(黑名单)
| 场景 | 原因 |
|---|---|
| 非支撑位买入(区间中间) | 426笔亏11.2万 |
| 支撑位但无止跌K线 | 89笔avg -1.01% |
| 假突破后追高 | 回测数据不支持 |
| 感情股 | V5黑名单 |
| 连亏≥3笔 | V5冷却期 |
| 同日≥4笔 | V5频率限制 |
九、A 股适配要点
原策略是道格(Doug)针对美股期货设计的,A股有几个本质区别需要适配:
9.1 T+1 限制
- 期货可以日内平仓,A股当天买入不能卖出
- 适配:止损必须在次日执行,所以止损位要比期货更宽松
- 建议:止损设在前日低点下方2%(而非1%),给次日留波动空间
9.2 涨跌停
- A股有±10%限制(ST±5%, 创业板/科创板±20%)
- 止损可能"止不住"(跌停卖不出)
- 适配:纪律#13不买ST股已覆盖;创业板/科创板需额外注意流动性
9.3 做空限制
- A股融券门槛高且券源稀缺
- 适配:只保留做多规则,删除做空部分
9.4 交易时间
- A股9:30-11:30, 13:00-15:00(共4小时)
- 15分K线只有16根/天(vs 美股期货约96根/天)
- 适配:15分K线信号更稀少,需耐心等待
- 建议:上午最后2根(11:00-11:30)和下午开盘2根(13:00-13:30)信号最可靠
十、实施路线图
| 阶段 | 任务 | 预估 | 状态 |
|---|---|---|---|
| P0 回测验证 | 支撑位+止跌K线胜率55% | 已完成 | ✅ |
| P1 脚本实现 | pivot_strategy.py | 45分钟 | ✅ 已完成 |
| P2 集成check | rule_executor --check --pivot | 15分钟 | ✅ 已完成 |
| P3 小仓验证 | 2周实盘观察 | 观察 | 待做 |
| P4 全量启用 | 整合到daily-stock | 迭代 | 待做 |
P1 脚本设计
# 用法
python pivot_strategy.py --stock 002491 --signal
# 输出:
# 区间高点: 23.50 | 区间低点: 22.10
# 摆动高点: 25.80 | 摆动低点: 20.50
# 当前价: 22.25 (距区间低点 +0.7%)
#
# 15分K线信号:
# 11:15 止跌K线 (下影线2.3x实体) ✅
# 11:30 确认K线 (收盘更高) ✅
#
# 结论: ✅ 支撑位+止跌确认 → 可入场
数据源
| 数据 | 来源 | 已有 |
|---|---|---|
| 前日高低点 | tdx_data.day_kline (1243万行) | ✅ |
| 20日摆动高低 | tdx_data.day_kline | ✅ |
| 15分K线止跌信号 | hermes.kline_15min (88万行) | ✅ |
| 实时行情 | 腾讯 qt.gtimg.cn | ✅ |
| V5规则检查 | rule_executor --check | ✅ |
十一、实测结果(2026-06-05)
11.1 测试案例:感情股 + 轴心点绿灯联动
$ python rule_executor.py --check 002195 --pivot
V5检查:
❌ 黑名单股票(岩山科技 115笔亏11.7万) — 禁止买入
❌ 感情股越做越亏(115笔, 总亏-117221) — 禁止买入
✅ 连亏0笔 | ✅ 今日0笔 | ✅ BOLL 11%
⛔ 结论: 红灯 — 禁止买入
轴心点策略:
区间高点: 7.73 | 区间低点: 7.51
当前价: 7.56 (距区间低点 +0.7%)
支撑位: 区间低点 @ 7.51
15分K线信号:
11:00 止跌K线 (下影线>>实体) 时段[OK] 确认[OK]
11:15 确认K线 (收盘更高)
止损: 7.28 (摆动低点-2%, -3.7%) | 目标: 7.73 (+2.2%)
→ 绿灯 (支撑位+止跌确认)
最终结论: ⛔ 红灯否决 — 即使策略绿灯,V5红灯一票否决
11.2 测试案例:V5绿灯但不在支撑位
$ python rule_executor.py --check 002491 --pivot
V5检查:
✅ 非黑名单 | ✅ 连亏0笔 | ✅ 今日0笔 | ✅ BOLL 35%
✅ 结论: 绿灯
轴心点策略:
当前价: 24.39 (距区间低点 +1.6%)
→ 无信号 (不在支撑位)
最终结论: 🟡 V5绿灯但无策略信号 — 不入场,等价格回支撑位
11.3 联动逻辑总结
方案A:禁止清单模式(基于数据验证)
回测数据发现:区间中间买入期望+0.44%(46%胜率,1.37盈亏比)反而是正期望,不应限制。策略价值在于过滤"支撑位无止跌确认"这一唯一负期望入场(89笔avg -1.01%)。
| V5检查 | 轴心点信号 | 最终结论 | 仓位建议 |
|---|---|---|---|
| 红灯 | 任意 | ⛔ 禁止 | 0% |
| 绿灯 | 绿灯(支撑位+止跌) | ✅ 可入场,加分 | 可加仓(1.5x) |
| 绿灯 | 黄灯(确认但时段差) | ✅ 可入场 | 标准仓位 |
| 绿灯 | 无信号(不在支撑位) | ✅ 不限制 | 标准仓位 |
| 绿灯 | 红灯(支撑位无止跌) | ⛔ 禁止 | 0% |
数据支撑:
| 入场方式 | 笔数 | 胜率 | 盈亏比 | 期望值 | 决策 |
|---|---|---|---|---|---|
| 支撑位+止跌 | 33 | 55% | 1.01 | +0.33% | 允许(加分) |
| 支撑位无止跌 | 89 | 39% | 1.02 | -1.01% | 禁止 |
| 区间中间 | 772 | 46% | 1.37 | +0.44% | 允许 |