def ref_hist(self, tickers, flds, dates, ovrds=None,<EOL>date_field='<STR_LIT>'):
ovrds = [] if not ovrds else ovrds<EOL>if type(tickers) is not list:<EOL><INDENT>tickers = [tickers]<EOL><DEDENT>if type(flds) is not list:<EOL><INDENT>flds = [flds]<EOL><DEDENT>self._send_hist(tickers, flds, dates, date_field, ovrds)<EOL>data = self._parse_ref(flds, keep_corrId=True, sent_events=len(dates))<EOL>data = pd.DataFrame(data)<EOL>data.columns = ['<STR_LIT>', '<STR_LIT>', '<STR_LIT:value>', '<STR_LIT:date>']<EOL>data = data.sort_values(by='<STR_LIT:date>').reset_index(drop=True)<EOL>data = data.loc[:, ['<STR_LIT:date>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT:value>']]<EOL>return data<EOL>
Make iterative calls to ref() and create a long DataFrame with columns
[date, ticker, field, value] where each date corresponds to overriding
a historical data override field.

Parameters
----------
tickers: {list, string}
    String or list of strings corresponding to tickers
flds: {list, string}
    String or list of strings corresponding to FLDS
dates: list
    list of date strings in the format YYYYmmdd
ovrds: list of tuples
    List of tuples where each tuple corresponds to the override
    field and value. This should not include the date_field which will
    be iteratively overridden
date_field: str
    Field to iteratively override for requesting historical data,
    e.g. REFERENCE_DATE, CURVE_DATE, etc.

Example
-------
>>> import pdblp
>>> con = pdblp.BCon()
>>> con.start()
>>> dates = ["20160625", "20160626"]
>>> con.ref_hist("AUD1M CMPN Curncy", "SETTLE_DT", dates)