Python量化交易09——使用证券宝获取金融行情数据(baostock)

接上一篇文章介绍怎么用Tushare获取日k数据后,本章教大家怎么用证券宝获取数据.

baostock 的官网链接:A股K线数据 - www.baostock.com

这是免费的一个库,数据种类也很很丰富,挺好用的。


日K 

导入包:

import baostock as bs
import pandas as pd
import numpy as np

自定义一个获取K线数据的函数:

def get_stocks_daily(stocks=['sh.601318'],start_date='2022-04-01',end_date='2023-03-29'):
    lg = bs.login()
    df_results=pd.DataFrame()
    for stock in stocks:
        rs_result = bs.query_history_k_data_plus(stock,fields="date,code,open,high,low,close,preclose,volume,amount,adjustflag,turn,tradestatus,pctChg,isST"\
                                                 , start_date=start_date,end_date=end_date, frequency="d", adjustflag="3")
        df_result = rs_result.get_data()
        #df_result=df_result.set_index('date')
        df_results=pd.concat([df_results,df_result],ignore_index=True)
        print(f"{stock}获取完成")
    bs.logout()
    cols_to_convert = [col for col in df_results.columns if col != 'code' and col!='date']
    df_results['date']=pd.to_datetime(df_results['date'])
    df_results[cols_to_convert] = df_results[cols_to_convert].astype('float64')
    return df_results

我这里的时间是从2022-07-01到2023-03-01的,可以改,

假设我们要获取的股票列表为:

stocks_lst=['sh.601318', 'sz.001696', 'sz.000002', 'sz.000063', 'sz.002415', 'sz.000001', 'sh.601888', 'sh.601166', 'sh.601668', 'sh.601628', 'sh.600547', 'sh.601688', 'sh.600030', 'sh.603259', 'sh.600585', 'sh.601211']

传入上面的函数,就可以得到数据表了

get_stocks_daily(stocks=stocks_lst,start_date='2022-07-01',end_date='2023-03-01')

 想获取周K或者月K怎么办呢,很简单,改一下frequency参数就行了:

  • frequency:数据类型,默认为d,日k线;d=日k线、w=周、m=月、5=5分钟、15=15分钟、30=30分钟、60=60分钟k线数据,不区分大小写;指数没有分钟线数据;周线每周最后一个交易日才可以获取,月线每月最后一个交易日才可以获取。


指数 

还可以获取一些指数的数据:

通过API接口获取指数(综合指数、规模指数、一级行业指数、二级行业指数、策略指数、成长指数、价值指数、主题指数)K线数据。

  1. 综合指数,例如:sh.000001 上证指数,sz.399106 深证综指 等;
  2. 规模指数,例如:sh.000016 上证50,sh.000300 沪深300,sh.000905 中证500,sz.399001 深证成指等;
index_lst=['sh.000001', 'sz.399106', 'sh.000016', 'sh.000300', 'sh.000905', 'sz.399001']

 获取

index_dfs=get_stocks_daily(stocks=index_lst)

查看前五行

index_dfs.head()

 

查看数据信息:

index_dfs.info()

 

每个变量对应的意思,可以看官网的讲解:


证券宝的数据种类也是很多的:

 官网上的代码样例都很清楚,就不多说了。

猜你喜欢

转载自blog.csdn.net/weixin_46277779/article/details/129821907