diff --git a/rqalpha/mod/rqalpha_mod_sys_simulation/simulation_event_source.py b/rqalpha/mod/rqalpha_mod_sys_simulation/simulation_event_source.py
index <HASH>..<HASH> 100644
--- a/rqalpha/mod/rqalpha_mod_sys_simulation/simulation_event_source.py
+++ b/rqalpha/mod/rqalpha_mod_sys_simulation/simulation_event_source.py
@@ -183,18 +183,20 @@ class SimulationEventSource(AbstractEventSource):
 
                         if last_tick is None:
                             last_tick = tick
+
                             yield Event(
                                 EVENT.BEFORE_TRADING,
                                 calendar_dt=calendar_dt - datetime.timedelta(minutes=30),
                                 trading_dt=trading_dt - datetime.timedelta(minutes=30)
                             )
 
-                        yield Event(EVENT.TICK, calendar_dt=calendar_dt, trading_dt=trading_dt, tick=tick)
-
                         if self._universe_changed:
                             self._universe_changed = False
-                            last_dt = calendar_dt
                             break
+
+                        last_dt = calendar_dt
+                        yield Event(EVENT.TICK, calendar_dt=calendar_dt, trading_dt=trading_dt, tick=tick)
+
                     else:
                         break
fix bug occurs when universe changed in before_trading