Пример #1
0
    def fill_snap(self, m_type, price_level_type, price_levels_type, b_lvl_3,
                  e_lvl_3):

        if m_type == 'py':
            m = ExternalMarket(tick_size=0.01,
                               ob_type='py',
                               price_level_type=price_level_type,
                               price_levels_type=price_levels_type)
        elif m_type == 'cy':
            m = CyExternalMarket(tick_size=0.01,
                                 ob_type='py',
                                 price_level_type=price_level_type,
                                 price_levels_type=price_levels_type)

        m.fill_snap(b_lvl_3)
        snap = m.ob.price_levels.get_snap()
        corr_snap = agg_snap(b_lvl_3)

        for price in corr_snap['asks']:
            corr = corr_snap['asks'][price]
            self.price_level(corr, price, 'asks', snap, m)
        for price in corr_snap['bids']:
            corr = corr_snap['bids'][price]
            self.price_level(corr, price, 'bids', snap, m)

        if m_type == 'py':
            m = ExternalMarket(tick_size=0.01,
                               ob_type='py',
                               price_level_type=price_level_type,
                               price_levels_type=price_levels_type)
        elif m_type == 'cy':
            m = CyExternalMarket(tick_size=0.01,
                                 ob_type='py',
                                 price_level_type=price_level_type,
                                 price_levels_type=price_levels_type)

        m.fill_snap(e_lvl_3)
        snap = m.ob.price_levels.get_snap()
        corr_snap = agg_snap(e_lvl_3)

        for price in sorted(corr_snap['asks']):
            corr = corr_snap['asks'][price]
            self.price_level(corr, price, 'asks', snap, m)
        for price in sorted(corr_snap['bids']):
            corr = corr_snap['bids'][price]
            self.price_level(corr, price, 'bids', snap, m)
Пример #2
0
def get_market(market_type, **kwargs):
    """ Returns a market based on the parameter.
    Parameters
    ----------
    market_type : str
        The type of market to return
    kwargs
        Additional settings for the market

    Returns
    -------
    market : Market

    """
    if market_type == 'pyext':
        return ExternalMarket(**kwargs)
    elif market_type == 'cyext':
        return CyExternalMarket(**kwargs)
    else:
        raise NotImplementedError(market_type)
Пример #3
0
 def test_send_message_cylist_cydeque(self):
     b_lvl_3, e_lvl_3, messages = load()
     m = ExternalMarket(price_level_type='cydeque',
                        price_levels_type='cylist')
     self.messages(m, b_lvl_3, e_lvl_3, messages)
Пример #4
0
 def test_send_message_rb_deque(self):
     b_lvl_3, e_lvl_3, messages = load()
     m = ExternalMarket(price_level_type='deque',
                        price_levels_type='fast_rb')
     self.messages(m, b_lvl_3, e_lvl_3, messages)
Пример #5
0
 def test_send_message_avl_ordered(self):
     b_lvl_3, e_lvl_3, messages = load()
     m = ExternalMarket(price_level_type='ordered_dict',
                        price_levels_type='fast_avl')
     self.messages(m, b_lvl_3, e_lvl_3, messages)