掘金社区

python 订阅tick后context.data返回的不是dataframe格式,并且无法生成正确的dataframePinned highlighted

130523***287 发表在问题反馈 2019-04-20 01:35:21

问题反馈
230
1
0

def init(context):
subscribe(symbols='SHFE.ag1906', frequency='tick',count=5)

def on_tick(context, tick):
a=context.data(symbol='SHFE.ag1906', frequency='tick',count=5)
df=pd.DataFrame(a)
print(a)
print(df)

context.data返回的是一个列表,列表中的每个元素为tickdict类型,不是python的dict类型,所以没法生成正常的dataframe
最终生成的dataframe 只有一列 每行都是一个tickdict

                                              0

0 {'price': 3537.0, 'created_at': datetime.datet...
1 {'price': 3537.0, 'created_at': datetime.datet...
2 {'price': 3538.0, 'created_at': datetime.datet...
3 {'price': 3538.0, 'created_at': datetime.datet...
4 {'price': 3538.0, 'created_at': datetime.datet..

评论: 1
  • context.data返回的是一个列表字典, 很容易转化成dataframe的,
    def init(context):
    subscribe(symbols='SHFE.ag1906', frequency='tick',count=5)

    def on_tick(context, tick):
    a=context.data(symbol='SHFE.ag1906', frequency='tick',count=5)
    df = pd.DataFrame()
    for tick in a:
    df = df.append(pd.DataFrame({'symbol': tick.symbol, 'open': tick.open, 'high': tick.high}, index=[1]))

    2019-04-23 11:00:58

Looks like your connection to 掘金量化社区 - 量化交易者的策略交流学习社区 was lost, please wait while we try to reconnect.