我的金融工程工具箱
说是金融工程工具箱,其实只涉及到程序化交易的相关工具(我要当一枚P quant
)。下面分几类列一下我的用过的工具,这篇日志会持续更新。
Paper Trading
数据源
我暂时只用到A股的日线历史数据,收费的没用过,免费的用过Yahoo和雪球的API。Yahoo的优点是历史悠久很多相关的library,缺点是数据质量不是很好。雪球跟yahoo相反,数据完整但是调用起来不够方便。
当下的财务数据也可以通过雪球的json api获取,但是暂时没有发现能不能调用历史数据。
雪球的日线数据可以这样调用: 已经失效
from StringIO import StringIO import pandas as pd import requests def download(stock): link = "http://xueqiu.com/S/%s/historical.csv" % stock header = { "User-Agent" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36" } # 不加http header会禁止访问 r = requests.get(link, headers=header) res = pd.DataFrame.from_csv(StringIO(r.content), index_col=1, parse_dates=True) return res
然后 sh000001 = download('sh000001')
就可以了。
开发环境
程序化和高频交易流行之后,出现了很多开源的程序化交易工具,其中编程语言使用率最多的要数python和R了。我个人主要用的是python,所以以下只介绍python相关的库。
- 基本
- IPython:python命令行,notebook模式太好用了
- ob-ipython: 在Org-mode下面使用IPython代码块
- pandas:数据分析标配,华尔街大佬做的
- matplotlib/mpld3/bokeh: 数据可视化
- 回测
- zipline:Quantopian使用的回测程序
- prophet:简单易学的api,还在beta阶段
- pyalgotrade: 事件驱动,我还没有用过,以后会试试
- 数学模型
- 参见这里
- 技术分析
- TA-Lib:调用C++写的ta-lib,指标很全
暂时想到这么多,以后继续添加。