期货实盘对价滑点怎么记账:量化回测与成交成本对齐
前言策略在 K 线收盘价上算出买入信号实盘用天勤TargetPosTask(..., priceACTIVE)对价下单实际成交价往往是当时的卖一价和信号价会有几跳甚至更多差距这就是滑点。回测若假设「信号价瞬间全部成交」净值曲线会偏乐观团队若没有统一记账就无法判断是策略逻辑失效还是执行成本吃掉了 edge。天勤量化里成交信息在api.get_trade()返回的字典里每笔成交有价格、手数、时间等字段以objs.py为准委托对象上还有trade_records。下面说明滑点相对谁算、怎么记日志、怎么反哺回测手续费假设。先要分清信号价、发单价、成交价是三个不同概念。一、名词对照名称含义iloc[-2]K 线表倒数第二行常用作已收盘 bar 算信号close该 bar 收盘价常作信号参考价ACTIVE对价模式买用卖一、卖用买一PASSIVE排队模式成交路径不同滑点分布不同get_trade()成交记录字典key 为成交号trade.price实际成交价signal_price团队定义的基准价用于算滑点TqBacktest天勤历史回测环境TqKq快期模拟用于统计实盘级滑点二、滑点相对谁算团队应固定一种「信号价」定义全策略统一基准适用信号 bar 的closeK 线策略与iloc[-2]一致发单时刻last_pricetick 或 bar 边界触发理论 ACTIVE 价 ask1/bid1分析是否多吃了盘口signal_pricekl.close.iloc[-2]api.wait_update()fortid,trinapi.get_trade().items():iftr.symbolsymbolandapi.is_changing(tr):slip_ticks(tr.price-signal_price)/quote.price_tick log_slip(tr.datetime,signal_price,tr.price,slip_ticks)买方向滑点正负号约定要写进文档避免复盘时符号反了。三、为何回测要对齐TqBacktest可设手续费但成交模型未必等于 ACTIVE 吃盘。建议用TqKq跑一段统计信号价与成交价差的分布几 tick、几元。回测在手续费外增加固定 tick 惩罚或更保守的成交假设团队自定天勤不会自动替你加滑点。回测、模拟、实盘三环境priceACTIVE或PASSIVE选择一致。四、日终汇总与异常按品种记平均滑点、最大滑点、滑点占毛利比例。突增时查盘口是否变薄、是否涨跌停、是否大单未拆。部分成交时每笔trade都要记不能只用最终持仓反推均价。总结对价下单的滑点是信号价与真实成交价之间的系统性偏差不是多加一行手续费就能糊弄过去的。天勤在get_trade里给出成交价你只要在成交发生时把同一笔信号用的bar_datetime和signal_price写入日志就能在实盘建立滑点 baseline再用来校准TqBacktest的成本假设。记账对齐后不难理解回测好看往往因为成交太理想记账对齐后比较模拟与实盘才有意义。FAQ1PASSIVE 滑点怎么记同样记信号价与成交价可能为负滑点更优价分开统计。2一笔信号多笔成交用 signal_id 关联按成交量加权算滑点。3开平都记吗建议都记平今成本另在手续费账单体现。4没有成交怎么记记 signal 事件即可成交字段为空便于算成交率。风险提示以上内容用于执行成本记账参考不构成投资建议。