3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 QMT(迅投量化交易系统)中,smart_algo_passorder 提供了强大的智能算法交易能力(如 TWAP、VWAP、冰山算法等)。为了避免大单对市场的冲击,投资者常常需要限制算法交易的执行时间段。
在 smart_algo_passorder 函数中,控制智能算法执行时间区间的参数为可选参数 startTime 与 endTime:
startTime:智能算法开始时间,格式为 "HH:MM:SS"(如 "09:30:00")。若缺省,默认为 "09:30:00"。endTime:智能算法截止时间,格式为 "HH:MM:SS"(如 "14:30:00")。若缺省,默认为 "15:30:00"。smart_algo_passorder 的完整参数签名如下:
smart_algo_passorder(opType, orderType, accountid, orderCode, prType, modelprice, volume, strategyName, quickTrade, userOrderId, smartAlgoType, limitOverRate, minAmountPerOrder, [targetPriceLevel], [startTime], [endTime], ContextInfo)
opType: 操作类型(如 23 表示股票买入,24 表示股票卖出)。orderType: 下单方式(如 1101 表示单股/单账号/股手方式)。accountid: 资金账号。orderCode: 股票代码(如 '000001.SZ')。prType: 选价类型(如 5 最新价,11 指定价)。modelprice: 模型价格(配合 prType=11 使用,否则填 -1)。volume: 下单数量(股/元/%)。strategyName: 策略名称。quickTrade: 触发模式(0 正常模式,1 快速交易)。userOrderId: 投资备注。smartAlgoType: 智能算法类型,TWAP 填 'TWAP'。limitOverRate: 参与量比(0-100,如 20 代表 20%)。minAmountPerOrder: 最小委托金额(元)。targetPriceLevel: 目标价格层级(仅冰山算法有效,可填 0)。startTime: 开始执行时间(格式 "HH:MM:SS")。endTime: 截止执行时间(格式 "HH:MM:SS")。以下示例展示了如何在 QMT 中调用 TWAP 智能算法,并将算法执行时间限定在 09:30:00 到 14:00:00 之间:
#encoding:gbk
def init(ContextInfo):
# 设置交易账号
ContextInfo.set_account('600000105')
def handlebar(ContextInfo):
# 仅在最后一根 Bar 上触发,避免重复下任务
if not ContextInfo.is_last_bar():
return
account = '600000105'
stock_code = '000001.SZ'
# 使用 TWAP 智能算法买入 50,000 股平安银行
# 限制量比为 20%,最小委托金额 0,指定执行时间段为 09:30:00 至 14:00:00
smart_algo_passorder(
23, # opType: 股票买入
1101, # orderType: 单股/单账号/按股数
account, # accountid: 资金账号
stock_code, # orderCode: 000001.SZ
5, # prType: 最新价
-1, # modelprice: 忽略
50000, # volume: 50000股
"TWAP_Strategy", # strategyName: 策略名
1, # quickTrade: 快速交易(盘中立即触发)
"twap_order_01", # userOrderId: 备注
"TWAP", # smartAlgoType: TWAP 算法
20, # limitOverRate: 20% 参与量比
0, # minAmountPerOrder: 最小金额限制
0, # targetPriceLevel: 冰山算法占位参数
'09:30:00', # startTime: 算法开始时间
'14:00:00', # endTime: 算法截止时间
ContextInfo
)
quickTrade=1 或 quickTrade=2 时有效触发。'HH:MM:SS' 格式(必须带秒),例如 '10:30:00'。endTime 后委托未完全成交,算法任务会自动停止,未成交部分将不会继续拆单发送。