feat: add OKX options module with dual API, USDT/USDC convert, and docs
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
"""期权定价单测。"""
|
||||
from lib.options.options_pricing_lib import (
|
||||
calc_order_size,
|
||||
premium_per_sheet,
|
||||
sheets_from_eth_amount,
|
||||
total_premium,
|
||||
)
|
||||
|
||||
|
||||
def test_premium_per_sheet():
|
||||
assert abs(premium_per_sheet(15.6, 0.01) - 0.156) < 1e-9
|
||||
|
||||
|
||||
def test_total_premium_half_eth():
|
||||
assert abs(total_premium(15.6, 0.5) - 7.8) < 1e-9
|
||||
|
||||
|
||||
def test_sheets_from_eth():
|
||||
assert sheets_from_eth_amount(0.5, 0.01) == 50
|
||||
|
||||
|
||||
def test_calc_order_size_budget():
|
||||
r = calc_order_size(
|
||||
quote_per_unit=15.6,
|
||||
ct_mult=0.01,
|
||||
min_sz=1,
|
||||
budget_usdc=10,
|
||||
budget_buffer=0.95,
|
||||
budget_cap=10,
|
||||
)
|
||||
assert r["ok"] is True
|
||||
assert r["sheets"] >= 1
|
||||
assert r["total_premium"] <= 10
|
||||
|
||||
|
||||
def test_calc_order_size_too_small():
|
||||
r = calc_order_size(
|
||||
quote_per_unit=2000.0,
|
||||
ct_mult=0.01,
|
||||
min_sz=1,
|
||||
budget_usdc=10,
|
||||
budget_buffer=0.95,
|
||||
budget_cap=10,
|
||||
)
|
||||
assert r["ok"] is False
|
||||
Reference in New Issue
Block a user