Files
MoFin/venv/lib/python3.12/site-packages/exchange_calendars/exchange_calendar_xbra.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

104 lines
2.9 KiB
Python

from datetime import time
from zoneinfo import ZoneInfo
import pandas as pd
from pandas.tseries.holiday import (
Holiday,
EasterMonday,
GoodFriday,
)
from .common_holidays import (
new_years_day,
epiphany,
european_labour_day,
all_saints_day,
christmas_eve,
christmas,
boxing_day,
new_years_eve,
)
from .exchange_calendar import HolidayCalendar, ExchangeCalendar
NewYearsDay = new_years_day()
Epiphany = epiphany()
LabourDay = european_labour_day()
VictoryDay = Holiday("Victory Day", month=5, day=8)
SaintsCyrilMethodius = Holiday("Saints Cyril and Methodius Day", month=7, day=5)
SlovakNationalUprising = Holiday(
"Slovak National Uprising Anniversary", month=8, day=29
)
ConstitutionDay = Holiday("Constitution Day", month=9, day=1, end_date="2024")
VirginMary = Holiday("Day of Our Lady of Sorrows", month=9, day=15)
AllSaintsDay = all_saints_day()
StruggleForFreedom = Holiday("Struggle for Freedom and Democracy Day", month=11, day=17)
ChristmasEve = christmas_eve()
Christmas = christmas()
BoxingDay = boxing_day()
NewYearsEve = new_years_eve(start_date="2016")
class XBRAExchangeCalendar(ExchangeCalendar):
"""
Calendar for the Bratislava Stock Exchange (Slovakia).
https://www.bsse.sk/bcpb/en/trading-days/
Open Time: 11:00 AM
Close Time: 3:30 PM
Regularly-Observed Holidays:
- New Year's Day (Jan 1)
- Epiphany (Jan 6)
- Good Friday
- Easter Monday
- Labour Day (May 1)
- Victory Day (May 8)
- Saints Cyril and Methodius Day (Jul 5)
- Slovak National Uprising Anniversary (Aug 29)
- Constitution Day (Sep 1)
- Day of Our Lady of Sorrows (Sep 15)
- All Saints' Day (Nov 1)
- Struggle for Freedom and Democracy Day (Nov 17)
- Christmas Eve (Dec 24)
- Christmas Day (Dec 25)
- Boxing Day (Dec 26)
- New Year's Eve (Dec 31)
"""
name = "XBRA"
tz = ZoneInfo("Europe/Bratislava")
open_times = ((None, time(11, 00)),)
close_times = ((None, time(15, 30)),)
@property
def regular_holidays(self):
return HolidayCalendar(
[
NewYearsDay,
Epiphany,
GoodFriday,
EasterMonday,
LabourDay,
VictoryDay,
SaintsCyrilMethodius,
SlovakNationalUprising,
ConstitutionDay,
VirginMary,
AllSaintsDay,
StruggleForFreedom,
ChristmasEve,
Christmas,
BoxingDay,
NewYearsEve,
]
)
@property
def adhoc_holidays(self):
return [
pd.Timestamp("2018-01-02"), # Independent Slovakia, 25th anniversary
pd.Timestamp(
"2018-10-30"
), # 100th anniversary of the adoption of the Declaration of
# the Slovak Nation
]