Using timezone for trading session
This commit is contained in:
parent
9c34d935bd
commit
facf7fb0c6
@ -23,9 +23,9 @@
|
|||||||
# "fit_method_class": "pt_trading.static_fit.StaticFit",
|
# "fit_method_class": "pt_trading.static_fit.StaticFit",
|
||||||
"close_outstanding_positions": true,
|
"close_outstanding_positions": true,
|
||||||
"trading_hours": {
|
"trading_hours": {
|
||||||
"begin_session": "15:30:00",
|
"begin_session": "06:00:00",
|
||||||
"end_session": "20:00:00",
|
"end_session": "16:00:00",
|
||||||
"timezone": "UTC"
|
"timezone": "America/New_York"
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -45,14 +45,18 @@ class TradingPair:
|
|||||||
def get_begin_index(self) -> int:
|
def get_begin_index(self) -> int:
|
||||||
if "trading_hours" not in self.config_:
|
if "trading_hours" not in self.config_:
|
||||||
return 0
|
return 0
|
||||||
start_time = pd.to_datetime(self.config_["trading_hours"]["begin_session"]).time()
|
assert "timezone" in self.config_["trading_hours"]
|
||||||
|
assert "begin_session" in self.config_["trading_hours"]
|
||||||
|
start_time = pd.to_datetime(self.config_["trading_hours"]["begin_session"]).tz_localize(self.config_["trading_hours"]["timezone"]).time()
|
||||||
mask = self.market_data_['tstamp'].dt.time >= start_time
|
mask = self.market_data_['tstamp'].dt.time >= start_time
|
||||||
return int(self.market_data_.index[mask].min())
|
return int(self.market_data_.index[mask].min())
|
||||||
|
|
||||||
def get_end_index(self) -> int:
|
def get_end_index(self) -> int:
|
||||||
if "trading_hours" not in self.config_:
|
if "trading_hours" not in self.config_:
|
||||||
return 0
|
return 0
|
||||||
end_time = pd.to_datetime(self.config_["trading_hours"]["end_session"]).time()
|
assert "timezone" in self.config_["trading_hours"]
|
||||||
|
assert "end_session" in self.config_["trading_hours"]
|
||||||
|
end_time = pd.to_datetime(self.config_["trading_hours"]["end_session"]).tz_localize(self.config_["trading_hours"]["timezone"]).time()
|
||||||
mask = self.market_data_['tstamp'].dt.time <= end_time
|
mask = self.market_data_['tstamp'].dt.time <= end_time
|
||||||
return int(self.market_data_.index[mask].max())
|
return int(self.market_data_.index[mask].max())
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user