Ресамплинг котировок с помощью Python и Pandas. Как собрать из минутного таймфрейма любой другой.
Ninja Trader хранит и экспортирует котировки только в 1 минутном таймфрейме. Для экспорта других ТФ, можно воспользоваться специальным индикатором сторонних разработчиков., а можно делать ресамплниг (передискретизацию) самостоятельно.
Ниже приведен код скрипта ресамплинга 1 минутного ТФ в 5-ти минутный. Скрипт написан на Python с использованием библиотеки Pandas, которая прекрасно справляется с этой задачей.
Ниже приведен код скрипта ресамплинга 1 минутного ТФ в 5-ти минутный. Скрипт написан на Python с использованием библиотеки Pandas, которая прекрасно справляется с этой задачей.
#Импортируем Pandas import pandas as pd #Задаем путь к файлу с 1 минутными котировками, который экспортировали из NT file_in = "D:\Data\ES 06-15.Last.txt" #Задаем путь к файлу в который сохраним результат file_out = "D:\Data\ES-5m-pandas.txt" #Импортируем котировки из файла quotes_1min = pd.read_csv(file, parse_dates=[0], header = None, index_col = 0, sep = ';') #Даем колонкам название quotes_1min.columns = ['Open', 'High', 'Low', 'Close', 'Volume'] #Запоминаем порядок колонок order = quotes_1min.columns #Задаем правила ресамплинга (берем время открытия первой минуты, максимальную цену пятиминутки, #минимальную цену пятиминутки, время закрытия пятой минуты, суммарный объем за 5 мин.) conversion = {'Open' : 'first', 'High' : 'max', 'Low' : 'min', 'Close' : 'last', 'Volume' : 'sum'} #Делаем собственно ресамплинг с сохранением порядка колонок quotes_5min = quotes_1min.resample('5Min', how=conversion, base=5)[order] #Удаляем строки с пустыми (NaN) значениями quotes_5min = quotes_5min.dropna() #Сохраняем результат в файл quotes_5min.to_csv(file_out, sep=';' , encoding='utf-8')