3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 ptrade 量化交易平台中,股票委托买入数量自动取整为 100 股,主要是为了遵循中国 A 股市场的实际交易规则,同时也是 ptrade 平台底层 API 的一种保护机制。
以下是详细的原因解析及相关注意事项:
根据沪深交易所的规定,A 股股票的买入申报数量必须是 100 股(即 1 手)的整数倍。为了让回测环境尽可能逼近真实的实盘交易环境,ptrade 引擎在处理股票买入委托时,会自动将计算出的数量向下取整到 100 的整数倍。
在 ptrade 中,使用 order 系列函数(如 order、order_target、order_value、order_target_value)进行股票委托时,系统会自动进行数量规整:
举个例子:
如果您使用 order_value('600570.SS', 10000) 尝试买入价值 10000 元的股票,假设当前股价为 33 元,理论上可以买入 303.03 股。但由于取整机制,ptrade 会自动将委托数量调整为 300 股,实际消耗资金约为 9900 元。
虽然买入必须是 100 股的整数倍,但在 A 股市场中,由于分红送转等原因,账户中可能会产生不足 100 股的“零股”。
ptrade 同样兼容了这一规则:当您卖出所有股票时,不受 100 股取整的限制。例如,当您调用 order_target(security, 0) 尝试清仓某只股票时,即使账户中持有 150 股,系统也会将这 150 股全部卖出,而不会只卖出 100 股。
由于这种自动取整机制的存在,您在编写策略时需要注意:
order_value 或 order_target_value 时,实际成交金额通常会略小于您设定的目标金额,因为多余的资金不足以买入完整的 100 股。