fix复盘真盈亏按权利金USDT波动公式计算,忽略现货多买。
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -7,6 +7,7 @@ from lib.options.options_pnl_settle_lib import (
|
||||
fee_to_premium_ccy,
|
||||
settle_closed_pnl,
|
||||
settle_exchange_realized_pnl,
|
||||
true_pnl_usdt_premium_move,
|
||||
)
|
||||
from lib.options.options_stats_lib import (
|
||||
apply_exchange_pnl_freeze,
|
||||
@@ -24,6 +25,26 @@ class FeeConvertTests(unittest.TestCase):
|
||||
)
|
||||
|
||||
|
||||
class PremiumMoveFormulaTests(unittest.TestCase):
|
||||
def test_user_formula_matches_proceeds_minus_open_cost(self):
|
||||
coin = 0.01
|
||||
paid = 0.01
|
||||
open_px = 90000.0
|
||||
close_px = 80000.0
|
||||
a = true_pnl_usdt_premium_move(
|
||||
coin_pnl=coin,
|
||||
premium_paid=paid,
|
||||
open_index_px=open_px,
|
||||
sell_back_px=close_px,
|
||||
)
|
||||
# 历史盈亏×卖回 − (权利金×开 − 权利金×平)
|
||||
expect = coin * close_px - (paid * open_px - paid * close_px)
|
||||
self.assertAlmostEqual(float(a), expect, places=4)
|
||||
# 无费时 ≡ 收回×平 − 已付×开 (recv=paid+coin)
|
||||
recv = paid + coin
|
||||
self.assertAlmostEqual(float(a), recv * close_px - paid * open_px, places=4)
|
||||
|
||||
|
||||
class SettleClosedPnlTests(unittest.TestCase):
|
||||
def test_sim_net_times_close_index(self):
|
||||
# 无开仓指数时回退净币×平仓价
|
||||
|
||||
Reference in New Issue
Block a user