Como mencioné en mi comentario, los datos de ticks son las comillas y operaciones individuales; Yahoo sólo tiene datos diarios. Como analogía, siempre se puede hacer una foto de alta definición más borrosa y pixelada, pero no se puede añadir detalle y definición a una mala foto. Los datos diarios no son más que un agregado de ticks individuales, por lo que no se pueden obtener los ticks individuales de los datos diarios.
Necesitará una fuente diferente para los datos de los ticks, y éstos suelen ser comerciales. (Al fin y al cabo, los proveedores venden a los operadores profesionales).
Dicho esto, una vez que obtengas algunos datos sobre las garrapatas, agregaciones son bastante sencillas. He incluido algo de código de pandas aquí para la posteridad; esto supone un oficios Marco de datos con precio y tamaño columnas, indexadas por marca de tiempo.
Barras de tiempo
Sólo hay que dar el frecuencia que desee. Este es un ejemplo de barras de cinco minutos:
trades.groupby(pd.Grouper(freq="5min")).agg({'price': 'ohlc', 'size': 'sum'})
Barras de garrapatas
Definiremos una función de ayuda para redondear al entero más cercano:
def bar(xs, y): return np.int64(xs / y) * y
A continuación, agrupe por las barras del número de fila del Dataframe. Este es un ejemplo de barras de 10 compases:
trades.groupby(bar(np.arange(len(trades)), 10)).agg({'price': 'ohlc', 'size': 'sum'})
Barras de volumen
Agrupar por las barras del volumen acumulado. Este es un ejemplo para n acciones negociadas:
trades.groupby(bar(np.cumsum(trades['size']), n)).agg({'price': 'ohlc', 'size': 'sum'}