Python, преобразовывающий тиковые данные в OHLC - PullRequest
0 голосов
/ 29 августа 2018

Я пытался преобразовать данные тиков из GainCapital в OHLC в Python, но у меня возникли проблемы

Ссылка на источник данных здесь http://ratedata.gaincapital.com/

Я ввел свой код следующим образом:

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import mpl_finance 
from datetime import *

def conv_str_to_datetime(x):
    return(datetime.strptime(x, '%Y/%m/%d %H:%M:%S'))

df = pd.read_csv('USD_JPY_Week3.csv', names=['lTid', 'cDealable', 'CurrencyPair', 'RateDateTime','RateBid','RateAsk'], 
                 converters={'RateDateTime': conv_str_to_datetime}) # or change 'converters' to 'parse_dates=True' here

grouped = df.groupby('CurrencyPair')
ask =  grouped['RateAsk'].resample('15Min').ohlc()
bid = grouped['RateBid'].resample('15Min').ohlc()
pandas.concat([ask, bid], axis=1, keys=['RateAsk', 'RateBid'])

Когда я использую converters, я получаю:

ValueError: данные времени 'RateDateTime' не соответствуют формату '% Y /% m /% d% H:% M:% S'

Когда я заменяю его на parse_dates=True, Python возвращает:

TypeError: Действителен только с DatetimeIndex, TimedeltaIndex или PeriodIndex, но получил экземпляр RangeIndex

Я полностью сбит с толку этим и был бы очень признателен, если бы кто-нибудь мог помочь мне заставить мой код работать.

введите описание изображения здесь Обратите внимание, что на скриншоте я выделил красными кружками различия между отображением даты и времени одной и той же ячейки, это может быть одной из причин этого, но я не уверен

Первые 10 строк файла находятся здесь:

lTid    cDealable   CurrencyPair    RateDateTime    RateBid RateAsk
6858533811  D   USD/JPY 00:06.4 110.585 110.605
6858534097  D   USD/JPY 03:10.1 110.584 110.604
6858534127  D   USD/JPY 03:30.1 110.583 110.603
6858534151  D   USD/JPY 04:11.6 110.58  110.593
6858534284  D   USD/JPY 05:15.4 110.58  110.591
6858534287  D   USD/JPY 05:15.6 110.58  110.59
6858534316  D   USD/JPY 05:30.1 110.58  110.591
6858534335  D   USD/JPY 05:34.9 110.565 110.585
6858534342  D   USD/JPY 05:35.1 110.565 110.58
...