3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在量化回测中,**滑点(Slippage)**是模拟真实交易中冲击成本的重要参数。为了在策略运行(handlebar)过程中动态获取当前设置的滑点,并进行更精确的交易成本或净值估算,QMT 提供了 ContextInfo.get_slippage() 接口。
本文将详细介绍该接口的使用方法、返回格式及代码示例。
ContextInfo.get_slippage() 用于获取当前策略回测所设定的滑点参数。
dict),包含以下键值对:
slippage_type:滑点类型(0 代表 tick 跳数设置,1 代表固定值价格设置,2 代表价格比例设置)。slippage:具体的滑点数值。以下是一个完整的 QMT 策略示例。我们在 init 中设置滑点,并在 handlebar 中通过 ContextInfo.get_slippage() 动态获取并打印该滑点参数:
#coding:gbk
def init(ContextInfo):
# 设定基础股票池
ContextInfo.set_universe(['000001.SZ'])
# 设定策略回测滑点:按照固定值(价格)设置滑点值为 0.01
# set_slippage 参数:(slippageType, slippage)
ContextInfo.set_slippage(1, 0.01)
def handlebar(ContextInfo):
# 仅在最后一根 Bar 打印滑点信息,避免日志过多
if ContextInfo.is_last_bar():
# 获取当前设置的滑点参数
slippage_info = ContextInfo.get_slippage()
print("当前回测滑点配置:", slippage_info)
# 输出示例: {'slippage_type': 1, 'slippage': 0.01}
# 提取具体的滑点值
current_slippage = slippage_info.get('slippage', 0.0)
print(f"当前滑点数值为: {current_slippage}")
ContextInfo.set_slippage() 设置。若两处同时设置,以代码中设置的值为准。ContextInfo.do_back_test 进行模式判断,避免实盘运行时报错。