[注意] 如果使用以下计算爆仓价,需要使用Mark Price (标记价格)。这个价格的计算方法,需要依据每个交易所公布的产品说明。我建议远离爆仓线设置止损点,避免计算这个爆仓价,同时避免爆仓发生。爆仓是最糟糕的gambling。
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'
}]
# Linear 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': 'linear'
}]
df = pd.DataFrame.from_records( rows )
df.set_index('name',inplace=True)
print(df)