def event_filter(self) -> EventFilter: """ Return event filter, which only calls the listener for the main data replay event """ return EventFilter(listeners=self.listeners, event_filter=lambda e: True if e['type'] == self.event_name else False)
def bar_updates_event_stream(self): return EventFilter(listeners=self.listeners, event_filter=lambda e: True if 'type' in e and e['type'] == 'latest_bar_update' and e['interval_type'] == self.interval_type and e[ 'interval_len'] == self.interval_len else False, event_transformer=lambda e: (e['data'], e['symbol']))
def all_full_bars_event_stream(self): return EventFilter(listeners=self.listeners, event_filter=lambda e: True if 'type' in e and e['type'] in ('history_bars', 'live_bar') and e['interval_type'] == self.interval_type and e[ 'interval_len'] == self.interval_len else False, event_transformer=lambda e: (e['data'], e['symbol']))
def event_filter_by_source(self, source_name: str) -> EventFilter: """ Return event filter, which only calls the listener for the main data replay event if source_name exists in the event :param source_name: transform the event to the dataframe of source_name only """ return EventFilter(listeners=self.listeners, event_filter= lambda e: True if 'timestamp' in e and e['type'] == self.event_name and source_name in e else False, event_transformer=lambda e: (e[source_name],))
def order_requests_stream(self): return EventFilter( listeners=self.listeners, event_filter=lambda e: True if ('type' in e and e['type'] == 'order_request') else False, event_transformer=lambda e: (e['data'], ))
def fulfilled_orders_stream(self): return EventFilter( listeners=self.listeners, event_filter=lambda e: True if 'type' in e and e['type'] == 'order_fulfilled' else False, event_transformer=lambda e: (e['data'], ))
def portfolio_updates_stream(self): return EventFilter( listeners=self.listeners, event_filter=lambda e: True if ('type' in e and e['type'] == 'portfolio_update') else False, event_transformer=lambda e: (e['data'], ))
def fundamentals_filter(self): return EventFilter(listeners=self.listeners, event_filter=lambda e: True if e['type'] == 'level_1_fundamentals' else False, event_transformer=lambda e: (e['data'],))
def level_1_update_filter(self): return EventFilter(listeners=self.listeners, event_filter=lambda e: True if 'type' in e and e['type'] == 'level_1_update' else False, event_transformer=lambda e: (e['data'],))
def all_level_1_filter(self): return EventFilter(listeners=self.listeners, event_filter=lambda e: True if 'type' in e and e['type'] in ('level_1_summary', 'level_1_update') else False, event_transformer=lambda e: (e['data'],))
def regional_quote_filter(self): return EventFilter(listeners=self.listeners, event_filter=lambda e: True if e['type'] == 'level_1_regional_quote' else False, event_transformer=lambda e: (e['data'],))