FXのヒストリカルデータを取得するために、私はいつもDukascopyを利用している。
おかしな日付
ダウンロードしたデータをプロットしてみたら、おかしなことになった。
self.csv_data = pd.read_csv(self.csv_path, index_col=0, parse_dates=True, header=0)
dukascopyの日時のフォーマットは、03.07.2017 00:00:00.000 のようになっている。
なので、2017年7月3日をpandasは間違えて 2017年3月7日としてパースしてしまったようだ。
正しい日付にパース
こういう場合は、自前のパーサを作成して、pandas.read_csv に date_parser optionの引数としてパーサを渡すことで解決する。
f = '%d.%m.%Y %H:%M:%S.%f'
my_parser = lambda date: pd.datetime.strptime(date, f)
self.csv_data = pd.read_csv(self.csv_path, index_col=0, parse_dates=True, header=0,
date_parser=my_parser)