Skip to content

Commit e395482

Browse files
authored
Eurex stock exchange (#549)
Add Eurex stock exchange
1 parent 9b68890 commit e395482

File tree

5 files changed

+1403
-0
lines changed

5 files changed

+1403
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,7 @@ See the [minutes tutorial](docs/tutorials/minutes.ipynb) for a detailed explanat
267267
| Ljubljana Stock Exchange | XLJU | Slovenia | 4.11.3 | https://ljse.si/en |
268268
| Bratislava Stock Exchange | XBRA | Slovakia | 4.11.3 | https://www.bsse.sk/bcpb/en |
269269
| Belgrade Stock Exchange | XBEL | Serbia | 4.11.3 | https://www.belex.rs/eng |
270+
| Eurex | XEUR | Germany | 4.13.2 | https://www.eurex.com/ex-en/ |
270271
| Börse Stuttgart | XSTU | Germany | 4.13.2 | https://www.boerse-stuttgart.de/en |
271272

272273

exchange_calendars/calendar_utils.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
from .exchange_calendar_xdus import XDUSExchangeCalendar
2929
from .exchange_calendar_xeee import XEEEExchangeCalendar
3030
from .exchange_calendar_xetr import XETRExchangeCalendar
31+
from .exchange_calendar_xeur import XEURExchangeCalendar
3132
from .exchange_calendar_xfra import XFRAExchangeCalendar
3233
from .exchange_calendar_xham import XHAMExchangeCalendar
3334
from .exchange_calendar_xhel import XHELExchangeCalendar
@@ -101,6 +102,7 @@
101102
"XEEE": XEEEExchangeCalendar,
102103
"XFRA": XFRAExchangeCalendar,
103104
"XETR": XETRExchangeCalendar,
105+
"XEUR": XEURExchangeCalendar,
104106
"XHAM": XHAMExchangeCalendar,
105107
"XHEL": XHELExchangeCalendar,
106108
"XHKG": XHKGExchangeCalendar,
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
from datetime import time
2+
from zoneinfo import ZoneInfo
3+
4+
from pandas.tseries.holiday import EasterMonday, GoodFriday
5+
6+
from .common_holidays import (
7+
boxing_day,
8+
christmas,
9+
christmas_eve,
10+
european_labour_day,
11+
new_years_day,
12+
new_years_eve,
13+
)
14+
from .exchange_calendar import ExchangeCalendar, HolidayCalendar
15+
16+
# Regular Holidays
17+
# ----------------
18+
NewYearsDay = new_years_day()
19+
20+
EuropeanLabourDay = european_labour_day()
21+
22+
ChristmasEve = christmas_eve()
23+
24+
Christmas = christmas()
25+
26+
BoxingDay = boxing_day()
27+
28+
NewYearsEve = new_years_eve()
29+
30+
31+
class XEURExchangeCalendar(ExchangeCalendar):
32+
"""
33+
Exchange calendar for Eurex (XEUR).
34+
https://www.eurex.com/ex-en/trade/trading-calendar/holiday-regulations
35+
36+
Open Time: 8:00 AM, CET
37+
Close Time: 22:00 PM, CET
38+
39+
Regularly-Observed Holidays:
40+
- New Years Day
41+
- Good Friday
42+
- Easter Monday
43+
- Labour Day
44+
- Christmas Eve
45+
- Christmas Day
46+
- Boxing Day
47+
- New Year's Eve
48+
"""
49+
50+
name = "XEUR"
51+
52+
tz = ZoneInfo("Europe/Berlin")
53+
54+
open_times = ((None, time(8)),)
55+
56+
close_times = ((None, time(22, 0)),)
57+
58+
@property
59+
def regular_holidays(self):
60+
return HolidayCalendar(
61+
[
62+
NewYearsDay,
63+
GoodFriday,
64+
EasterMonday,
65+
EuropeanLabourDay,
66+
ChristmasEve,
67+
Christmas,
68+
BoxingDay,
69+
NewYearsEve,
70+
]
71+
)

0 commit comments

Comments
 (0)