I'm using following python code to convert ticks data to construct candle data.
constructing a dataframe with websocket data .
def custom_message(msgs):
for msg in msgs:
ltp = msg['ltp']
time_stamp = datetime.fromtimestamp(msg['timestamp'])
instrument = msg['symbol']
exchange = 'NSE'
global df_data
tmp_df = pd.DataFrame([[instrument, ltp, ltp, ltp, ltp, time_stamp, exchange]], columns=['symbol', 'high', 'open', 'low', 'close', 'timestamp', 'exchange'])
df_data = pd.concat([df_data, tmp_df], a
conversion = {'open' : 'first', 'high' : 'max', 'low' : 'min', 'close' : 'last'}
copydf = df_data.copy(deep=True).drop_duplicates()
copydf['timestamp'] = copydf['timestamp'].apply(pd.to_datetime)
copydf.set_index('timestamp', inplace=True)
sample = copydf.resample('3Min').agg(conversion).dropna()
Is there any better way to do that?