コード例 #1
0
ファイル: orders_profile.py プロジェクト: dkgeorge/goxgui
    def setUp(self):

        self.market = MarketMock()
        self.orders = Orders(self.market, Market.TYPE_ASK)

        self.profile = cProfile.Profile()
        self.profile.enable()
コード例 #2
0
ファイル: orders_profile.py プロジェクト: dkgeorge/goxgui
class Test(unittest.TestCase):

    COUNT = 10000

    def setUp(self):

        self.market = MarketMock()
        self.orders = Orders(self.market, Market.TYPE_ASK)

        self.profile = cProfile.Profile()
        self.profile.enable()

    def tearDown(self):

        self.profile.disable()
        stats = pstats.Stats(self.profile)
        stats.strip_dirs().sort_stats('time').print_stats(5)

    def test_profile_depth_ask_random(self):

        count = 0
        while count < self.COUNT:
            self.market.depth_ask(float(random.randint(0, 12000)) / 100, 1.0)
            count += 1

    def test_profile_depth_ask_sequence(self):

        count = 0
        while count < self.COUNT:
            self.market.depth_ask(float(count) / 100, 1.0)
            count += 1

    def test_profile_depth_asks_random(self):

        count = 0
        depths = []
        while count < self.COUNT:
            depths.append([float(random.randint(0, 12000)) / 100, 1.0])
            count += 1

        self.market.depth_asks(depths)

    def test_profile_depth_asks_sequence(self):

        count = 0
        depths = []
        while count < self.COUNT:
            depths.append([float(count) / 100, 1.0])
            count += 1

        self.market.depth_asks(depths)
コード例 #3
0
ファイル: orders_test.py プロジェクト: dkgeorge/goxgui
 def setUp(self):
     self.market = MarketMock()
コード例 #4
0
ファイル: orders_test.py プロジェクト: dkgeorge/goxgui
class Test(unittest.TestCase):

    def setUp(self):
        self.market = MarketMock()

    def test_size(self):

        orders = Orders(self.market, Market.TYPE_ASK, 1)

        # group 0
        self.market.depth_ask(120.0, 1)
        self.assertEquals(1, orders.size())

        # group 1
        self.market.depth_ask(120.1, 1)
        self.assertEquals(2, orders.size())

        # group 1
        self.market.depth_ask(120.9, 1)
        self.assertEquals(2, orders.size())

        # group 1
        self.market.depth_ask(121.0, 1)
        self.assertEquals(2, orders.size())

        # group 2
        self.market.depth_ask(122.0, 1)
        self.assertEquals(3, orders.size())

    def test_grouping(self):

        orders = Orders(self.market, Market.TYPE_ASK, 0.6)

        # group 0
        self.market.depth_ask(0.0, 1)
        # group 1
        self.market.depth_ask(0.1, 1)
        self.market.depth_ask(0.3, 1)
        self.market.depth_ask(0.6, 1)
        self.assertEquals(2, orders.size())
        self.assertEquals(to_money(3), orders.get_volume(1))

        # group 2
        self.market.depth_ask(1.1, 1)
        self.market.depth_ask(1.2, 1)
        self.assertEquals(3, orders.size())

        # remove group 2
        self.market.depth_ask(1.1, 0)
        self.market.depth_ask(1.2, 0)
        self.assertEquals(2, orders.size())

    def test_no_grouping(self):

        orders = Orders(self.market, Market.TYPE_ASK)

        self.market.depth_ask(0.00000000, 1)
        self.market.depth_ask(0.00000001, 1)
        self.market.depth_ask(0.00000002, 1)

        self.assertEquals(3, orders.size())

    def test_grouping_price(self):

        orders = Orders(self.market, Market.TYPE_ASK, 1)

        # group 0
        self.market.depth_ask(120.0, 1)
        # group 1
        self.market.depth_ask(120.4, 1)
        self.market.depth_ask(121.0, 1)
        # group 2
        self.market.depth_ask(121.8, 1)

        self.assertEquals(to_money(120.0), orders.get_price(0))
        self.assertEquals(to_money(121.0), orders.get_price(1))
        self.assertEquals(to_money(122.0), orders.get_price(2))

    def test_remove_empty(self):

        orders = Orders(self.market, Market.TYPE_ASK, 1)

        self.market.depth_ask(120, 20)
        self.assertEquals(1, orders.size())

        self.market.depth_ask(120, 0)
        self.assertEquals(0, orders.size())

    def test_total(self):

        orders = Orders(self.market, Market.TYPE_ASK)

        self.market.depth_ask(10, 3)
        self.market.depth_ask(20, 2)
        self.market.depth_ask(30, 1)

        self.assertEquals(3, orders.size())

        self.assertEquals(to_money(3), orders.get_total(0))
        self.assertEquals(to_money(5), orders.get_total(1))
        self.assertEquals(to_money(6), orders.get_total(2))

    def test_depth_bid(self):

        orders = Orders(self.market, Market.TYPE_BID)

        self.market.depth_bid(10, 1)
        self.market.depth_bid(20, 1)
        self.market.depth_bid(30, 1)

        self.assertEquals(to_money(30), orders.get_price(0))
        self.assertEquals(to_money(20), orders.get_price(1))
        self.assertEquals(to_money(10), orders.get_price(2))

    def test_depth_ask(self):

        orders = Orders(self.market, Market.TYPE_ASK, 1)

        self.market.depth_ask(10, 1)
        self.market.depth_ask(20, 1)
        self.market.depth_ask(30, 1)

        self.assertEquals(to_money(10), orders.get_price(0))
        self.assertEquals(to_money(20), orders.get_price(1))
        self.assertEquals(to_money(30), orders.get_price(2))

    def test_ticker(self):

        ordersA = Orders(self.market, Market.TYPE_ASK)
        ordersB = Orders(self.market, Market.TYPE_BID)

        self.market.depth_bid(3.5, 1)
        self.market.depth_bid(3.3, 1)
        self.market.depth_bid(3.0, 1)
        self.market.depth_bid(2.2, 1)
        self.market.depth_bid(1.3, 1)
        self.market.depth_bid(1.0, 1)

        self.market.depth_ask(4.6, 1)
        self.market.depth_ask(5.0, 1)
        self.market.depth_ask(5.2, 1)
        self.market.depth_ask(6.0, 1)
        self.market.depth_ask(6.5, 1)

        self.market.ticker(3.0, 5.0)

        self.assertEquals(4, ordersA.size())
        self.assertEquals(to_money(5.0), ordersA.get_price(0))

        self.assertEquals(4, ordersB.size())
        self.assertEquals(to_money(3.0), ordersB.get_price(0))