import pandas as pd from datetime import datetime,timedelta import math # --------------------------- # Configs - User adjust # input_file = "C:/Users/Dave/Downloads/NQSampleFile.txt" ba_ready_file = "C:/Users/Dave/Downloads/BAReady.txt" timeframe = 60 volume_shift = 1 # ---------------------- # Do NOT Change # df = pd.read_csv(input_file,delimiter=';',index_col=0,parse_dates=True,header=None) df.sort_index(ascending=True,inplace=True) df.columns = ["Open","High","Low","Last","Volume"] df.index = [d - timedelta(minutes=1) for d in df.index] # ---------------------- # Resample # ohlc_dict = {'Open' : 'first','High' : 'max','Low':'min','Last': 'last','Volume' : 'sum'} df = df.resample('%dT' % timeframe,convention='end',label='right').apply(ohlc_dict) df.dropna(inplace=True) df['Volume'] = [int(v) if not math.isnan(v) else 0 for v in df['Volume']] fh = open(ba_ready_file,'w') fh.write("Date,Time,Open,High,Low,Close,Vol,OI\n") for d,o,h,l,c,v in zip(df.index,df['Open'],df['High'],df['Low'],df['Last'],df['Volume']): fh.write("%s,%s,%.5f,%.5f,%.5f,%.5f,%d,%d\n" % (d.strftime('%m/%d/%Y'),d.strftime('%H:%M:%S'),o,h,l,c,int(v/volume_shift),0)) fh.close()