← 返回文章库

回测允许买0.3股,改成整数手后收益为何变了

2026-10-23 · L5

回测允许买0.3股,改成整数手后收益变化,原因可能是实际持仓与剩余现金变了。应先将目标金额转换为目标股数,再按明确最小数量取整,并把未投入现金留在账户。不能只将收益率乘目标权重,却忽略约束后根本买不到相同暴露。

同一个预算怎样形成两份构造订单?

本页是自行编写的离散数量账表实验,不是市场或框架实测。初始现金10000元,虚构资产买入价37元,目标权重60%,目标金额6000元。连续版允许任意小数股,买6000除37;离散版假设只能按100股为单位向下取整,因此买100股、花3700元,留下6300元现金。

之后价格变为40元,现金不生息,无费用税、滑点、其他持仓和外部入金。100股只是本例构造规则,不代表所有市场、板块或品种的真实最小单位。是否可买零股、如何卖残余股,都需另查适用规则,不能从本例推出统一结论。

数量规则成交股数成交金额元剩余现金元40元估值后总资产元
连续股份162.162162166000.000000004000.0000000010486.48648649
整100股100.000000003700.000000006300.0000000010300.00000000

最小数量改为1股时,向下取整目标为162股。

连续版剩余4000元,价格上涨后总资产约10486.49元;整数版总资产10300元。两者差额来自实际投入金额不同,不是哪个版本发现更好的信号。离散版的实际初始风险资产权重为37%,不是目标60%,报告应同时展示目标与实现权重。

为什么不能把不足一手的资金删掉?

未投入现金仍属于账户,应该参与总资产分母。若把6300元现金从净值中移除,就用3700元投入的价格涨幅冒充整个10000元账户的涨幅。反过来,若按60%权重算收益却实际只买37%,又会高估上涨时的金额回报,低估下跌时现金缓冲的作用。

价格下跌时两种路径的排序也会改变:连续版持仓更多、损失更大,整数版剩余现金更多。本例上涨结果不能证明连续模型一定高估或低估所有路径,而是证明暴露差异会传导到结果。不要从一次上涨对照推导离散交易必然更差。

标题中的0.3股是一个更极端边界:在37元价格下,目标金额只有11.1元,若规则要求100股,订单数量会变零,全部预算留现金。不能把这笔零订单仍按目标资产收益计盈利,也不能为使回测有交易而擅自向上买一整手。

向上取整会产生什么问题?

以6000元目标为例,向上买200股要7400元,虽然本例总现金足够,但已经超过60%目标;若多个资产同时向上取整,组合可能超出总预算。不能只逐资产判断某笔钱够不够,还需核对所有订单与费用之和是否覆盖账户现金。

向下取整也不是唯一适合所有目标的算法。可以有明确的现金分配或优化规则,但要记录选择方法、约束和优先顺序。本页采用向下取整是为了清晰核验,不将它包装成最优配置,也不对不同资产类别推荐交易方式。

若最小数量改为1股,目标约162.16股向下变为162股,剩余现金和最终资产更接近连续版,但仍未完全相同。这个条件变化说明资金规模、价格与最小单位共同影响误差;不是简单把代码里的整数类型换成浮点就解决实际执行。

费用与已有持仓怎样参与数量判断?

真实订单还要为费用留预算。若按不含费用的6000元直接反推数量,成交后可能资金不足;固定最低费用对小订单的影响更大。应将成交金额与费用一同纳入现金检查,再按最小单位取整,不在最后让现金变负后继续正常运行。

已有持仓也会影响调整数量。目标总股数与本次买入股数不是同一个字段,应该先计算目标与现有持仓之差,再应用买卖约束。卖出可否处理零股、是否存在可卖数量限制,需根据具体市场规则确认。本例从空仓开始,不掩饰这一简化。

怎样让两个版本的收益可公平比较?

统一初始现金、价格路径、费用和评价时点,分别重放订单与现金。输出目标权重、实际权重、成交数量、现金余额、持仓市值与总净值。连续版可以作为数学参照,离散版可以作为指定约束下的实现;不能把其中任一条称为真实可执行业绩而缺少实际规则证据。

[!pitfall] 买不到的零碎目标不能继续贡献资产涨幅。保留现金、拒绝订单或采用替代分配,必须是明示规则,不能由结果好坏决定。

成交撮合母文和成本模型提供背景。滑点敏感工具可作基础成本参照,本页数量离散化与现金账独立计算,不假定工具支持最小手数配置。先核对实现暴露,再解释收益差额,才能避免把资金约束误读成策略变化。

多个目标订单一起取整,需要怎样排序?

先确认所有目标基于同一时点资产估值,再生成各自的理想数量,随后依照明确规则处理最小单位与总现金。若一笔先成交使现金不足,后续订单可能缩量,执行顺序本身就会影响结果。不能逐笔都按初始一万元检查资金,最后才发现合计超支。

未成交部分应保留拒单或缩量原因,说明是最小单位、现金不足还是其他约束。报告只有目标权重与收益曲线时,这些实现差异会被隐藏。回看本例,六千元目标并没有变成六千元持仓,因此用实际持仓市值核对现金,才是后续每期重平衡可以继续接上的账。

核验时还应保存零订单,注明因数量不足而未执行。没有交易记录不等于原始目标不存在,也不等于可以继续按理想权重计收益。

计算与来源怎样复核?

Python数学函数原始文档用于核对连乘、平方根和数值运算。本页结论来自明示输入的自行编写账表实验,没有调用第三方回测框架。来源核对日:2026-10-23。

署名:道积君编辑组。本文由AI辅助起草,所有数据为构造教学示例,金额、日期与公式经程序复算,不是实盘、真实市场历史或第三方框架运行结果。仅作投资教育,不推荐证券、平台或产品,不预测或保证收益。

复算资料

本篇编号为DJ104。可下载Python核算脚本(文本)与完整输入输出JSON,对照文中表格复算。脚本文件改存为.py后可用Python运行;数据均为构造教学样本。

这个页面有问题?

提交时会附带当前页面地址和浏览器信息,帮助我们定位问题。不填联系方式即为匿名。