def find_loss(): history = ProfitHistory() negative_profits = history.find_negatives() if len(negative_profits): traders = TraderProfiles() for profit in negative_profits: trader_pair = traders.find_trader_instance_for_transaction(profit) # trader = traders.find_trader_instance_for_transaction(profit) if trader_pair: # print profit # print trader_pair previous_trader = Trader_AA.init_from_json(trader_pair[0]) trader = Trader_AA.init_from_json(trader_pair[1]) # trader = Trader_AA.init_from_json(trader) # print "\n" + str(trader_pair[0]) + "\n" + str(trader_pair[1]) + "\n" # print profit # print str(trader) + "\n" test_trader.test_instance(trader)
def test_r_extramarginal(): traders = [] bid_trader = Trader_AA("AA", "B01", 0.00) bid_trader.equilibrium = 3 bid_trader.job = "Bid" bid_trader.limit = 2 bid_trader.p_max = 6 bid_trader.marginality = Trader_AA.Marginality.Extra bid_trader.transactions = [6, 4] bid_trader.alphas = [0.02, 0.15] traders.append(bid_trader) ask_trader = Trader_AA("AA", "A01", 0.00) ask_trader.equilibrium = 3 ask_trader.job = "Ask" ask_trader.limit = 4 ask_trader.p_max = 6 ask_trader.marginality = Trader_AA.Marginality.Extra ask_trader.transactions = [6, 4] ask_trader.alphas = [0.02, 0.15] traders.append(ask_trader) N = 40 for theta in THETAS: targets = zeros((N, 2)) support = linspace(-1, 1, N) rs = zeros(N) for i in range(N): r = support[i] for j in range(2): traders[j].theta = theta + 0.00001 targets[i, j] = traders[j].calculate_target_price(r) rs[i] = r plot(rs, targets[:, 0], "r-") plot(rs, targets[:, 1], "b--") ylabel("Target Price") xlabel("Aggressiveness") title("Extramarginal") show()