我有10只股票的代码,我想取到今日涨幅排在第二到第五的股票,

希望返回的有股票号,排名,涨幅。


我应该怎么写,谁能帮我举个例子,谢谢了。


3条回复 添加回复
小鹏北京

hahah ,我复制下来试试。

多谢了。


2017-02-17 17:00:22
剑_雪

import pandas as pd
# init方法是您的初始化逻辑。context对象可以在任何方法之间传递。
def init(context):
     context.stock = get_index_constituents('000985.SH')

    
# 日或分钟或实时数据更新,将会调用这个方法
def handle_data(context, data_dict):
    bkindex(context,data_dict)
        

def bkindex(context,data_dict):
    list_zf=[]
    list_name=[]
    list_rank=[]
    pd1=pd.DataFrame(columns=('code', 'zf','rank'))#得到一个空 DataFrame
    stkls=context.stock[0:9]
    for s in stkls:
        bk = get_history(5 ,'1d','close')[s].values
        zf = (bk[4] -bk[0])/bk[0]*100
        list_zf.append(zf)
        list_name.append(s)
    pd1['code']=list_name
    pd1['zf']=list_zf
    pd2=pd1['zf']
    pd2=pd2.rank(ascending=0)
    pd1['rank']=pd2.values
    pd1=pd1.sort(columns='zf',ascending=0)
    print(pd1.iloc[1:5,:])
    return(pd1.iloc[1:5,:])


2017-02-17 17:00:56
小鹏北京

试了一下。

有个疑问

    pd2=pd1['zf']

    pd2=pd2.rank(ascending=0)

这两个用于给排定位次,

能不能直接在pd1上给出位次,然后排序呢?



2017-02-20 08:58:57
1
提交
Copyright © 2004-2017 京东JD.com 版权所有 | 投资有风险,购买需谨慎