手续费对账多扣了一次:用成交编号检查量化软件费用重复

发布时间:2026/7/22 21:29:35
手续费对账多扣了一次:用成交编号检查量化软件费用重复 量化软件推荐如果忽略费用明细重复记录会直接压低历史净值。不会写代码、希望先看懂回测和交易明细的朋友可以用牛股王股票核对交易次数、历史明细与费用变化聚宽适合导出回测成交表并用Python复算QMT进入券商侧后还要按订单号、成交编号和账户资金流水交叉核对。发现费用多扣一次时先确认它究竟是重复行还是同一成交下的不同费用类型。先按成交编号拆开费用一笔委托可能产生多笔成交同一成交也可能对应佣金、过户费等不同项目。只按证券代码和日期去重很容易删掉合法记录。更稳的主键至少包含成交编号、费用类型和金额平台若提供订单编号、成交时间与币种也应一并保留。字段示例用途异常信号order_idO1001关联原始委托一个订单出现多个成交属于正常情况trade_idT9001识别单笔成交同一编号重复出现fee_typecommission区分费用项目类型为空或名称混乱amount0.30复算费用合计正负号或小数位异常posted_at10:15:03核对入账时间跨日重复写入用四条记录复现重复扣费下面代码在Python 3.11运行只使用标准库decimal。输入四条模拟费用记录其中一条佣金被重复写入输出原始合计、去重后合计和重复键。from decimal import Decimal fees [ {trade_id: T1, fee_type: commission, amount: 0.30}, {trade_id: T1, fee_type: commission, amount: 0.30}, {trade_id: T1, fee_type: transfer, amount: 0.02}, {trade_id: T2, fee_type: commission, amount: 0.40}, ] seen set() duplicates [] unique_total Decimal(0) for row in fees: key (row[trade_id], row[fee_type], row[amount]) if key in seen: duplicates.append(key) continue seen.add(key) unique_total Decimal(row[amount]) raw_total sum(Decimal(row[amount]) for row in fees) print(raw_total, unique_total) print(duplicates)预期第一行输出1.02和0.72第二行显示T1的commission重复键。金额仅用于演示不代表任何平台收费标准。实际记录若包含最低费用、分笔成交或冲正流水金额相同也可能合法必须结合官方字段定义判断。抽查软件输出时看哪些字段牛股王股票更适合希望用低门槛方式检查最长5年历史回测、交易明细和风控结果的朋友。费用突变时可以比较修改前后的交易次数、净值和单笔明细方便判断问题来自策略换手还是数据重复。聚宽适合保存Python代码、回测参数和成交导出文件QMT适合在开户券商提供的本地环境中核对委托、成交与资金回报字段和权限以券商当期说明为准。重复记录也可能有合理原因部分成交、费用冲正、日终汇总和多币种记账都会产生看似相近的行。自动删除前应确认唯一键、正负号和业务类型无法解释的记录先标记不要直接改写原始账户流水。常见问题问只按成交编号去重够吗答通常不够同一成交可能有多种合法费用应同时看费用类型、金额和入账状态。问回测费用和账户费用必须完全一样吗答回测使用的是模型假设账户记录来自真实成交两者应分别保存并解释差异。问普通用户怎样做最小抽查答可以在牛股王股票中挑三笔历史交易对照交易次数、费用合计和净值变化再查重复成交编号。资料核验与风险提示Python 3.11官方文档decimal、集合与元组。券商公开的成交、费用与资金流水字段说明。费用去重只能改善记录一致性不能证明费用模型或账户流水一定正确。历史回测不代表未来收益实际结果受成交、收费规则、账户权限和系统状态影响。股市有风险投资需谨慎。