def getdata(pair, bolllen): db = DatabaseInterface('data_bitmex') data = db.db_find([], 'KLINE5m', filter_dic={'pair': pair}, sort=[('time', -1)], limit=bolllen) data.index = [base.timestamp_toDatetime(float(t)) for t in data['time']] data = data.sort_values('time') return data
usedb = 'data_bitmex' data = getdata(pair, bolllen) db = DatabaseInterface(usedb) if data.index[-1].minute not in [55, 25]: print(data) assert False, str(data.index[-1].minute) else: insertdata = { 'close': float(data['close'].iloc[-1]), 'time': float(data['time'].iloc[0]), 'open': float(data['open'].iloc[0]), 'high': float(data['high'].max()), 'low': float(data['low'].min()), 'volume': float(data['volume'].sum()), 'pair': pair } lastdata = db.db_find([], 'KLINE30m', filter_dic={ 'pair': pair }, sort=[('time', -1)], limit=1).iloc[0, :] insertdata['pctchange'] = (data['close'].iloc[-1] - lastdata['close']) * 100.0 / lastdata['close'] print('bitmex 30m data updated') print(insertdata) db.db_insertone(insertdata, 'KLINE30m') updatesignal(pair, timeframe, usedb)