示例#1
0
    def test_run_trade_ticks_through_aggregator_results_in_expected_bars(self):
        # Arrange
        bar_store = ObjectStorer()
        handler = bar_store.store
        bar_spec = BarSpecification(1000, BarAggregation.VOLUME,
                                    PriceType.LAST)
        bar_type = BarType(ETHUSDT_BINANCE.id, bar_spec)
        aggregator = VolumeBarAggregator(bar_type, handler,
                                         TestLogger(TestClock()))

        wrangler = TradeTickDataWrangler(
            instrument=ETHUSDT_BINANCE,
            data=TestDataProvider.ethusdt_trades(),
        )

        wrangler.pre_process(0)
        ticks = wrangler.build_ticks()

        # Act
        for tick in ticks:
            aggregator.handle_trade_tick(tick)

        # Assert
        last_bar = bar_store.get_store()[-1].bar
        self.assertEqual(187, len(bar_store.get_store()))
        self.assertEqual(Price("426.44"), last_bar.open)
        self.assertEqual(Price("426.84"), last_bar.high)
        self.assertEqual(Price("426.00"), last_bar.low)
        self.assertEqual(Price("426.82"), last_bar.close)
        self.assertEqual(Quantity(1000), last_bar.volume)
示例#2
0
    def test_run_trade_ticks_through_aggregator_results_in_expected_bars(self):
        # Arrange
        bar_store = ObjectStorer()
        handler = bar_store.store
        instrument = ETHUSDT_BINANCE
        bar_spec = BarSpecification(1000, BarAggregation.TICK, PriceType.LAST)
        bar_type = BarType(instrument.id, bar_spec)
        aggregator = TickBarAggregator(
            instrument,
            bar_type,
            handler,
            Logger(TestClock()),
        )

        wrangler = TradeTickDataWrangler(
            instrument=instrument,
            data=TestDataProvider.ethusdt_trades(),
        )

        wrangler.pre_process(0)
        ticks = wrangler.build_ticks()

        # Act
        for tick in ticks:
            aggregator.handle_trade_tick(tick)

        # Assert
        last_bar = bar_store.get_store()[-1]
        self.assertEqual(69, len(bar_store.get_store()))
        self.assertEqual(Price.from_str("426.72"), last_bar.open)
        self.assertEqual(Price.from_str("427.01"), last_bar.high)
        self.assertEqual(Price.from_str("426.46"), last_bar.low)
        self.assertEqual(Price.from_str("426.67"), last_bar.close)
        self.assertEqual(Quantity.from_int(2281), last_bar.volume)
class TradeTickDataWranglerTests(unittest.TestCase):
    def setUp(self):
        # Fixture Setup
        self.clock = TestClock()

    def test_tick_data(self):
        # Arrange
        # Act
        ticks = TestDataProvider.ethusdt_trades()

        # Assert
        self.assertEqual(69806, len(ticks))

    def test_process(self):
        # Arrange
        tick_data = TestDataProvider.ethusdt_trades()
        self.tick_builder = TradeTickDataWrangler(
            instrument=TestInstrumentProvider.default_fx_ccy(
                TestStubs.symbol_usdjpy_fxcm()),
            data=tick_data,
        )

        # Act
        self.tick_builder.pre_process(0)
        ticks = self.tick_builder.processed_data

        # Assert
        self.assertEqual(69806, len(ticks))
        self.assertEqual(
            Timestamp("2020-08-14 10:00:00.223000+0000", tz="UTC"),
            ticks.iloc[0].name)

    def test_build_ticks(self):
        # Arrange
        tick_data = TestDataProvider.ethusdt_trades()
        self.tick_builder = TradeTickDataWrangler(
            instrument=TestInstrumentProvider.ethusdt_binance(),
            data=tick_data,
        )

        # Act
        self.tick_builder.pre_process(0)
        ticks = self.tick_builder.build_ticks()

        # Assert
        self.assertEqual(69806, len(ticks))
        self.assertEqual(Price("423.760"), ticks[0].price)
        self.assertEqual(Quantity("2.67900"), ticks[0].size)
        self.assertEqual(OrderSide.SELL, ticks[0].side)
        self.assertEqual(TradeMatchId("148568980"), ticks[0].match_id)
        self.assertEqual(
            Timestamp("2020-08-14 10:00:00.223000+0000", tz="UTC"),
            ticks[0].timestamp)
class TardisTradeDataWranglerTests(unittest.TestCase):
    def setUp(self):
        # Fixture Setup
        self.clock = TestClock()

    def test_tick_data(self):
        # Arrange
        # Act
        ticks = TestDataProvider.tardis_trades()

        # Assert
        self.assertEqual(9999, len(ticks))

    def test_process(self):
        # Arrange
        tick_data = TestDataProvider.tardis_trades()
        self.tick_builder = TradeTickDataWrangler(
            instrument=TestInstrumentProvider.btcusdt_binance(),
            data=tick_data,
        )

        # Act
        self.tick_builder.pre_process(0)
        ticks = self.tick_builder.processed_data

        # Assert
        self.assertEqual(9999, len(ticks))
        self.assertEqual(
            Timestamp('2020-02-22 00:00:02.418379+0000', tz='UTC'),
            ticks.iloc[0].name)

    def test_build_ticks(self):
        # Arrange
        tick_data = TestDataProvider.tardis_trades()
        self.tick_builder = TradeTickDataWrangler(
            instrument=TestInstrumentProvider.btcusdt_binance(),
            data=tick_data,
        )

        # Act
        self.tick_builder.pre_process(0)
        ticks = self.tick_builder.build_ticks()

        # Assert
        self.assertEqual(9999, len(ticks))
        self.assertEqual(Price("9682.00"), ticks[0].price)
        self.assertEqual(Quantity("0.132000"), ticks[0].size)
        self.assertEqual(OrderSide.BUY, ticks[0].side)
        self.assertEqual(TradeMatchId("42377944"), ticks[0].match_id)
        self.assertEqual(
            Timestamp('2020-02-22 00:00:02.418379+0000', tz='UTC'),
            ticks[0].timestamp)
示例#5
0
class TradeTickDataWranglerTests(unittest.TestCase):
    def setUp(self):
        # Fixture Setup
        self.clock = TestClock()

    def test_tick_data(self):
        # Arrange
        # Act
        ticks = TestDataProvider.ethusdt_trades()

        # Assert
        self.assertEqual(69806, len(ticks))

    def test_process(self):
        # Arrange
        tick_data = TestDataProvider.ethusdt_trades()
        self.tick_builder = TradeTickDataWrangler(
            instrument=TestInstrumentProvider.default_fx_ccy("USD/JPY"),
            data=tick_data,
        )

        # Act
        self.tick_builder.pre_process(0)
        ticks = self.tick_builder.processed_data

        # Assert
        self.assertEqual(69806, len(ticks))
        self.assertEqual(
            Timestamp("2020-08-14 10:00:00.223000+0000", tz="UTC"),
            ticks.iloc[0].name)

    def test_build_ticks(self):
        # Arrange
        tick_data = TestDataProvider.ethusdt_trades()
        self.tick_builder = TradeTickDataWrangler(
            instrument=TestInstrumentProvider.ethusdt_binance(),
            data=tick_data,
        )

        # Act
        self.tick_builder.pre_process(0)
        ticks = self.tick_builder.build_ticks()

        # Assert
        self.assertEqual(69806, len(ticks))
        self.assertEqual(Price.from_str("423.760"), ticks[0].price)
        self.assertEqual(Quantity.from_str("2.67900"), ticks[0].size)
        self.assertEqual(AggressorSide.SELL, ticks[0].aggressor_side)
        self.assertEqual("148568980", ticks[0].match_id)
        self.assertEqual(1597399200223000064, ticks[0].ts_recv_ns)
示例#6
0
    def test_process(self):
        # Arrange
        tick_data = TestDataProvider.tardis_trades()
        self.tick_builder = TradeTickDataWrangler(
            instrument=TestInstrumentProvider.btcusdt_binance(),
            data=tick_data,
        )

        # Act
        self.tick_builder.pre_process(0)
        ticks = self.tick_builder.processed_data

        # Assert
        self.assertEqual(9999, len(ticks))
        self.assertEqual(Timestamp('2020-02-22 00:00:02.418379+0000', tz='UTC'), ticks.iloc[0].name)
示例#7
0
    def test_process(self):
        # Arrange
        tick_data = TestDataProvider.ethusdt_trades()
        self.tick_builder = TradeTickDataWrangler(
            instrument=TestInstrumentProvider.default_fx_ccy(TestStubs.symbol_usdjpy()),
            data=tick_data,
        )

        # Act
        self.tick_builder.pre_process(0)
        ticks = self.tick_builder.processed_data

        # Assert
        self.assertEqual(69806, len(ticks))
        self.assertEqual(Timestamp("2020-08-14 10:00:00.223000+0000", tz="UTC"), ticks.iloc[0].name)
    def test_build_ticks(self):
        # Arrange
        tick_data = TestDataProvider.tardis_trades()
        self.tick_builder = TradeTickDataWrangler(
            instrument=TestInstrumentProvider.btcusdt_binance(),
            data=tick_data,
        )

        # Act
        self.tick_builder.pre_process(0)
        ticks = self.tick_builder.build_ticks()

        # Assert
        self.assertEqual(9999, len(ticks))
        self.assertEqual(Price("9682.00"), ticks[0].price)
        self.assertEqual(Quantity("0.132000"), ticks[0].size)
        self.assertEqual(OrderSide.BUY, ticks[0].side)
        self.assertEqual(TradeMatchId("42377944"), ticks[0].match_id)
        self.assertEqual(1582329602418379008, ticks[0].timestamp_ns)
    def test_build_ticks(self):
        # Arrange
        tick_data = TestDataProvider.ethusdt_trades()
        self.tick_builder = TradeTickDataWrangler(
            instrument=TestInstrumentProvider.ethusdt_binance(),
            data=tick_data,
        )

        # Act
        self.tick_builder.pre_process(0)
        ticks = self.tick_builder.build_ticks()

        # Assert
        self.assertEqual(69806, len(ticks))
        self.assertEqual(Price("423.760"), ticks[0].price)
        self.assertEqual(Quantity("2.67900"), ticks[0].size)
        self.assertEqual(OrderSide.SELL, ticks[0].side)
        self.assertEqual(TradeMatchId("148568980"), ticks[0].match_id)
        self.assertEqual(1597399200223000064, ticks[0].timestamp_ns)
    def test_run_trade_ticks_through_aggregator_results_in_expected_bars(self):
        # Arrange
        bar_store = ObjectStorer()
        handler = bar_store.store
        bar_spec = BarSpecification(10000, BarAggregation.VALUE, PriceType.LAST)
        bar_type = BarType(ETHUSDT_BINANCE.id, bar_spec)
        aggregator = ValueBarAggregator(bar_type, handler, Logger(TestClock()))

        wrangler = TradeTickDataWrangler(
            instrument=ETHUSDT_BINANCE,
            data=TestDataProvider.ethusdt_trades(),
        )

        wrangler.pre_process(0)
        ticks = wrangler.build_ticks()

        # Act
        for tick in ticks:
            aggregator.handle_trade_tick(tick)