Python+Tushare股票数据分析
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股票数据分析相关推荐
- Python实现股票数据分析的可视化
Python实现股票数据分析的可视化 文章目录 Python实现股票数据分析的可视化 一.简介 二.代码 1.主文件 2.数据库使用文件 3.ui设计模块 4.数据处理模块 三.数据样例的展示 四.效 ...
- 使用 Python 对股票数据分析预测
使用 Python 对股票数据分析预测 文章目录 使用 Python 对股票数据分析预测 目录索引 模块安装 股票数据获取 雅虎财经 Quandl 模块 Pandas Datareader 模块 数据 ...
- 用python进行股票数据分析_利用python进行股票数据分析
个人觉得这问题问的不太对,说句不好的话,你是来搞编程的还是做股票的. 当然,如果题主只是用来搜集资料,看数据的话那还是可以操作一波的,至于python要怎么入门,个人下面会推荐一些入门级的书籍,通过这 ...
- python股票数据分析_用Python进行股票数据分析
本篇运用Python进行自选股的数据分析,帮助进行投资决策,分析用到以下两个模块:pandas(数据分析包):pandas_datareader(可以查询雅虎的股票数据接口). 本篇参考了猴子老师的课 ...
- python tus股票数据分析_使用Python进行快速复盘[1]: 数据获取与整理
各位小伙伴周末好,本周想给大伙分享的内容是使用Python进行复盘,有小伙伴问到自己是否有必要学习Python,不可否认Python在进行数据分析时有很多优势,学习曲线也不算特别陡峭,但每个人具体情况 ...
- python tus股票数据分析_python 股票量化分析(一)---基于Tushare平台的个股历史行情获取...
在浩瀚如烟的股票中,如何将好股选择出来?长线.中线.短线个股如何筛选?国内外政治.经济.地缘博弈基本面对股市的影响有多大,怎样将其纳入股票选择买卖的决策因子?公司财报.未来规划.公司所处行业发展前景怎 ...
- python tus股票数据分析_用TuShare验证股市中的“春节效应”
在中国股民的印象中,农历年后股市一般上涨的概率较大,所以很多投资者会在农历年前买入股票,以待年后股市上涨收取红包,这叫做股市中的"春节效应".那么实际上存不存在这种"春节 ...
- Python tushare股票大数据分析与报告生成(优化版1)
前言: 重新复习了下之前写的代码,发现从tushare下载的数据有些是NaN值,自己研究了下这些NaN值的股票,都是些要么退市要么面临退市的风险问题股,之前在我写的文章代码里,生成的docx文档里含有 ...
- 用python做股市数据分析一_用python做股票数据分析(兴趣篇)
本文我们一起用python来对某只股票的所有历史日数据,做一个探索性的分析,看看能不能有一些有趣的发现,希望能激起你对金融数据分析的兴趣.主要用到numpy,pandas模块的一些基本用法.本文的所有 ...
- 用python进行股票数据分析_用 Python 做股市数据分析(2)
这篇博文是用Python分析股市数据系列两部中的第二部,内容基于我在阅读第一部分).在这两篇博文中,我会讨论一些基础知识,包括比如如何用pandas从雅虎财经获得数据, 可视化股市数据,平均数指标的定 ...
最新文章
- python3 format函数_Python学习教程:Python3之字符串格式化format函数详解(上)
- 海量存储系列上--转载,值得一读
- python图形化界面按钮_Python-PyQt5-图形可视化界面(3)--按钮--Qpushbutton
- spring注解大全
- 不是所有的程序员都适合转管理
- Rollback Protection
- vsphere6.0故障:关于vCenter Appliance6.0磁盘爆满和WEB503错误问题
- 自我介绍(老师作业,大神自行忽略)
- poj 2499第K短路模板
- Android TV开发总结(二)构建一个TV Metro界面(仿泰捷视频TV版)
- PHP_变量什么情况下加大括号{}
- linux PDF转换为SWF
- snmp扫描工具linux,SugarNMSTool-SugarNMSTool(snmp工具)下载 v2.0官方版--pc6下载站
- 终于有人把XGBoost 和 LightGBM 讲明白了,项目中最主流的集成算法!
- git学习之时光穿梭机
- 制作LFS之后的总结
- /usr/bin/ld: cannot find -lxxx 问题总结
- 在OpenCV里学习常见问题汇编27
- 认识JavaScript
- SSL/TLS(4): TLS连接握手过程详细分析
热门文章
- Python DataTable用法(一)
- 语音中常用输入特征的提取过程:MFCC、FBank
- 计算机怎么设置定时音乐,怎么让电脑自动开机播放音乐教程 以及自动关机计划任务设置...
- 【已解决】取消电脑自动开机
- 台式电脑里计算机里找不到驱动器,教大家为什么计算机找不到d驱动器和解决方案...
- [Pytorch系列-24]:神经网络基础 - 单个无激活函数的神经元实现简单线性回归 - 1
- python抢票脚本github_春运买不到票?程序员喊你来GitHub上用抢票神器!
- QQ企业邮箱和QQ邮箱之间的区别
- 纯css的大于号样式
- 人生短暂,持之以恒地做一件事情就会成功(每当烦躁心急如焚的时候就读读这篇文章吧)--转自孵化恐龙蛋