比特币通信协议 - 币圈消息

比特币通信协议篇11、二、TURN简介。在典型的情况下,TURN客户端连接到内网中,并且通过一个或者多个NAT到 详细

基于遗传算法的交易策略开发(兼评最近论坛的事件)

  [复制链接]
660 14
Palmdale 发表于 2016-3-3 19:59:00 | 只看该作者 |阅读模式 打印 上一主题 下一主题
最近因为学业和找工作的事情,好久没回520fx论坛了。回来看到的一个事件就是苏菲亚被深挖曝光,连同ta(不确定性别)发布的ea都被挖出是抄袭原版的策略。看到时没有太多的惊讶吧,之前不懂ea的时候下载过她的很多ea,算是一个启蒙老师了,当然也看到她的许多策略是改编于国外原版策略。有个疑问:那篇曝光帖上说献礼系列是抄袭VF的,其实别人明明是抄袭的Capisan EA,也就是里海剥头皮。VF、VS她自己都发过源码,所以这个不算。还有其他几款ea,比如大师的叹息来自indo run,还有一些都是有国外策略的出处的。
  不好意思的说,我也被骗了——不过只有100元。买过一些ea的源码,和原版策略比较过,别人的确进行了一些改进,虽然很小也是劳动成果吧,回测结果也的确显示优化了很多。不过这种ea拿出来卖上千元就值得怀疑了,这个是我不知道的。还有前段时间代操作导致亏损的事情,我不认为ta是无意导致的,更可能是利益相关的需要,具体怎么个盈利方法我就不知道了,不过敢让别人把自己的钱放到这么风险巨大的市场上玩,也算是交智商税吧。
  话说这个让我想起了雪球上的易碎品,和知乎上的juno桐之类的,都是先进行个人宣传,然后将粉丝转化为收入。易碎品也是P图没P好,把中国卫星放到深圳交易所交易了才被曝光的。其实防骗方法也简单:你在网上装逼我就听着,你能介绍一些关于这个市场的知识我也学习下,但我就是没钱,你说啥我都不把钱给你。实在不行,我设个限额,最多100块,不能让别人说100块你都不给我是吧。关于说ea完全不能盈利的,难道手动交易能盈利么?小散进入市场大部分都是亏损的,无论是ea还是手动交易。至少别人在亏完前学了下编程也是好事嘛,说不定亏完了别人就去写代码了呢。
  还有就是论坛上这么久没有太精彩的帖子了。或许也是外汇市场在中国还没有形成稳定的盈利模式,真正的大玩家也还没有进入这个市场。
  好了不扯淡了,说说最近的一些新发现吧。最近毕业项目在做用遗传算法自动开发交易系统的题目。接下来进入正式版:
遗传算法是模拟达尔文的生物自然选择学说和自然界的生物进化过程的一种自适应全局概率搜索算法,其实现过程主要包括编码、产生群体、计算适应度、复制、交换、变异等操作。评价染色体个体好坏的主要指标是适应度。使用遗传算法开发交易策略的流程主要如下:首先设置遗传算法的参数,包括变异概率、交叉概率、种群规模等;然后设置数据和运算规则,以及适应度指标的计算方式,设置蒙特卡洛模拟的参数;之后运行若干次进化过程,并选取适应度较高的策略进入下一步优化。在进一步优化中,随机添加或替换开平仓策略、开平仓方式,并随机修改历史价格、跳过某些订单等,以确保策略的鲁棒性。最后,利用推进分析评价是否存在过度拟合问题。最近买了Stratrgyquant这个软件,这里用它来做演示吧:首先我们选择输入数据,如下图所示:图1、IF5分钟数据图  

      这里我们选取的是从2011年12月1日到2016年2月24日的股指期货5分钟数据。 然后,我们进行遗传算法的参数设置,包括:进出场设置。首先设置进出场规则的对称性,即空单和多单的进出场同条件是对称的。其次,选择止盈和止损的条件,并设置开始交易的规则和时间段。   图2、进出场单设置  

    构建交易规则,包括输入价格(高开低收量等)、技术指标如移动均线、线性回归、布林带等20-30个指标,并设置委托单类型和构建出场规则。 图3、交易规则构建  

      选择遗传和交叉的选项。设置遗传的种群规模和最大生成的交易策略,并设置变异和交叉概率。并选择将生成的适应度较高的系统进一步加入进化过程。将回测的样本区间分为培训/验证期。 图4、遗传算法参数选取  

    稳健性检验:主要使用蒙特卡洛模拟设置检验结果:1、随机跳过一些订单,以10%的概率;2、随机改变部分策略参数,以20%的概率;3、随机改变一些历史价格,以20%的概率,并模拟20条资金曲线图,以测试策略的稳定性。设置适应度的权重。包括净利润、利润因子、最大回撤及最大回撤比、复杂度和胜率等一系列因素。 图5、适应度权重设置  

    图6、遗传进化运行框架  

     然后我们开始运行遗传进化过程。  在实际的进化过程中,一般到第4-5轮进化,运行300-400次策略时会出现一些比较好的策略。在这里我们选择代号为1.46的策略,其资金曲线如下图所示: 图7、策略1.46资金曲线图  

     其策略大概是5分钟收盘价低于三指数移动均线开多仓,高于三指数移动均线开空仓。开仓时选择3分钟的移动均线+正负0.7倍的真实波动幅度挂单,挂单在45根k线后失效。开仓后,11根k线后取消挂单或出现乌云盖顶形态平多仓、出现刺透形态平空仓。该策略为随机生成,胜率为42.7%,是一个有潜力但是局限性比较大的策略。 然后,我们随机增加或改变一些参数,并进一步优化策略,形成一个更为成熟的策略。比如这里我们选择一个代码为0.7653的策略,其资金曲线图如下图所示:图8、策略0.7653资金曲线图  

     策略完成后,我们开始进行回测。 传统的回测方法是用部分历史数据作为训练组,另一部分作为测试组,把所有的历史数据都用来回测,然后当资金曲线比较平滑后,就进入模拟或实盘测试过程。由于交易策略的参数过度拟合的问题,这种方式并不能保证交易策略的稳健性。这里我们用到推进分析。比如我们先用第1到第4个星期的数据来跑优化,优化的参数值套用在第五个星期上,这时前四个星期就是in-sample data,第五个星期就是out-of-sample data。 图9、推进分析过程  

    这里我们将策略中3个参数进行调整,如下图所示: 图10、推进分析参数设置  

   这样,我们有800次回测需要运行,其稳健性的衡量指标包括净利润、盈利稳定性等5项指标。通过推进分析,我们发现原本看起来比较好的策略并没有通过推进分析:  图11、推进分析报告结果  

      评分需要满足80%才达到通过标准,这里这个策略只达到了50%,因此没有通过稳健性检验。从资金曲线图上也可以看到,这个策略存在过度拟合的问题: 图12、推进分析资金曲线图  

   其中灰色的曲线是传统回测方法得到的,蓝色的曲线是推进分析方法得到的,显然其效果差了很多。
以上为一套完整的策略开发流程,当我们回测出能较好的通过稳健性检验的策略后,我们会进一步在matlab上进行组合优化。
好了,简单来说,就是只要你有一个比较好的技术指标,我能拿出来跟市场上存在的所有技术指标和所有开单方式进行组合,并进行严格的推进分析避免过度拟合问题。速度怎么样呢,我曾经一下午4个小时,回测了1万多种策略,就用的市场上的最常见的技术指标。回测结果,做国内的商品期货、股指期货的难度比做外汇的难度小了不止一点点。当然苏菲亚的ea我也会拿出来继续做优化,她诈骗归诈骗,策略我还是收下了继续改进嘛。
收藏
收藏0
转播
转播
分享
分享
分享
淘帖0

精彩评论14

跳转到指定楼层
沙发
stvyeap 发表于 2016-3-3 19:10:02 | 只看该作者
我个人认为不管多好的策略智能,只要你走24小时遇到国家级领导出来说话!你的智能总有会爆仓的时候!
如果不认同我的感想!就当我在放屁说话!我不想你来我往!
板凳
13611347809 发表于 2016-3-3 20:00:00 | 只看该作者
学习了,非常好。
地板
ferrari0078 发表于 2016-3-3 16:35:43 | 只看该作者
你分享,我快乐
5#
abc3251886 发表于 2016-3-3 16:45:08 | 只看该作者
是山东的嘛。。我也是90后,在寻找像楼主一样的高手合伙人。。。有意向可以+826879845,聊聊
6#
pxc 发表于 2016-3-3 16:46:41 | 只看该作者
看的我是云里雾里
7#
flfipdns 发表于 2016-3-3 17:09:23 | 只看该作者
基于遗传算法的交易策略开发
8#
阳光总在风雨后 发表于 2016-3-3 17:20:00 | 只看该作者

你分享,我快乐
9#
xuyifeng1314 发表于 2016-3-3 17:33:11 | 只看该作者
好高深的样子!
10#
Roy_PUtmt 发表于 2016-3-3 17:39:15 | 只看该作者
我相信ea比手动好
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题
阅读排行更多+

Powered by 顺水鱼MT4外汇EA网! X3.2© 2001-2017 顺水MT4外汇EA公司.( 陕ICP备17014341号-1