量化交易入门与Python实践-1401课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《量化交易入门与Python实践-1401课件.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 量化 交易 入门 Python 实践 1401 课件
- 资源描述:
-
1、策略参数的优化 量化交易策略参数的优化 一个交易策略有很多的参数。以往,我们一般凭着经验,设置这些参数的值。于是,这些参数不一定是最优的。我们可以利用计算机强大的处理能力,搜索到最佳的参数组合。在这里,我们将针对“基于规则的交易策略”一章中介绍的MyRSIStrategy策略,介绍如何寻找最优的参数组合。策略参数的优化 在这个策略中,有几个关键的参数,如表1所示。在代码中设定的参数的取值范围,比起表格中的取值范围要小很多,目的是尽快运行完代码。这些参数的组合有4,409,559种,也就是有4,409,559种参数的组合形式策略参数的优化 Server/Worker模式寻找最优参数 进行参数优化
2、的第一种模式是Server/Worker模式,需要设计一个Server程序和一个Worker程序。Server程序的功能是:(1)为策略的运行准备Price Bars。(2)为策略的运行准备参数组合。(3)发动一系列Worker进程以某个参数组合运行,从各个Worker进程,收集和比较策略的运行结果。根据这些运行结果,挑选最优的参数组合。Worker程序的功能是:(1)根据Server提供的Price Bars、和参数组合,运行交易策略。并且向Server汇报运行结果策略参数的优化 Server/Worker模式寻找最优参数 注意,我们首先运行Server再运行Worker,Server只能运
3、行一份,也就是一个进程,但是Worker可以运行多份,也就是多个进程,这些进程还可以运行在不同机器上策略参数的优化 server代码分析(1)导入必要的Python库 MyRSIStrategy.py文件保存了MyRSIStrategy类的定义,所以需要导入MyRSIStrategy(模块)。itertools提供参数组合和迭代功能,比如参数A的取值为1,2,参数B的取值为11,12,那么利用itertools,我们就可以很方便地构造1,11、1,12、2,11、2,12等组合。如果参数的数量更多,每个参数的可能取值更多,组合数就越多,如前文所分析notepad+打开代码,进行分析策略参数的优
4、化 server代码分析(2)定义parameters_generator函数 parameters_generator函数的功能,是产生参数组合策略参数的优化 server代码分析(3)执行Server程序的主逻辑 从CVS文件装载价格数据,然后调用server.serve方法。传递的参数,包括已经装载的价格数据,以及参数组合生成函数。另外两个参数即localhost和9090,表示Server程序绑定到本机(localhost)的9090端口,准备读取价格数据,把数据喂给各个Worker,然后收集各个Worker的运行结果策略参数的优化 Worker代码分析(1)导入必要的Python库(
5、2)运行Worker的核心逻辑 使用PyAlgoTrade.optimizer.worker模块的run方法,利用Server提供的数据和参数,并行地运行策略MyRSIStrategy,并且向Server汇报运行结果。notepad+打开代码,进行分析策略参数的优化 运行运行Server和和Worker 以管理员方式运行“Anaconda Command Prompt”,也就是在“Anaconda Command Prompt”快捷键上按鼠标右键,选择“以管理员方式运行”即可。需要打开两个“Anaconda Command Prompt”窗口,一个运行Server,一个运行Worker。策略参
6、数的优化 运行运行Server和和Worker python Optimize_server.py策略参数的优化 运行运行Server和和Worker python Optimize_worker.py策略参数的优化 运行运行Server和和Worker Server程序输出的最好的参数组合是 Best final result 1356283.9100000008 with parameters(AAPL,164,9,2,91,10)策略参数的优化 另一种办法另一种办法 Local模式寻找最优参数策略参数的优化 Local模式寻找最优参数 在Server/Worker模式中,我们可以启动多台
7、机器,运行多个Worker(只有一个Server),利用并行处理来加快优化参数的搜索。如果我们只有一台机器,也可以进行并行处理,那就是 利 用 多 核 来 实 现 并 行 处 理。我 们 可 以 使 用pyalgotrade.optimizer.local模块的run方法来实现优化参数的搜寻策略参数的优化 Local模式寻找最优参数 在这里只有一段代码,把Server/Worker模式的代码整合在一起了。定义一个parameters_generator,用于构造各个参数组合。然 后 从C S V 文件装载价格 数 据。最 后,使 用pyalgotrade.optimizer.local模块的r
8、un方法,而不是pyalgotrade.optimizer.worker模块的run方法,用价格数据、及参数组合,执行交易策略MyRSIStrategy。根据执行结果,找到最优的参数组合notepad+打开代码,进行分析策略参数的优化 Local模式寻找最优参数 以管理员方式运行“Anaconda Command Prompt”,运行如下命令 python Optimize_local.py 程序找到的最优参数组合为 Best result so far 1356283.9100000008 with parameters(AAPL,164,9,2,91,10)策略参数的优化 讨论 其它策略,
展开阅读全文