示例#1
0
    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']))
示例#4
0
    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],))
示例#5
0
 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'], ))
示例#6
0
 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'], ))
示例#7
0
 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'], ))
示例#8
0
 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'],))
示例#9
0
 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'],))
示例#10
0
 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'],))
示例#11
0
 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'],))