diff --git a/rqalpha/mod/rqalpha_mod_sys_stock_realtime/event_source.py b/rqalpha/mod/rqalpha_mod_sys_stock_realtime/event_source.py index 81202a0fd..dd63f866b 100644 --- a/rqalpha/mod/rqalpha_mod_sys_stock_realtime/event_source.py +++ b/rqalpha/mod/rqalpha_mod_sys_stock_realtime/event_source.py @@ -39,6 +39,7 @@ def __init__(self, fps): self.before_trading_fire_date = datetime.date(2000, 1, 1) self.after_trading_fire_date = datetime.date(2000, 1, 1) + self.settlement_fire_date = datetime.date(2000, 1, 1) self.quotation_engine_thread = Thread(target=self.quotation_worker) self.quotation_engine_thread.daemon = True @@ -50,11 +51,13 @@ def set_state(self, state): persist_dict = rq_json.convert_json_to_dict(state.decode('utf-8')) self.before_trading_fire_date = persist_dict['before_trading_fire_date'] self.after_trading_fire_date = persist_dict['after_trading_fire_date'] + self.settlement_fire_date = persist_dict['settlement_fire_date'] def get_state(self): return rq_json.convert_dict_to_json({ "before_trading_fire_date": self.before_trading_fire_date, "after_trading_fire_date": self.after_trading_fire_date, + "settlement_fire_date": self.settlement_fire_date, }).encode('utf-8') def quotation_worker(self): @@ -93,6 +96,10 @@ def clock_worker(self): elif dt.strftime("%H:%M:%S") >= "15:10:00" and dt.date() > self.after_trading_fire_date: self.event_queue.put((dt, EVENT.AFTER_TRADING)) self.after_trading_fire_date = dt.date() + elif dt.strftime("%H:%M:%S") >= "15:10:00" and dt.date() > self.settlement_fire_date: + #or (dt.date()-self.settlement_fire_date).days >= 2: + self.event_queue.put((dt, EVENT.SETTLEMENT)) + self.settlement_fire_date = dt.date() if is_tradetime_now(): self.event_queue.put((dt, EVENT.BAR))