栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

用腾讯股票数据源更新qlib日K数据

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

用腾讯股票数据源更新qlib日K数据

def remote_source_tencent(symbol: str, interval: str, start_datetime: pd.Timestamp, end_datetime: pd.Timestamp):
    qtype = "day" if "d" in interval else interval
    interval = "day" if "d" in interval else interval
    codes = symbol.split(".",1)
    txsymbol=("sh" if codes[1] == "ss" else codes[1]) + codes[0]

    url = 'http://web.ifzq.gtimg.cn/appstock/app/fqkline/get?_var=kline_%sqfq¶m=%s,%s,%s,%s,%s,qfq&r=0.%s'
    url = url % (interval, txsymbol, interval, start_datetime.date(), end_datetime.date(), 640, _random())

    content = urlopen(url).read().decode()
    content = content.split('=', maxsplit=1)[-1]
    content = json.loads(content)
    data = content['data'][txsymbol]
    if interval in data:
        data = data[qtype]
    elif 'qfq' + qtype in data:
        data = data['qfq'+qtype]
    else:
        raise ValueError('已知的key在dict中均不存在,请检查数据')

    df = pd.Dataframe(data)
    if len(data) <= 0:
        return df
    df.rename(columns={0:"date",1:"open",2:"close",3:"high",4:"low",5:"volume"},inplace=True)
    df[['open','close','low','high']]=df[['open','close','low','high']].astype('float')
    df[['volume']]=df[['volume']].astype('float').round(0).astype(int)
    df['date']=df['date'].apply(lambda x: datetime.datetime.date(datetime.datetime.strptime(x,'%Y-%m-%d')))
    df['volume']*=100
    df.loc[:,'adjclose']=df["close"]
    df.loc[:,'symbol']=symbol
    df.set_index(['symbol','date'],inplace=True)
    return df

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/272998.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号