Detect 10:15-10:30 morning break in trading session clock.
Split day session into 9:00-10:15 and 10:30-11:30; show 上午休盘 status and countdown to 10:30 reopen. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+1
-21
@@ -18,6 +18,7 @@ from zoneinfo import ZoneInfo
|
||||
|
||||
from kline_chart import fetch_market_klines, ths_to_sina_chart_symbol
|
||||
from kline_store import is_cache_fresh, load_meta, ensure_kline_tables
|
||||
from market_sessions import is_trading_session
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
TZ = ZoneInfo("Asia/Shanghai")
|
||||
@@ -27,27 +28,6 @@ FAST_PERIODS = frozenset({
|
||||
})
|
||||
|
||||
|
||||
def is_trading_session() -> bool:
|
||||
d = datetime.now(TZ)
|
||||
wd = d.weekday()
|
||||
if wd == 6:
|
||||
return False
|
||||
if wd == 5 and d.hour < 21:
|
||||
return False
|
||||
t = d.hour * 60 + d.minute
|
||||
def in_range(sh: int, sm: int, eh: int, em: int) -> bool:
|
||||
return t >= sh * 60 + sm and t < eh * 60 + em
|
||||
if in_range(9, 0, 11, 30):
|
||||
return True
|
||||
if in_range(13, 30, 15, 0):
|
||||
return True
|
||||
if in_range(21, 0, 24, 0):
|
||||
return True
|
||||
if in_range(0, 0, 2, 30):
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def sse_format(event: str, data: dict) -> str:
|
||||
return f"event: {event}\ndata: {json.dumps(data, ensure_ascii=False)}\n\n"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user