1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 基于macd kdj ma技术指标分析股票多空方向——应用开发2 获取股票历史数据

基于macd kdj ma技术指标分析股票多空方向——应用开发2 获取股票历史数据

时间:2021-04-22 01:26:53

相关推荐

基于macd kdj ma技术指标分析股票多空方向——应用开发2 获取股票历史数据

这里选用tushare平台获取股票历史数据

所用包

tushare 、pandas、datetime

import tushare as tsimport pandas as pdimport datetime

获取股票历史数据

初始化tushare

未有tushare账户的亲可以到这里注册:https://tushare.pro/register?reg=486428

#初始化你的tushare权限token='你的token'ts.set_token(token)pro=ts.pro_api()

获取股票 000001.SZ 从-1-17到-1-17过去365天的数据

stock_df= pro.daily(ts_code='000001.SZ', start_date='0117',end_date='2027')stock_df

输出数据如下

数据含有该股票的交易日、开盘价、最高价、最低价、收盘价、成交量等常用数据。由于我们需要获取不同股票最近一年的数据,所以对pro.daily的参数ts_code、start_date、end_date提供三个变量。分别是ts_code = stocknum、start_date=startday、end_date=today,这里需要用到datetime插件对today与startday进行初始化,代码如下。

#获取股票代码stocknum='000001.SZ'#获取今天日期today = datetime.datetime.today()#计算从今天起过去365天的日期startday=today+datetime.timedelta(days=-365)#使日期格式以年月日形式显示,如2027today = today.strftime('%Y%m%d')startday =startday.strftime('%Y%m%d')stock_df= pro.daily(ts_code=stocknum, start_date=startday,end_date=today)stock_df

现在能获得动态股票最近一年的数据,但这些数据还不能直接使用需要根据需求进行优化。根据后续要求对列trade_date的数据变成时间格式并作为主索引、对列vol改名为volume、将时间从远到近排列,对此操作的代码如下。

#获取股票代码stocknum='000001.SZ'#获取今天日期today = datetime.datetime.today()#计算从今天起过去365天的日期startday=today+datetime.timedelta(days=-365)#使日期格式以年月日形式显示,如2027today = today.strftime('%Y%m%d')startday =startday.strftime('%Y%m%d')#获取股票历史数据stock_df= pro.daily(ts_code=stocknum, start_date=startday,end_date=today)#把列trade_date数据转换为时间格式stock_df['trade_date'] = pd.to_datetime(stock_df['trade_date'])#把trade_date作为主索引stock_df.set_index('trade_date',inplace=True)#把列vol改名为volumestock_df=stock_df.rename(columns={'vol':'volume'})#数据倒序显示stock_df=stock_df.iloc[::-1]stock_df

输出数据如下

由于我们的股票代码是从EXCEL表格读取的,因此我们需要导入外部表格数据传值get_stocknum给stocknum,代码如下。

#读取股票代码get_stocknum =pd.read_excel('股票代码.xlsx')

最后把代码封装在get_stock函数里,实现stock_df=get_stock(get_stocknum.iloc[0,0])

完整代码如下

import tushare as tsimport pandas as pdimport datetimetoken='你的token'ts.set_token(token)pro=ts.pro_api()#定义获取股票历史数据函数def get_stock(num):stocknum=numtoday = datetime.datetime.today()startday=today+datetime.timedelta(days=-365)today = today.strftime('%Y%m%d')startday =startday.strftime('%Y%m%d')stock_df= pro.daily(ts_code=stocknum, start_date=startday,end_date=today)stock_df['trade_date'] = pd.to_datetime(stock_df['trade_date'])stock_df.set_index('trade_date',inplace=True)stock_df=stock_df.rename(columns={'vol':'volume'})stock_df=stock_df.iloc[::-1]return stock_dfget_stocknum =pd.read_excel('股票代码.xlsx')#get_stocknum.iloc[0,0]值为 000001.SZstock_df = get_stock(get_stocknum.iloc[0,0])stock_df

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。