脉冲计数如何运作、为什么窗口大小决定一切、为什么跳过脉冲能让您的订单流保持非毒性,以及如何构建、过滤和优化基于脉冲的自动化策略。
脉冲交易策略顺着一段短暂而集中的价格爆发方向入场,其前提假设是:这段爆发是一轮行情可见的起点,而不是噪音。脉冲系统不是在已收盘的K线上读取指标,而是在一个较短的时间窗口内统计离散的价格脉冲,检查是否有足够多的脉冲指向同一方向、其幅度是否足够大,并将这样的脉冲簇视为方向性信号。决定这种方法成败的一切都集中在四个数字上:窗口长度、最小脉冲数量、最小脉冲幅度,以及信号与入场之间发生的事情。
在本文语境中,脉冲是指一次离散的、单向的价格运动,它发生得很快,且明显大于该品种近期的基准波动。它是一个市场微观结构事件,而不是一种图表形态。它具有策略可以直接测量的三个属性:
| 属性 | 测量内容 | 重要性 |
|---|---|---|
| 方向 | 运动是向上还是向下 | 只有当成员方向一致时,脉冲簇才有意义 |
| 幅度 | 运动的大小,以点或点值(pips)计 | 过滤掉每个报价源都在持续产生的微小抖动 |
| 时间 | 它发生在观察窗口内的哪个时点 | 分散在十分钟内的脉冲不构成爆发 |
之所以使用脉冲而不是K线,原因在于分辨率。一根一分钟K线把这一分钟内发生的一切压缩成四个数字,一段快速单向运动之后又慢慢回落的爆发,看起来与缓慢的爬升完全一样。直接统计价格运动本身,就保留了K线所丢弃的信息。
脉冲交易介于动量交易和突破交易之间,经常被误认为是其中之一。这些区别是实际层面的,而非学术层面的,因为它们会改变您测量什么以及何时入场。
| 方法 | 触发条件 | 典型时间周期 | 主要失败模式 |
|---|---|---|---|
| 脉冲交易 | 短窗口内一簇快速的单向价格运动 | 数秒到数分钟 | 阈值过于宽松时对噪音做出反应 |
| 突破交易 | 价格穿越某个既定价位或区间边界 | 数分钟到数小时 | 在明显价位出现假突破 |
| 动量交易 | 基于已收盘K线的指标读数(变化率、振荡指标) | 数分钟到数天 | 滞后,信号在行情发生之后才出现 |
| 均值回归 | 偏离均值,预期价格回归 | 任意 | 与真实趋势对抗 |
请注意,脉冲交易和均值回归在核心假设上截然相反。均值回归认为急剧的价格运动是过度反应,终将回吐。脉冲交易则认为急剧的价格运动是信息,终将延续。两者在不同时期各自成立,这正是为什么下文所述的过滤器比入场逻辑本身更重要。
一个可用的脉冲信号是多个条件的组合,随着新价格的到来持续评估。每个条件都会剔除一类特定的误报。
# 1. 观察窗口:向前统计多长时间 window = 60 seconds # 2. 数量条件:必须有多少个脉冲方向一致 impulses_up >= min_count # 例如 3 或 4 # 3. 幅度条件:每个脉冲必须足够大才计入 impulse_size >= min_size # 以点计,按品种设定 # 4. 主导性:窗口内多空不能均衡 impulses_up > impulses_down # 若四个条件全部成立,该窗口即被归类为脉冲事件 # 策略随即准备做多入场。
窗口是影响最大的单一参数。窗口太短,证据永远不足以达到数量阈值,策略要么从不交易,要么因两次巧合的运动而交易。窗口太长,来自这一分钟不同时段、彼此无关的运动会被一起计入,系统就是这样最终在一轮已经衰竭的行情中买入的。
| 窗口 | 表现 | 适用于 |
|---|---|---|
| 10 到 30 秒 | 反应非常灵敏,信号数量多,误报也更多 | 高波动品种、严格风控、快速离场 |
| 1 分钟 | 适用于大多数品种的平衡起点 | 黄金、股指、主要货币对 |
| 2 到 5 分钟 | 信号更少、确定性更高,入场更晚 | 较慢的品种及波段式持仓 |
最小脉冲幅度必须相对于具体品种来设定,而不是一个通用数字。在黄金上有意义的运动,在股指上只是背景噪音,而在低波动的货币对上则是一次大事件。有两种可行的方法:将阈值设为每个品种固定的点数,并每季度重新检查;或者将其与平均真实波幅(ATR)等波动率指标挂钩,使其随市场状况变化而自适应。固定版本更容易理解,也更容易优化。自适应版本在市场环境切换时更具韧性。
一旦某个窗口被归类为脉冲事件,最简单的实现方式是立即开仓。但出于两个不同的原因,这很少是最佳选择。
第一是价格。爆发的尾声是成交最差的时刻:点差通常处于最宽,您得到的成交价是其他人都不想要的。短暂而刻意的停顿可以让点差在订单发出之前恢复正常。
第二是痕迹。总是在快速价格运动后数毫秒内到达的订单流具有独特的形态,而经纪商一方的执行质量系统正是为识别这些形态而构建的。在触发与入场之间引入延迟并使其有所变化,可以让订单流看起来像普通的方向性交易。关于这一点如何影响成交,我们在经纪商究竟如何为您报价和成交一文中有详细阐述。
这一点决定了一个策略能否在零售账户上长期运行。经纪商并不会因为策略盈利而过滤订单。他们过滤的是在价格运动期间到达的订单,因为这些订单以交易场所尚未完成更新的价格成交。这就是”毒性订单流”在实践中的含义:在价格仍在变动的那几毫秒内,以过时报价成交,由经纪商承担损失。
按本文所述方式构建的脉冲策略恰恰相反。脉冲本身不被交易。它被观察、计数,然后被刻意跳过。在价格运动发生期间不存在任何订单。只有在爆发结束并过去数秒之后,策略才会提交订单,而此时订单与任何其他方向性交易一样,以当前市场价格成交。其中不涉及过时报价,没有利用延迟优势,执行过滤器也没有任何可以识别的特征。
实际结果是,订单流看起来就是它本来的样子:一位交易者看到了行情,等待片刻,然后入场。这就是为什么延迟不是强加于策略的妥协。正是这一特性,让策略可以在普通账户上运行,而不会触发经纪商究竟如何为您报价和成交中所描述的应对措施。
经过延迟之后,脉冲策略需要一条规则来定义”市场认同了信号”是什么样子。有两种自洽的答案,它们对爆发之后会发生什么持有相反的判断。
确认入场等待价格沿信号方向再运行一段既定距离(例如 10 个点)后再入场。只有当市场继续前进时,信号才被接受。 判断:真正的行情会立即延续。 |
回调入场等待价格朝信号相反方向运行一段既定距离(例如 10 个点),然后在该位置按原方向入场。 判断:脉冲方向是正确的,紧随其后的回撤是噪音。 |
这两种模式不可互换,在不同品种上的表现也不同。爆发后趋势干净延续的品种更适合确认入场。容易冲过头再迅速回弹的品种更适合回调入场。在相同数据上、保持其他条件不变的情况下测试两种模式,是了解您的品种处于哪种状态的最快方法。
脉冲入场在离场时会带来一个特定的问题。入场时机对准的是一次波动爆发,这意味着按常规距离设置的固定止损,特别容易被产生该信号的同一次爆发的尾部触及。由此得出三条规则。
第一,根据产生信号的波动来设定止损大小,而不是按账户层面的默认值。第二,将止盈作为上限而非主要离场方式,因为有效的脉冲行情往往会比固定目标走得更远。第三,把真正的功夫下在追踪止损上。在行情运行既定距离后激活、并以既定距离跟随的追踪止损,能把偶尔出现的大幅脉冲延续转化为足以覆盖假信号成本的那笔交易。实践中,区分一个勉强及格的脉冲系统与一个盈利系统的,通常是追踪止损参数,而不是入场参数。
脉冲检测被刻意设计得很灵敏,因此风险管理由过滤器承担。最重要的四个过滤器:
| 过滤器 | 拦截的内容 |
|---|---|
| 波动率过滤器 | 在品种正常波动已经超过脉冲阈值的条件下产生的信号——此时每个窗口看起来都像一次爆发 |
| 新闻与报价事件过滤器 | 在预定数据发布和报价异常期间的入场——此时的爆发反映的是数据公布或报价跳空,而非方向性意图 |
| 交易时段过滤器 | 流动性稀薄时段的信号——此时少量报价就可能达到数量阈值,背后却没有任何真实的市场参与 |
| 点差过滤器 | 在点差最宽时的入场——而这恰恰是脉冲系统最想交易的时刻 |
脉冲阈值不可移植。同一策略在两个账户上看到的是两幅不同的画面,因为报价数据粒度、报价频率、典型点差和执行延迟在不同交易场所各不相同。在一个报价源上每天产生四个信号的数量阈值,在另一个报价源上可能产生四十个。
这使得优化成为必需而非锦上添花,也使测试环境的质量起到决定性作用。在K线数据上优化脉冲逻辑几乎毫无意义,因为被统计的事件发生在K线内部。有用的测试需要真实的逐笔(tick)历史数据、模拟的执行延迟,以及逐笔应用的历史点差,而不是一个固定值。我们自己的做法见 SharpTrader 回测器与优化器,它基于真实的逐笔数据流运行,并可配置执行延迟。
一个能让参数网格保持可控的实用顺序:
| 阶段 | 优化内容 | 保持固定 |
|---|---|---|
| 1 | 脉冲参数:窗口、最小数量、最小幅度 | 离场与过滤器设为合理默认值 |
| 2 | 追踪参数:激活距离与追踪距离 | 第 1 阶段得到的脉冲参数 |
| 3 | 止损与止盈 | 脉冲参数与追踪参数 |
| 4 | 过滤器:波动率、交易时段、点差 | 以上所有参数 |
一次性同时运行全部四个阶段会产生数十万种参数组合,结果通常会过度拟合某个特定的两周行情。分阶段优化让每一轮结果都可解读,并且只需一小部分时间即可完成。
脉冲逻辑需要真正会产生爆发的品种。黄金和股票指数是天然的适用对象,因为两者都以集中的推动方式运动,并且有足够的市场参与度,使一簇单向运动通常反映真实的资金流。主要货币对同样可行,但信号频率更低、目标更小。流动性稀薄、走势缓慢的品种不适合:脉冲阈值要么永远达不到,要么是由报价瑕疵而非真实交易触发的。
大多数令人失望的结果都源于四种失败模式。把脉冲幅度阈值设得太低,使普通抖动也被计为脉冲,系统不停交易。在K线数据上优化,得到的参数描述的是策略实际上从未交易过的环境。在触发时立即入场,这会让支付的点差和订单流的辨识度都达到最大。以及照搬其他交易者的参数,这相当于戴别人的近视眼镜:他们的经纪商、他们的报价源、他们的延迟。
以上内容描述的是逻辑。要把它变成可以无人值守运行的系统,就必须处理那些繁琐而非概念性的部分:跨品种的持续脉冲计数、可配置的延迟、两种入场模式、追踪止损管理,以及可以独立开关的过滤器。这正是 TrendPulse 所实现的,每个阈值都作为参数开放,可以按品种、按经纪商进行优化,而不是作为固定的黑箱交付。
脉冲交易策略顺着一段短暂而集中的价格爆发方向入场。它在固定时间窗口内统计离散的价格脉冲,并将同时超过数量阈值和幅度阈值的一簇同向脉冲视为方向性入场信号。
动量交易读取已收盘K线上的指标,因此信号要在时间周期确认行情之后才出现。脉冲交易在数秒的窗口内直接测量价格运动本身,因此能在行情开始时做出反应。其权衡在于分辨率与可靠性:脉冲信号更早,但噪音也更多。
一分钟窗口内三到四个同向脉冲是常见的起点。合适的数量取决于品种和报价源:发布更细粒度报价的交易场所,对于同样的真实价格运动会记录到更多脉冲,因此阈值必须按经纪商校准,而不是照搬。
通常不应该。爆发的末尾是点差最宽、成交最差的时刻,而总是在快速价格运动后数毫秒内到达的订单流,在经纪商一方很容易被识别。入场前的短暂延迟可以改善成交并使订单流特征正常化,代价是在真正快速的行情中损失几个点。
确认入场等待价格沿信号方向再运行一段既定距离后才入场,从而过滤掉未能延续的信号。回调入场等待价格逆信号方向回撤,然后在该位置按原方向入场,以较低的命中率换取更好的入场价格和更紧的止损。
只要跳过脉冲本身就不会。毒性订单流是指在价格运动期间、以交易场所尚未完成更新的报价成交的订单。按此设计的脉冲策略在价格运动发生期间不发送任何订单:它观察爆发、将其略过,并在数秒之后以当前市场价格入场。成交中不存在过时报价,也没有利用延迟优势,因此该订单流与普通的方向性交易无法区分。
只能在真实的逐笔数据上进行。脉冲策略所统计的事件发生在K线内部,因此基于K线的测试看不到这些事件,得出的参数描述的是一个并不存在的环境。有意义的测试需要逐笔历史数据、逐笔应用的历史点差,以及模拟的执行延迟。
以集中爆发方式运动且背后有真实市场参与的品种:首先是黄金和股票指数,其次是信号频率较低的主要货币对。流动性稀薄或走势缓慢的品种不适合,因为阈值要么永远达不到,要么是由报价瑕疵而非真实资金流触发的。
新文章、研究论文和产品发布,在我们发布时第一时间送达。