1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > python tus股票数据分析_python 股票量化分析(一)---基于Tushare平台的个股历史行情获取...

python tus股票数据分析_python 股票量化分析(一)---基于Tushare平台的个股历史行情获取...

时间:2019-09-24 21:45:08

相关推荐

python tus股票数据分析_python 股票量化分析(一)---基于Tushare平台的个股历史行情获取...

在浩瀚如烟的股票中,如何将好股选择出来?长线、中线、短线个股如何筛选?国内外政治、经济、地缘博弈基本面对股市的影响有多大,怎样将其纳入股票选择买卖的决策因子?公司财报、未来规划、公司所处行业发展前景怎么影响个股走势?MACD、CCI、布林带等技术指标对个股未来走势的影响?

股票多、影响买卖决策的因素多,将股票大牛、自身实战经验提炼为可供计算机量化处理、识别、执行的标准模型,由计算机选出符合自身投资理念的股票,是人生一大乐事。本人已通过两个月的时间建立起了自己的选股交易模型,此后,将在知乎将模型的建立过程与各位分享,也希望大家多多交流指导,不断丰富优化量化分析模型。此文先介绍模型的第一步--获取股票行情数据。

本模型所有的个股、指数、基本面的数据均来自于Tushare社区。Tushare大数据社区​tushare.pro首先在python中安装 tushare、pandas、numpy库,其中pandas、numpy库中有丰富的数据处理函数,可自行在网上查阅资料学习。

在上面的Tushare大数据社区中注册,获得一个ID

根据Tushare的接口,编制个股历史行情数据(日线),本模型使用python 3.8编译器,代码编辑器使用Visual Studio Codimport tushare as ts

import pandas as pd

import time

import os

import tus.chdir(r'D:\xxx\xx\xxxx\STOCK\tushare') #保存数据文件的绝对路径,可自行设置

pro = ts.pro_api('设置自己在Tushare上注册的ID')#不同的数据有积分要求

pd.set_option('expand_frame_repr', False)#True就是可以换行显示。设置成False的时候不允许换行

pd.set_option('display.max_columns', None)# 显示所有列

#pd.set_option('display.max_rows', None)# 显示所有行

pd.set_option('colheader_justify', 'centre')# 显示居中

#df_daily = pro.daily() 获取所有股票日行情信息

#df_basic = pro#.stock_basic() 获取所有股票基本信息

def get_all_stockdata(st_date, ed_date):

trade_d = pro.trade_cal(exchange='SSE', is_open='1', start_date=st_date, end_date=ed_date, fields='cal_date')

# 上面代码用于获取所有股票的代码、名称、交易日期等信息

for date in trade_d['cal_date'].values:

# 先获得所有股票的行情数据

df_daily = pro.daily(trade_date=date)

# 再获取所有股票的基本信息

df_basic = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,ex#change,name,area,industry,list_date')

#行情数据跟基本信息数据合并生成一个csv数据文件

#on='ts_code'以ts_code为索引,合并数据,how='outer',取并集

df_all = pd.merge(left=df_basic, right=df_daily, on='ts_code', how='outer')

#删除symbol列数据,跟ts_code数据重复

df_all = df_all.drop('symbol', axis=1)

#强制转换成str字符串格式

df_all['ts_code'] = df_all['ts_code'].astype(str)

# 保存数据,不保存索引,如果index=True,则保存索引会多出一列

df_all.to_csv(str(date) + '_ts.csv', index=False, encoding='gbk')

print(df_all)

print('%s is downloaded.' % (str(date)))

return df_all

if __name__=="__main__":

get_all_stockdata('', '')#获取从7月16日至17的数据

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