请选择 进入手机版 | 继续访问电脑版
楼主: Dear_Li
2712 1

[程序化交易] Python量化投资——基于网格优化、遗传算法对CTA策略进行参数优化 [推广有奖]

  • 0关注
  • 14粉丝

等待验证会员

博士生

64%

还不是VIP/贵宾

-

威望
0
论坛币
686 个
通用积分
7.6246
学术水平
12 点
热心指数
16 点
信用等级
2 点
经验
4905 点
帖子
186
精华
0
在线时间
246 小时
注册时间
2018-7-21
最后登录
2019-1-16

Dear_Li 发表于 2018-8-8 16:09:52 |显示全部楼层 |坛友微信交流群

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
投资策略基于指数移动平均线的交易系统
  • 多头开仓条件:短期均线上穿长期均线同时长期均线大于更长期均线的值

  • 空头开仓条件:短期均线下穿长期均线同时长期均线小于更长期均线的值



为了达到分散风险的目的,选取价格走势相关性较小的品种,本文将标的池选为RBM0, CUM0, RMM0, SRM0 等主力合约。获取2014年1月1日止2014年12月31日这些合约的日行情。


标的之间的相关系数矩阵



参数优化

  • 网格优化
    那么参数设为多少合适?指数移动平均线交易系统涉及到三个参数,短周期,长周期,更长的周期。下面我们设置为更长的周期为25,对短周期和长周期进行网格化的遍历,设定短周期范围为5至10,长周期范围为15-25。

  • 遗传算法
    通过机器学习的方法来进行参数优化求解。




网格算法


max_drawdown


sharpe


annualized_return


最后本文选择了5日短线,20日长线来作为回测的参数。下面画出其累计收益率的走势,以及具体风险指标。




遗传算法

那么有没有不遍历的方法进行参数优化?本文以机器学习的遗传算法为例,旨在提供一个思路,具体效果可能并没有那么理想,而且容易陷入局部最优解,后续还将多加调整。



遗传算法介绍

遗传算法是通过模拟大自然中生物进化的历程,来解决问题的。大自然中一个种群经历过若干代的自然选择后,剩下的种群必定是适应环境的。把一个问题所有的解看做一个种群,经历过若干次的自然选择以后,剩下的解中是有问题的最优解的。当然,只能说有最优解的概率很大。



几点说明

  • 编码方式:我们考虑两个参数,短周期与长周期。短周期的范围为[5,10],长周期范围为[15,25]。采用普通的二进制编码,码长为6位。

  • 解码方式:对于6位的二进制编码可以表示[0,63]内的任意正整数,所以还需构造映射进行转换至相应的区间。

  • 适应度函数:这里的适应度函数即回测,函数的因变量为策略的年化收益率。




['000000', '101011']  0.5451

['000010', '101101']  0.5451

['000010', '000010']  0.5451

['000000', '000100']  0.5451

可以看到6次繁衍后,遗传算法最后也收敛到了最优解上。

阅读原文


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:CTA策略 参数优化 遗传算法 量化投资

幸运符 发表于 2018-8-9 23:34:38 |显示全部楼层 |坛友微信交流群

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-3-29 03:44