示例#1
0
 def execute_order(self, stock_orders):
     """
     This function is used to execute new order with existing stock orders
     :param stock_orders:
     :return stock_orders:
     """
     new_order = stock_orders[-1]
     iteration = 0
     for each_order in stock_orders:
         if each_order.company_name == new_order.company_name and each_order.status != 'closed' and each_order.side != new_order.side:
             if int(new_order.remaining_quantity) > int(
                     each_order.remaining_quantity):
                 Order.reduce_quantity(self, new_order,
                                       each_order.remaining_quantity)
                 Order.close_order(self, stock_orders[iteration])
             elif int(each_order.remaining_quantity) > int(
                     new_order.remaining_quantity):
                 Order.reduce_quantity(self, stock_orders[iteration],
                                       new_order.remaining_quantity)
                 Order.close_order(self, new_order)
             elif int(each_order.remaining_quantity) == int(
                     new_order.remaining_quantity):
                 Order.close_order(self, new_order)
                 Order.close_order(self, stock_orders[iteration])
         iteration += 1
     return stock_orders
示例#2
0
 def test_positive_close_order(self):
     obj = Order('1', 'BUY', 'EFG', '18', 5, 'open')
     obj2 = Order('1', 'BUY', 'EFG', '18', 0, 'closed')
     self.assertEquals(Order.close_order(self, obj), obj2)
示例#3
0
 def test_negative_close_order(self):
     self.assertEquals(Order.close_order(self, {"test": "test"}), False)