Exemplo n.º 1
0
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)
Exemplo n.º 2
0
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')
Exemplo n.º 3
0
 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))
Exemplo n.º 4
0
 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)
Exemplo n.º 5
0
 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()
Exemplo n.º 6
0
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)
Exemplo n.º 7
0
 def setUp(self):
     self.order_manager = OrderManager()
Exemplo n.º 8
0
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,
Exemplo n.º 9
0
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))
Exemplo n.º 10
0
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),
                                  ' '))