Nag
 · Trader, Algo enthusiast

want to find the best way to convert websocket data to candle data (any time frame)pi

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?

1
13 replies