def METHOD_NAME(
    self, ticker_object: tickerObject, contract_order: contractOrder
) -> benchmarkPriceCollection:
    # We use prices for a couple of reasons:
    # to provide a benchmark for execution purposes
    # (optionally) to set limit prices
    ##
    log = contract_order.log_with_attributes(self.data.log)
    # Get the first 'reference' tick
    try:
        reference_tick = (
            ticker_object.wait_for_valid_bid_and_ask_and_return_current_tick(
                wait_time_seconds=10
            )
        )
    except missingData:
        log.warning(
            "Can't get market data for %s so not trading with limit order %s"
            % (contract_order.instrument_code, str(contract_order))
        )
        raise
    tick_analysis = ticker_object.analyse_for_tick(reference_tick)
    ticker_object.clear_and_add_reference_as_first_tick(reference_tick)
    # These prices will be used for limit price purposes
    # They are scalars
    collected_prices = benchmarkPriceCollection(
        offside_price=tick_analysis.offside_price,
        side_price=tick_analysis.side_price,
        mid_price=tick_analysis.mid_price,
    )
    return collected_prices