问题描述
想了解如何控制回测中的成交量限制
解决方案
在 PTrade 量化交易平台中,set_limit_mode 函数主要用于设置回测的成交数量限制模式。这个函数仅在回测模块中可用。
1. 函数作用
在真实交易中,一笔委托的成交量受限于当时盘口的实际流动性。默认情况下,PTrade 的回测引擎会模拟这种流动性限制,即撮合成交的数量不会超过该时间段内的实际成交总量(或按 set_volume_ratio 设置的比例)。
然而,对于一些对流动性冲击不敏感的低频策略(例如月度调仓策略),严格的成交量限制可能会导致回测过程繁琐或部分订单无法完全成交。使用 set_limit_mode 函数,你可以选择关闭这种成交量限制,让回测更加便捷。
注意: 如果选择不做限制,实际撮合成交量是可以大于该时间段的实际成交总量的。
2. 接口说明与参数
set_limit_mode(limit_mode='LIMIT')
- limit_mode (str): 设置成交数量限制模式。
'LIMIT':限制成交数量(默认值)。'UNLIMITED':不限制成交数量。
3. 使用示例
以下示例展示了如何在策略初始化时关闭成交量限制:
def initialize(context):
g.security = '600570.SS'
set_universe(g.security)
# 回测中不限制成交数量
set_limit_mode('UNLIMITED')
def handle_data(context, data):
# 策略逻辑
pass
总结
通过合理使用 set_limit_mode,你可以根据策略的特性(高频 vs 低频)灵活调整回测引擎的撮合规则,从而在回测速度和真实性之间取得平衡。