def test_ask_and_bid_price_positive(self): position_sell1 = orders.SellOrderPosition(price=1.24251) position_sell2 = orders.SellOrderPosition(price=1.24250) position_buy1 = orders.BuyOrderPosition(price=1.25261) position_buy2 = orders.BuyOrderPosition(price=1.24250) self._order_book._ask_positions[1.25261] = position_buy1 self._order_book._bid_positions[1.24251] = position_sell1 self._order_book._ask_positions[1.25260] = position_buy2 self._order_book._bid_positions[1.24250] = position_sell2 self.assertEqual(1.25260, self._order_book.get_ask()) self.assertEqual(1.24251, self._order_book.get_bid())
def test_add_positions_one(self): self._order_book._ask_positions[1.20000] = [ orders.SellOrderPosition(price=1.20000) for i in xrange(100) ] self._order_book._bid_positions[1.10000] = [ orders.BuyOrderPosition(price=1.10000) for i in xrange(100) ] self._order_book.add( [orders.SellOrderPosition(price=1.19000) for i in xrange(50)]) self._order_book.add( [orders.BuyOrderPosition(price=1.10000) for i in xrange(50)]) self.assertEqual(len(self._order_book.get_ask_positions(1.20000)), 100) self.assertEqual(len(self._order_book.get_ask_positions(1.19000)), 50) self.assertEqual(len(self._order_book.get_bid_positions(1.10000)), 150) self.assertEqual(self._order_book.get_ask(), 1.19000) self.assertEqual(self._order_book.get_bid(), 1.10000)
def test_remove_positions(self): buy_positions = [orders.BuyOrderPosition(price=1) for i in xrange(100)] sell_positions = [ orders.SellOrderPosition(price=1.2) for i in xrange(100) ] self._order_book._ask_positions[1.2] = copy.copy(sell_positions) self._order_book._bid_positions[1] = copy.copy(buy_positions) self.assertEqual(self._order_book.remove(sell_positions[50:]), []) self.assertEqual(self._order_book.remove(buy_positions[:50]), []) self.assertEqual(self._order_book._ask_positions[1.2], sell_positions[:50]) self.assertEqual(self._order_book._bid_positions[1], buy_positions[50:])
def _load_next_tick(self): self._last_time_stamp = self._tick_info.timestamp self._order_book.remove(self._bid_order_positions) self._order_book.remove(self._ask_order_positions) self._bid_order_positions = [ orders.BuyOrderPosition(price=self._tick_info.bid) for i in xrange(self._default_volume) ] self._ask_order_positions = [ orders.SellOrderPosition(price=self._tick_info.ask) for i in xrange(self._default_volume) ] self._order_book.add(positions=self._bid_order_positions) self._order_book.add(positions=self._ask_order_positions) self._tick_info = next(self._tick_generator) return self.get_last_tick()