QMT实盘中的滑点记录和分析方法

实盘交易中,了解自己的策略实际产生了多少滑点,对于优化执行和调整预期至关重要。QMT提供了丰富的交易日志,你可以利用这些数据来统计分析滑点。下面介绍具体步骤和分析方法。


第一步,记录每一笔委托和成交的详细信息。在QMT的策略代码中,可以通过order函数的返回值获取订单ID,然后在on_order_status回调中捕获订单状态变化。当订单状态变为ORDER_STATUS_FILLED(全部成交)时,记录下委托价格和成交均价。委托价格是你发给券商的限价;成交均价是实际成交的平均价格。滑点 = 成交均价 - 委托价格(对于买入,正值是坏滑点;对于卖出,负值是坏滑点)。如果使用市价单,委托价格可以视为触发时的最新价。


代码示例:


`

def on_order_status(context, order):

   if order.status == ORDER_STATUS_FILLED:

       slippage = order.price - order.limit_price if order.side == 'BUY' else order.limit_price - order.price

       log.info(f"Order {order.order_id} slippage: {slippage}")

`


第二步,将滑点数据保存到列表,并在收盘后写入CSV文件。累积一段时间后,你可以计算出平均滑点、中位数滑点、最大滑点等统计量。同时按不同股票、不同时段(开盘、盘中、收盘)分别统计,找出滑点较大的场景。


第三步,分析滑点原因。如果某只股票的平均滑点很大,可能是流动性不足,考虑移出交易标的池。如果开盘时段的滑点普遍较大,可以考虑将策略信号延迟15分钟执行。如果是由于网络延迟导致,可以考虑升级网络或使用云服务器。


第四步,将实盘滑点数据反馈到回测中。例如,实测平均滑点为0.05%,那么回测时设置0.05%的滑点,重新回测看策略是否仍然盈利。如果盈利大幅下降,说明策略对滑点敏感,需要修改策略或改善执行。


另外,滑点还可以分为固定滑点和比例滑点。对于高价股,比例滑点更合理;对于低价股,固定滑点(比如0.01元)更准确。你可以分别建模。


国金证券的QMT提供详细的逐笔成交和委托记录,10万资金即可开通。同时,量化社群中有专门的滑点分析工具脚本,可以自动读取QMT日志生成报告。结合两融全线上办理,你可以快速调整资金分配,减少滑点较大的交易。持续记录和分析滑点,是职业量化交易者的基本习惯。



温馨提示:投资有风险,选择需谨慎。

相关文章