程序化交易里如何改善顺势交易策略的滑点

企业微信

滑点到底在吃掉什么

做程序化顺势交易的人都有过这种体验:回测曲线漂亮,实盘一跑就变脸。原因很多,但最常被低估的就是滑点。滑点不是手续费,手续费是明码标价,滑点是成交价和你预期价之间的差额。一笔两笔看不出,一天几十上百笔累积起来,足以把正收益策略磨成负收益。

顺势策略的骨架是“价格突破某个阈值就进场”。信号触发的那一刻,价格往往正在快速移动。你的买单挂在下面,市场却往上扫,成交价自然高于信号价。这就是滑点的本质:信号价是历史,成交价是未来。程序化交易没法消除这个时间差,但可以把它压缩到可接受范围。

程序化交易里如何改善顺势交易策略的滑点

订单类型选对了能省一半滑点

很多策略默认用市价单追突破,理由是“怕错过”。市价单保证成交,不保证价格。在流动性好的主力合约上,一跳滑点可能还能忍;在非主力合约或者夜盘刚开盘的时段,市价单能给你滑出三跳以上。

改善的第一步是换订单类型。限价单把成交价锁死,代价是可能不成交。顺势策略怕踏空,但怕踏空不等于必须用市价单。折中方案是用限价单加超时撤单:挂一个略高于对手价的限价,等0.5秒到1秒,没成交就撤掉重挂或者转市价。这样大部分单子能拿到比市价单更好的价格,极小部分确实没追上的,损失也远小于长期市价单的滑点累积。

更精细的做法是用冰山单或者隐藏单。大单拆成小份挂出去,不暴露意图,减少市场冲击。顺势策略的单子通常不大,冰山单的用武之地有限,但如果是多品种组合、单品种仓位较重,拆单执行能明显降低盘口被扫穿的概率。

执行算法比信号本身更值得打磨

信号告诉你“什么时候做”,执行决定“怎么做”。程序化交易里,执行算法的细节直接决定滑点大小。

第一,别在盘口薄的地方追。 盘口买卖五档的挂单量是实时变化的。信号触发时,先看一眼对手价前两档的挂单厚度。如果第一档挂单量不到你下单量的三倍,这笔单子大概率会吃穿两档以上。这时候要么等盘口变厚,要么把单子拆小分批进。

第二,利用回调挂单。 顺势突破后经常有微小回踩。程序可以在突破价上方挂一个被动限价单,等价格冲高回落时成交。这个做法牺牲了部分确定性,换来了更优的成交价。回测里加一个“突破后等待N个tick再挂单”的规则,往往能把平均滑点降低一到两个最小变动价位。

第三,避开流动性真空时段。 开盘前五分钟、午盘收盘前两分钟、夜盘刚开盘的三十秒,盘口挂单稀薄,任何市价单都会造成剧烈滑点。程序里加一个时间过滤器,这些时段只允许限价单或者干脆不交易。

用流动性筛选把滑点挡在门外

顺势策略选品种时,很多人只看历史波动率和回测收益,忽略了一个硬指标:盘口深度。一个品种日内平均成交量和买卖一档挂单量,决定了你的策略容量和滑点下限。

程序里可以加一个动态筛选模块:每根K线更新一次品种的盘口深度指标,比如买卖五档总挂单量除以近20根K线的均量。这个比值低于某个阈值时,该品种当天不开新仓。阈值不用拍脑袋,用历史成交数据反推——统计你过去所有单子的滑点分布,找到滑点超过一跳的临界深度,拿它当过滤线。

还有一个容易被忽视的点:合约换月。主力合约切换前后,近月合约流动性骤降,程序如果还按老合约的滑点假设执行,成本会突然跳升。换月窗口期要么暂停该品种,要么把下单算法切换到更保守的模式。

参数自适应让滑点控制跟着市场走

固定参数在震荡市和趋势市里的表现天差地别。趋势市里价格移动快,滑点天然大;震荡市里价格黏滞,滑点小但假突破多。程序化交易的优势是能实时感知市场状态,动态调整执行参数。

一个实用的做法是用ATR(真实波幅)缩放挂单偏移量。ATR大,说明价格波动剧烈,限价单挂得太近容易不成交,挂得太远成交价差,程序按ATR的百分比动态设定偏移。ATR小的时候收紧偏移,追求更优价格。

另一个参数是追单次数上限。价格快速突破时,程序可能会连续追单,每次追单都在推高滑点。设一个硬上限,比如最多追两次,两次没成交就放弃这笔信号。放弃的代价是错过部分行情,但换来了滑点可控。回测里对比“无限追单”和“两次上限”,后者往往在扣除滑点后净值更高。

回测里必须把滑点当成本建模

很多回测曲线好看,是因为滑点设成了固定值,比如一跳。真实市场里滑点是分布的:大部分时候一跳,行情剧烈时三到五跳,极端时十跳以上。固定值回测会系统性高估策略收益。

更诚实的做法是用历史 Tick 数据回放成交。程序化交易平台大多支持逐笔回测,把每笔信号的成交价按当时盘口的真实挂单量模拟出来。如果拿不到 Tick 数据,至少用“滑点 = 固定值 + 波动率系数 × 当根K线振幅”的公式建模。这样回测出来的净值曲线,实盘落差会小很多。

还有一个细节:区分开仓滑点和平仓滑点。顺势策略的平仓往往发生在趋势衰竭或者止损触发时,那时候价格移动方向对你不利,滑点通常比开仓更大。回测里给平仓单独设一个更高的滑点系数,逼着策略优化出场逻辑,而不是只盯着进场信号。

把滑点控制写进策略基因

滑点不是执行环节的孤立问题,它应该反过来影响策略设计。一个顺势策略如果滑点敏感度太高,说明它的信号频率或者持仓周期和流动性不匹配。

改善路径是把滑点预算前置。设计策略时先问:这个品种的盘口深度能支撑多大的单笔下单量?滑点预算占预期收益的比例上限是多少?如果一笔交易的预期收益是十跳,滑点预算超过两跳,这笔交易就不该做。程序里加一个“滑点预算过滤器”,信号触发后先估算当前盘口下的预期滑点,超预算直接跳过。

这套逻辑跑通之后,程序化顺势交易就不再是“信号来了就冲”,而是“信号来了先算账”。滑点从不可控的摩擦成本,变成可测量、可预算、可优化的策略变量。实盘和回测的差距,也会从一道鸿沟缩成一条可以跨过去的小水沟。

转载请注明出处:https://www.lianghuajiaoyi.top/wenzhang/chengxuhua-jiaoyi-shunshi-jiaoyi-celve-1429.html