数据分析---使用Tushare对股票分析

Posted xied

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据分析---使用Tushare对股票分析相关的知识,希望对你有一定的参考价值。

 

Demand:

  • 使用tushare包获取某股票的历史行情数据。
  • 输出该股票所有收盘比开盘上涨3%以上的日期。
  • 输出该股票所有开盘比前日收盘跌幅超过2%的日期。
  • 假如我从2010年1月1日开始,每月第一个交易日买入1手股票,每年最后一个交易日卖出所有股票,到今天为止,我的收益如何?

使用tushare包获取某股票的历史行情数据

  • pip install tushare

import tushare as ts
df = ts.get_k_data(600519,start=1900-01-01)

df.to_csv(./maotai.csv)

#输出该股票所有收盘比开盘上涨3%以上的日期

df = pd.read_csv(./maotai.csv)
df.drop(labels=Unnamed: 0,axis=1,inplace=True)

#验证data列中数据的数据类型
type(df[date][9])

#将date这一列的数据先转成时间类型然后将其作为原数据的行索引
df = pd.read_csv(./maotai.csv,index_col=date,parse_dates=[date])
df.drop(labels=Unnamed: 0,axis=1,inplace=True)

#(收盘-开盘)/开盘 > 0.03
(df[close] - df[open]) / df[open] > 0.03
#True:满足需求
#false:不满足

#返回了满足需求的行数据
df.loc[(df[close] - df[open]) / df[open] > 0.03]
#获取了满足需求的日期
df.loc[(df[close] - df[open]) / df[open] > 0.03].index

#结论:如果获取了一组布尔值,接下来改组布尔值就直接作为元数据的行索引

(df[open] - df[close].shift(1))/df[close].shift(1) < -0.02

#满足需求的行数据
df.loc[(df[open] - df[close].shift(1))/df[close].shift(1) < -0.02].index



df_new = df[2010:2019]
#数据的重新取样的机制(resample):根据指定好的规则进行指定数据的提取

df_monthly = df_new.resample(M).first()
#计算出买股票一共花了多少钱

cost_monry = df_monthly[open].sum()*100
df_yearly = df_new.resample(A).last()

df_yearly = df_yearly[:-1]

recv_monry = df_yearly[open].sum()*1200
last_price = df.iloc[-1][close]

cunHuo_price = last_price * 900

#计算总收益
cunHuo_price+recv_monry-cost_monry

 

 

以上是关于数据分析---使用Tushare对股票分析的主要内容,如果未能解决你的问题,请参考以下文章

tushare+matplotlib 简单财务分析

数据分析03 /基于pandas进行股票分析

Tushare(金融数据接口包)

使用tushare获取股票历史数据和实时分笔数据

用python的tushare模块分析股票案例(python3经典编程案例)

用python的tushare模块分析股票案例(python3经典编程案例)