示例#1
0
def scenario_1():
	ex = Exchange('name', 'addr')
	bids, asks = setup_book(5, 5)
	min_p = 0
	max_p = 120
	tick_size = .1

	results  = ex.calc_crossing(min_p, max_p, tick_size, bids, asks, debug=False)
	c_p, c_r, bb, ba = results
	print(c_p, c_r, bb, ba)

	for id, bid in bids.items():
		print('bid', id, Payer.calc_demand(bid['p_low'], bid['p_high'], bid['u_max'], c_p))

	for id, ask in asks.items():
		print('ask', id, Payer.calc_supply(ask['p_low'], ask['p_high'], ask['u_max'], c_p))

	Graph.test_graph(min_p, max_p, tick_size, bids, asks, c_p, c_r)
示例#2
0
def scenario_2():
	ex = Exchange('name', 'addr')
	bids = {}
	asks = {}
	min_p = 80
	max_p = 120
	tick_size = .1

	bidder1 = Trader('bidder1', 10000000)
	bidder1.enter_order('bid', 110, 90, 250, 10000)
	bids[bidder1.account] = bidder1.current_order

	asker1 = Trader('asker1', 100000)
	asker1.enter_order('ask', 110, 90, 250, 10000000)
	asks[asker1.account] = asker1.current_order

	mover_bid = Trader('mover_bid', 100000)
	mover_bid.enter_order('bid', 110, 90, 250, 10000)
	mover_bid.enter_order('bid', 110, 105, 500, 10000)
	bids[mover_bid.account] = mover_bid.current_order

	mover_ask = Trader('mover_ask', 100000)
	mover_ask.enter_order('ask', 110, 90, 250, 10000)
	asks[mover_ask.account] = mover_ask.current_order

	results  = ex.calc_crossing(min_p, max_p, tick_size, bids, asks, debug=False)
	c_p, c_r, bb, ba = results
	print(c_p, c_r, bb, ba)

	b1_shares = Payer.calc_demand(bidder1.current_order['p_low'], bidder1.current_order['p_high'], bidder1.current_order['u_max'], c_p)
	a1_shares = Payer.calc_supply(asker1.current_order['p_low'], asker1.current_order['p_high'], asker1.current_order['u_max'], c_p)
	move_bid_shares = Payer.calc_demand(mover_bid.current_order['p_low'], mover_bid.current_order['p_high'], mover_bid.current_order['u_max'], c_p)
	move_ask_shares = Payer.calc_supply(mover_ask.current_order['p_low'], mover_ask.current_order['p_high'], mover_ask.current_order['u_max'], c_p)
	print(f'bid1 shares: {b1_shares}')
	print(f'ask1 shares: {a1_shares}')
	print(f'mover_bid shares: {move_bid_shares}')
	print(f'mover_ask shares: {move_ask_shares}')

	Graph.test_graph(min_p, max_p, tick_size, bids, asks, c_p, c_r)