class WareEmbedding(object): def __init__(self, order_source='simulate', order_db_path=None, ware_index_db_path=None, matrix_path=None, ware_info_path=None): self.CooccurMatix = CooccurMatrix() self.OrderManager = OrderManager(order_source, order_db_path) self.WareIndex = WareIndex(ware_index_db_path, ware_info_path) self.order_db_path = order_db_path self.ware_index_db_path = ware_index_db_path self.matrix_path = matrix_path self.order_source = order_source self.matrix = csr_matrix(np.zeros(1, dtype=np.int64), dtype=np.int64, shape=(1, 1)) def calculate_cooccur_matrix(self): if self.order_source == 'simulate': self.OrderManager.simulate_order_ware() elif self.order_source == 'sqlite': self.OrderManager.read_new_orders() else: print("Error data source, can't get orders") if self.OrderManager.order_ware.is_empty: print('No Order data input') else: self.WareIndex.add_wares() # This new methods is 200 times faster than the old one. self.CooccurMatix.cal_cooccur_matrix_new() def save_matrix(self): self.CooccurMatix.save_sparse_csr(self.matrix_path)
class OrderManagerTest(unittest.TestCase): def setUp(self): self.order_manager = OrderManager() def test_receive_order_from_trading_strategy(self): order1 = { 'id': 10, 'price': 219, 'quantity': 10, 'side': 'bid', } self.order_manager.handle_order_from_trading_strategy(order1) self.assertEqual(len(self.order_manager.orders), 1) self.order_manager.handle_order_from_trading_strategy(order1) self.assertEqual(len(self.order_manager.orders), 2) self.assertEqual(self.order_manager.orders[0]['id'], 1) self.assertEqual(self.order_manager.orders[1]['id'], 2) def test_receive_order_from_trading_strategy_error(self): order1 = { 'id': 10, 'price': -219, 'quantity': 10, 'side': 'bid', } self.order_manager.handle_order_from_trading_strategy(order1) self.assertEqual(len(self.order_manager.orders), 0) def display_orders(self): for o in self.order_manager.orders: print(o) def test_receive_from_gateway_filled(self): self.test_receive_order_from_trading_strategy() orderexecution1 = { 'id': 2, 'price': 13, 'quantity': 10, 'side': 'bid', 'status': 'filled' } # self.display_orders() self.order_manager.handle_order_from_gateway(orderexecution1) self.assertEqual(len(self.order_manager.orders), 1) def test_receive_from_gateway_acked(self): self.test_receive_order_from_trading_strategy() orderexecution1 = { 'id': 2, 'price': 13, 'quantity': 10, 'side': 'bid', 'status': 'acked' } # self.display_orders() self.order_manager.handle_order_from_gateway(orderexecution1) self.assertEqual(len(self.order_manager.orders), 2) self.assertEqual(self.order_manager.orders[1]['status'], 'acked')
def __init__(self, order_source='simulate', order_db_path=None, ware_index_db_path=None, matrix_path=None, ware_info_path=None): self.CooccurMatix = CooccurMatrix() self.OrderManager = OrderManager(order_source, order_db_path) self.WareIndex = WareIndex(ware_index_db_path, ware_info_path) self.order_db_path = order_db_path self.ware_index_db_path = ware_index_db_path self.matrix_path = matrix_path self.order_source = order_source self.matrix = csr_matrix(np.zeros(1, dtype=np.int64), dtype=np.int64, shape=(1, 1))
def setUp(self): self.lp_2_gateway = deque() self.ob_2_ts = deque() self.ts_2_om = deque() self.ms_2_om = deque() self.om_2_ts = deque() self.gw_2_om = deque() self.om_2_gw = deque() self.lp = LiquidityProvider(self.lp_2_gateway) self.ob = OrderBook(self.lp_2_gateway, self.ob_2_ts) self.ts = TradingStrategy(self.ob_2_ts, self.ts_2_om, self.om_2_ts) self.ms = MarketSimulator(self.om_2_gw, self.gw_2_om) self.om = OrderManager(self.ts_2_om, self.om_2_ts, self.om_2_gw, self.gw_2_om)
def __init__(self): self.admin = AdminManager() self.customer = CustomerManager() self.employee = EmployeeManager() self.menu = MenuManager() self.order = OrderManager(self.menu) self.reservation = ReservationManager() self.statistics = StatisticsManager() self.table = TableManager()
class TradingSimulationTest(unittest.TestCase): def setUp(self): self.lp_2_gateway = deque() self.ob_2_ts = deque() self.ts_2_om = deque() self.ms_2_om = deque() self.om_2_ts = deque() self.gw_2_om = deque() self.om_2_gw = deque() self.lp = LiquidityProvider(self.lp_2_gateway) self.ob = OrderBook(self.lp_2_gateway, self.ob_2_ts) self.ts = TradingStrategy(self.ob_2_ts, self.ts_2_om, self.om_2_ts) self.ms = MarketSimulator(self.om_2_gw, self.gw_2_om) self.om = OrderManager(self.ts_2_om, self.om_2_ts, self.om_2_gw, self.gw_2_om) def test_add_liquidity(self): # Order sent from the exchange to the trading system order1 = { 'id': 1, 'price': 219, 'quantity': 10, 'side': 'bid', 'action': 'new' } self.lp.insert_manual_order(order1) self.assertEqual(len(self.lp_2_gateway), 1) self.ob.handle_order_from_gateway() self.assertEqual(len(self.ob_2_ts), 1) self.ts.handle_input_from_bb() self.assertEqual(len(self.ts_2_om), 0) order2 = { 'id': 2, 'price': 218, 'quantity': 10, 'side': 'ask', 'action': 'new' } self.lp.insert_manual_order(order2.copy()) self.assertEqual(len(self.lp_2_gateway), 1) self.ob.handle_order_from_gateway() self.assertEqual(len(self.ob_2_ts), 1) self.ts.handle_input_from_bb() self.assertEqual(len(self.ts_2_om), 2) self.om.handle_input_from_ts() self.assertEqual(len(self.ts_2_om), 1) self.assertEqual(len(self.om_2_gw), 1) self.om.handle_input_from_ts() self.assertEqual(len(self.ts_2_om), 0) self.assertEqual(len(self.om_2_gw), 2) self.ms.handle_order_from_gw() self.assertEqual(len(self.gw_2_om), 1) self.ms.handle_order_from_gw() self.assertEqual(len(self.gw_2_om), 2) self.om.handle_input_from_market() self.om.handle_input_from_market() self.assertEqual(len(self.om_2_ts), 2) self.ts.handle_response_from_om() self.assertEqual(self.ts.get_pnl(), 0) self.ms.fill_all_orders() self.assertEqual(len(self.gw_2_om), 2) self.om.handle_input_from_market() self.om.handle_input_from_market() self.assertEqual(len(self.om_2_ts), 3) self.ts.handle_response_from_om() self.assertEqual(len(self.om_2_ts), 2) self.ts.handle_response_from_om() self.assertEqual(len(self.om_2_ts), 1) self.ts.handle_response_from_om() self.assertEqual(len(self.om_2_ts), 0) self.assertEqual(self.ts.get_pnl(), 10)
def setUp(self): self.order_manager = OrderManager()
import enum # from Robotarm import Order import socket import pickle # kit = ServoKit(channels=16) from OrderManager import OrderManager parkAngles = [0, 80, 10, -90, 0, 80] target = [0, 100, -110, 0, 45, 0] #robot = Order(parkAngles,20) #kit.servo[2].angle = 100 # print(kit.servo[2].angle) # #robot.animateToPosition(target,20) # robot.setPosition(target) # robot.animateToPosition(parkAngles,20) idcounter = 0 manager = OrderManager() orderDict = { "OrderId": 0, # unique id given to each order for modification "TargetPosition": [], # array of 6 angles as a target "AnimationDuration": 0, # Adds the order to the front of the queue to be executed after "InsertionMode": "First/Interrupt", "Command": "Park/Hold" } sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) def sendOrder(animationDuration, targetPosition=None, command=None,
from DataManager import DataManager from OrderManager import OrderManager from Algorithms import Algorithms from Logging import Logging from Configuration.Parameters import REFRESH_PERIODICITY import datetime import time """creating objects""" data_manager = DataManager() order_manager = OrderManager() alg = Algorithms(datetime.datetime.now()) log = Logging() """running infinite loop with a periodicity of REFRESH_PERIODICITY [seconds]""" while True: trade_cycle_start_time = time.time() data = data_manager.Run() trigger_queue = alg.Run(data) order_manager.Run(trigger_queue) log.Run(data.last) time.sleep(REFRESH_PERIODICITY - (time.time() - trade_cycle_start_time))
def main(): INITIALISE_LEXIQUE = '1' ORDER_ITEM = '2' VIEW_CART = '3' REMOVE_ITEM_FROM_CART = '4' CLEAR_CART = '5' CONFIRM_ORDER = '6' QUIT_PROGRAM = '7' current_state = '0' automate_list = False search_engine = False shopping_cart = False order = False while True: current_state = menu_principal() if current_state == INITIALISE_LEXIQUE: msg_input = "Rentrez le nom du fichier a lire: " print( msg_input.center(int(os.get_terminal_size().columns - 22), ' ')) file_name = str(input("")) if file_name != 'inventaire.txt' and file_name != 'Inventaire_grosFichier.txt': alternatif = str( input( "Vouliez vous lire 'inventaire.txt' au lieu? Tappez 1 pour oui" )) if alternatif == '1': file_name = 'inventaire.txt' automate_list = read_file(file_name) if file_name != False: search_engine = SearchEngine(automate_list) shopping_cart = ShoppingCart() order = OrderManager(automate_list, shopping_cart, search_engine) else: automate_list = read_file(file_name) search_engine = SearchEngine(automate_list) shopping_cart = ShoppingCart() order = OrderManager(automate_list, shopping_cart, search_engine) if current_state == ORDER_ITEM: if automate_list != False: order.search_item_to_order() if current_state == VIEW_CART: if automate_list != False: order.print_order() input( " Appuyez sur 'Enter' pour retourner au Menu... " ) if current_state == REMOVE_ITEM_FROM_CART: if automate_list != False: order.remove_item_from_cart() input( " Appuyez sur 'Enter' pour retourner au Menu... " ) if current_state == CLEAR_CART: if automate_list != False: order.clear_cart_items() input( "LE PANIER EST VIDÉE!\n Appuyez sur 'Enter' pour retourner au Menu... " ) if current_state == CONFIRM_ORDER: if automate_list != False: if order.verify_order() == True: order.print_order(True) order.remove_items_ordered() input( " Appuyez sur 'Enter' pour retourner au Menu... " ) if current_state == QUIT_PROGRAM: print(" \n\n\n EXITING PROGRAM") break if automate_list == False: error = 'INITIALISEZ LE PROGRAMME AVEC UN LEXIQUE' print(error.center(int(os.get_terminal_size().columns - 1), '*')) else: msg_header = "VOUS AVEZ INITIALISÉ LE PROGRAMME AVEC LE FICHIER '" + file_name + "'" print( msg_header.center(int(os.get_terminal_size().columns - 1), ' '))