He garrapata garrapatas de datos de pares de divisasDe marque por los datos de garrapatas al candelabro
Aquí está una muestra de EURUSD/EURUSD-2012-06.csv
EUR/USD,20120601 00:00:00.207,1.23618,1.2363
EUR/USD,20120601 00:00:00.209,1.23618,1.23631
EUR/USD,20120601 00:00:00.210,1.23618,1.23631
EUR/USD,20120601 00:00:00.211,1.23623,1.23631
EUR/USD,20120601 00:00:00.240,1.23623,1.23627
EUR/USD,20120601 00:00:00.423,1.23622,1.23627
EUR/USD,20120601 00:00:00.457,1.2362,1.23626
EUR/USD,20120601 00:00:01.537,1.2362,1.23625
EUR/USD,20120601 00:00:03.010,1.2362,1.23624
EUR/USD,20120601 00:00:03.012,1.2362,1.23625
datos de garrapatas completo puede descargarse aquí http://dl.free.fr/k4vVF7aOD
Las columnas son:
Symbol,Datetime,Bid,Ask
me gustaría convertir esta garrapata por los datos de garrapatas a los datos de velas (también llamado OHLC Apertura Máxima Baja Cierre) voy a decir que yo quiero conseguir un marco de tiempo M15 (15 minutos) como un ejemplo
me gustaría usar la biblioteca de Python y Pandas para lograr esta tarea.
que he hecho una pequeña parte del trabajo ... la lectura de la garrapata por la garrapata archivo de datos
Este es el código
#!/usr/bin/env python
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.finance import candlestick
from datetime import *
def conv_str_to_datetime(x):
return(datetime.strptime(x, '%Y%m%d %H:%M:%S.%f'))
df = pd.read_csv('test_EURUSD/EURUSD-2012-07.csv', names=['Symbol', 'Date_Time', 'Bid', 'Ask'], converters={'Date_Time': conv_str_to_datetime})
PipPosition = 4
df['Spread'] = (df['Ask'] - df['Bid']) * 10**PipPosition
print(df)
print("="*10)
print(df.ix[0])
pero ahora no sé cómo empezar resto o del trabajo ...
que desea obtener datos como
Symbol,Datetime_open_candle,open_price,high_price,low_price,close_price
precio de la vela se basará n Columna de ofertas.
La primera parte del problema está en mi mente para obtener la primera Datetime_open_candle (compatible con el marco de tiempo deseado, digamos que el nombre de la variable es dt1) y la última Datetime_open_candle (digamos que el nombre de esta variable es dt2).
Después de que probablemente tendrá que obtener datos de DT1 DT2 a (y no los datos antes y después de DT1 DT2)
Sabiendo DT1 y DT2 y plazo deseado puedo saber el número de velas voy a tener ...
He "solo para" saber, para cada vela, qué es precio abierto/alto/bajo/cerrado.
Estoy buscando un algoritmo bastante rápido, si es posible uno vectorizado (si es posible) ya que los datos de ticks pueden ser muy grandes.
está en el camino correcto: numpy y scipy contienen funciones de estadísticas rápidas y vectorizadas que deben permitirle hacer lo que quiere hacer. –
También puede usar Pandas - http://pandas.pydata.org/ que proporciona una capa de abstracción sobre numpy y permite la conversión de frecuencia, p. de datos minuciosamente a cada hora. También debería permitirle procesar datos de ticks en OHLC más fácilmente (y de manera eficiente). – kgr
Me alegra decir que estoy en el camino correcto (has notado mis etiquetas) ... pero definitivamente estoy atascado. Intenté df2 = df.resample ('1Min') pero obtengo TypeError: ¡Sólo válido con DatetimeIndex o PeriodIndex –