Files
crypto_okx/tests/test_options_delta_fields.py
T
2026-10-14 22:14:07 +08:00

46 lines
1.3 KiB
Python

# -*- coding: utf-8 -*-
import unittest
from lib.exchange.okx_options_lib import format_position_row
class OptionsDeltaFieldsTests(unittest.TestCase):
def test_format_position_exposes_delta_bs(self):
row = format_position_row(
{
"instId": "ETH-USD-261015-2500-C",
"pos": "10",
"avgPx": "0.02",
"markPx": "0.025",
"idxPx": "2600",
"optType": "C",
"stk": "2500",
"deltaBS": "0.6123",
"deltaPA": "1.23",
},
ct_mult=0.1,
)
self.assertAlmostEqual(row["delta"], 0.6123, places=4)
self.assertAlmostEqual(row["delta_bs"], 0.6123, places=4)
self.assertAlmostEqual(row["delta_pa"], 1.23, places=4)
def test_format_position_falls_back_delta_field(self):
row = format_position_row(
{
"instId": "BTC-USD-261015-80000-P",
"pos": "1",
"avgPx": "0.01",
"markPx": "0.012",
"idxPx": "82000",
"optType": "P",
"stk": "80000",
"delta": "-0.45",
},
ct_mult=0.01,
)
self.assertAlmostEqual(row["delta"], -0.45, places=4)
if __name__ == "__main__":
unittest.main()