Tushare是一个免费提供各类金融数据 , 助力智能投资与创新型投资的平台。在这个平台上可以免费获得股票、期货和外汇的各种数据。(Tushare ID:492265)

本次我就使用Tushare来获取股票数据,模拟股票交易。

一、Tushare的注册安装

1、Tushare注册链接:https://tushare.pro/register?reg=492265,注册完成之后进入个人主页

2、完善个人信息

完善好个人资料可以获得20积分,加上注册送的100积分,可以用股票的行情数据,对于练手来说,够用了。如果你是学生的话,还可以进行学生认证,所有接口数据都可以使用。

3、TOKEN获取

点击接口TOKEN(复制自己的TOKEN,之后介绍TOKEN如何使用,注意:这个TOKEN是你自己的,不要外传)

二、使用Tushare进行股票分析

需求:

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

安装tushare包

pip install tushare

导入需要的包

import tushare as ts
import pandas as pd
from pandas import DataFrame,Series
import numpy as np
pro = ts.pro_api('你的TOKEN')  #填入,上面第三步获取到的TOKEN
df = pro.daily(ts_code='600519.SH',start_date='20000101',fields='trade_date,open,high,low,close,pre_close')

获取到的股票历史行情数据,此处以茅台为例,股票代码为:600519.SH,可以根据自己需求换别的。

#将trade_date设置为行索引
df['trade_date'] = pd.to_datetime(df['trade_date'])
df.set_index('trade_date',inplace=True)

#输出该股票所有收盘比开盘上涨3%以上的日期
#(收盘-开盘)/开盘 > 0.03
df.loc[(df['close'] - df['open']) / df['open'] > 0.03].index

#输出该股票所有开盘比前日收盘跌幅超过2%的日期
#(开盘-前日收盘)/前日收盘 < -0.02
df.loc[(df['open'] - df['pre_close']) / df['pre_close'] < -0.02].index

#假如我从2010年1月1日开始,每月第一个交易日买入1手股票,每年最后一个交易日卖出所有股票,到今天为止,我的收益如何?
#每月第一个交易日对应的行数据
df_month = df.resample('M').first()
#买入股票花费的总金额
cost = df_monthly['open'].sum()*100
#卖出股票到手的钱,2022年的卖不出去,剔除掉
df_year = df.resample('A').last()[:-1]
resv = df_year['open'].sum()*1200
#最后手中剩余的股票需要估量其价值计算到总收益中
last_monry = 100*df['close'][0]
#计算总收益
resv+last_monry-cost

需求:双均线策略制定

  • 使用tushare包获取某股票的历史行情数据
  • 计算该股票历史数据的5日均线和30日均线
  • 分析输出所有金叉日期和死叉日期
  • 如果我从假如我从2010年1月1日开始,初始资金为100000元,金叉尽量买入,死叉全部卖出,则到今天为止,我的炒股收益率如何?

继续使用上面获取到的茅台数据进行操作

df = df[::-1] #将数据按时间正序排列
df

ma5 = df['close'].rolling(5).mean()   #5日均线
ma30 = df['close'].rolling(30).mean() #30日均线

将5日均线与30日均线画出来

import matplotlib.pyplot as plt
%matplotlib inline
plt.plot(ma5[30::])
plt.plot(ma30[30::])

#展示其中一部分
plt.plot(ma5[100:500])
plt.plot(ma30[100:500])


分析输出所有金叉日期和死叉日期

#让ma5,ma30保持一样长
ma5  = ma5[30:]
ma30 = ma30[30:]
df = df[30:]
s1 = ma5 < ma30
s2 = ma5 > ma30death_ex = s1 & s2.shift(1) #判定死叉的条件
death_date = df.loc[death_ex].index #死叉的时间golden_ex = ~(s1 | s2.shift(1))#判定金叉的条件
golden_date = df.loc[golden_ex].index #金叉的时间s1 = Series(data=1,index=golden_date) #1作为金叉的标识
s2 = Series(data=0,index=death_date)  #0作为死叉的标识
s = s1.append(s2)
s = s.sort_index() #存储的是金叉和死叉对应的时间
s


如果我从假如我从2010年1月1日开始,初始资金为100000元,金叉尽量买入,死叉全部卖出,则到今天为止,我的炒股收益率如何?

first_monry = 100000 #本金
money = first_monry  #口袋有的现金
hold = 0  #持有股票的数量(股数:100股=1手)for i in range(len(s)): time = s.index[i]  p = df.loc[time]['open'] #当前时刻股票的单价if s[i] == 1:#金叉的时间hand_count = money // (p*100) #尽可能多的买入股票hold = hand_count * 100 money -= (hold * p) #将买股票话的钱从money中减去else:  #死叉,卖掉全部股票money += (p_death * hold) #卖出的股票收入加入到moneyhold = 0last_monry = hold * df['close'][-1]  #将手里现有的所有股票按最近一天的收盘价换算
#总收益
money + last_monry - first_monry

Python+Tushare股票数据分析相关推荐

  1. Python实现股票数据分析的可视化

    Python实现股票数据分析的可视化 文章目录 Python实现股票数据分析的可视化 一.简介 二.代码 1.主文件 2.数据库使用文件 3.ui设计模块 4.数据处理模块 三.数据样例的展示 四.效 ...

  2. 使用 Python 对股票数据分析预测

    使用 Python 对股票数据分析预测 文章目录 使用 Python 对股票数据分析预测 目录索引 模块安装 股票数据获取 雅虎财经 Quandl 模块 Pandas Datareader 模块 数据 ...

  3. 用python进行股票数据分析_利用python进行股票数据分析

    个人觉得这问题问的不太对,说句不好的话,你是来搞编程的还是做股票的. 当然,如果题主只是用来搜集资料,看数据的话那还是可以操作一波的,至于python要怎么入门,个人下面会推荐一些入门级的书籍,通过这 ...

  4. python股票数据分析_用Python进行股票数据分析

    本篇运用Python进行自选股的数据分析,帮助进行投资决策,分析用到以下两个模块:pandas(数据分析包):pandas_datareader(可以查询雅虎的股票数据接口). 本篇参考了猴子老师的课 ...

  5. python tus股票数据分析_使用Python进行快速复盘[1]: 数据获取与整理

    各位小伙伴周末好,本周想给大伙分享的内容是使用Python进行复盘,有小伙伴问到自己是否有必要学习Python,不可否认Python在进行数据分析时有很多优势,学习曲线也不算特别陡峭,但每个人具体情况 ...

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

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

  7. python tus股票数据分析_用TuShare验证股市中的“春节效应”

    在中国股民的印象中,农历年后股市一般上涨的概率较大,所以很多投资者会在农历年前买入股票,以待年后股市上涨收取红包,这叫做股市中的"春节效应".那么实际上存不存在这种"春节 ...

  8. Python tushare股票大数据分析与报告生成(优化版1)

    前言: 重新复习了下之前写的代码,发现从tushare下载的数据有些是NaN值,自己研究了下这些NaN值的股票,都是些要么退市要么面临退市的风险问题股,之前在我写的文章代码里,生成的docx文档里含有 ...

  9. 用python做股市数据分析一_用python做股票数据分析(兴趣篇)

    本文我们一起用python来对某只股票的所有历史日数据,做一个探索性的分析,看看能不能有一些有趣的发现,希望能激起你对金融数据分析的兴趣.主要用到numpy,pandas模块的一些基本用法.本文的所有 ...

  10. 用python进行股票数据分析_用 Python 做股市数据分析(2)

    这篇博文是用Python分析股市数据系列两部中的第二部,内容基于我在阅读第一部分).在这两篇博文中,我会讨论一些基础知识,包括比如如何用pandas从雅虎财经获得数据, 可视化股市数据,平均数指标的定 ...

最新文章

  1. python3 format函数_Python学习教程:Python3之字符串格式化format函数详解(上)
  2. 海量存储系列上--转载,值得一读
  3. python图形化界面按钮_Python-PyQt5-图形可视化界面(3)--按钮--Qpushbutton
  4. spring注解大全
  5. 不是所有的程序员都适合转管理
  6. Rollback Protection
  7. vsphere6.0故障:关于vCenter Appliance6.0磁盘爆满和WEB503错误问题
  8. 自我介绍(老师作业,大神自行忽略)
  9. poj 2499第K短路模板
  10. Android TV开发总结(二)构建一个TV Metro界面(仿泰捷视频TV版)
  11. PHP_变量什么情况下加大括号{}
  12. linux PDF转换为SWF
  13. snmp扫描工具linux,SugarNMSTool-SugarNMSTool(snmp工具)下载 v2.0官方版--pc6下载站
  14. 终于有人把XGBoost 和 LightGBM 讲明白了,项目中最主流的集成算法!
  15. git学习之时光穿梭机
  16. 制作LFS之后的总结
  17. /usr/bin/ld: cannot find -lxxx 问题总结
  18. 在OpenCV里学习常见问题汇编27
  19. 认识JavaScript
  20. SSL/TLS(4): TLS连接握手过程详细分析

热门文章

  1. Python DataTable用法(一)
  2. 语音中常用输入特征的提取过程:MFCC、FBank
  3. 计算机怎么设置定时音乐,怎么让电脑自动开机播放音乐教程 以及自动关机计划任务设置...
  4. 【已解决】取消电脑自动开机
  5. 台式电脑里计算机里找不到驱动器,教大家为什么计算机找不到d驱动器和解决方案...
  6. [Pytorch系列-24]:神经网络基础 - 单个无激活函数的神经元实现简单线性回归 - 1
  7. python抢票脚本github_春运买不到票?程序员喊你来GitHub上用抢票神器!
  8. QQ企业邮箱和QQ邮箱之间的区别
  9. 纯css的大于号样式
  10. 人生短暂,持之以恒地做一件事情就会成功(每当烦躁心急如焚的时候就读读这篇文章吧)--转自孵化恐龙蛋