怎样使用tushare macd的提供的数据与库talib计算macd

TuShare -财经数据接口包
Navigation
宏观经济数据
宏观经济数据提供国内重要的宏观经济数据,目前只提供比较常用的宏观经济数据,通过简单的接口调用可获取相应的DataFrame格式数据,大项主要包括以下类别:
金融信息数据
国民经济数据
价格指数数据
景气指数数据
对外经济贸易数据
【注:以下所有数据的结果打印只显示了前10行记录】
调用方法:
import tushare as ts
ts.get_deposit_rate()
返回值说明:
date :变动日期
deposit_type :存款种类
rate:利率(%)
结果显示:
deposit_type
定活两便(定期)
定期存款整存整取(半年)
定期存款整存整取(二年)
定期存款整存整取(三个月)
定期存款整存整取(三年)
定期存款整存整取(五年)
定期存款整存整取(一年)
活期存款(不定期)
零存整取、整存零取、存本取息定期存款(三年)
零存整取、整存零取、存本取息定期存款(五年)
零存整取、整存零取、存本取息定期存款(一年)
调用方法:
import tushare as ts
ts.get_loan_rate()
返回值说明:
date :执行日期
loan_type :存款种类
rate:利率(%)
结果显示:
短期贷款(六个月以内)
短期贷款(六个月至一年)
中长期贷款(三至五年)
中长期贷款(五年以上)
中长期贷款(一至三年)
贴现(贴现)
优惠贷款(扶贫贴息贷款)
优惠贷款(老少边穷发展经济贷款)
优惠贷款(民政部门福利工厂贷款)
优惠贷款(民族贸易及民族用品生产贷款)
优惠贷款(贫困县办工业贷款)
存款准备金率
调用方法:
import tushare as ts
ts.get_rrr()
返回值说明:
date :变动日期
before :调整前存款准备金率(%)
now:调整后存款准备金率(%)
changed:调整幅度(%)
结果显示:
货币供应量
调用方法:
import tushare as ts
ts.get_money_supply()
返回值说明:
month :统计时间
m2 :货币和准货币(广义货币M2)(亿元)
m2_yoy:货币和准货币(广义货币M2)同比增长(%)
m1:货币(狭义货币M1)(亿元)
m1_yoy:货币(狭义货币M1)同比增长(%)
m0:流通中现金(M0)(亿元)
m0_yoy:流通中现金(M0)同比增长(%)
cd:活期存款(亿元)
cd_yoy:活期存款同比增长(%)
qm:准货币(亿元)
qm_yoy:准货币同比增长(%)
ftd:定期存款(亿元)
ftd_yoy:定期存款同比增长(%)
sd:储蓄存款(亿元)
sd_yoy:储蓄存款同比增长(%)
rests:其他存款(亿元)
rests_yoy:其他存款同比增长(%)
结果显示:
货币供应量(年底余额)
调用方法:
import tushare as ts
ts.get_money_supply_bal()
返回值说明:
year :统计年度
m2 :货币和准货币(亿元)
m1:货币(亿元)
m0:流通中现金(亿元)
cd:活期存款(亿元)
qm:准货币(亿元)
ftd:定期存款(亿元)
sd:储蓄存款(亿元)
rests:其他存款(亿元)
结果显示:
国内生产总值(年度)
调用方法:
import tushare as ts
ts.get_gdp_year()
返回值说明:
year :统计年度
gdp :国内生产总值(亿元)
pc_gdp :人均国内生产总值(元)
gnp :国民生产总值(亿元)
pi :第一产业(亿元)
si :第二产业(亿元)
industry :工业(亿元)
cons_industry :建筑业(亿元)
ti :第三产业(亿元)
trans_industry :交通运输仓储邮电通信业(亿元)
lbdy :批发零售贸易及餐饮业(亿元)
结果显示:
国内生产总值(季度)
调用方法:
import tushare as ts
ts.get_gdp_quarter()
返回值说明:
quarter :季度
gdp :国内生产总值(亿元)
gdp_yoy :国内生产总值同比增长(%)
pi :第一产业增加值(亿元)
pi_yoy:第一产业增加值同比增长(%)
si :第二产业增加值(亿元)
si_yoy :第二产业增加值同比增长(%)
ti :第三产业增加值(亿元)
ti_yoy :第三产业增加值同比增长(%)
结果显示:
三大需求对GDP贡献
调用方法:
import tushare as ts
ts.get_gdp_for()
返回值说明:
year :统计年度
end_for :最终消费支出贡献率(%)
for_rate :最终消费支出拉动(百分点)
asset_for :资本形成总额贡献率(%)
asset_rate:资本形成总额拉动(百分点)
goods_for :货物和服务净出口贡献率(%)
goods_rate :货物和服务净出口拉动(百分点)
结果显示:
asset_rate
goods_rate
三大产业对GDP拉动
调用方法:
import tushare as ts
ts.get_gdp_pull()
返回值说明:
year :统计年度
gdp_yoy :国内生产总值同比增长(%)
pi :第一产业拉动率(%)
si :第二产业拉动率(%)
industry:其中工业拉动(%)
ti :第三产业拉动率(%)
结果显示:
三大产业贡献率
调用方法:
import tushare as ts
ts.get_gdp_contrib()
返回值说明:
year :统计年度
gdp_yoy :国内生产总值
pi :第一产业献率(%)
si :第二产业献率(%)
industry:其中工业献率(%)
ti :第三产业献率(%)
结果显示:
居民消费价格指数
调用方法:
import tushare as ts
ts.get_cpi()
返回值说明:
month :统计月份
cpi :价格指数
结果显示:
工业品出厂价格指数
调用方法:
import tushare as ts
ts.get_ppi()
返回值说明:
month :统计月份
ppiip :工业品出厂价格指数
ppi :生产资料价格指数
qm:采掘工业价格指数
rmi:原材料工业价格指数
pi:加工工业价格指数
cg:生活资料价格指数
food:食品类价格指数
clothing:衣着类价格指数
roeu:一般日用品价格指数
dcg:耐用消费品价格指数
结果显示:
Navigation首页 & perl/php/python/gawk/sedpython stock数据包tushare TuShare是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集、清洗加工 到 数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据来源方面极大地减轻工作量,使他们更加专注于策略和模型的研究与实现上。考虑到Python pandas包在金融量化分析中体现出的优势,TuShare返回的绝大部分的数据格式都是pandas DataFrame类型,非常便于用pandas/NumPy/Matplotlib进行数据分析和可视化。 其支持获取的股市数据有:交易数据、投资参考数据、股票分类数据、基本面数据、龙虎榜数据、宏观经济数据、新闻事件数据、银行间同业拆放利率等大类,每个大类下面又细分一些小类。 一、安装与升级 同其他python模块的安装使用方法一样,即可以通过pip、easy_install 工具包进行安装,也可以通过源码包进行安装。 方式1:pip install tushare& 方式2:访问https://pypi.python.org/pypi/tushare/下载安装 从github上的源码包可以看出,作者非常的勤奋,更新的速度非常快,所以也可以通过如下方法进行升级:pip install tushare –upgrade 二、数据获取相关 这里以最经常使用的几个交易指标为例,做下汇总。 1、历史数据import tushare as ts
ts.get_hist_data('600848') #一次性获取全部日k线数据
ts.get_hist_data('600848',start='',end='') #指定时间区间
ts.get_hist_data('600848',ktype='W') #获取周k线数据
ts.get_hist_data('600848',ktype='M') #获取月k线数据
ts.get_hist_data('600848',ktype='5') #获取5分钟k线数据
ts.get_hist_data('600848',ktype='15') #获取15分钟k线数据
ts.get_hist_data('600848',ktype='30') #获取30分钟k线数据
ts.get_hist_data('600848',ktype='60') #获取60分钟k线数据
ts.get_hist_data('sh')#获取上证指数k线数据,其它参数与个股一致,下同
ts.get_hist_data('sz')#获取深圳成指k线数据
ts.get_hist_data('hs300')#获取沪深300指数k线数据
ts.get_hist_data('sz50')#获取上证50指数k线数据
ts.get_hist_data('zxb')#获取中小板指数k线数据
ts.get_hist_data('cyb')#获取创业板指数k线数据 关于复权的概念不了解,这里略过。接下来看实时数据。 2、实时数据 获取当天所有的行情信息,无法指定具体某一支的行情import tushare as ts
ts.get_today_all() 历史分笔与实时分笔(买卖盘统计):import tushare as ts
df = ts.get_tick_data('600848',date='')
df.head(10)
df = ts.get_today_ticks('601333')
#当天历史分笔
df.head(10)
import tushare as ts
df = ts.get_realtime_quotes('000581') #Single stock symbol
df[['code','name','price','bid','ask','volume','amount','time']]
#symbols from a list
ts.get_realtime_quotes(['600848','000980','000981'])
#from a Series
ts.get_realtime_quotes(df['code'].tail(10))
#一次获取10个股票的实时分笔数据 3、大盘指数import tushare as ts
df = ts.get_index() 4、新股数据 获取打新数据:import tushare as ts
ts.new_stocks() 5、基本面数据 基本面数据里包含选股的很多依据指标,如:市盈率、市净率、每股收益、净利润、季报、应收账款周转率、净利润增长率(%)、流动比率、速动比率、现金流量比率等。import tushare as ts
ts.get_stock_basics()
#获取2015年第1季度的业绩报表数据
ts.get_report_data(2015,1)
#获取2015年第1季度的盈利能力数据
ts.get_profit_data(2015,1)
#获取2015年第1季度的营运能力数据
ts.get_operation_data(2015,1)
#获取2015年第1季度的成长能力数据
ts.get_growth_data(2015,1)
#获取2015年第1季度的偿债能力数据
ts.get_debtpaying_data(2015,1)
#获取2015年第1季度的现金流量数据
ts.get_cashflow_data(2015,1) 三、数据存储 tushare自身提供了常用的数据保存格式:csv格式、excel格式、HDF5文件格式、JSON格式、mysql关系数据库、nosql数据库。 1、to_csv方法import tushare as ts
df = ts.get_hist_data('000875')
df.to_csv('c:/day/000875.csv')
df.to_csv('c:/day/000875.csv',columns=['open','high','low','close'])
某些时候,可能需要将一些同类数据保存在一个大文件中,这时候就需要将数据追加在同一个文件里,简单举例如下:import tushare as ts
filename = 'c:/day/bigfile.csv'
for code in ['000875', '600848', '000981']:
df = ts.get_hist_data(code)
if os.path.exists(filename):
df.to_csv(filename, mode='a', header=None)
df.to_csv(filename) 2、to_excel方法import tushare as ts
df = ts.get_hist_data('000875')
df.to_excel('c:/day/000875.xlsx')
#设定数据位置(从第3行,第6列开始插入数据)
df.to_excel('c:/day/000875.xlsx', startrow=2,startcol=5) 3、to_hdf方法import tushare as ts
df = ts.get_hist_data('000875')
df.to_hdf('c:/day/hdf.h5','000875')
import tushare as ts
df = ts.get_hist_data('000875')
store = HDFStore('c:/day/store.h5')
store['000875'] = df
store.close() 4、to_json方法import tushare as ts
df = ts.get_hist_data('000875')
df.to_json('c:/day/000875.json',orient='records')
#或者直接使用
print df.to_json(orient='records') 5、to_sql方法from sqlalchemy import create_engine
import tushare as ts
df = ts.get_tick_data('600848', date='')
engine = create_engine('mysql://user:passwd@127.0.0.1/db_name?charset=utf8')
#存入数据库
df.to_sql('tick_data',engine)
#追加数据到现有表
#df.to_sql('tick_data',engine,if_exists='append') 如下图:
5、写入mongodb 通过官方的示例来看,并没有直接提供写入mongodb的方法,不过mongodb支持json格式的输入,这里“曲线救国 ” 下:import pymongo
import json
conn = pymongo.Connection('127.0.0.1', port=27017)
df = ts.get_tick_data('600848',date='')
conn.db.tickdata.insert(json.loads(df.to_json(orient='records')))
四、数据绘图 上面都是拾人牙慧的东西,这里来一点点干货。由 tushare 处理输出的格式已经经过整形,所以可以结合pandas模块可以很好的进行汇图,如下:import tushare as ts
import pandas as pd
df=ts.get_hist_data('600415',start='',end='')
# 所有的结果汇图
# 只将stock最高值进行汇图
df.high.plot()
# 指定绘图的四个量,并指定线条颜色
with pd.plot_params.use('x_compat', True):
df.open.plot(color='g')
df.close.plot(color='y')
df.high.plot(color='r')
df.low.plot(color='b')
# 指定绘图的长宽尺度及背景网格
with pd.plot_params.use('x_compat', True):
df.high.plot(color='r',figsize=(10,4),grid='on')
df.low.plot(color='b',figsize=(10,4),grid='on') 上面绘制了四个图,这里只选取第四张图具体可以看下效果:
默认上面的方法,只会输出图片,无法保存图片,所以可以通过matplotlib模块的savefig函数保存图片到指定的位置,代码如下:import matplotlib
import tushare as ts
import pandas as pd
fig = matplotlib.pyplot.gcf()
df=ts.get_hist_data('600415',start='',end='')
with pd.plot_params.use('x_compat', True):
df.high.plot(color='r',figsize=(10,4),grid='on')
df.low.plot(color='b',figsize=(10,4),grid='on')
fig.savefig('F:/graph.png') matplotlib模块绘图部分可以参看如下页面: cloga博客 pandas官方文档
本站的发展离不开您的资助,金额随意,欢迎来赏!
分类: perl/php/python/gawk/sed python模块您可能也喜欢python logging配置时间或大小轮转 python队列模块Queue python threading之Condition python threading之死锁和可重入锁 python threading之互斥锁 捐助本站
如您感觉本博客有用,可扫码向本博客捐赠近期文章 进程上下文频繁切换导致load average过高 多行合并为一行 帐户安全加固导致crontab -l无法输出 fiddler post二进制数据 python解决GPS打卡问题文章归档 文章归档 选择月份 2016年六月 &(6) 2016年五月 &(4) 2016年四月 &(5) 2016年三月 &(2) 2016年二月 &(2) 2016年一月 &(4) 2015年十二月 &(7) 2015年十一月 &(9) 2015年十月 &(6) 2015年九月 &(7) 2015年八月 &(22) 2015年七月 &(10) 2015年六月 &(15) 2015年五月 &(23) 2015年四月 &(13) 2015年三月 &(22) 2015年二月 &(15) 2015年一月 &(24) 2014年十二月 &(12) 2014年十一月 &(15) 2014年十月 &(19) 2014年九月 &(18) 2014年八月 &(18) 2014年七月 &(20) 2014年六月 &(21) 2014年五月 &(24) 2014年四月 &(14) 2014年三月 &(29) 2014年二月 &(22) 2014年一月 &(22) 2013年十二月 &(24) 2013年十一月 &(20) 2013年十月 &(18) 2013年九月 &(14) 2013年八月 &(15) 2013年七月 &(20) 2013年六月 &(21) 2013年五月 &(19) 2013年四月 &(17) 2013年三月 &(21) 2013年二月 &(17) 2013年一月 &(18) 2012年十二月 &(24) 2012年十一月 &(18) 2012年十月 &(17) 2012年九月 &(17) 2012年八月 &(18) 2012年七月 &(25) 2012年六月 &(36) 2012年五月 &(36) 2012年四月 &(28) 2012年三月 &(46) 2012年二月 &(23) 2012年一月 &(14) 2011年十二月 &(27) 2011年十一月 &(59) 2011年十月 &(19) 2011年九月 &(15) 2011年八月 &(46)1030人阅读
Python(19)
数据统计(4)
本文的原文连接是:
未经博主允许不得转载。
博主地址是:
1,关于股票数据存储
股票数据比较特殊,需要做数据统计的。都需要一次进行批量查询多个数据,然后进行分析。
所以股票数据不一定要放到数据库中存储。因为一般就两个维度。
那只股票,和那天的股票信息,然后使用模型进行分析预测。
所以数据可以存储为:/data/stock/yyyy/yyyMM/yyyyMMdd.hdf5
存储的数据是hdf5:
Hierarchical Data Format,可以存储不同类型的图像和数码数据的文件格式
2,安装hdf5库
yum -y install hdf5 hdf5-devel
pip install unittest2
pip install --upgrade
3,测试读写hdf5文件
参考pytables官方文档。
这里使用的是pandas封装的接口直接使用,而不是使用tables。
Python 2.6.6 (r266:84292, Jul 23 2015, 15:22:56)
[GCC 4.4.7
(Red Hat 4.4.7-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
&&& import numpy as np
&&& import pandas as pd
&&& a = np.random.standard_normal((9,4))
&&& b = pd.DataFrame(a)
&&& b.columns = [['num1','num2','num3','num4']]
array([[-2., -1., -1., -0.6638619 ],
[ 1., -0., -0.2065942 , -1.],
[-2., -0., -0., -0.],
[-1.3939496 ,
1., -0.7423286 ],
[-1., -0., -1., -0.],
[ 0., -0., -0., -1.]])
0 -2.361988 -1.275479 -1.403518 -0.663862
1.891591 -0.318385 -0.206594 -1.023280
2 -2.027715 -0.813333 -0.936443 -0.915925
3 -1.393950
1.115918 -0.742329
4 -1.051044 -0.790692 -1.465369 -0.014495
0.320301 -1.235753
0.301982 -0.618616
0.044629 -0.992754 -0.863821 -1.530642
&&& b.sum()
dtype: float64
&&& b.mean()
dtype: float64
&&& h5 = pd.HDFStore('/data/stock/test1.h5','w')
&&& h5['data'] = b
&&& h5.close()
0 -2.361988 -1.275479 -1.403518 -0.663862
1.891591 -0.318385 -0.206594 -1.023280
2 -2.027715 -0.813333 -0.936443 -0.915925
3 -1.393950
1.115918 -0.742329
4 -1.051044 -0.790692 -1.465369 -0.014495
0.320301 -1.235753
0.301982 -0.618616
0.044629 -0.992754 -0.863821 -1.530642
&&& h5 = pd.HDFStore('/data/stock/test1.h5','r')
&&& c = h5['data']
0 -2.361988 -1.275479 -1.403518 -0.663862
1.891591 -0.318385 -0.206594 -1.023280
2 -2.027715 -0.813333 -0.936443 -0.915925
3 -1.393950
1.115918 -0.742329
4 -1.051044 -0.790692 -1.465369 -0.014495
0.320301 -1.235753
0.301982 -0.618616
0.044629 -0.992754 -0.863821 -1.530642
&&& h5.close()
4,TuShare读取股票数据存储
&&& import tushare as ts
&&& d = ts.get_tick_data('600848',date='2015-01-09')
&&& type(d)
&class 'pandas.core.frame.DataFrame'&
&&& len(d)
###保存数据
&&& h5 = pd.HDFStore('/data/stock/test2.h5','w')
&&& h5['data'] = d
&&& h5.close()
###读取数据
&&& h5 = pd.HDFStore('/data/stock/test2.h5','r')
&&& e = h5['data']
&&& h5.close()
&&& type(e)
&class 'pandas.core.frame.DataFrame'&
&&& len(e)
本文的原文连接是:
未经博主允许不得转载。
博主地址是:
使用文件直接存储到本地还是非常方便的。pandas直接封装的函数3行解决问题。
同时pandas封装的读出数据还是数组,可以直接进行操作。灰常方便。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:491663次
积分:8194
积分:8194
排名:第1555名
原创:331篇
转载:13篇
评论:148条
(1)(4)(4)(10)(11)(3)(9)(3)(10)(7)(10)(11)(11)(10)(9)(5)(5)(5)(1)(7)(17)(3)(2)(1)(1)(1)(5)(1)(1)(3)(4)(5)(4)(2)(1)(5)(3)(1)(148)(1)(1)苹果/安卓/wp
积分 225, 距离下一级还需 35 积分
权限: 自定义头衔
道具: 彩虹炫, 雷达卡, 热点灯, 雷鸣之声, 涂鸦板, 金钱卡, 显身卡, 匿名卡下一级可获得
权限: 签名中使用图片
购买后可立即获得
权限: 隐身
道具: 金钱卡, 雷鸣之声, 彩虹炫, 雷达卡, 涂鸦板, 热点灯
最近从经典技术指标开始学习量化策略,有些在talib中有打包好的函数,但我还是希望自己在编的过程中学习策略的思想、进一步改进基础策略。今天学习了移动平滑异同平均线(Moving Average Convergence Divergence,简称MACD指标)策略。MACD是查拉尔·阿佩尔(Geral Appel)于1979年提出的,由一快及一慢指数移动平均(EMA)(可以参考指数平滑均线文档)之间的差计算出来。“快”指短时期的EMA,而“慢”则指长时期的EMA,最常用的是12及26日EMA。
1 MACD原理
  MACD指标是运用快速(短期)和慢速(长期)移动平均线及其聚合与分离的征兆,加以双重平滑运算,是一种趋向类指标。而根据移动平均线原理发展出来的MACD,一则去除了移动平均线频繁发出假信号的缺陷,二则保留了移动平均线的效果,因此,MACD指标具有均线趋势性、稳重性、安定性等特点,是用来研判买卖股票的时机,预测股票价格涨跌的技术分析指标 。
  MACD指标主要是通过EMA、DIF和DEA(或叫MACD、DEM)这三值之间关系的研判,DIF和DEA连接起来的移动平均线的研判以及DIF减去 DEM值而绘制成的柱状图(BAR)的研判等来分析判断行情,预测股价中短期趋势的主要的股市技术分析指标。其中,DIF是核心,DEA是辅助。DIF是快速平滑移动平均线(EMA1)和慢速平滑移动平均线(EMA2)的差。BAR柱状图在股市技术软件上是用红柱和绿柱的收缩来研判行情。
2 MACD计算方法
EMA计算方法请参考指数平滑均线文档,这里的平滑系数参数以12日,26日,9日参数为例。参数大家可以进行修改。
12日EMA的计算:EMA12 = 前一日EMA12 X 11/13 + 今日收盘 X 2/13
26日EMA的计算:EMA26 = 前一日EMA26 X 25/27 + 今日收盘 X 2/27
差离值(DIF)的计算: DIF = EMA12 - EMA26 。
根据差离值计算其9日的EMA,即离差平均值,是所求的DEA值。今日DEA = (前一日DEA X 8/10 + 今日DIF X 2/10)
DIF与它自己的移动平均之间差距的大小BAR=(DIF-DEA)*2,即为MACD柱状图。
买卖原则为:
DIF、DEA均为正,DIF向上突破DEA,买入信号参考。
DIF、DEA均为负,DIF向下突破DEA,卖出信号参考。
3 MACD策略回测
投资域:沪深300股票
回测时间段 :日至日
回测频率 :按日回测
回测资金:50万
手续费:每笔交易时的手续费是, 买入时万分之八,卖出时千分之1.3, 每笔交易最低扣5块钱。
回测结果如下表
19:02:19 上传
4 简单分析
回测了24只沪深300股票,其中11只收益率超过基准收益率,但是回撤还是有些大。MACD买入卖出信号还可以通过分析红绿柱子实现,比如柱状线由红变绿(正变负),卖出信号参考;由绿变变红,买入信号参考。下一步准备将传统的MACD和KDJ两个指标融合成一个指标,当两指标同时发出买入或卖出信号,即指标曲线出现“金叉共振”为加强型买入信号,后势上涨概率较大。反之,两指标同时发出卖出信号为加强型卖出信号。
19:02:56 上传
19:03:20 上传
5 策略源码
19:04:28 上传
支持楼主:、
购买后,论坛将把您花费的资金全部奖励给楼主,以表示您对TA发好贴的支持
载入中......
但但依靠MACD并不靠谱 :)
论坛好贴推荐
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
为做大做强论坛,本站接受风险投资商咨询,请联系(010-)
邮箱:service@pinggu.org
合作咨询电话:(010)
广告合作电话:(刘老师)
投诉电话:(010)
不良信息处理电话:(010)
京ICP证090565号
京公网安备号
论坛法律顾问:王进律师

我要回帖

更多关于 python tushare 的文章

 

随机推荐