0%

币本位合约仓位计算

在交易数字货币币本位合约时, 由于其 PNL 受数字币自身币价波动影响的特性, 理解起来比较反直觉, 导致我们经常搞不清楚自己的仓位和收益到底是怎么来的

本文讨论了币本位和 USD 本位(法币本位)之间的仓位和收益转换, 希望对大家有用

数字货币合约等价于什么

假设当前币价 BTC/USD = 10000, 我们在 OKEX 交易所开多一张 BTCUSD 合约, 合约面值 100 USD, 当 BTC 币价达到 20000 USD 时平仓, 根据 OKEX 收益计算规则(不考虑升贴水和手续费), 则有

1
2
3
4
5
平仓收益
= 合约面值 * (1/开仓价格 - 1/平仓价格) BTC
= 100 * (1/10000 - 1/20000) BTC
= 0.005 BTC
= 100 USD

假设在一个平行世界里, 人类没有发明期货合约这种衍生品, 但是可以以零利率随意借入美元和 BTC, 考虑如下操作:

  1. 在币价 10000USD 时, 借入 100USD, 买入 0.01BTC
  2. 在币价 20000USD 时, 卖出 0.01BTC, 获得 200USD, 偿还 100USD 贷款

盈利同样为 100USD, 两种操作方式盈利相同

带入其他平仓价验算, 可以发现: 一份 0.01BTC+100USD贷款 所组成的资产, 和1张开仓价为 10000USD 的 BTCUSD 期货多头合约, 总是拥有相同的收益

一般而言, 假设开仓币价 = open USD, 平仓币价 = close USD, 则合约 PNL 为

1
2
3
4
5
平仓PNL
= 合约面值 * (1/开仓价格 - 1/平仓价格) BTC
= 100 * (1/open - 1/close) BTC
= 100 * (1/open - 1/close) * close USD
= 100 * (close/open - 1) USD

同时, 对于以下操作

  1. 在币价 open USD 时, 借入 100USD, 买入 100/open BTC
  2. 在币价 close USD 时, 卖出 BTC, 获得 100/open*close USD, 偿还 100USD 贷款
1
2
3
PNL 
= 100/open*close - 100 USD
= 100 * (close/open - 1) USD

至此, 我们可以得出结论: 在币价 open USD 时, 1 张 100USD 面值的 BTCUSD 多头合约, 和 1 份由 100/open BTC 现货 + 100USD 贷款所组合而成的资产, 总是拥有相同的平仓收益

反之, 易得: 在币价 open USD 时, 1 张 100USD 面值的 BTCUSD 空头合约, 和 1 份由 100/open BTC 贷款 + 100USD 所组合而成的资产, 总是拥有相同的平仓收益

于是, 我们用 BTC 现货和 USD 这两种基础资产, “合成” 了 BTCUSD 合约这种衍生品

事实上, 在金融工程中, 使用基础资产”合成”复杂衍生品, 是衍生品定价的重要手段; 就好像我们要对一盘沙拉定价, 只需要对其中的每种蔬菜和沙拉酱分别定价, 它们的价值加起来, 就是这盘沙拉的价值

币本位合约的 USD 本位等效仓位计算

仍然假定当前币价 BTC/USD=10000, BTCUSD 币本位合约面值为 100USD, 我们持有 0.01BTC 的保证金, 并做空 5 张 BTCUSD 合约

将 5 张 BTCUSD 合约”分解”为 0.05BTC + 500USD 贷款, 对整个账户记账, 则有

  • Asset(资产): 0.01BTC(保证金) + 500 USD
  • Liability(债务): 0.05BTC(贷款)

Balance Sheet:
| Balance sheet | Asset | Liability | Equity |
| ————- | —– | ——— | —— |
| BTC | 0.01 | 0.05 | -0.04 |
| USD | 500 | 0 | 500 |

我们可以看出, 此时账户权益 Equity=500USD-0.04BTC, 将 500USD 转化为当前币价下 BTC 的数量, 则 Equity 就是当前账户的 BTC 本位账户权益

同时, 在 USD 本位下, 此时持有 5 张 BTCUSD 空头合约的收益, 等价于持有 0.04 个 BTC 空头资产的收益, 这就是所谓的 “币本位自带一倍杠杆”

一般情况下, 假设目前币价为 p USD, 账户保证金为 n BTC

做多 m 张 BTCUSD 合约:

  • Asset: n BTC(保证金) + m*100/p BTC
  • Liability: m*100 USD
Balance sheet Asset Liability Equity
BTC n + m*100/p 0 n + m*100/p
USD 0 m*100 -m*100

做空 m 张 BTCUSD 合约:

  • Asset: n BTC(保证金) + m100* USD
  • Liability: m*100/p BTC
Balance sheet Asset Liability Equity
BTC n m*100/p n - m*100/p
USD m*100 0 m*100

于是我们可得:

  • 做多: 账户权益 = (n + m*100/p) BTC - m*100 USD
  • 做空: 账户权益 = (n - m*100/p) BTC + m*100 USD

此处 (n + m*100/p) BTC 和 (n - m*100/p) BTC, 分别代表做多和多空情况下, 等效的 USD 本位 BTC 持仓

如果将 BTC 和 USD 相互转换, 则分别可得 BTC 和 USD 本位下的账户权益

一个特殊的例子: 假如 n = m*100/p, 即我们开空等与保证金等量法币价值的合约, 则有账户权益 = m*100 USD, 就是说不管币价如何变化, 即账户的法币价值恒为 m*100 USD, 这就是所谓的套期保值

至此, 我们可以对 BTC 和 USD 本位的持仓和收益相互转换, 妈妈再也不用担心我算不清自己的持仓了