导航:首页 > 废水知识 > 怎么用Python建股票回测系统

怎么用Python建股票回测系统

发布时间:2020-12-26 18:55:09

『壹』 选股策略回测用 Matlab 好还是用 Python 好

都是工具,也都可以开发选股策略的回测,推荐Python.理由:Python免费且开源Python编程语言简洁优美专Python有众多的量化属包,包括获取数据、处理数据、回测、风险分析。目前国外、国内很多平台和项目都是使用PythonPython开发策略,简洁高效,这里举几个例子:1.[量化学堂-策略开发]金叉死叉策略2.[量化学堂-策略开发]海龟策略3.[量化学堂-策略开发]浅谈小市值策略4.[量化学堂-策略开发]多头排列回踩买入策略5.[量化学堂-策略开发]借助talib使用技术分析指标来炒股6.[量化学堂-策略开发]大师系列之价值投资法7.[量化学堂-策略开发]事件驱动策略(基于业绩快报)8.[量化学堂-策略开发]基于协整的配对交易9.[量化学堂-策略开发]使用cvxopt包实现马科维茨投资组合优化:以一个股票策略为例这些策略涵盖了股票量化主要的策略类型,但是使用Python语言,每个策略代码都不多。

『贰』 python回测系统 模拟回测 最简单量化回测系统有哪些支持期货和股票

github上有一个jdhc简单回测 是用python写的比较简单,需要设置些参数。

『叁』 用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

『肆』 python量化哪个平台可以回测模拟实盘还不要钱

Python量化投资框架:回测+模拟+实盘
Python量化投资 模拟交易 平台 1. 股票量化投资框架体系 1.1 回测 实盘交易前,必须对量化交易策略进行回测和模拟,以确定策略是否有效,并进行改进和优化。作为一般人而言,你能想到的,一般都有人做过了。回测框架也如此。当前小白看到的主要有如下五个回测框架: Zipline :事件驱动框架,国外很流行。缺陷是不适合国内市场。 PyAlgoTrade : 事件驱动框架,最新更新日期为16年8月17号。支持国内市场,应用python 2.7开发,最大的bug在于不支持3.5的版本,以及不支持强大的pandas。 pybacktest :以处理向量数据的方式进行回测,最新更新日期为2个月前,更新不稳定。 TradingWithPython:基于pybacktest,进行重构。参考资料较少。 ultra-finance:在github的项目两年前就停止更新了,最新的项目在谷歌平台,无奈打不开网址,感兴趣的话,请自行查看吧。 RQAlpha:事件驱动框架,适合A股市场,自带日线数据。是米筐的回测开源框架,相对而言,个人更喜欢这个平台。 2 模拟 模拟交易,同样是实盘交易前的重要一步。以防止类似于当前某券商的事件,半小时之内亏损上亿,对整个股市都产生了恶劣影响。模拟交易,重点考虑的是程序的交易逻辑是否可靠无误,数据传输的各种情况是否都考虑到。 当下,个人看到的,喜欢用的开源平台是雪球模拟交易,其次是wind提供的模拟交易接口。像优矿、米筐和聚宽提供的,由于只能在线上平台测试,不甚自由,并无太多感觉。 雪球模拟交易:在后续实盘交易模块,再进行重点介绍,主要应用的是一个开源的easytrader系列。 Wind模拟交易:若没有机构版的话,可以考虑应用学生免费版。具体模拟交易接口可参看如下链接:http://www.dajiangzhang.com/document 3 实盘 实盘,无疑是我们的终极目标。股票程序化交易,已经被限制。但对于万能的我们而言,总有解决的办法。当下最多的是破解券商网页版的交易接口,或者说应用爬虫爬去操作。对我而言,比较倾向于食灯鬼的easytrader系列的开源平台。对于机构用户而言,由于资金量较大,出于安全性和可靠性的考虑,并不建议应用。 easytrader系列当前主要有三个组成部分: easytrader:提供券商华泰/佣金宝/银河/广发/雪球的基金、股票自动程序化交易,量化交易组件 easyquotation : 实时获取新浪 / Leverfun 的免费股票以及 level2 十档行情 / 集思路的分级基金行情 easyhistory : 用于获取维护股票的历史数据 easyquant : 股票量化框架,支持行情获取以及交易 2. 期货量化投资框架体系 一直待在私募或者券商,做的是股票相关的内容,对期货这块不甚熟悉。就根据自己所了解的,简单总结一下。 2.1 回测 回测,貌似并没有非常流行的开源框架。可能的原因有二:期货相对股票而言,门槛较高,更多是机构交易,开源较少; 去年至今对期货监管控制比较严,至今未放开,只能做些CTA的策略,另许多人兴致泱泱吧。 就个人理解而言,可能wind的是一个相对合适的选择。 2.2 模拟 + 实盘 vn.py是国内最为流行的一个开源平台。起源于国内私募的自主交易系统,2015年初启动时只是单纯的交易API接口的Python封装。随着业内关注度的上升和社区不断的贡献,目前已经一步步成长为一套全面的交易程序开发框架。如官网所说,该框架侧重的是交易模块,回测模块并未支持。 能力有限,如果对相关框架感兴趣的话,就详看相关的链接吧。个人期望的是以RQAlpha为主搭建回测框架,以雪球或wind为主搭建模拟框架,用easy系列进行交易。

『伍』 有没有基于python pandas的回测框架

关键词:开源、python/pandas、易学方便、可以并行、参数优化、事件驱动、亚ms速度、持续回维护、支持股票答/期货等
介绍:
在事件驱动的回测框架中,引擎逐个读取Bar或Tick并处理。数据采集模块生成市场数据事件,流经策略模块(Strategy类)产生交易信号,资产组合模块根据策略信号,并结合风险管理来判断是否委托下单,模拟的交易所根据滑点、手续费状况等返回成交结果。
使用XQuant后,大部分时候我们不需要关心底层是如何处理的,只需要在Strategy类中完成从数据到信号的处理即可,这有利于我们快速开发策略。
详细见Github,欢迎star、issue,PR。
【Update】结合其他回答有必要更新一下,供大家参考:
明晰两个问题:
1)事件驱动在大部分时候都是必须的,尽量去模拟真实交易过程中的数据播放过程,避免引入未来函数等,机器学习的feature之类可以预先算好存起来;
2)pandas用来I/O,内部的数据结构还是用python自带的,这样达到0.1ms/条的数据处理还是挺容易的,如果还是嫌速度慢,可以利用多核优势,并行运算。

『陆』 谁有python写的股市策略回测系统的源码

首先复十年的日级别数据量的确不大制,使用Python来说的话不应该出现memoryerror,应该是在编程方面需要再多留意,我们在Ricequant上使用的分钟数据大概是200-300个GB左右,也是Python和Java共同合作完成的。 语言只是一个语言,兴许会有各种语法的...

『柒』 选股策略回测用 Matlab 好还是用 Python 好

首先十年的日级别数据量的确不大,使用Python来说的话不应该出现memoryerror,应该是在编程方面需要再多留意,我们在Ricequant上使用的分钟数据大概是200-300个GB左右,也是Python和Java共同合作完成的。
语言只是一个语言,兴许会有各种语法的不同,但是在谈语言的时候我们需要了解背后的工具箱和社区,以及它为什么处理一些事情比另外的一些语言要好。
本身Python初期用来做金融回测等是应该被放弃的,用来开发策略也应该是被放弃的,因为相比matlab的矩阵运算来做开发,实在是太方便了。只不过后来Python推出了series、pandas等一系列的强悍library,pandas的语法基本在“无耻”地模仿matlab和R,而pandas的开发者正是美国大名鼎鼎的对冲基金AQR,因此使data crunching和对数据的一些操作大大便利,此外,又包装了海量的开源社区的数学和科学计算库,也能处理各种的machin learning等等的问题。
从科学计算的语言的发展来看,从最初的人们对浮点数计算的需求加入了fortran,再一路进行,让工具更加的让科学计算容易再容易(Python也封装了大量早期的数学家们用fortran写的数学计算基础库,这些经历了几十年的考验、加速等等):
numpy: basic array manipulation - 基础的数组处理
scipy: scientific computing in python, including signal processing and optimization - 科学计算,包括信号处理和优化等
matplotlib: visualization and plotting - 几行代码就可以做图形化显示了
IPython: write and run python code interactively in a shell or a notebook - 互动式编程环境,这是能将来替代掉matlab的一个必备,即在一行一行代码的输入、显示过程中学习、改进
pandas: data manipulation - 最重要的矩阵运算等
scikit-learn: machine learning - 机器学习

但是随着以后的发展Python的开源属性就会体现的越来越强大,可以让更多的人享受到其便利和贡献进来,包括Quantopian也放出了zipline的python回测框架,只需要引入yahoo数据即可进行回测,并且Python的速度由于跟C的很好的结合可以达到非常快的速度,而且可以将来和其他系统很容易整合对接实盘交易接口。
由于欧美已经有很多的投行和对冲基金在往Python的技术栈靠拢,因此选择了Python即掌握了一门重要的工具,并且无需跟一家私有化公司进行捆绑。
当然,最后的最后,所有的python回测你都可以来Ricequant - Beta上完成,我们支持海量的市场、财务数据,还有不断加入的和大数据公司合作的舆情数据等等,同时策略回测完还可以做实时模拟交易,享受到实时数据的计算。在云平台上已经支持了几乎所有的Python科学计算库,无需花时间安装、测试等等。

『捌』 选股策略回测用 Matlab 好还是用 Python 好

语言就是用来干活的,中间文件用HDF5或者csv转存,需要时间序列分析的时候上内R.毕竟Python的sm库还是很烂的容,但是PCA和大量的多因子计算,Python R MATLAB都差不多。

回测讲究并发效率和一些多参数回测的参数调优以及一些MC方法的估计时,py运行效率(相对于MATLAB)会高一些

总体来说,别太把语言当回事,就跟吃饭用筷子还是勺子还是叉子,要根据食材来

『玖』 选股策略回测用matlab好还是用python好

我没钱,支持免费开源

抛开版权不说,初期入手策略测试、数据分析用matlab非常方便
但是策略测试方法、框架弄清楚后,要做正规的回测,还是Python方便,这里的正规是指严格的事件流驱动,虽然速度慢,但是避免未来函数影响、接近实盘的逻辑。
Python在这方面已经有很多库了,quantopian的zipline应该算鼻祖了,国内的优矿网和ricequant都跟zipline很像,另外还有知乎大神的zn.py,PyAlgoTrade等

『拾』 用Python 做策略回测,耗时很长,有什么加速办法

1. 在动手优化之前,先profile看看,程序时间都花在哪些地方了:

python -m cProfile -o output.prof your_program
跑完之后,会生成一个output.profile文件。接下来需要对这个文件进行分析,这方面的工具我推荐SnakeViz,神器。安装非常简单,pip install snakeviz 即可。

snakeviz output.prof
运行之后,会打开一个浏览器窗口,好好看看,哪些函数耗时最多,耗时是因为调用次数太多呢,还是因为单次调用耗时长,明确优化重点;
2. 减少重复计算,缓存计算结果。看看 functools.lru_cache。
3. 能用list comprehension的地方,不要用for;能用numpy的地方,不要手写循环,不要用pandas;
4. 看你的回测,40w个tick的话,数据量不算大,应该是直接load到内存里的吧?
5. 还是慢的话,上Numba — Numba,就是安装麻烦一些,使用起来非常方便,速度提高一两个数量级没问题;
6. 如果你用的包PyPy都支持的话,试试pypy;
7. Cython、c mole,上面的都没效果的话,这个是最后的候选方案了。

阅读全文

与怎么用Python建股票回测系统相关的资料

热点内容
海尔热水器ES60除垢步骤图 浏览:9
净水器最长寿命是多少 浏览:850
蒸馏与煮沸有什么不同 浏览:309
沁园净水器一年的滤芯多少钱 浏览:371
密胺树脂热压 浏览:647
污水在线设备厂家 浏览:276
如何换英朗的空气滤芯 浏览:227
清水垢用食品酸 浏览:295
绍兴市反渗透杀菌剂价格 浏览:307
汽车空气滤芯什么牌子 浏览:939
过滤槽中的玻璃杯是干什么用的 浏览:593
清洁杯子水垢 浏览:612
可提升旋流除污器哪家好 浏览:426
净邦仕净水器怎么安装 浏览:439
过滤饮水机用什么牌子的好 浏览:174
为什么要用蒸馏水做空白滴定 浏览:48
污水治理改善农村人居环境 浏览:152
提升泵的保养记录 浏览:127
丙烯酸树脂燃烧热 浏览:500
一喝纯净水牙就流血是怎么回事 浏览:126