正向合约&反向合约仓位价值变化计算

[注意] 若是使用如下计算爆仓价,须要使用Mark Price (标记价格)。这个价格的计算方法,须要依据每一个交易所公布的产品说明。我建议远离爆仓线设置止损点,避免计算这个爆仓价,同时避免爆仓发生。爆仓是最糟糕的gambling。python

import pandas as pd

p = 10000
slr = -0.005 # stop loss 
tpr = 0.01   # take profit
side = -1    # long (1) or short (-1)

rows = []
# Inverse contract
sl = p/(1-side*slr)
tp = p/(1-side*tpr)
rows += [{ 
 
  'sl': '{:.2f}'.format(sl),
          'p0': '{:.2f}'.format(p),
          'tp': '{:.2f}'.format(tp),
          'name': 'inverse'
          }]

# Normal contract
sl = p*(1+side*slr)
tp = p*(1+side*tpr)
rows += [{ 
 
  'sl': '{:.2f}'.format(sl),
          'p0': '{:.2f}'.format(p),
          'tp': '{:.2f}'.format(tp),
          'name': 'normal'
          }]

df = pd.DataFrame.from_records( rows )
df.set_index('name',inplace=True)
print(df)