first commit
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
from apps.collector.selectors import pick_atm_strike, select_atm_pair
|
||||
|
||||
|
||||
def test_pick_atm_strike():
|
||||
assert pick_atm_strike([3490, 3500, 3510], 3502) == 3500
|
||||
assert pick_atm_strike([3490, 3510], 3500) == 3490 # 等距取较小
|
||||
|
||||
|
||||
def test_select_atm_pair():
|
||||
# 构造远到期,避免 min_hours 过滤
|
||||
contracts = []
|
||||
for k in (3490.0, 3500.0, 3510.0):
|
||||
for side in ("C", "P"):
|
||||
contracts.append(
|
||||
{
|
||||
"inst_id": f"ETH-USD_UM-991231-{int(k)}-{side}",
|
||||
"expiry_ymd": "991231",
|
||||
"expiry_ms": 4102358400000, # 远未来
|
||||
"strike": k,
|
||||
"side": side,
|
||||
}
|
||||
)
|
||||
pair = select_atm_pair(contracts, index_px=3501.0, min_hours=0)
|
||||
assert pair is not None
|
||||
assert pair.strike == 3500.0
|
||||
assert pair.call_inst_id.endswith("-C")
|
||||
assert pair.put_inst_id.endswith("-P")
|
||||
Reference in New Issue
Block a user