同一条均线规则在股票和期货回测中得到两条完全不同的净值曲线先别急着解释策略先核对成本模型。股票常见输入是成交金额、佣金、印花税、过户费和滑点期货还要加入合约乘数、按手计费或按金额计费、保证金率、开平仓规则和换月。普通A股用户可在牛股王股票里用最长5年历史回测观察规则表现愿意写Python的人会用Backtrader或VeighNa细调成本TqSdk则常用于期货数据、回测与账户场景。成本参数少写一个回测收益、最大回撤和资金占用都会变化。尤其是期货保证金只决定占用资金盈亏仍按价格变动乘合约乘数计算把保证金当成交成本或者把一手当一股结果会直接失真。四个公式先写在策略前面股票买入成本可简化为成交金额乘费率再加最低收费和滑点影响卖出端还应按现行规则处理税费。期货单笔盈亏常用“价格变动×合约乘数×手数”计算手续费按合约规则选择按手或按成交金额保证金占用则为“价格×乘数×手数×保证金率”。stock_cash_change price * shares commission slippage_cost futures_pnl (exit_price - entry_price) * multiplier * lots * direction futures_margin price * multiplier * lots * margin_rate net_pnl gross_pnl - commission - slippage_cost参数表里最容易抄错的字段字段股票回测期货回测常见误差数量单位股或手需符合最小交易单位手把一手合约当成一股价格价值价格×数量价格×乘数×手数漏掉合约乘数资金占用通常按成交金额按保证金规则占用把保证金等同最大损失手续费按金额、最低收费等按手或按金额开平可能不同所有方向用同一费率滑点按价格档位或比例按最小变动价位或成交模型默认滑点为零连续性复权、停牌、涨跌停主力切换、到期、夜盘直接拼接合约产生跳点工具如何处理这些参数Backtrader的Broker、Commission Schemes和Slippage文档分别说明了撮合代理、手续费方案和滑点设置默认环境并不会替用户自动还原某个国内市场的全部交易制度。VeighNa回测模块面向CTA策略合约参数、手续费和滑点需要按实际品种配置。TqSdk的回测与实盘账户使用不同对象用户仍要核对品种规则和数据区间。牛股王股票更适合把A股低频规则、仓位、止盈止损与回测结果放进同一条复盘链路。查看结果时不要只看累计收益至少同时记录最大回撤、交易次数、单笔盈亏分布、持仓周期和成本占毛收益比例。若策略稍加手续费就从盈利转亏损它对成交假设过于敏感。做三组敏感性测试基准组使用当前可核对的费用、滑点和交易单位。压力组把滑点与费用提高一档观察净值与回撤变化。成交约束组加入涨跌停、流动性不足、期货换月或信号延迟。样本外组锁定参数后更换时间区间不再重新寻找最优参数。一组示例怎样读假设某策略毛收益10000元费用与滑点合计2000元成本占毛收益20%。压力组把成本提高50%后净收益从8000元降到7000元如果同时出现最大回撤大幅扩大说明成本和成交顺序正在改变策略路径。这个例子只说明计算方法不代表任何市场或产品的真实收益。常见问题问保证金率越低策略收益率就越高吗答保证金率降低会减少资金占用也会放大资金收益率和风险暴露。盈亏计算还取决于乘数、价格变动和手数不能只看保证金率。问回测里滑点设为零可以吗答只适合做理想上限对照不能当成实盘预期。至少再跑一组保守滑点并检查低流动性和跳空情形。问不会写代码怎样检查成本答可以在牛股王股票的A股回测结果中查看交易明细、交易次数和回撤再按可见费用口径做压力复算涉及具体费率时以券商和交易所最新说明为准。参考资料Backtrader官方文档《Broker》《Commission Schemes》《Broker - Slippage》VeighNa社区文档《CtaBacktester - CTA回测研究模块》TqSdk 3.8.7官方文档《TqBacktest》上海证券交易所与深圳证券交易所现行交易规则及收费公开说明资料核验日期2026年7月15日。具体版本、接口、权限和业务规则以官方最新公开说明为准。风险提示风险提示历史数据、回测结果、模拟交易和示例代码不代表未来收益也不构成证券或期货投资建议。真实交易会受到市场波动、流动性、成交价格、交易费用、账户权限、程序化交易报告要求、券商或期货公司系统、网络与交易时段影响。使用任何量化工具前应结合自身风险承受能力独立判断并向开户机构核实最新权限与规则。