3957a83761
Co-authored-by: Cursor <cursoragent@cursor.com>
32 lines
798 B
Python
32 lines
798 B
Python
"""日历日分组键(开仓时间窗已取消,由期权剩余时长约束)。"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from datetime import datetime
|
|
from zoneinfo import ZoneInfo
|
|
|
|
_SH = ZoneInfo("Asia/Shanghai")
|
|
|
|
|
|
def now_sh(now: datetime | None = None) -> datetime:
|
|
return (now or datetime.now(tz=_SH)).astimezone(_SH)
|
|
|
|
|
|
def window_key(now: datetime | None = None) -> str:
|
|
"""组号日期键:日历日 YYYYMMDD。"""
|
|
return now_sh(now).strftime("%Y%m%d")
|
|
|
|
|
|
def can_open_new(
|
|
now: datetime | None = None,
|
|
*,
|
|
open_hhmm: str = "16:00",
|
|
stop_hhmm: str = "08:00",
|
|
) -> bool:
|
|
"""开仓窗已取消,始终允许(仍受期权剩余时长/杠杆筛选)。"""
|
|
return True
|
|
|
|
|
|
def group_date_ymd(now: datetime | None = None) -> str:
|
|
return window_key(now)
|