问题描述
月度调仓策略不需要成交量限制可以吗
解决方案
在PTrade量化交易平台中,对于月度调仓等低频策略,完全可以不需要设置成交量限制。
低频策略通常对流动性冲击不是很敏感,取消成交量限制可以让回测过程更加便捷和高效。PTrade 提供了专门的 API 接口 set_limit_mode 来实现这一功能。
set_limit_mode 接口详解
set_limit_mode 函数用于设置回测的成交数量限制模式。默认情况下,回测引擎会对成交数量进行限制,以模拟真实的盘口流动性。
函数原型:
set_limit_mode(limit_mode='LIMIT')
参数说明:
limit_mode(str): 设置成交数量限制模式。'LIMIT':限制成交数量(默认值)。'UNLIMITED':不限制成交数量。
如何在策略中设置不限制成交量?
你只需要在策略的 initialize 初始化函数中调用 set_limit_mode('UNLIMITED') 即可。
代码示例:
def initialize(context):
g.security = '600570.SS'
set_universe(g.security)
# 回测中不限制成交数量,适合月度调仓等低频策略
set_limit_mode('UNLIMITED')
def handle_data(context, data):
# 你的调仓逻辑
pass
⚠️ 注意事项
- 仅在回测模块可用:该函数仅用于回测环境,实盘交易中订单会直接报送柜台,受真实市场流动性限制。
- 撮合逻辑变化:设置为
'UNLIMITED'(不做限制)之后,回测引擎在撮合时,实际撮合成交量是可以大于该时间段的实际成交总量的。这意味着即使某只股票当天真实成交量只有100手,你的策略也能在回测中成交1000手。因此,在评估策略容量时需要开发者自行注意。