def run(test_number): agents = generate_agents(params, nrt=50, nmm=40, nhft=10) agents_dict = agents_dictionary(agents) market = Market() market.create_database() for day in range(0, 150): print('DAY:', day) for a in agents: if a.money < 0 or a.stocks < 0: print('N------------N') print(a) print(a.wealth()) if a.money < 0 or a.stocks < 0: print('N------------N') # if a.money < 0 or a.stocks < 0: # market.export_db('test_early_exit_{}.csv'.format(test_number)) # return 0 orders = a.order(day=day, market=market) time = datetime.datetime.now().timestamp() # time in seconds # print("time:", time) # print("\n") """ Need to iterate since market makers can have two orders stored as a list of dictionaries """ # print(orders) if type(orders) == list: for order in orders: market.add_order(order, time) elif type(orders) == dict: market.add_order(orders, time) else: try: market.add_order(orders, time) finally: pass # print("Cannot add order, Order type:", type(orders)) print("BUY:", market.buybook) print("SELL:", market.sellbook) print('PRICES DAY BEFORE:', market.preprices) market.match_orders(agents_dict) # print("BUY:", market.buybook) # print("SELL:", market.sellbook) market.clear_books() print('--------------------------------------------') print(market.data) market.export_db('test_{}.csv'.format(test_number))