test_network.py 文件源码

python
阅读 30 收藏 0 点赞 0 评论 0

项目:trading_package 作者: abrahamchaibi 项目源码 文件源码
def test_that_network_correctly_computes_edges(self):
        def get_price(side):
            price = 400 if side == OrderSide.ask else 100
            return str(price)

        def get_worse_price(s, i=0):
            price = float(get_price(s)) + 50 + i if s == OrderSide.ask else float(get_price(s)) - 50 - i
            return str(price)

        def get_better_price(s, i=0):
            price = float(get_price(s)) - 50 - i if s == OrderSide.ask else float(get_price(s)) + 50 + i
            return str(price)

        product_id = 'BTC-USD'
        product = Product(product_id=product_id, quote_currency=Currency.USD, base_currency=Currency.BTC, quote_increment='0.01', base_min_size='0.01')

        ob = OrderBook(product)
        ob.redis_server.flushdb()
        nm = NetworkManager()
        for side in OrderSide:
            # test adding base set of orders
            for idx, price in enumerate([get_price(side), get_better_price(side), get_worse_price(side)]):
                order = Order(product_id, 0, side, '1.0', price, order_id=str(idx))
                ob + order
                order.historical = True
                order.order_type = OrderType.match
                order.size = '0.5'
                ob - order
            assert ob.get_price(side, 0)[1] == float(get_better_price(side))
            assert ob.get_median_trade_size(side, OrderType.match, 100) == 1.5
            assert ob.get_average_trade_size(side, OrderType.match, 100) == 1.5
            nm.update_from_order_book(ob, side)
        # print(get_edge_attributes(nm.get_network(NetworkType.price, quote_type=QuoteType.product, edge_type=EdgeType.mean), 'weight'))
        # print(nm.get_next_nodes_and_avail_qties_by_cycle_value(EdgeType.mean, Currency.USD), {
        #     2.3331111259249386: (Currency.BTC, '150.01', '1.5')})
        assert nm.get_next_nodes_and_avail_qties_by_cycle_value(EdgeType.mean, Currency.USD) == {
            2.3331111259249386: (Currency.BTC, '150.01', '1.5')}
        assert nm.get_next_nodes_and_avail_qties_by_cycle_value(EdgeType.mean, Currency.BTC) == {
            2.3331111259249386: (Currency.USD, '349.99', '1.5')}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号