磐石量化交易数据研究方法:Basket、已实现盈亏与执行质量如何统计
公开磐石量化研究报告的基础统计口径,包括 Basket 生命周期、已实现盈亏、持仓浮盈亏、余额净值、点差滑点与匿名化原则。
磐石量化的数据研究坚持先公开口径、再发布结果。任何月度报告、版本对比或执行质量统计,都应说明数据区间、样本范围、账户类型、交易品种、EA版本和统计限制。
核心结论
一轮策略表现不能只看最后平仓时的持仓浮盈亏。完整分析至少要区分账户余额、账户净值、轮次内已实现盈亏、当前持仓浮盈亏和交易成本;执行质量还要逐笔记录请求价格、成交价格、点差与滑点。
Basket 生命周期怎样定义
Basket 是同一轮策略从启动到全部相关订单退出的生命周期。方向切换、分批平仓或同一品种多次加仓,不应自动被当作新的 Basket,除非策略明确结束上一轮并重新初始化。
每个 Basket 至少应保存以下字段:
| 字段 | 含义 |
|---|---|
| Basket ID | 一轮策略的唯一匿名标识 |
| EA 名称与版本 | 例如飓风、飓风 Plus、麒麟及对应版本 |
| 品种 | 经纪商实际交易符号及标准化品种名称 |
| 账户计价类型 | 美元账户、美分账户或其他计价方式 |
| 开始与结束时间 | 统一时区后的轮次边界 |
| 期初与期末余额 | 用于核对轮次内已实现结果 |
| 最大持仓笔数与手数 | 衡量订单密度和保证金压力 |
| 最大浮动亏损 | 轮次运行期间的最不利浮动状态 |
Basket ID、账户号和授权记录在公开报告前必须匿名化,不能让统计数据指向具体客户。
已实现盈亏和浮动盈亏
已实现盈亏是已经平仓并进入账户历史的结果;浮动盈亏是当前仍持有订单按市场价格估值的结果。两者不能互相替代。
对于仍在运行的 Basket,可使用下面的观察口径:
当前轮次状态 = 轮次内已实现盈亏 + 当前相关持仓浮动盈亏
对于已经全部退出的 Basket,应优先使用经交易历史核对后的轮次净变化,并明确手续费、库存费和其他成本是否已包含。只记录“最后一次全部平仓前的浮盈亏”,会遗漏此前已经分批落袋的结果。
余额与净值
- 余额主要反映已经结算的交易结果。
- 净值通常等于余额加当前浮动盈亏,并可能受平台具体费用展示方式影响。
- 日内盈利、账户累计盈利和单个 Basket 盈利属于不同统计层级,不应混用。
公开报告需要说明起始资金、入金出金处理方式以及美分账户是否已换算成基础货币单位。
点差与滑点怎样统计
点差是同一时刻 Ask 与 Bid 的差;滑点是交易请求参考价与实际成交价的偏差。两者都应使用品种的实际 point、报价位数和方向进行标准化。
逐笔记录至少包括:
- 交易品种和方向。
- 请求时间、请求价和实际成交时间、成交价。
- 请求时的 Bid、Ask、点差和报价位数。
- 订单类型、成交原因和交易服务器返回码。
- 以价格、点数和账户货币分别表示的偏差。
买单和卖单的有利滑点、无滑点和不利滑点必须采用一致符号规则,不能只统计对策略不利的样本。
美元账户与美分账户
美分账户的余额和盈亏数值通常按美分显示。跨账户合并前必须换算到统一基础单位,同时保留原始计价类型。否则 100 美分可能被错误解释成 100 美元。
报告应分别列出不同账户类型的样本量;样本不足时不做强行对比。
报告发布门槛
正式数据报告至少应包含:
- 报告区间和生成日期。
- 样本纳入与排除规则。
- EA名称、版本与品种分布。
- 账户计价单位和换算方式。
- 核心指标定义与计算方法版本。
- 异常数据、缺失数据和已知偏差。
- 结论适用范围与风险提示。
如果数据仍在补录或口径发生变化,报告必须标记为“初步结果”并保留修订记录。
这套方法不能证明什么
历史交易统计只能描述已观察样本,不能证明策略未来盈利,也不能消除行情、杠杆、流动性、网络、授权或程序故障风险。不同经纪商、品种后缀、报价位数和执行环境可能产生显著差异。
口径问答
为什么 Basket 平仓时的浮动盈亏不等于整轮盈利?
因为一轮运行期间可能已经分批平仓并形成已实现盈亏。完整轮次结果应合并期初、期末账户变化以及轮次内已实现和未实现部分,不能只读取最后一刻的持仓浮盈亏。
滑点能否被当成固定值?
不能。滑点应按请求价与实际成交价的差值逐笔统计,并同时记录方向、品种、时间、点差和执行环境。历史均值只能用于估计,不能保证下一笔成交。