def METHOD_NAME(self,
            symbol: str,
            to: Union[str, int] = 200,
            resolution: Union[str, float] = '1d',
            start_date: Union[str, dt, float] = None,
            end_date: Union[str, dt, float] = None,
            return_as: str = 'df'):
    start, stop, res_seconds, to, present = self.calculate_epochs(start_date, end_date, resolution, to)
    response = self.overridden_history(symbol, start, stop, res_seconds, to=to,)
    # Add a check to make sure that coinbase pro has updated
    # I tried to delete this code but the entire function broke :(
    if present and self.get_exchange_type() == "coinbase_pro":
        data_append = None
        tries = 0
        while True:
            if data_append is None:
                # We can continue if this is valid
                if response['time'].iloc[-1] == stop:
                    break
            else:
                if data_append[0]['time'] == stop:
                    break
            time.sleep(.5)
            tries += 1
            if tries > 5:
                # Admit failure and return
                warnings.warn("Exchange failed to provide updated data within the timeout.")
                return self.cast_type(response, return_as)
            try:
                data_append = [self.get_product_history(symbol,
                                                        stop - res_seconds,
                                                        stop,
                                                        res_seconds).iloc[-1].to_dict()]
                data_append[0]['time'] = int(data_append[0]['time'])
            except IndexError:
                # If there is no recent data on the exchange this will be an empty dataframe.
                # This happens for low volume
                utils.info_print("Most recent bar at this resolution does not yet exist - skipping.")
                break
        response = response.append(data_append, ignore_index=True)
    # Determine the deque length - we really should use this generally
    if isinstance(to, int):
        point_count = to
    else:
        point_count = int((stop-start)/res_seconds + 1)
    # response.index = pd.to_datetime(response['time'], unit='s')
    return self.cast_type(response, return_as, point_count)