查看数据信息:
index_dfs.info()
导入包:
import baostock as bs
import pandas as pd
import numpy as np
假设我们要获取的股票列表为:
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")
frequency:数据类型,默认为d,日k线;d=日k线、w=周、m=月、5=5分钟、15=15分钟、30=30分钟、60=60分钟k线数据,不区分大小写;指数没有分钟线数据;周线每周最后一个交易日才可以获取,月线每月最后一个交易日才可以获取。
通过API接口获取指数K线数据。
想获取周K或者月K怎么办呢,很简单,改一下frequency参数就行了:
每个变量对应的意思,可以看官网的讲解:
综合指数,例如:sh.000001上证指数,sz.399106深证综指等;规模指数,例如: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()
我这里的时间是从2022-07-01到2023-03-01的,可以改,
自定义一个获取K线数据的函数:
def get_stocks_daily(stocks=["sh.601318"],start_date="2022-07-01",end_date="2023-03-01"):
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"]
df_results[cols_to_convert] = df_results[cols_to_convert].astype("float64")
return df_results
文章为作者独立观点,不代表股票交易接口观点