交易日结束后,交易所按照当日结算价重新计算所有未平仓合约的盈亏,并完成保证金、手续费及应收应付款项的资金划转。这套制度称为"当日无负债结算",也称"逐日盯市"。
股票账户可以长期持有账面亏损。期货账户不具备同样的容错结构。价格继续朝不利方向移动,保证金和可用资金会被直接扣减。资金不足时,追加保证金或强行平仓成为结算系统的后续动作。极端行情下,账户权益还可能跌破零,形成穿仓。
两者都显示浮动盈亏。底层结算逻辑不同。
逐日盯市的底层逻辑:期货账户每天都在重新计价
期货合约采用保证金交易。投资者支付的不是合约全部价值,而是按规定比例缴纳保证金,建立对应的多头或空头持仓。
研究期货风险,不能只看开仓价格与最新价格之间的差值。结算系统每天使用新的基准价格,将持仓盈亏切割成一个个交易日区间。
设:
- 当日结算价为 \(S_t\)
- 上一交易日结算价为 \(S_{t-1}\)
- 持仓手数为 \(N\)
- 合约乘数为 \(M\)
当日盯市持仓盈亏可以表示为:
\[
P_t=(S_t-S_{t-1})\times N\times M
\]
当天开仓的持仓,基准价格不是上一交易日结算价,而是当天开仓价。
如果是空头持仓,方向相反:
\[
P_t=(S_{t-1}-S_t)\times N\times M
\]
这不是统计图表中的未实现收益。它会进入账户资金结算。
假设某合约上一交易日结算价为 3500,合约乘数为 300,账户持有 1 手多单。当日结算价下降到 3480,则当日盯市亏损为:
\[
(3480-3500)\times1\times300=-6000
\]
这 6000 元会从账户权益中扣除。若账户原本可用资金不足,风险状态立即变化。持仓数量没有改变,账户的偿付能力已经改变。
累计浮动盈亏仍然可以按照初始开仓价计算:
\[
P_{\text{累计}}=(S_t-S_{\text{开仓}})\times N\times M
\]
两个公式用途不同。
- 盯市持仓盈亏:用于当日结算和资金划转。
- 累计浮动盈亏:用于观察从开仓至今的总盈亏。
如果把两者混用,就会错误判断期货账户的真实变化。
为什么期货每天都要结算
期货市场的杠杆结构决定了结算频率。
一手合约对应的名义价值,通常远高于实际缴纳的保证金。保证金比例通常在合约价值的 5%–12% 范围内,具体比例取决于品种、交易所规则以及风险调控安排。
保证金比例较低时,价格小幅波动就会对账户权益产生较大影响。
例如,名义合约价值为 100 万元,保证金比例为 10%,开仓占用保证金约为 10 万元。若合约价格产生 1% 的不利变化,对应合约价值变化约为 1 万元。相对于 10 万元保证金,账户权益已经减少约 10%。
这就是杠杆。
杠杆不是收益放大器的单向版本。它同时放大保证金消耗速度。价格变化本身不需要很大,账户就可能触发风险控制。
每日无负债结算的目标不是预测价格,也不是优化收益。目标是把市场当日产生的盈亏及时划转,避免亏损长期滞留在持仓账面上,直到最后集中暴露。
结算价的计算玄机:它不是最后一笔成交价
期货交易中,收盘价和当日结算价不是同一个概念。
收盘价通常指交易时段结束附近的成交价格。结算价则由交易所按照规定方法计算,用于当日持仓盈亏、保证金和相关资金的结算。
商品期货的当日结算价,通常采用当日全天成交价格按成交量加权平均的方式计算。
金融期货,例如沪深 300 股指期货,其当日结算价通常采用最后一小时成交价格按成交量加权平均的方式计算。
因此,最后一笔成交价格不一定等于结算价。尾盘的单笔价格也不能直接替代结算基准。
成交量加权平均意味着什么
成交量加权平均价格可以表示为:
\[
S_{\text{settle}}=
\frac{\sum_{i=1}^{k}P_iV_i}
{\sum_{i=1}^{k}V_i}
\]
其中:
- \(P_i\) 是第 \(i\) 个成交价格;
- \(V_i\) 是对应成交量;
- \(k\) 是统计区间内的成交记录数量。
价格和成交量共同决定结果。
如果尾盘出现一笔异常价格,但成交量很小,它对结算价的影响可能有限。如果某一价格区间成交集中,则该区间对结算价的影响更大。
这会导致一个常见现象:
- 盘面最后成交价上涨;
- 当日结算价没有同步上涨;
- 多头按照结算价计算的当日盈利低于按收盘价估算的盈利;
- 空头的当日亏损也可能与收盘价估算结果不同。
交易软件中看到的浮动盈亏,有时是按照最新价估算,有时是按照结算价计算。两者在交易时段内可能同时存在。必须确认字段定义,不能只看颜色和正负号。
商品期货与金融期货的结算口径
| 参数 | 商品期货 | 金融期货 |
|---|---|---|
| 结算价常见计算区间 | 当日全天成交价格 | 最后一小时成交价格 |
| 常见计算方式 | 成交量加权平均 | 成交量加权平均 |
| 结算用途 | 计算持仓盈亏、保证金及相关资金 | 计算持仓盈亏、保证金及相关资金 |
| 是否等于最后成交价 | 不一定 | 不一定 |
| 风险判断 | 需要结合品种规则和结算单 | 需要结合金融期货具体规则和结算单 |
表格只能说明一般规则。具体合约仍应以交易所公告、合约规则和当日结算单为准。
不应把所有期货品种的结算细节压缩成一个固定公式。公式结构相似。价格采样区间、合约乘数、保证金比例、涨跌停板和风险参数可能不同。
期货账户真正的日终价格,不是屏幕上最后跳出的那个数字,而是交易所用于清算的结算价。
资金划转的残酷性:期货亏损和股票浮亏不在同一层
股票交易的基础逻辑是买入资产,卖出后完成交易。股票价格下跌时,账户显示浮动亏损,但在卖出之前,这部分亏损通常不会每日从账户现金中划走。
期货不同。
每日结算后,当日盈利可以转化为账户可用资金的一部分。亏损则直接减少账户权益和可用资金。持仓是否平仓,不改变每日结算的发生。
股票套牢的账户结构
以股票多头为例:
1. 投资者支付全部买入金额。
2. 股票价格下跌。
3. 账户出现浮动亏损。
4. 未卖出前,亏损通常停留在持仓估值层面。
5. 只要没有融资负债或其他强制处置条件,投资者可以继续持有。
这里的核心问题是机会成本、资金占用和资产价格风险。股票价格可以长期低于买入价。投资者可能承受多年等待,也可能最终卖出确认亏损。
但股票账户通常不会因为普通现货持仓的单日价格下跌,自动把亏损划转为需要当日补足的现金负债。
期货持仓的账户结构
期货多头价格下跌时:
1. 当日结算价低于上一交易日结算价。
2. 当日盯市亏损进入结算。
3. 账户权益减少。
4. 可用资金减少。
5. 保证金占用不一定同步减少。
6. 可用资金不足时,账户进入风险处置区间。
7. 未及时补充资金或降低持仓,可能被强行平仓。
期货持仓不能简单套用股票套牢逻辑。
股票投资者经常用等待来换取未来价格修复。期货账户的等待需要现金流支撑。只要不利价格变化持续发生,逐日结算就持续消耗权益。
"没有平仓,所以没有亏损"是错误判断。
平仓决定累计盈亏是否最终结束。每日结算决定当日亏损是否已经进入账户资金。
期货盈利为什么可以影响次日资金
当日结算完成后,盈利会计入账户。根据规则和账户状态,盈利可以在次日提取或用于开立新仓。
这形成资金流的正向变化:
- 结算价有利变化;
- 盯市盈利增加;
- 账户权益增加;
- 可用资金可能增加。
亏损方向完全相反:
- 结算价不利变化;
- 盯市亏损增加;
- 账户权益下降;
- 可用资金收缩;
- 追加保证金压力上升。
这里的"可用资金"不是一个简单的现金余额。它通常还受到持仓保证金、手续费、平仓盈亏、风险准备以及其他账户项目影响。不同交易软件的字段命名可能存在差异。
至少要区分以下概念:
- 账户权益:结算后账户总体资产状态。
- 保证金占用:维持现有持仓所需要的资金。
- 可用资金:在满足现有持仓资金要求后,可继续交易或满足其他资金用途的余额。
- 浮动盈亏:按照某个价格基准计算的持仓盈亏。
- 平仓盈亏:已平仓头寸对应的交易结果。
- 风险度:账户权益与持仓保证金之间的比例关系,具体计算方式以机构规则为准。
只看账户总资产,不看可用资金,无法判断持仓是否接近风险线。
穿仓的法律边界:保证金归零不是责任终点
穿仓是期货风险中最容易被误解的概念之一。
当剧烈行情、连续涨跌停板或市场流动性不足导致持仓无法及时平仓时,账户权益可能降至零以下。此时,可用资金和保证金可能都呈现负数。亏损超过原始本金的部分,就是穿仓形成的超额亏损。
穿仓不是普通意义上的亏损扩大。它意味着账户资产不足以覆盖结算债务。
穿仓如何形成
可以拆成四个条件:
1. 账户采用保证金交易,持仓具有杠杆。
2. 标的价格发生剧烈不利变化。
3. 账户权益快速下降。
4. 持仓无法按照预期价格及时平仓,或者平仓成交不足。
如果市场连续涨停,空头可能无法以理想价格买入平仓;如果市场连续跌停,多头卖出平仓可能面临同样问题。价格触及涨跌停板不等于一定有足够对手盘。
强平指令可以发出。成交结果仍取决于市场流动性。
这一区分非常关键。风险控制系统能处理订单。系统不能保证极端情况下存在足够成交量。
为什么保证金不足后仍可能继续亏损
当账户保证金不足时,期货公司通常会按照风险管理规则采取通知、追加资金、限制开仓、减仓或强行平仓等措施。具体触发时间、阈值和执行流程,可能因机构、品种和市场状态而有差异。
但强平并不等于亏损在发出指令时停止。
如果平仓价格继续朝不利方向移动,或者挂单无法成交,账户亏损仍会累积。极端情况下,账户负债超过本金。
穿仓后的超额负债,不由期货公司自动承担。投资者仍可能承担补足资金的法律责任。期货公司若先行垫付,仍可能向投资者追偿。
因此,期货账户的最大风险不能简单写成"本金全部亏完"。
在正常流动性条件下,止损、减仓和强平可以把亏损限制在一定范围内。在极端行情中,执行价格、成交速度和跳空幅度会使实际亏损超过预设水平。
强平是风控动作,不是亏损上限。无法成交时,风险控制只改变订单状态,不改变市场价格。
穿仓与普通亏损的区别
| 状态 | 账户权益 | 是否存在超额负债 | 典型处理 |
|---|---|---|---|
| 正常盈利 | 大于持仓保证金及相关费用 | 否 | 可用资金增加 |
| 正常亏损 | 仍高于风险要求 | 否 | 继续持仓或主动减仓 |
| 保证金不足 | 低于机构风险要求 | 通常尚未形成 | 追加资金、减仓或强平 |
| 账户权益接近零 | 资金缓冲极低 | 可能形成 | 立即降低风险暴露 |
| 穿仓 | 低于零 | 是 | 补足超额亏损,可能发生追偿 |
表中的"通常"不能理解为法律结论。账户是否已经构成特定意义上的穿仓,需要结合结算单、持仓、成交记录和相关合同规则判断。
从规则到实操:用每日结算单监控账户健康度
期货交易不适合只依赖盘中盈亏显示。日终结算单包含的信息更接近实际资金状态。
建议把结算单转化为结构化数据,而不是只保存截图。
第一层:核对结算价
每天先确认三个价格:
- 开仓价;
- 上一交易日结算价;
- 当日结算价。
如果持仓跨越多个交易日,不能用开仓价直接计算当天盈亏。当天结算应以昨日结算价为基准。
如果是当日新开仓,则使用开仓价。部分软件会同时展示开仓均价、最新价和结算价。字段名称相似,含义不同。
可以建立如下计算:
\[
\Delta S_t=S_t-S_{t-1}
\]
再将价格变化乘以手数和合约乘数,得到理论盯市盈亏。最后与结算单中的持仓盈亏核对。
核对结果不一致时,检查以下项目:
- 多空方向是否写反;
- 合约乘数是否正确;
- 手数是否包含加仓和减仓;
- 当日是否发生部分平仓;
- 结算价是否被误当成收盘价;
- 手续费、交割费用或其他费用是否单独计入。
这是最基础的对账。没有这一步,后续风险分析都不可靠。
第二层:追踪权益变化
账户权益不是单日价格变化的简单结果。可以拆成:
\[
E_t=E_{t-1}+P_t+C_t-W_t-F_t
\]
其中:
- \(E_t\) 为当日结算后账户权益;
- \(P_t\) 为当日持仓盯市盈亏;
- \(C_t\) 为入金;
- \(W_t\) 为出金;
- \(F_t\) 为手续费及其他费用。
如果存在平仓盈亏,需要按照结算单的记账方式纳入核算。不同账户系统对平仓盈亏与持仓盈亏的展示方式可能不同,不能机械套用字段名称。
权益曲线比单笔交易盈亏更有价值。
单笔亏损只能说明一次价格变化。权益曲线能够显示:
- 连续亏损长度;
- 回撤深度;
- 资金恢复速度;
- 持仓规模是否随权益下降而被动升高;
- 策略是否在波动扩大时暴露出非线性风险。
对于量化策略,还应记录每日结算价、持仓数量、保证金占用、可用资金和风险度。只记录收盘价和策略净值,信息不完整。
第三层:计算保证金缓冲
设账户权益为 \(E\),持仓保证金为 \(M\),则可以用简单比例观察资金缓冲:
\[
B=\frac{E-M}{M}
\]
其中 \(B\) 表示相对于持仓保证金的权益缓冲。这个指标不是所有期货公司的正式风险指标,但可以用于策略内部监控。
还可以记录绝对缓冲:
\[
B_{\text{abs}}=E-M
\]
两个指标作用不同。
- 相对缓冲适合比较不同规模账户。
- 绝对缓冲适合判断还能承受多少金额的亏损。
如果持仓保证金为 20 万元,账户权益为 30 万元,则绝对缓冲为 10 万元,相对缓冲为 50%。
如果价格继续不利变化,理论上这 10 万元就是账户抵御亏损的资金空间。但这不是安全承诺。手续费、保证金上调、涨跌停板、滑点和无法成交,都会减少实际缓冲。
第四层:模拟下一次结算
不要只计算一个固定止损点。应当模拟多个价格冲击。
设价格冲击为 \(\delta\),则单日理论损益可以写为:
\[
P(\delta)=\delta\times N\times M
\]
对多头,\(\delta<0\) 表示下跌;对空头,方向相反。
至少模拟以下场景:
- 正常波动;
- 单日大幅波动;
- 连续两个交易日不利变化;
- 保证金比例上调;
- 无法在预设价格成交;
- 开盘跳空后直接触及涨跌停板。
模拟结果需要与账户权益、持仓保证金和可用资金联立判断。只看价格百分比没有意义。相同的价格变化,对不同合约乘数、不同手数和不同保证金账户产生的资金影响完全不同。
第五层:把手续费从回测中单独拆出
期货策略常见的回测误差,不在信号本身,而在交易成本。
每日结算并不会自动消除手续费。高频换手、日内反复开平、夜盘交易和滑点,都会影响净收益。
回测至少应拆出:
- 毛收益;
- 平仓盈亏;
- 手续费;
- 滑点;
- 保证金占用;
- 最大回撤;
- 连续亏损;
- 资金利用率。
如果策略只在收盘价上成交,不模拟结算价与实际成交价差异,结果可能存在系统性偏差。
对于跨日持仓,还要单独处理:
- 当日结算价作为下一交易日的盈亏基准;
- 合约换月;
- 合约乘数变化;
- 主力合约切换;
- 到期日临近的流动性变化;
- 涨跌停板导致的无法平仓。
这些不是代码格式问题。它们会直接改变回测的收益分布。
期货每日结算与股票套牢:五个核心差异
将两种交易制度放在同一张表中,差异更清晰。
| 比较维度 | 股票现货持仓 | 期货持仓 |
|---|---|---|
| 资金结构 | 通常支付全部买入金额 | 以保证金控制较大名义价值 |
| 亏损记账 | 未卖出前通常表现为浮动亏损 | 每个交易日按结算价划转盈亏 |
| 持仓期限 | 一般没有固定合约到期日 | 合约有到期和交割安排 |
| 资金压力 | 普通现货持仓不产生逐日追加保证金要求 | 可用资金不足时可能追加保证金或强平 |
| 杠杆效应 | 普通现货交易杠杆较低或没有 | 杠杆显著,盈亏按合约乘数放大 |
| 极端风险 | 价格下跌可能接近本金损失 | 可能因穿仓形成超出本金的负债 |
| 结算基准 | 主要关注买入价、卖出价和市值 | 关注开仓价、昨日结算价、当日结算价 |
| 流动性影响 | 价格下跌仍可能存在卖出机会 | 涨跌停板或流动性不足可能导致无法平仓 |
"股票套牢"描述的是价格低于成本后的持有状态。
"期货风险扩大"描述的是保证金账户持续承受资金划转后的偿付能力变化。
两者都可能产生长期亏损。期货多了一层强制资金约束。
期货策略为什么不能使用股票式的补仓逻辑
股票补仓通常围绕持仓成本下降展开。期货补仓则会同时增加:
- 合约手数;
- 名义敞口;
- 保证金占用;
- 每单位价格变化对应的资金损益;
- 追加保证金压力。
如果价格继续不利变化,平均成本下降并不等于风险下降。
以多头为例,增加仓位后,单位价格变动对应的亏损金额增加:
\[
\frac{\partial P}{\partial S}=N\times M
\]
手数 \(N\) 增加,损益对价格的敏感度同步增加。
这就是仓位的一阶风险暴露。补仓可以改变持仓均价,但也改变账户对价格变化的斜率。
在波动率上升阶段,补仓还可能触发二阶风险:
- 实际价格跳动扩大;
- 滑点增加;
- 保证金比例调整;
- 盘口深度下降;
- 平仓成交概率下降。
从风险模型角度看,补仓不是单纯的成本优化,而是重新定义了敞口。
如果策略允许补仓,应提前规定:
1. 最大合约手数;
2. 单品种最大保证金占比;
3. 连续亏损后的减仓规则;
4. 账户权益下降后的仓位缩放;
5. 极端行情下的停止开仓条件;
6. 合约临近到期时的换月逻辑。
这些规则必须能被代码执行。无法表达成明确条件的风险控制,通常无法稳定执行。
组合管理:单品种风险不等于账户风险
期货账户可能同时持有多个品种。单独观察每个合约的保证金比例,不足以判断组合风险。
原因有三:
- 不同品种的价格变化可能存在相关性;
- 多个仓位可能在同一宏观变量下同时亏损;
- 保证金占用会在波动扩大时迅速消耗资金。
组合层面至少要跟踪以下维度:
- 单品种名义敞口;
- 单品种保证金占比;
- 多空方向;
- 品种间相关性;
- 组合净敞口;
- 组合最大单日损失;
- 组合历史最大回撤;
- 组合在连续不利行情下的资金剩余。
不能因为持仓分散在多个合约,就默认风险已经分散。
如果多个商品期货都暴露于相同的价格因子,名义上是多个品种,统计上可能是同一个风险来源。
组合回测可以使用简单的日收益矩阵:
\[
R_t=(r_{1,t},r_{2,t},...,r_{n,t})
\]
若组合权重为 \(w\),则组合收益为:
\[
r_{p,t}=w^\mathsf{T}R_t
\]
进一步可以估计协方差矩阵:
\[
\Sigma=\operatorname{Cov}(R)
\]
组合波动率为:
\[
\sigma_p=\sqrt{w^\mathsf{T}\Sigma w}
\]
这套模型不是最终答案。相关性会变化,极端行情下协方差可能失真,历史样本也可能没有覆盖未来风险。但它至少能避免把多个高度相关的持仓误判为独立风险。
如何识别账户正在接近危险区间
不需要预测行情,也可以识别账户风险是否在恶化。
观察以下运行指标:
- 可用资金连续下降;
- 权益下降速度高于持仓规模下降速度;
- 保证金占用率持续上升;
- 单日亏损超过历史常态;
- 连续亏损天数扩大;
- 价格波动率上升但仓位没有缩小;
- 结算价与最新价之间出现较大偏差;
- 盘口深度下降;
- 账户对单一合约依赖过高;
- 回测中的极端亏损超过实盘历史样本。
其中,最危险的组合不是单日亏损,而是"权益下降、仓位不变、波动上升"。
此时账户的风险弹性在下降。相同价格变化会带来相同的合约损益,但相对于剩余权益,损失比例越来越高。
可以设账户剩余权益为 \(E\),单位价格变化对应的损益敏感度为 \(N\times M\),则单位价格冲击对权益的影响比例为:
\[
L=\frac{N\times M}{E}
\]
\(E\) 下降时,\(L\) 自动上升。策略没有加仓,账户风险也可能变大。
这是一种被动杠杆上升。
回测中如何正确模拟逐日盯市
量化策略的回测不能把期货当作股票处理。
至少需要解决以下问题。
使用正确的盈亏基准
跨日持仓的每日盈亏,应使用当日结算价减去上一交易日结算价,再乘以持仓数量和合约乘数。
不能每天都用初始开仓价计算当日资金变动,否则会重复计算累计盈亏。
正确的状态更新逻辑是:
1. 保存上一交易日结算价;
2. 获取当日结算价;
3. 根据持仓方向计算当日盯市盈亏;
4. 更新账户权益;
5. 扣除手续费及其他成本;
6. 更新可用资金和保证金占用;
7. 检查风险规则;
8. 进入下一交易日。
区分最新价、收盘价和结算价
回测数据中至少可能出现三种价格:
- 最新成交价;
- 收盘价;
- 当日结算价。
它们不能直接互换。
如果策略信号在收盘生成,成交假设可能使用下一时点价格。资金结算则使用交易所规定的结算价。信号执行和账户结算是两个不同模块。
将收盘价直接当作结算价,会影响:
- 每日权益曲线;
- 保证金占用;
- 强平触发;
- 最大回撤;
- 资金利用率;
- 策略的风险收益比。
处理合约乘数和合约切换
合约价格变化本身没有资金意义。必须乘以合约乘数和持仓手数。
不同品种的合约乘数不同。换月后,主力合约、到期月份和流动性也会变化。回测系统需要明确:
- 当前持仓对应哪个合约;
- 换月时是否平旧开新;
- 换月成本如何计入;
- 价格序列是否经过连续合约调整;
- 调整后的价格能否继续用于真实盈亏计算。
连续合约适合观察价格序列,不一定直接适合计算实际账户盈亏。
模拟无法成交
普通回测常假设止损价格一到,订单立即成交。这在流动性充足的市场中只是近似。在连续涨跌停板、跳空和快速行情中,订单可能无法成交,或者实际成交价格严重偏离触发价格。
回测需要设置成交约束:
- 涨跌停状态下限制成交;
- 盘口无对手盘时延迟成交;
- 跳空时按照可成交价格计算;
- 强平指令进入队列;
- 连续无法成交时继续累计风险。
如果系统永远允许以理想止损价成交,穿仓风险会被人为删除。
参数优化:先优化资金约束,再优化收益指标
策略优化容易走偏。
很多研究流程先寻找年化收益最高、夏普比率最高或回撤最小的参数。对期货策略,这个顺序不够稳健。
建议先过滤硬性风险条件:
1. 是否出现账户权益低于零;
2. 是否出现连续多个交易日可用资金不足;
3. 是否触发无法成交的强平场景;
4. 保证金占用是否超过预设上限;
5. 单品种暴露是否超过组合限制;
6. 交易成本增加后是否仍能运行;
7. 参数变化后收益分布是否稳定。
然后再比较收益、波动率和回撤。
参数优化可以采用滚动窗口:
- 使用历史区间训练;
- 使用后续区间验证;
- 定期向前滚动;
- 记录每次参数变动;
- 比较样本内与样本外差异。
如果某一组参数只在极短区间有效,通常存在过拟合风险。
期货数据尤其容易出现以下问题:
- 主力合约切换造成虚假跳变;
- 夜盘和日盘时间对齐错误;
- 结算价缺失;
- 交易日历处理错误;
- 涨跌停板未纳入;
- 手续费规则被简化;
- 滑点设为零;
- 强平成交假设过于理想;
- 使用未来才知道的合约信息。
这些错误不会总是让收益下降。很多时候,它们会让回测曲线异常平滑。平滑并不等于真实。
每日结算单应当保存哪些字段
如果要建立可审计的期货交易记录,建议至少保存以下字段:
- 交易日期;
- 合约代码;
- 合约月份;
- 多空方向;
- 开仓均价;
- 昨日结算价;
- 当日结算价;
- 当日收盘价;
- 持仓手数;
- 当日开仓手数;
- 当日平仓手数;
- 当日持仓盈亏;
- 当日平仓盈亏;
- 手续费;
- 保证金占用;
- 账户权益;
- 可用资金;
- 出入金;
- 风险度或机构规定的风险指标;
- 是否触发风控动作。
这些字段可以用于重建账户曲线。
如果只有交易软件中的总盈亏,没有结算价、手数和合约乘数,就无法完成可靠复核。
用程序做三项一致性检查
第一项。检查每日持仓盈亏:
\[
P_t \stackrel{?}{=}
(S_t-S_{t-1})\times N_t\times M
\]
如果当日发生加仓、减仓或部分平仓,需要按实际持仓过程拆分。
第二项。检查权益变化:
\[
E_t-E_{t-1}
\stackrel{?}{=}
\text{盈亏合计}+\text{出入金影响}-\text{费用}
\]
第三项。检查保证金占用:
\[
M_t \stackrel{?}{=}
\text{合约价值}\times\text{保证金比例}
\]
实际账户还可能包含交易所和期货公司的不同保证金标准、特殊合约规则以及风险参数调整。因此,程序的结果用于发现异常,不直接替代结算单。
如果三项检查中任意一项出现持续偏差,应先查数据和字段定义,再讨论策略表现。
结论:不要用股票账户的时间尺度理解期货账户
股票套牢的核心,是持仓价格低于成本。只要没有卖出,损失通常停留在估值层面。投资者承担的是价格下跌、资金占用和未来机会成本。
期货亏损的核心,是每日结算持续改变账户权益。保证金结构使价格变化直接作用于偿付能力。持仓不平仓,不代表亏损不结算。保证金不足,不代表风险自动停止。强平发出,也不代表一定能够按预设价格成交。
穿仓的本质,是极端价格变化与有限资金缓冲叠加后,账户权益跌破零。超出本金的负债仍可能由投资者承担。
对交易系统而言,最先要修正的不是预测模型,而是账户记账模型:
- 以结算价计算逐日盈亏;
- 区分收盘价和结算价;
- 正确使用合约乘数;
- 单独记录保证金与可用资金;
- 模拟跳空、涨跌停和无法成交;
- 在组合层面控制总敞口;
- 用样本外测试检查参数稳定性。
参数优化只能改善模型在历史数据上的表现。它不能消除结算制度,也不能消除穿仓风险。
期货系统的第一目标不是让收益曲线更漂亮。是让账户在错误发生后仍然能够继续运行。
Related reading: 选择股票期货时要检查什么.
