numpy+pandas+matplotlib+tushare股票分析
一.数据导入
安装tushare模块包
pip install tushare
http://tushare.org/
tushare是一个财经数据接口包
import numpy as np
import matplotlib as plt
import pandas as pd
import tushare as ts #获取股票号为601318的股票信息
df=ts.get_k_data("") #将数据保存到本地,方便处理
df.to_csv("601318.csv",index=False) #获取数据内的有用列,并将date列作为index
df = pd.read_csv("601318.csv",index_col="date")[["open","close","high","low","volume"]]
二.分析股票策略
使用双均线金叉点和死叉点
首先是添加5日均线点,和30日均线点
#获取5日均线,10日均线
df["ma5"]=np.nan
df["ma30"]=np.nan # 方式一
# for i in range(4, len(df)):
# df.loc[df.index[i], 'ma5'] = df['close'][i-4:i+1].mean() # for i in range(29, len(df)):
# df.loc[df.index[i], 'ma30'] = df['close'][i-29:i+1].mean() # 方式二
df["ma5"]=df["close"].rolling(5).mean()
df["ma30"]=df["close"].rolling(30).mean()
三.查看数据图形
df[["close","ma5","ma30"]].plot()

四.获取金叉和死叉点
# 获取金叉点,死叉点
golden_cross = []
death_cross = [] for i in range(1, len(df)):
if df['ma5'][i] >= df['ma30'][i] and df['ma5'][i-1] < df['ma30'][i-1]:
golden_cross.append(df.index[i])
if df['ma5'][i] < df['ma30'][i] and df['ma5'][i-1] >= df['ma30'][i-1]:
death_cross.append(df.index[i])
五.计算收益
first_money = 100000
money = first_money
hold = 0 # 持有的股票数 sr1 = pd.Series(1, index=golden_cross)
sr2 = pd.Series(0, index=death_cross)
sr = sr2.append(sr1).sort_index() for i in range(0, len(sr)):
p = df['close'][sr.index[i]]
if sr.iloc[i] == 1:
#金叉
buy = (money // p*100)
hold += buy*100
money -= buy*100*p
else:
money += hold*p
hold = 0 p = df['close'][-1]
now_money = hold*p + money now_money - first_money
numpy+pandas+matplotlib+tushare股票分析的更多相关文章
- python 数据分析工具之 numpy pandas matplotlib
作为一个网络技术人员,机器学习是一种很有必要学习的技术,在这个数据爆炸的时代更是如此. python做数据分析,最常用以下几个库 numpy pandas matplotlib 一.Numpy库 为了 ...
- 第一章:AI人工智能 の 数据预处理编程实战 Numpy, Pandas, Matplotlib, Scikit-Learn
本课主题 数据中 Independent 变量和 Dependent 变量 Python 数据预处理的三大神器:Numpy.Pandas.Matplotlib Scikit-Learn 的机器学习实战 ...
- 常用统计分析python包开源学习代码 numpy pandas matplotlib
常用统计分析python包开源学习代码 numpy pandas matplotlib 待办 https://github.com/zmzhouXJTU/Python-Data-Analysis
- Python模块简介及安装 [numpy,pandas,matplotlib,scipy,statsmodels,Gensim,sklearn,keras]
https://pan.baidu.com/s/1bpVv3Ef 67bd 模块安装文件下载地址 pip install "numpy-1.12.0b+mkl-cp35- ...
- numpy, pandas, matplotlib等常用库的学习手册
pandas介绍: 待续 参考资料: 中文:https://www.cnblogs.com/skying555/p/5914391.html 英文:http://www.datadependence. ...
- Pandas应用案例-股票分析:使用tushare包获取股票的历史行情数据进行数据分析
目标: 使用tushare包获取股票的历史行情数据 输出该股票所有收盘比开盘上涨3%以上的日期 输出该股票所有开盘比前日收盘跌幅超过2%以上的日期 假如为我们从2010年1月1日开始,每月第一个交易日 ...
- numpy pandas matplotlib
import numpy as np import pandas as pd import matplotlib.pyplot as plt ---------------numpy--------- ...
- Numpy, Pandas, Matplotlib, Scipy 初步
Numpy: 计算基础, 以类似于matlab的矩阵计算为基础. 底层以C实现, 速度快. Pandas: 以numpy为基础, 扩充了很多统计工具. 重点是数据统计分析. Matplotlib: ...
- python 安装anaconda, numpy, pandas, matplotlib 等
如果没安装anaconda,则这样安装这些库: pip install numpy pip install pandas pip install matplotlib sudo apt-get ins ...
随机推荐
- 转 Python-IndexError: list index out of range
https://www.cnblogs.com/2bjiujiu/p/9063864.html Error:IndexError: list index out of range Where? 对Py ...
- 转 使用隐含Trace参数诊断Oracle Data Pump故障
http://blog.itpub.net/17203031/viewspace-772718/ Data Pump数据泵是Oracle从10g开始推出的,用于取代传统exp/imp工具的数据备份还原 ...
- Eclipse代码规范工具-Checkstyle安装和使用
您首先可以参考这里:http://www.ibm.com/developerworks/cn/java/j-ap01117/index.html 那么首先您应该下载CheStyle: http://s ...
- SpringBoot初始教程之Servlet、Filter、Listener配置详解
1.介绍 通过之前的文章来看,SpringBoot涵盖了很多配置,但是往往一些配置是采用原生的Servlet进行的,但是在SpringBoot中不需要配置web.xml的 因为有可能打包之后是一个ja ...
- hdfs namenode/datanode工作机制
一. namenode工作机制 1. 客户端上传文件时,namenode先检查有没有同名的文件,如果有,则直接返回错误信息.如果没有,则根据要上传文件的大小以及block的大小,算出需要分成几个blo ...
- OS---文件结构
1.概述 1.1 对于任何一个文件,都存在以下2种形式结构: 文件的逻辑结构: 从用户的角度出发所观察到的文件组织形式,独立于文件的物理特性: 文件的物理结构(文件存储结构): 文件在外存上的存储组织 ...
- 如何获取Android手机的唯一标识
有很多场景和需求你需要用到手机设备的唯一标识符. 在Android中,有以下几种方法获取这样的ID. 1. The IMEI: 仅仅只对Android手机有效: 1 2 TelephonyManage ...
- 在cms以及kindeditor中插入百度动态地图的方法
想在网页中插入动态地图不难,直接打开网址http://api.map.baidu.com/lbsapi/creatmap/,然后按照提示操作,最终生成脚本,放到html文件中即可.而在kindedit ...
- (转)GitHub上整理的一些工具,求补充 -
SegmentFault 技术站点 Hacker News:非常棒的针对编程的链接聚合网站 Programming reddit:同上 MSDN:微软相关的官方技术集中地,主要是文档类 infoq ...
- c#比较两个字符串
1. String.Compare(str1, str2) == 0 或者 str1.CompareTo(str2) == 0 2. str1.Equals(str2) 或者 String.Eq ...