修复币本位期权残档判定:内在价值按币报价(S-K)/S,避免与美元点差混比误杀有效买一
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -267,6 +267,35 @@ def test_stub_bid_blocks_auto_close_estimate():
|
||||
assert good["covered_sheets"] == 10
|
||||
|
||||
|
||||
def test_intrinsic_px_coin_vs_usdc_units():
|
||||
from lib.options.options_pricing_lib import intrinsic_px_per_unit, is_stub_bid_px
|
||||
|
||||
# USDC / 默认:美元点差
|
||||
assert intrinsic_px_per_unit("C", 2250, 2274) == 24.0
|
||||
assert intrinsic_px_per_unit("C", 2250, 2274, margin_mode="usdc") == 24.0
|
||||
|
||||
# 币本位:与盘口同单位的币报价 (S−K)/S
|
||||
coin_iv = intrinsic_px_per_unit("C", 2250, 2274, quote_in_coin=True)
|
||||
assert coin_iv is not None
|
||||
assert abs(coin_iv - 24.0 / 2274.0) < 1e-12
|
||||
assert abs(
|
||||
intrinsic_px_per_unit("C", 2250, 2274, inst_id="ETH-USD-260822-2250-C") - 24.0 / 2274.0
|
||||
) < 1e-12
|
||||
# USD_UM 仍为点差
|
||||
assert intrinsic_px_per_unit("C", 2250, 2274, inst_id="ETH-USD_UM-260822-2250-C") == 24.0
|
||||
|
||||
# 复现线上误杀:把点差当内在价值会把正常买一判残档
|
||||
wrong_stub, _ = is_stub_bid_px(0.023, mark_px=0.0241, intrinsic_px=23.58)
|
||||
assert wrong_stub is True
|
||||
# 币报价内在价值后,买一贴近标记价应有效
|
||||
ok_stub, _ = is_stub_bid_px(0.023, mark_px=0.0241, intrinsic_px=coin_iv)
|
||||
assert ok_stub is False
|
||||
|
||||
put_iv = intrinsic_px_per_unit("P", 2300, 2274, quote_in_coin=True)
|
||||
assert put_iv is not None
|
||||
assert abs(put_iv - 26.0 / 2274.0) < 1e-12
|
||||
|
||||
|
||||
def test_expiry_breakeven_from_ask():
|
||||
from lib.options.options_pricing_lib import expiry_breakeven_from_ask
|
||||
|
||||
|
||||
Reference in New Issue
Block a user