Files
MoFin/venv/lib/python3.12/site-packages/exchange_calendars/exchange_calendar_iepa.py
T
知微 fa45d8aa5f fix: 小果地址统一node122(兼容LAN+EasyTier)
- health_checklist.json: 192.168.1.122→node122
- ocr_client.py: docstring IP→node122
- docs/market-data-requirements.md: IP→node122
- 所有API调用通过ProxyHandler({})绕过系统代理
  Privoxy对node122:18003返回500,直连正常
2026-06-30 02:56:35 +08:00

80 lines
2.0 KiB
Python

from datetime import time
from itertools import chain
from zoneinfo import ZoneInfo
from pandas import Timestamp
from pandas.tseries.holiday import (
GoodFriday,
USLaborDay,
USPresidentsDay,
USThanksgivingDay,
)
from .exchange_calendar import ExchangeCalendar
from exchange_calendars.exchange_calendar import HolidayCalendar
from exchange_calendars.us_holidays import (
Christmas,
USIndependenceDay,
USMartinLutherKingJrAfter1998,
USMemorialDay,
USNationalDaysofMourning,
USNewYearsDay,
)
class IEPAExchangeCalendar(ExchangeCalendar):
"""
Exchange calendar for ICE US (IEPA).
Open Time: 8pm, America/New_York
Close Time: 6pm, America/New_York
https://www.theice.com/publicdocs/futures_us/ICE_Futures_US_Regular_Trading_Hours.pdf
"""
name = "IEPA"
tz = ZoneInfo("America/New_York")
open_times = ((None, time(20)),)
close_times = ((None, time(18)),)
@property
def open_offset(self):
return -1
@property
def special_closes(self):
return [
(
time(13),
HolidayCalendar(
[
USMartinLutherKingJrAfter1998,
USPresidentsDay,
USMemorialDay,
USIndependenceDay,
USLaborDay,
USThanksgivingDay,
]
),
)
]
@property
def adhoc_holidays(self):
return list(
chain(
USNationalDaysofMourning,
# ICE was only closed on the first day of the Hurricane Sandy
# closings (was not closed on 2012-10-30)
[Timestamp("2012-10-29")],
)
)
@property
def regular_holidays(self):
# https://www.theice.com/publicdocs/futures_us/exchange_notices/NewExNot2016Holidays.pdf
return HolidayCalendar([USNewYearsDay, GoodFriday, Christmas])