'Retrieve the pricing info for the given sid, dt, and field.
Parameters
sid : int
Asset identifier.
dt : datetime-like
The datetime at which the trade occurred.
field : string
The type of pricing data to retrieve.
(\'open\', \'high\', \'low\', \'close\', \'volume\')
Returns
out : float|int
The market data for the given sid, dt, and field coordinates.
For OHLC:
Returns a float if a trade occurred at the given dt.
If no trade occurred, a np.nan is returned.
For volume:
Returns the integer value of the volume.
(A volume of 0 signifies no trades for the given dt.)'

def get_value(self, sid, dt, field):

    if (self._last_get_value_dt_value == dt.value):
        minute_pos = self._last_get_value_dt_position
    else:
        try:
            minute_pos = self._find_position_of_minute(dt)
        except ValueError:
            raise NoDataOnDate()
        self._last_get_value_dt_value = dt.value
        self._last_get_value_dt_position = minute_pos
    try:
        value = self._open_minute_file(field, sid)[minute_pos]
    except IndexError:
        value = 0
    if (value == 0):
        if (field == 'volume'):
            return 0
        else:
            return np.nan
    if (field != 'volume'):
        value *= self._ohlc_ratio_inverse_for_sid(sid)
    return value
