def exps(self, opttype, strike):
        """
        Prices for given strike on all available dates.

        Parameters
        ----------
        opttype : str ('call' or 'put')
        strike : numeric

        Returns
        ----------
        df : :class:`pandas.DataFrame`
        eq : float
            Price of underlying.
        qt : :class:`datetime.datetime`
            Time of quote.

        See Also
        --------
        :meth:`strikes`
        """
        _relevant = _relevant_rows(self.data, (strike, slice(None), opttype,),
                "No key for {} {}".format(strike, opttype))
        _index = _relevant.index.get_level_values('Expiry')
        _columns = ['Price', 'Time_Val', 'Last', 'Bid', 'Ask', 'Vol', 'Open_Int']
        _df = pd.DataFrame(index=_index, columns=_columns)
        _eq = _relevant.loc[:, 'Underlying_Price'].values[0]
        _qt = pd.to_datetime(_relevant.loc[:, 'Quote_Time'].values[0], utc=True).to_datetime()
        for _col in _columns[2:]:
            _df.loc[:, _col] = _relevant.loc[:, _col].values
        _df.loc[:, 'Price'] = (_df.loc[:, 'Bid'] + _df.loc[:, 'Ask']) / 2.
        _set_tv_other_ix(_df, opttype, 'Price', 'Time_Val', _eq, strike)
        return _df, _eq, _qt