e261df0009
Co-authored-by: Cursor <cursoragent@cursor.com>
51 lines
1.7 KiB
Python
51 lines
1.7 KiB
Python
"""期权历史/复盘币本位金额."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import unittest
|
|
|
|
from lib.exchange.okx_options_lib import format_option_history_row
|
|
from lib.options.options_review_lib import convert_option_amounts_to_usdt
|
|
|
|
|
|
class TestOptionsHistoryCoin(unittest.TestCase):
|
|
def test_format_option_history_row_coin_premium_fmt(self) -> None:
|
|
raw = {
|
|
"instId": "ETH-USD-260822-2250-C",
|
|
"openAvgPx": "0.02",
|
|
"closeAvgPx": "0.03",
|
|
"closeTotalPos": "2",
|
|
"realizedPnl": "0.002",
|
|
"pnlRatio": "0.5",
|
|
"type": "2",
|
|
"uTime": "1724146497000",
|
|
"cTime": "1724126855000",
|
|
"posId": "123",
|
|
"uly": "ETH-USD",
|
|
}
|
|
row = format_option_history_row(raw, tick_sz="0.0001", ct_mult=0.1)
|
|
self.assertEqual(row["margin_mode"], "coin")
|
|
self.assertEqual(row["premium_ccy"], "ETH")
|
|
self.assertAlmostEqual(float(row["premium_paid"]), 0.004, places=6)
|
|
self.assertNotEqual(row["premium_paid_fmt"], "0.00")
|
|
self.assertIn("0.004", str(row["premium_paid_fmt"]))
|
|
|
|
def test_convert_option_amounts_to_usdt(self) -> None:
|
|
out = convert_option_amounts_to_usdt(
|
|
{
|
|
"inst_id": "ETH-USD-260822-2250-C",
|
|
"premium_ccy": "ETH",
|
|
"margin_mode": "coin",
|
|
"premium_paid": 0.004,
|
|
"realized_pnl": 0.002,
|
|
},
|
|
index_px=2000.0,
|
|
)
|
|
self.assertEqual(out["pnl_quote_ccy"], "USDT")
|
|
self.assertEqual(out["premium_paid"], 8.0)
|
|
self.assertEqual(out["realized_pnl"], 4.0)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|