3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在使用 ptrade 的 order_value(指定目标价值买入)函数时,实际委托的买入数量是由系统根据您设置的金额和当前股票价格自动计算得出的。您可能会发现实际买入的数量与您用计算器算出的理论值不完全一致,这主要是由于 A股市场的交易规则 以及 ptrade 底层的取整逻辑 决定的。
根据 A 股市场的交易规则,买入股票的数量必须是 100 股的整数倍。因此,order_value 在计算出理论买入股数后,会向下取整到最接近的 100 的倍数。
计算公式:
实际委托股数 = 向下取整 ( 设定买入金额 / 委托价格 / 100 ) * 100
举个例子:
假设您调用 order_value('600570.SS', 10000),希望买入价值 10000 元的恒生电子,当前最新价为 33 元。
这就是为什么您设置了 10000 元,但实际只买入了 300 股(而不是 303 股),且实际花费金额小于设定金额的原因。
根据 ptrade API 文档的明确规定:
如果您在使用 order_value 时没有传入 limit_price(限价)参数,系统在交易场景下会默认使用行情快照的最新价进行报单。由于行情是实时波动的,计算股数时使用的最新价可能与您预期下单时的价格有微小差异,这也会导致最终计算出的 100 股整数倍数量与您的预期产生偏差。
order_value 实际消耗的资金通常会小于或等于您设定的 value。get_snapshot),手动计算好 100 的整数倍股数后,改用 order(security, amount) 函数按指定数量下单。