下面是我接收交易组合列表中所列股票数据的逐点数据的代码。 我正在从zerodha api平台接收刻度数据
import pandas as pd
from kiteconnect import KiteTicker
import kiteconnect
import datetime
import logging
pd.options.display.max_columns = 100
pd.options.display.width = 1500
pd.options.display.max_rows = 100
logging.basicConfig(level=logging.DEBUG)
api_key = ""
access_token = ""
kws = ""
kite = ""
# Initialise
kws = KiteTicker(api_key, access_token)
trade_portfolio = [3050241,969473, 784129, 2889473,897537,3465729,2953217]
data_list1 = []
def on_ticks(ws,ticks):
for alldata in ticks:
data_list1 = alldata['instrument_token'],alldata['timestamp'],alldata['ohlc']['high'],alldata['ohlc']['low'],alldata['ohlc']['close'],alldata['ohlc']['open'],alldata['last_price'],alldata['volume']
df = pd.DataFrame(data_list1, index=['token number','timestamp','high','low','close','open','lastprice','volume'])
df = df.transpose()
print(df)
subscribe = trade_portfolio
def on_connect(ws, response):
ws.subscribe(subscribe)
ws.set_mode(ws.MODE_FULL, subscribe)
kws.on_ticks = on_ticks
kws.on_connect = on_connect
kws.connect()
现在我的问题是:
我需要在我的输出中有一个单独的列名,即tokennumber、timestamp、high、low、close、open、volume应该是列名,但我收到的不同股票的所有tick数据都应该低于第1行、第2行等等,为了更清楚地描述我需要这种格式的o/p:请忽略下表中的列名和数据
由于我正在以逐勾格式接收数据,即每秒钟接收一次新数据,因此如何根据令牌编号更新数据,并且在同一行中不为更新的数据创建其他行。例如,在下面的excel表格中,应更新wipro行中的库存wipro数据,仅当循环通过令牌时,不创建任何新行,所有其他库存也应如此。我知道它可以通过索引切片来完成(我想是的),但我不能这样做,所以你能帮我解决这个问题吗
目前没有回答
相关问题 更多 >
编程相关推荐