Calculating Profits and Losses for Algorithmic Trading Strategies: A Short Guide
创建于 更新于
摘要
本文提出了一组适用于算法交易策略的盈亏(PnL)计算公式,详细说明了基于本金和报价货币的收益计算方法,考虑了买卖价差和手续费影响。通过示例说明如何在多笔交易中准确计算已实现和未实现盈亏及组合财富变化,为交易模型绩效评估提供了严谨实用的数学框架[page::0][page::1][page::2][page::4][page::5]。
速读内容
- 交易盈亏计算的基础方法汇总 [page::0][page::1]:
- 采用资产负债表记账法追踪基础货币(b)和报价货币(q)的买卖单位和金额。
- 买入使用卖价(ask),卖出使用买价(bid);价差(s)对盈亏计算有重要影响。
- 已实现与未实现盈亏的数学表示 [page::1][page::2]:
- 盈亏计算中区分实时持仓均价$\bar{x}i$和当前买卖价,定义了基于基本单位的盈亏$pi^b$与报价单位$pi^q$。
- 盈亏的增量$\delta pi$计算体现了个别交易的贡献。

- 以SOL/USDT交易为例,通过具体买卖操作展示盈亏计算过程和最终盈亏值转换。
- 绩效计算与回报率表示 [page::3][page::4]:
- 基于初始余额B,交易单位转换为百分比形式计算收益率$\tilde{p}i$。
- 提供计算复利回报率$\hat{p}n$的公式,适用连续多期交易绩效分析。
- 总财富计算与比较基准 [page::4][page::5]:
- 定义总体财富$\mathcal{W}_i$综合持有基础和报价资产,能评价交易策略相较于不交易(基准组合)的优势。
- 提出财富和盈亏在基础和报价货币间的转换关系及其金融意义。
| 时间 | 基础货币余额$\mathcal{B}$ | 报价货币余额$\mathcal{Q}$ | 总财富基准(基础单位) | 总财富基准(报价单位) |
|-------|----------------------|-----------------------|--------------------|---------------------|
| 初始 | 500 | 75,000 | 1,000 | 75,000 |
| 结束 | 942.0558 | 160,385 | ... | ... |
- 通过不同货币视角衡量财富变化,反映价格变动和交易收益影响。
- 本文未涉及量化因子构建或量化策略优化,主要侧重于盈亏计算的理论与应用[page::0-5]。
深度阅读
研究报告详细分析 —— 《Calculating Profits and Losses for Algorithmic Trading Strategies》
---
1. 元数据与概览
- 报告标题: Calculating Profits and Losses for Algorithmic Trading Strategies: A Short Guide
- 作者: J.B. Glattfelder 和 T. Houweling
- 发布时间: 2024年11月22日
- 主题: 本报告聚焦于算法交易策略中利润和亏损(PnL)的计算方法,尤其针对内含买卖价差(spread)情形的评价方案。核心在于建立一套能够实时跟踪已实现和未实现的总盈利亏损的数学公式体系。
- 主要信息及目的: 旨在填补金融实践中关于如何 rigorously 计算和评估算法交易性能的空缺,避开金融理论中过于抽象而缺乏实证支持的弊端,提出一种兼顾实际操作细节的清晰计算框架。报告没有明确评级或目标价,因为其性质更偏研究工具和方法论,而非投资建议。
总结而言,作者希望通过一套简单且结构严谨的计算模型,帮助量化分析师和交易者明晰算法交易中PnL的计算细节,包括如何处理买卖价差、未实现盈亏,以及手续费的影响,从而更精确地评估交易策略的表现。
---
2. 逐节深度解读
2.1 引言(Introduction)[page::0]
- 关键内容: 报告指出金融和经济学领域日益趋向于高数学化,类似于物理学中的统计力学。然而,金融实践者在评估交易表现时面对的却是相对基础的计算任务(主要是算数和百分比计算)。尽管如此,相关内容在标准金融教材中往往被忽视,尤其是点价交易和PnL计算方面经常只被漫不经心地提及。
- 作者观点: 提倡在实践层面给出一套清晰、详尽并实用的PnL计算方法,以弥补理论和实务之间的脱节。作者隐含强调该领域虽然抽象,但对交易业绩的日常核算应不复杂且规范。
2.2 利润计算的基本框架(Returns)[page::1,page::2,page::3]
- 基础定义及假设:
- 对于货币对,定义基础货币(b)和报价货币(q)。
- 价格及交易量通过分期累加方式表达账户余额,即基础货币和报价货币分别通过单位数与价格的乘积累计计算。
- 买入时按照卖价(ask price),卖出时按照买价(bid price)进行计算从而引入价差(spread)。
- 未实现均价 \(\bar{x}i = -\frac{\mathsf{q}i}{\mathsf{b}i}\) 给出当前持仓的成本价。
- 利润计算公式(公式1-3):
\(pi^{\mathsf{b}} = \begin{cases} \mathsf{b}i\left(1-\frac{\bar{x}i}{xi'}\right), & \text{if } \mathsf{b}i \neq 0 \\ -ui \left(1-\frac{\bar{x}{i-1} + \mu}{\bar{x}i}\right), & \text{otherwise} \end{cases}\)
其中 \(\mu\) 根据买卖方向和价格行为调节,有利于捕捉价差和盈亏差异。
- 示例:
对SOL/USDT交易的多个买卖操作列举了细致余额变化(包括基础货币持仓、报价货币余额)、计算得出的未实现均价及PnL,可以看到36个单位的交易中最后PnL准确体现为基础货币盈利1.527和对应报价货币260约定。
- 关键点:
- 在持仓为零时,盈亏计算依赖于闭仓方向。
- 使用中间价(mid price)可以简化模型,但现实中需计入买卖差价。
- 该计算架构兼容手续费考虑,通过在对应货币盈亏中扣除手续费金额。
2.3 绩效计算(Performance)[page::3,page::4]
- 方法扩充:
- 引入初始资金\(B\)表示基础货币余额,交易手数换算为该基础余额的相对比例(百分比 \(\tilde{u}i\)),使得盈亏计算标准化,便于比较和聚合收益。
- 由基础单元转化为百分比后相应公式(2–5)改写为百分比格式,从而得出各时点的百分比盈利 \(\tilde{p}i\)。
- 复利计算公式:
\[\hat{p}n = \prod{i=1}^n (1 + \delta \tilde{p}i) - 1,\]
说明报告考虑了时间点连续盈亏变化的复合效应,反映聚合回报。
- 示例验证:
通过前文SOL/USDT数据套用,验证了按比例计量的盈亏,可以从比例回推累计PnL,与之前固定量PnL完全对应。说明方法对于表现度量紧密且一致性强。
2.4 财富计算及跟踪(Wealth)[page::4,page::5]
- 财富定义:
- 假设除了基础货币余额 \(B = 500\) 外,亦持有报价货币余额 \(\mathcal{Q}=75,000\)。
- 初始财富由两部分分别以各自货币计价并折算,相当于考虑两种资产的加总净值,
\[
\overline{\mathcal{W}}i^\flat := \mathcal{B} + \frac{\mathcal{Q}}{xi'}, \quad
\overline{\mathcal{W}}i^\mathfrak{q} := \mathcal{Q} + xi' \mathcal{B}.
\]
- 财富随交易与价格变动更新公式:
\[
\mathcal{W}i^\flat = \mathcal{B} + \mathfrak{b}i + \frac{1}{xi'}(\mathcal{Q} + \mathfrak{q}i),
\quad \mathcal{W}i^\mathfrak{q} = xi'(\mathcal{B} + \mathfrak{b}i) + \mathcal{Q} + \mathfrak{q}i,
\]
反映账户余额和市价变动对整体财富的影响。
- 收益计算参照基准财富比较:
交易PnL定义为实际财富和“无交易策略”基准财富的差异。
- 示例数据显示:
- 最终财富在基础货币视角下减少,从1000降至约942.06;但在报价货币视角下增长,从150,000升至160,385。
- 因此不同货币基准对财富评价会有差异,但盈亏结果在两个视角下一致(基础货币盈利1.5271,报价货币盈利260)。
- 结论:
结合以上计算框架,通过不同计价货币的财富衡量,能清晰展示真实交易对净资产价值的影响。
---
3. 图表深度解读
报告中主体表格多以示范交易数据为核心,详述每笔交易如何影响账户基础货币和报价货币余额、平均价格以及PnL,具体包含:
3.1 买卖操作与余额记录表(页1与2)
- 描述:
记录了以SOL/USDT对为例的交易数据,包括买入/卖出数量、价格(买价与卖价均列示)、基础货币余额(SOL)、报价货币余额(USDT)、计算的平均价格及PnL。
- 趋势与意义:
余额和未实现均价变化连贯地反映了持仓动态。每次操作对余额的影响精确计算,通过账面簿记模式体现资金流入流出。
- 文本联系:
此表佐证了前述公式中对余额变量的定义,展示了公式的可操作性和实际应用示范。
- 潜在局限:
表格式数据简化了实际交易中的手续费差异、执行滑点等现实因素,但提示了交易成本可纳入PnL调整。这些都是实际应用时需拓展考量的因素。
3.2 盈亏和百分比表现(页3)
- 描述:
展示了计算后的百分比单位交易规模及对应盈亏百分比,且细致比较了按基础单位和报价单位的收益差别。
- 解释:
体现了盈亏计算中将单位换算成百分比的适用性,有助于交易策略绩效横向对比和归一化处理。
- 图表支持文本推断:
进一步验证了盈亏计算的准确性,并且反映出本框架可适应多种量纲转换,增强了运用的灵活性。
3.3 财富变动及最终盈亏总结表(页5)
- 描述:
显示了每次交易后账户基础和报价货币财富的动态及盈亏,明确比较了以不同计价货币的财富变动。
- 趋势:
通过财富曲线的升降,能观察到市场价格变动与交易策略执行对总体资产价值的影响,揭示了不同计价视角对财富评估的差异。
- 文本链接:
完美映射了“财富”章节的计算模型,并以实证数据体现了模型解析的准确性。
- 注记:
数据里的细微差别也强调了在清算时应详细考虑买入卖出价对兑换的影响,这与交易策略实现的细节息息相关。
---
4. 估值分析
报告本质为计算框架工具,无直接涉及公司估值或投资估值模型,因此传统的DCF、P/E等估值方法未涉及。
- 所用方法: 本文主要通过基础货币和报价货币余额的簿记方式计算盈亏,并用bid/ask价差处理买卖成本,体现实务中价格摩擦和交易费用的估算方式。
- 关键输入: 包括订单数量\(ui\)、买卖价\(xi, xi'\)、未实现平均价格、价差\(si\)、初始资金\(B\)等。
- 目标: 评估交易策略执行效果,非公司股价估值。
---
5. 风险因素评估
报告未显式列明风险章节,但从内容整理可获取如下风险点:
- 价格滑点与买卖价差风险: 显示了买卖价差对盈亏的显著影响,若未妥善计入将高估盈利。价差变化及流动性问题会直接影响PnL。
- 手续费结构风险: 报告表明手续费需按照基础货币或报价货币扣除,未计入手续费可能导致净收益估计偏差。
- 汇率波动风险: 财富评估中的两个视角差异提醒,计价方式不同会影响对净值的判断。不同货币标的间汇率风险无法忽略。
- 数据完整性与假设风险: 利用bid/ask价进行计算,假设价格连续可得且成交,忽略市场延迟和掉单等现实执行风险。
报告未提供具体缓解策略,但通过对价差等市场参数的清晰纳入,为风险量化和管理提供了工具基础。
---
6. 批判性视角与细微差别
- 优势:
- 报告系统地结合实际交易价差,绕开简单的中间价计算, reflec实际交易成本与市况,适合实盘收益核算。
- 书面表达严密,实例丰富,有助交易者理解和操作。
- 潜在不足或隐含风险:
- 对手续费及各种隐性成本计算未深入讨论,仅提示了简单扣减,实际操作中费用模型复杂、多样。
- 价格流动性波动和极端行情下模型稳定性未探讨。
- 虽然介绍了不同价格选用对收益计算的影响,但对实际数据质量、成交确认机制等系统风险涉及较少。
- 在财富计算部分,分货币基准的选择引发不同结果,但未建议主观选择标准或多货币组合下的风险控制。
- 内部细微差别:
- 关于持仓为零时价格选择的条件逻辑稍显复杂,要求用户对价差和订单类型高度理解,否则计算有出错风险。
- 文中偶有排版小瑕疵(如公式和表格混排)可能对初学者理解构成长阻碍。
---
7. 结论性综合
本报告提供了一套清晰且数学严谨的算法交易利润和亏损计算框架,涵盖了交易中涉及的基础及报价货币视角、买卖价差(spread)、未实现盈亏、手续费及其归属影响等核心要素。其主要贡献在于:
- 使用簿记理念,将每笔买卖的基础货币单位和报价货币金额直接累加,形成账户余额清晰记录;
- 引入未实现平均价格,以此为基础进行实时盈亏估算,准确反映持仓成本和市价变动;
- 详细阐述价格使用上的买卖价差对收益计算的影响,明晰盘口成本引入办法;
- 通过百分比标准化,把盈亏表现转化为返回投资者易于理解和比较的绩效指标;
- 设计财富衡量模型,即使持有多币种资产,也可灵活评价财富总值及其波动;
- 包含了示例数据和交易序列,展现了理论计算与实务数据的完全对接。
图表和表格示例清晰呈现具体计算过程中的每一个账户变动、价格转换、利润核算和财富价值的变化轨迹,佐证本文公式的准确和实用价值。基于该方法框架,量化交易者可以有效地监控、评估及优化交易策略算法的盈亏表现,同时为风险管理提供基础数据支持。
总体而言,作者成功构建了一种理论与实操并重且容易实施的盈亏计算方法,解决了金融专业领域中普遍存在的对算法交易盈亏精确衡量的缺失问题,推动了算法交易绩效评估向更加科学和系统化的方向演进。[page::0][page::1][page::2][page::3][page::4][page::5]