A. 选股策略回测用 Matlab 好还是用 Python 好
都是工具,也都可以开发选股策略的回测,推荐Python.理由:Python免费且开源Python编程语言简洁优美Python有众多的量化包,包括获取数据、处理数据、回测、风险分析。目前国外、国内很多平台和项目都是使用PythonPython开发策略,简洁高效,这里举几个例子:1.[量化学堂-策略开发]金叉死叉策略2.[量化学堂-策略开发]海龟策略3.[量化学堂-策略开发]浅谈小市值策略4.[量化学堂-策略开发]多头排列回踩买入策略5.[量化学堂-策略开发]借助talib使用技术分析指标来炒股6.[量化学堂-策略开发]大师系列之价值投资法7.[量化学堂-策略开发]事件驱动策略(基于业绩快报)8.[量化学堂-策略开发]基于协整的配对交易9.[量化学堂-策略开发]使用cvxopt包实现马科维茨投资组合优化:以一个股票策略为例这些策略涵盖了股票量化主要的策略类型,但是使用Python语言,每个策略代码都不多。
B. 用Python怎么做量化投资
本文将会讲解量化投资过程中的基本流程,量化投资无非这几个流程,数据输入------策略书写------回测输出
其中策略书写部分还涉及到编程语言的选择,如果不想苦恼数据输入和回测输出的话,还要选择回测平台。
一、数据
首先,必须是数据,数据是量化投资的基础
如何得到数据?
Wind:数据来源的最全的还是Wind,但是要付费,学生可以有免费试用的机会,之后还会和大家分享一下怎样才Wind里摘取数据,Wind有很多软件的借口,Excel,Matlab,Python,C++。
预测者网:不经意间发现,一个免费提供股票数据网站 预测者网,下载的是CSV格式
TB交易开拓者:Tradeblazer,感谢@孙存浩提供数据源
TuShare:TuShare -财经数据接口包,基于Python的财经数据包,利用Python进行摘取
如何存储数据?
Mysql
如何预处理数据?
空值处理:利用DataFrame的fill.na()函数,将空值(Nan)替换成列的平均数、中位数或者众数
数据标准化
数据如何分类?
行情数据
财务数据
宏观数据
二、计算语言&软件
已经有很多人在网上询问过该选择什么语言?笔者一开始用的是matlab,但最终选择了python
python:库很多,只有你找不到的,没有你想不到,和量化这块结合比较紧密的有:
Numpy&Scipy:科学计算库,矩阵计算
Pandas:金融数据分析神器,原AQR资本员工写的一个库,处理时间序列的标配
Matplotlib:画图库
scikit-learn:机器学习库
statsmodels:统计分析模块
TuShare:免费、开源的python财经数据接口包
Zipline:回测系统
TaLib:技术指标库
matlab:主要是矩阵运算、科学运算这一块很强大,主要有优点是WorkSpace变量可视化
python的Numpy+Scipy两个库完全可以替代Matlab的矩阵运算
Matplotlib完克Matlab的画图功能
python还有很多其他的功能
pycharm(python的一款IDE)有很棒的调试功能,能代替Matlab的WorkSpace变量可视化
推荐的python学习文档和书籍
关于python的基础,建议廖雪峰Python 2.7教程,适合于没有程序基础的人来先看,涉及到python的基本数据类型、循环语句、条件语句、函数、类与对象、文件读写等很重要的基础知识。
涉及到数据运算的话,其实基础教程没什么应用,python各类包都帮你写好了,最好的学习资料还是它的官方文档,文档中的不仅有API,还会有写实例教程
pandas文档
statsmodels文档
scipy和numpy文档
matplotlib文档
TuShare文档
第二,推荐《利用Python进行数据分析》,pandas的开发初衷就是用来处理金融数据的
三、回测框架和网站
两个开源的回测框架
PyAlgoTrade - Algorithmic Trading
Zipline, a Pythonic Algorithmic Trading Library
C. 怎样使用tushare的提供的数据与库talib计算macd
安装TuShare
方式1:pip install tushare
方式2:访问https://pypi.python.org/pypi/tushare/下载安装
方式3:将源代码下载到本地python setup.py install
升级TuShare
1、先查看本地与线上的版本版本号:
pip search tushare
2、升级TuShare:
pip install tushare --upgrade
确认安装成功
import tushare as ts
print ts.__version__
获取历史交易数据
import tushare as ts
df = ts.get_hist_data('600848')
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线数据
Python财经数据接口包TuShare的使用
获取历史分笔数据
df = ts.get_tick_data('000756','2015-03-27')
df.head(10)
Python财经数据接口包TuShare的使用
获取实时分笔数据
df = ts.get_realtime_quotes('000581')
print df[['code','name','price','bid','ask','volume','amount','time']]
返回值说明:
0:name,股票名字
1:open,今日开盘价
2:pre_close,昨日收盘价
3:price,当前价格
4:high,今日最高价
5:low,今日最低价
6:bid,竞买价,即“买一”报价
7:ask,竞卖价,即“卖一”报价
8:volumn,成交量 maybe you need do volumn/100
9:amount,成交金额(元 CNY)
10:b1_v,委买一(笔数 bid volume)
11:b1_p,委买一(价格 bid price)
12:b2_v,“买二”
13:b2_p,“买二”
14:b3_v,“买三”
15:b3_p,“买三”
16:b4_v,“买四”
17:b4_p,“买四”
18:b5_v,“买五”
19:b5_p,“买五”
20:a1_v,委卖一(笔数 ask volume)
21:a1_p,委卖一(价格 ask price)
...
30:date,日期
31:time,时间
D. Hi-Tek&Talib Kweli的《On My Way》 歌词
歌曲名:On My Way
歌手:Hi-Tek&Talib Kweli
专辑:Reflection Eternal [Train Of Thought]
俺达はどこへ行くのだろう
それぞれの命の时を过ごし
俺达のたどり着く先は
自分次第さOn My Way
On My Way
ミュージカル『テニスの王子様』 The Imperial Match 氷帝学园 in winter 2005-2006 ALL CAST
三千代さま制作
コートを蹴って握りしめるラケット
打ち込むボール地球を割るほどSharp&Strong
受けて立つぜどんな胜负だって
ひるみはしない燃え尽きるまでGuts&Fight
戦い続けるのは生きてる证なのさ
悲しみも涙も人には见せず
锐い视线で见据えた未来
俺は负けないOn My Way
On My Way On My Way On My Way...
闪光(1)を放ち冻りつくぜスマッシュ
切り裂く空気时间止めるほどSharp&Strong
攻めて行くぜ追いつめられたって
立ち止まらない前进あるのみGuts&Fight
试合でつながるのさ俺とお前の绊
苦しみも挫折も心に秘めて
竞い合い行こうおのれのゴール
胜ち进むだけOn My Way
戦い続けるのは生きてる证なのさ
悲しみも涙も人には见せず
锐い视线で见据えた未来
俺は负けないOn My Way
On My Way On My Way On My Way...
On My Way On My Way On My Way...
On My Way On My Way On My Way...
On My Way On My Way On My Way...
http://music..com/song/8541221
E. talib 计算RSI怎么和炒股软件不一样
RSI我是深度研究者,这个问题我的理解是。
公式一样的前提下,结果存在差异的可能性有以下几种。
(1)起算点不同:必须同一交易日起算,周期最好是在180个交易日最合适。周期越长不同程序下计算结果越相近。
不要说talib和炒股软件不一样,就是使用度最高的同花顺和东方财富也有很多不一样。
(2)小数点不同:比如同花顺,价格取小数点后两位,但rsi值是取6位后再四舍五入。
为了避免认为我的回答没有依据,放张我计算的rsi结果图。