def test_extract_price_with_invalid_price_raises_value_error(self): # Arrange tick = QuoteTick( instrument_id=AUDUSD_SIM.id, bid=Price.from_str("1.00000"), ask=Price.from_str("1.00001"), bid_size=Quantity.from_int(1), ask_size=Quantity.from_int(1), ts_event=0, ts_init=0, ) # Act, Assert with pytest.raises(ValueError): tick.extract_price(0)
def test_extract_price_with_various_price_types_returns_expected_values(self): # Arrange tick = QuoteTick( instrument_id=AUDUSD_SIM.id, bid=Price.from_str("1.00000"), ask=Price.from_str("1.00001"), bid_size=Quantity.from_int(1), ask_size=Quantity.from_int(1), ts_event=0, ts_init=0, ) # Act result1 = tick.extract_price(PriceType.ASK) result2 = tick.extract_price(PriceType.MID) result3 = tick.extract_price(PriceType.BID) # Assert assert result1 == Price.from_str("1.00001") assert result2 == Price.from_str("1.000005") assert result3 == Price.from_str("1.00000")
def handle_quote_tick(self, tick: QuoteTick): """ Update the indicator with the given quote tick. Parameters ---------- tick : QuoteTick The update tick to handle. """ PyCondition.not_none(tick, "tick") self.update_raw(tick.extract_price(self.price_type).as_double())