fa45d8aa5f
- 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,直连正常
150 lines
4.5 KiB
Python
150 lines
4.5 KiB
Python
from datetime import time
|
|
from itertools import chain
|
|
from zoneinfo import ZoneInfo
|
|
|
|
import pandas as pd
|
|
|
|
from .exchange_calendar import HolidayCalendar, ExchangeCalendar
|
|
from .xtks_holidays import (
|
|
AutumnalEquinoxes,
|
|
ChildrensDay,
|
|
CitizensHolidayGoldenWeek,
|
|
CitizensHolidaySilverWeek,
|
|
ComingOfAgeDay2000Onwards,
|
|
ComingOfAgeDayThrough1999,
|
|
ConstitutionMemorialDay,
|
|
CultureDay,
|
|
EmperorAkihitoBirthday,
|
|
EmperorNaruhitoBirthday,
|
|
EquityTradingSystemFailure,
|
|
GreeneryDay2007Onwards,
|
|
GreeneryDayThrough2006,
|
|
HealthAndSportsDay2000OnwardsThrough2019,
|
|
HealthAndSportsDay2020,
|
|
HealthAndSportsDay2021,
|
|
HealthAndSportsDay2022Onwards,
|
|
HealthAndSportsDayThrough1999,
|
|
LaborThanksgivingDay,
|
|
MarineDay2003OnwardsThrough2019,
|
|
MarineDay2020,
|
|
MarineDay2021,
|
|
MarineDay2022Onwards,
|
|
MarineDayThrough2002,
|
|
Misc2019Holidays,
|
|
MountainDay2020,
|
|
MountainDay2021,
|
|
MountainDay2022Onwards,
|
|
MountainDayThrough2019,
|
|
NationalFoundationDay,
|
|
NewYearsHolidayDec31,
|
|
NewYearsHolidayJan1,
|
|
NewYearsHolidayJan2,
|
|
NewYearsHolidayJan3,
|
|
RespectForTheAgedDay2003Onwards,
|
|
RespectForTheAgedDayThrough2002,
|
|
ShowaDay,
|
|
VernalEquinoxes,
|
|
)
|
|
|
|
|
|
class XTKSExchangeCalendar(ExchangeCalendar):
|
|
"""
|
|
Exchange calendar for the Tokyo Stock Exchange
|
|
https://www.jpx.co.jp/english/corporate/about-jpx/calendar/index.html
|
|
|
|
First session: 9:00am - 11:30am
|
|
Lunch Break: 11:30am - 12:30pm
|
|
Second session: 12:30pm - 3:30pm
|
|
|
|
Regularly-Observed Holidays (see xtks_holidays.py for more info):
|
|
- New Year's Holidays (Dec. 31 - Jan. 3)
|
|
- Coming of Age Day (second Monday of January)
|
|
- National Foundation Day (Feb. 11)
|
|
- Vernal Equinox (usually Mar 20-22)
|
|
- Greenery Day (Apr. 29 2000-2006, May 4 2007-present)
|
|
- Showa Day (Apr. 29 2007-present)
|
|
- Constitution Memorial Day (May 3)
|
|
- Citizen's Holiday (May 4 2000-2006, later replaced by Greenery Day)
|
|
- Children's Day (May 5)
|
|
- Marine Day (July 20 2000-2002, third Monday of July 2003-present)
|
|
- Respect for the Aged Day (Sep. 15 2000-2002, third Monday
|
|
of Sep. 2003-present)
|
|
- Autumnal Equinox (usually Sept. 22-24)
|
|
- Health-Sports Day (second Monday of October)
|
|
- Culture Day (November 3)
|
|
- Labor Thanksgiving Day (Nov. 23)
|
|
- Emperor's Birthday (Dec. 23)
|
|
|
|
Additional Irregularities:
|
|
- Closed on October 1, 2020 due to equity trading system failure
|
|
"""
|
|
|
|
name = "XTKS"
|
|
|
|
tz = ZoneInfo("Asia/Tokyo")
|
|
|
|
open_times = ((None, time(9)),)
|
|
break_start_times = ((None, time(11, 30)),)
|
|
break_end_times = ((None, time(12, 30)),)
|
|
close_times = (
|
|
(None, time(15)),
|
|
(pd.Timestamp("2024-11-05"), time(15, 30)),
|
|
)
|
|
|
|
@classmethod
|
|
def bound_min(cls) -> pd.Timestamp:
|
|
# not tracking holiday info farther back than 1997
|
|
return pd.Timestamp("1997-01-01")
|
|
|
|
@property
|
|
def regular_holidays(self):
|
|
return HolidayCalendar(
|
|
[
|
|
NewYearsHolidayDec31,
|
|
NewYearsHolidayJan1,
|
|
NewYearsHolidayJan2,
|
|
NewYearsHolidayJan3,
|
|
ComingOfAgeDayThrough1999,
|
|
ComingOfAgeDay2000Onwards,
|
|
NationalFoundationDay,
|
|
GreeneryDayThrough2006,
|
|
ShowaDay,
|
|
ConstitutionMemorialDay,
|
|
GreeneryDay2007Onwards,
|
|
CitizensHolidayGoldenWeek,
|
|
ChildrensDay,
|
|
MarineDayThrough2002,
|
|
MarineDay2003OnwardsThrough2019,
|
|
MarineDay2020,
|
|
MarineDay2021,
|
|
MarineDay2022Onwards,
|
|
MountainDayThrough2019,
|
|
MountainDay2020,
|
|
MountainDay2021,
|
|
MountainDay2022Onwards,
|
|
RespectForTheAgedDayThrough2002,
|
|
RespectForTheAgedDay2003Onwards,
|
|
HealthAndSportsDayThrough1999,
|
|
HealthAndSportsDay2000OnwardsThrough2019,
|
|
HealthAndSportsDay2020,
|
|
HealthAndSportsDay2021,
|
|
HealthAndSportsDay2022Onwards,
|
|
CultureDay,
|
|
LaborThanksgivingDay,
|
|
EmperorAkihitoBirthday,
|
|
EmperorNaruhitoBirthday,
|
|
]
|
|
)
|
|
|
|
@property
|
|
def adhoc_holidays(self):
|
|
return list(
|
|
chain(
|
|
VernalEquinoxes,
|
|
AutumnalEquinoxes,
|
|
CitizensHolidaySilverWeek,
|
|
Misc2019Holidays,
|
|
EquityTradingSystemFailure,
|
|
)
|
|
)
|