PythonStock(12):使用python,pandas进行股票分析
2017-11-17 13:03
1036 查看
前言
使用Python开发一个股票项目。项目地址:
https://github.com/pythonstock/stock
相关资料:
http://blog.csdn.net/freewebsys/article/details/78294566
主要使用开发语言是python。
使用的lib库是pandas,tushare,TensorFlow,tornado等。
本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/78559979
未经博主允许不得转载。
博主地址是:http://blog.csdn.net/freewebsys
1,使用python进行股票分析
首先使用tushare保存股票000001 的也就是平安银行的历史数据从。 07-01 到 11-01 的股票数据。并且把数据存储到 pickle,一种python 默认支持的序列化格式。 pandas 默认支持多种数据格式,可以直接存储。#!/usr/local/bin/python # -*- coding: utf-8 -*- import math import pandas as pd import numpy as np import tushare as ts import datetime import matplotlib.pyplot as plt import matplotlib.ticker as ticker begin_time = '2017-02-01' end_time = '2017-11-01' code = "000001" stock = ts.get_hist_data(code, start=begin_time, end=end_time) stock = stock.sort_index(0) # 将数据按照日期排序下。 stock.to_pickle("stock_data_000001.pickle") print("finish save ...")
2,读出股票数据
读出股票数据。并且画出股票收盘价的曲线图。pandas可以直接plot出。#读取股票数据分析。不用每次网络请求数据 stock = pd.read_pickle("stock_data_000001.pickle") #5周期、10周期、20周期和60周期 #周线、半月线、月线和季度线 stock["5d"] = stock["close"].rolling(window = 5).mean() #周线 stock["10d"] = stock["close"].rolling(window = 10).mean() #半月线 stock["20d"] = stock["close"].rolling(window = 20).mean() #月线 stock["60d"] = stock["close"].rolling(window = 60).mean() #季度线 #print(stock.head(1)) #展示股票收盘价格信息 stock[["close","5d","10d","20d","60d",]].plot(figsize=(20,10), grid=True) plt.show()
stock["5-10d"] = stock["5d"] - stock["10d"] #周-半月线差 stock["5-20d"] = stock["5d"] - stock["10d"] #周-月线差 stock[["close","5-10d","5-20d"]].plot(subplots=True, style='b', figsize=(20,10), grid=True) plt.show()
3,计算股票收益
return 股票收益,使用的是,用当日的收盘价格,除以前一个交易日的收盘价格。 然后在用log 将数据变成 正负的数据。可以看到return 在-0.06 在 0.06 之间波动,如果为负值,说明股票下跌。
如果为正值则股票上涨。可以看出,股票的收益和波动和股票的价格波动一致。
#计算股票的收益价格 stock["return"] = np.log( stock["close"] / stock["close"].shift(1)) # stock["return_a"] = stock["close"] / stock["close"].shift(1) # print(stock[["return","return_a"]].head(15)) stock[["close","return"]].plot(subplots=True, style='b', figsize=(20,10), grid=True) plt.show()
#计算股票的【收益率的移动历史标准差】 mov_day = int(len(stock)/20) stock["mov_vol"] = stock["return"].rolling(window = mov_day).std()*math.sqrt(mov_day) #print(stock["mov_vol"].head(mov_day+1)) stock[["close","mov_vol","return"]].plot(subplots=True, style='b', figsize=(20,10), grid=True) plt.show() # print(stock[["mov_vol","return"]].tail(30)) # print(stock["mov_vol"].tail(5).sum()) # print(stock["mov_vol"].tail(10).sum()) # print(stock["mov_vol"].tail(15).sum()) # print(stock["mov_vol"].describe())
4,总结
使用 python 的pandas 统计分析基本的股票分析非常的方便快速。使用了最少的代码完成了计算,同时还可以使用matplotlib 将图画出。
使用 tushare 可以方便的获得股票信息。两个结合起来非常的强大。
本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/78559979
未经博主允许不得转载。
博主地址是:http://blog.csdn.net/freewebsys
相关文章推荐
- PythonStock(10):使用notebook + tushare + pandas 简单的股票分析,蜡烛图
- PythonStock(17):使用scikit-learn进行股票分析
- 利用Python进行数据分析(12) pandas基础: 数据合并
- PythonStock(9):使用优矿uqer.io 进行简单的数据分析
- 利用Python进行数据分析(12) pandas基础: 数据合并
- Python 使用 pandas 进行数据分析
- 使用python,pandas对外汇储备进行预测分析
- 【量化小讲堂-Python&Pandas系列01】如何快速上手使用Python进行金融数据分析
- python爬虫爬取指定用户微博图片及内容,并进行微博分类及使用习惯分析,生成可视化图表
- 利用 Python 进行数据分析(七)pandas 简单介绍(Series 和 DataFrame)
- 利用python进行数据分析之pandas库的应用(二)
- 利用python进行数据分析-pandas入门3
- 利用Python进行数据分析(14) pandas基础: 数据转换
- 利用Python进行数据分析(10) pandas基础: 处理缺失数据
- 利用 Python 进行数据分析(九)pandas 汇总统计和计算
- 使用 profile 进行python代码性能分析
- 利用python进行数据分析之pandas库的应用(一)
- 利用python进行数据分析-pandas入门
- 使用Python进行聚类分析
- 利用Python进行数据分析(11) pandas基础: 层次化索引