基于Python获取股票分析,数据分析实战_python股票分析快速接口(2)

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

        #把索引赋值给trade_date
        #self.his_dat['trade_date'] = self.his_dat.index
        self.his_dat = self.his_dat.reset_index()
        self.setCodebyOld()
                        
        self.his_dat['ts_code'] = self.code
        #参照pro接口,修改列名
        self.his_dat = self.his_dat.rename(columns={

‘date’:‘trade_date’,‘volume’:‘vol’,‘price_change’:‘change’,‘p_change’:‘pct_chg’})
#筛选列
self.his_dat = self.his_dat[self.columns] #.reset_index()

    return self.his_dat

本接口只能获取近3年的日线数据,适合搭配均线数据进行选股和分析。


输入参数说明:


|股票代码|开始日期|结束日期|数据类型|




| 老版本关键字 | 新版本关键字(pro) | 说明 |
| --- | --- | --- |
| code | ts\_code | 股票代码 |
|  | trade\_date | 交易日期 |
| start | start\_date | 开始日期,格式YYYY-MM-DD/新版本YYYYMMDD |
| end | end\_date | 结束日期,格式YYYY-MM-DD/新版本YYYYMMDD |
| ktype |  | 数据类型 |
| retry\_count |  | 当网络异常后重试次数,默认为3 |
| pause |  | 重试时停顿秒数,默认为0 |


老版本中:


1.股票代码,即6位数字代码,或者指数代码(sh=上证指数 sz=深圳成指 hs300=沪深300指数 sz50=上证50 zxb=中小板 cyb=创业板)


2.数据类型,D=日k线 W=周 M=月 5=5分钟 15=15分钟 30=30分钟 60=60分钟,默认为D


返回值说明:




| 老版本关键字 | 新版本关键字(pro) | 说明 |
| --- | --- | --- |
|  | ts\_code | 股票代码 |
| date | trade\_date | 交易日期 |
| open | open | 开盘价 |
| high | high | 最高价 |
| close | close | 收盘价 |
|  | pre\_close | 昨收盘价 |
| low | low | 最低价 |
| volume | vol | 成交量 |
| price\_change | change | 价格变动、涨跌额 |
| p\_change | pct\_chg | 涨跌幅 |
| ma5 |  | 5日均价 |
| ma10 |  | 10日均价 |
| ma20 |  | 20日均价 |
| v\_ma5 |  | 5日均量 |
| v\_ma10 |  | 10日均量 |
| v\_ma20 |  | 20日均量 |
| turnover |  | 换手率[注:指数无此项] |
|  | amount | 成交额 |


老版本中date为index,不是具体column。


### 2.2. 获取历史行情数据——指数


上证指数、深圳成指、沪深300指数、上证50 、中小板、创业板等。


上证指数代码为“000001.SH”,老版本代码为“sh”;深成指数代码为“399001.SZ”,老版本为“399001”或“sz”。



#获取沪深指数
def get_hs_index(self,start_date,end_date):
if self.pro:
self.hs_index = ts.pro_bar(ts_code= self.code, asset=‘I’, start_date=start_date, end_date=end_date)
else:
#旧接口,不用注册
index_code={
‘000001.SH’:‘sh’,‘399001.SZ’:‘399001’,‘000300.SH’:‘000016.SH’,‘sz50’:‘sz50’,‘399005.SZ’:‘zxb’,‘399006.SZ’:‘cyb’}

        self.his_dat = ts.get_hist_data(code=index_code[self.code],start=start_date, end=end_date)
        #把索引赋值给trade_date
        #self.his_dat['trade_date'] = self.his_dat.index
        self.his_dat = self.his_dat.reset_index()
                        
        self.his_dat['ts_code'] = self.code
        #参照pro接口,修改列名
        self.his_dat = self.his_dat.rename(columns={

‘date’:‘trade_date’,‘volume’:‘vol’,‘price_change’:‘change’,‘p_change’:‘pct_chg’})
#筛选列
self.his_dat = self.his_dat[self.columns] #.reset_index()

    return self.hs_index

### 2.3. 获取历史行情数据——情绪指数


目前pro版本国外已经支持如下指数数据(数据来源:https://tushare.pro/):




| TS指数代码 | 指数名称 |
| --- | --- |
| XIN9 | 富时中国A50指数 (富时A50) |
| HSI | 恒生指数 |
| DJI | 道琼斯工业指数 |
| SPX | 标普500指数 |
| IXIC | 纳斯达克指数 |
| FTSE | 富时100指数 |
| FCHI | 法国CAC40指数 |
| GDAXI | 德国DAX指数 |
| N225 | 日经225指数 |
| KS11 | 韩国综合指数 |
| AS51 | 澳大利亚标普200指数 |
| SENSEX | 印度孟买SENSEX指数 |
| IBOVESPA | 巴西IBOVESPA指数 |
| RTS | 俄罗斯RTS指数 |
| TWII | 台湾加权指数 |
| CKLSE | 马来西亚指数 |
| SPTSX | 加拿大S&P/TSX指数 |
| CSX5P | STOXX欧洲50指数 |


使用方法:



#美股指数
def get_us_index(self,start_date,end_date):
if self.pro:
self.us_index = self.stock.index_global(ts_code= self.us_code, start_date=start_date, end_date=end_date)
self.us_index = self.us_index[self.columns]

    return self.us_index

### 2.4. 获取分时数据


升级pro版本,可以获取3年的数据,而老版本 只能获取1个月的分时数据。



#获取分钟级别数据
def get_tickshare_dat(self,freq,start_date, end_date):
if self.pro:
start_date=re.sub(‘\D’,‘’,start_date)
end_date = re.sub(‘\D’,‘’,end_date)
freq = freq + ‘min’
self.tickshare_dat = ts.pro_bar(ts_code=self.code, freq = freq,start_date=start_date, end_date=end_date)
self.tickshare_dat[‘vol’] = self.tickshare_dat[‘vol’] /100
else:
# ktype:数据类型,D=日k线 W=周 M=月 5=5分钟 15=15分钟 30=30分钟 60=60分钟,默认为D
self.tickshare_dat = ts.get_hist_data(code=self.code, ktype = freq,start=start_date, end=end_date)
self.tickshare_dat[‘ts_code’] = self.code
self.tickshare_dat = self.tickshare_dat.reset_index()
self.tickshare_dat = self.tickshare_dat.rename(columns={
‘date’:‘trade_time’,‘volume’:‘vol’})
self.tickshare_dat[‘trade_date’] = self.tickshare_dat[‘trade_time’].apply(lambda x:re.sub(‘\D’,‘’,x[0:10]))
self.setCodebyOld()
self.tickshare_dat[‘ts_code’] = self.code
self.tickshare_dat = self.tickshare_dat[[‘ts_code’,‘trade_time’,‘open’,‘high’,‘close’,‘low’,‘vol’,‘trade_date’]]

    return self.tickshare_dat

注:输入freq为字符型数字,1/5/15/30/60

2.5. 获取股票基本信息
#获取股票基本面信息
def get_ShareInfo(self,trade_date):
if self.pro:
self.shareInfo = self.stock.daily_basic(ts_code=self.code, trade_date=trade_date) #, fields=‘ts_code,trade_date,turnover_rate,volume_ratio,pe,pb’)
else:
self.shareInfo = ts.get_stock_basics()

    print(self.shareInfo)

2.6. 获取复权数据

获取复权数据

def get_h_dat(self,start_date,end_date,fq='hfq'):
    #self.h_dat = ts.get_h_data(code=self.code, autype='hfq',start=start_date, end=end_date)
    self.h_dat = ts.pro_bar(ts_code=self.code, adj=fq, start_date=start_date, end_date=end_date)
                                                                     
    return self.h_dat
  1. 数据存储在本地Mongo数据库中
    class Stock_Collection(object):
    def init(self,db_name):
    self.db_name = db_name
    client = pymongo.MongoClient(‘mongodb://stock:stock@localhost:27017/stock’)
    self.db = client[self.db_name]

    def insertdatas(self,name,datas):
    collection = self.db[name]

     collection.insert(json.loads(datas.T.to_json()).values())
    

    def getDistinctCode(self,name):
    collection = self.db[name]

     code = collection.distinct('ts_code')   
     
     return code
    

    def setIndex_Code(self):
    self.sentiment_index = [‘IXIC’,‘DJI’,‘HSI’] # 情绪指数
    self.sentiment_index_column = [‘trade_date’,‘open’,‘high’,‘close’,‘low’,‘change’,‘pct_chg’]
    self.index_daily = [‘000001.SH’, ‘399001.SZ’]
    self.index_daily_column = [‘trade_date’,‘open’,‘high’,‘close’,‘low’,‘vol’,‘change’,‘pct_chg’]

    def setCode(self,code):
    self.code = code #[‘002230.SZ’] #, ‘000547.SZ’, ‘601318.SH’, ‘601208.SH’, ‘600030.SH’, ‘000938.SZ’, ‘002108.SZ’, ‘600967.SH’]
    self.stock_column = [‘trade_date’,‘open’,‘high’,‘close’,‘low’,‘vol’,‘change’,‘pct_chg’]

    构造LSTM模型训练集

    def generate_train_datas(self,db_name,code_name,filename):
    collection = self.db[db_name]
    self.out_code = code_name
    #查询条件“字典”
    query_dict = {
    ‘ts_code’:‘1’,‘trade_date’:{
    ‘$gt’:‘20171001’}}
    #col_name = {‘_id’:0,‘trade_date’:1,‘ts_code’:1,‘open’:1,‘high’:1,‘close’:1,‘low’:1,‘vol’:1,‘change’:1,‘pct_chg’:1}
    col_name = {
    ‘_id’:0}
    for d in self.stock_column:
    col_name[d] = 1

     query_dict['ts_code'] = self.out_code
     #注意时间排序
     df = pd.DataFrame(list(collection.find(query_dict,col_name).sort([('trade_date',1)])))
     df['trade_date'] = df['trade_date'].apply(lambda x:re.sub('\D','',x)) #去掉日期中的“-”符号
     self.code.remove(self.out_code)  # 删除输出股票代码
     #构造股票数据集
     n = 0
     k = 0
     columns = self.stock_column.copy()
    

(1)Python所有方向的学习路线(新版)

这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

最近我才对这些路线做了一下新的更新,知识体系更全面了。

在这里插入图片描述

(2)Python学习视频

包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。

在这里插入图片描述

(3)100多个练手项目

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。

在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 10
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《基于股票数据分析Python入门实战PDF》是一本通过Python语言来进行股票数据分析的入门实战教材。本书的目的是帮助读者了解如何使用Python编程语言来处理、分析和可视化股票市场的大量数据。 本书首先介绍了Python编程语言的基本概念和语法,以帮助读者建立起对Python的基本理解和使用能力。接着,本书详细讲解了使用Python进行股票数据获取和预处理,包括如何使用Python库来访问股票市场数据的API接口,以及对获取数据进行清洗和处理的方法和技巧。 然后,本书介绍了如何使用Python进行股票数据分析和建模。通过使用Python中的数据分析库和机器学习库,读者可以学习到如何对股票数据进行统计分析、时间序列分析、回归分析、聚类分析等。同时,本书还详细介绍了如何使用Python进行股票数据可视化,包括折线图、K线图、散点图等常用图表的绘制方法。 最后,本书还提供了一些实际案例,通过这些案例,读者可以更好地理解如何将Python编程技能应用于股票数据分析,进一步提高自己的实战能力。 《基于股票数据分析Python入门实战PDF》不仅适合想要学习Python编程和股票数据分析的初学者,也适合已有一定编程基础的人士进行参考和实践。通过阅读本书,读者可以深入了解Python股票数据分析方面的应用,为自己的投资决策提供更多的数据支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值