分享

EA能邦我们做些什么?

 三棵树静静地看 2014-07-21

EA能为我们做什么_汇聚钱财---forex 外汇 交易 外汇期权 EA策略 mql4 指标及EA编写_cnyxj的和讯博客
EA能为我们做什么
[原创 2010-1-19 10:40:55]
(最近网上看到多处引用此文章的,引用没问题,但请说明出处.以利交流.)
现在EA的讨论很多。在这里我想讨论的是指用于外汇交易的MT平台上的EA 。其它平台上的实现方式与方法可能不同,但本质应该是一样的。另外,有关EA的介绍很多,不再赘述。这里想讨论编写与使用过程中的一些问题。声明一点,剥头皮式的所谓EA不在讨论之列。
如何看待EA:
EA(Expert Advisor),直接的意思是专家顾问,顾名思义,就好比是你交易中请了个专家顾问呀。听着好像很专业。为此,很多网友在各处探求与下载各种各样的EA,觉得找个好的EA就一定能赚钱了。但可以预料,结果通常不会让人满意。
EA更常用的翻译是“智能交易”或“自动交易”,我觉得“自动交易”更接近我们在现实中对它的应用。让它实现交易过程的部分甚至是全部自动化。至于是否盈利,这要靠设计EA的人的交易策略,而不是靠EA本身。
如果我们把EA做为一种我们交易的辅助手段,则不失为一种好的选择。第一,它可以部分执行交易过程,下单、改单、平仓等 ,虽然这些功能可能做个脚本就行,但它仍应属EA范畴。第二,作为检测我们的交易思路是否可行的好帮手。个人觉得,目前这是EA对普通交易者的最大帮助,很多看似很好的交易策略,一经EA化并进行测试,你就会发现它有那么多的问题。而所有这些问题都是你在实际运用这些策略进行交易时可能遇到,每个都会让你付出金钱的代价。EA化后,你可以进行前期干预,针对每个问题制定预案。或者对策略本身进行优化改进。或者干脆放弃这个交易思路。
人们谈论EA时,常提到的一大好处就是操作时毫不犹豫。这一点克服了我们在市场上不敢“扣板机”的毛病。但问题都有两面,我们犹豫是因为眼前的趋势我们看不清。犹豫既然是我们的本性一部分,那就有它的道理。否则进化早会把它淘汰掉,它是我们长期进化出来,保护我们面对不了解的事物时不要贸然行事,以避免可能危险的本能反应。而EA的这种不犹豫也可解释为“无知者无畏”。所以,如果本身的交易策略设计得不好,EA的果断不能帮助你走出困境。
编写EA的过程有助于自己交易策略的总结与提高,EA会要求你把每个信号策略精确地提出来。就是用模糊系统,你也要精确地告诉EA如何“模糊”你的信号。高抛低吸,很好,请告诉我,什么地方是高,什么地方是低?EA会这样问,当均线或信号线金叉就多,死叉就空。那请告诉我,什么算是交叉了,大于算是交叉了,等于算不算?大于0.00001算不算已经交叉,盘中最高价曾把使它们交叉而收盘时却没能交叉,这算不算……,所有这些,你都必须明确地告诉EA。你在编写测试过程中会遇到数不清的这类问题。它会逼迫你把自己的策略想清楚,想全面。有时它甚至会使你觉得自己都不知道该怎样交易了。
有网友说电脑可以7*24小时地挂着EA,完全不用人工干预……哦,多好的一部赚钱机器。咱就可以趟在床上数钱玩了。
就目前交易现实而言,我个人是决不会在自己不在电脑前时使用EA,它可以做得很自动。但你不知道可能会碰到什么古怪的问题。我不想通过资金亏损来告诉自己这一点。航天飞机还失事呢。请你告诉我你的EA里包含几个异常处理函数?他们的边界在什么地方?EA做了什么样的健壮性测试,交易系统down线了如何处理?你能确保你挂了损的单子就一定被执行吗?所以,不能太过轻信EA。
看上去再复杂的EA,它的原理(设计思路)也应该是简单的,如果不能简单阐述其设计思想、或者说让你听不懂的EA,通常先怀疑这个EA,而不是怀疑自己的智力。神经网络、遗传演化、模糊、混沌,不要被这些名词所吓到。其实它背后的思想是简单易懂的。
我们是交易者,EA是为我的交易服务,我们不是电脑技术专家,我们要专注于交易策略的规划,别仅着迷于EA的技术细节。我们自己的定位是我们是交易个体,希望借助EA帮助改进提高交易策略与交易能力。我们接触使用的是适合我们自身的较小规模的EA,或是为我们量身定制的Mini型EA,而不是搞大型复杂的EA系统(如果您是搞这个的,那这里所说的所有问题对您早已不是问题了,您所想的问题就不在这个讨论之列了)。
就算是C语言的门外汉,或对MQL4一点不懂,也不一定不能使用好EA,关键是让人给你说明白你想要使用的(或他给你推介的)EA的交易策略。
EA编写实践中涉及的几个问题:
任何EA的编写都要涉及提出思路、交易实现、异常处理、仓位控制,损失控制,交易信号评估等。会涉及单信号系统 多信号系统 信号过滤等。
单信号系统,思路简单(但也可以设计出不简单的系统来)。最简单的就是信号一出就行动,连续在市,持仓量恒定。这也是最初级的系统,但它对检测指标信号的准确性特别有用。虽然简单但也是个实实在在标准的EA,刚开始接触EA时,走到这一步,证明你已经走进了EA的世界。就跟你学习计算机言时编的那个“Hello World!”一样。说明你已经了解了EA的基本内容。今后完全可以编出高级别的EA来。你始终要牢记的是交易策略设计,而不是编程技巧。如果你手工交易不能实现稳定盈利。那么最好还是想想问题在哪儿,而这个我可以肯定地说,EA很难帮你解决。
单信号系统企图用一种方法解决所有问题。就好比是你要把一枚镙丝拧进本头里,而你手中只有一把榔头没有镙丝刀,你就用榔头把镙丝硬锤进去了。有时也能成功,但这枚镙丝也就再一无法把它启出来了。
通过历史数据测试成功的EA,并不一定能在实时交易中能正常运行。当EA要处理动态数据时,如果EA本身没有对异常问题做出应对的机制时,可能出现异常,比如价格跳动导致交易或止损止盈价格挂入的处理,平仓没有成功执行。甚至MT平台的允许自动交易就根本没开等等,这些都是应该注意的,如果是自己编写,这些问题都要充分考虑。要记住这是拿钱去玩的游戏。
注意下面几个问题可能会对你的EA编写与使用有帮助:
1、不要因为希望寻求一个稳定盈利的自动交易系统。就在没有彻底搞懂EA的设计思路并对它做出合理评估时便盲目使用它来交易你的真实账户。
2、没有一个好的策略,就没有好的模型,再好的算法(其实不可能有),也不会保证你盈利。靠神经网络、遗传演化是无法自动进化出一个好的EA系统来的。
3、胜率并不一定代表盈利。我跟许多朋友交流过。也了解过做期货、外汇的一般爆仓通常不是因为十笔交易中有大半是亏的。正好相反,多数涉足市场时间较长的人,通常大部分的交易单是赚的。做到十笔中七八笔盈利很平常,但最终还是亏的多。为何?因为盈利的单子的平均获利不及少数几张亏单的亏损额,爆仓也通常在一两笔之间。单信号、连续在市的顺势交易系统,如果胜率能达到40%的话,大多盈利预期是正值,原因就在这儿。因为它们一般的亏损额不会太大,而顺势系统在遇有较大行情时,一笔盈利可以抵过许多亏损单。问题是单信号系统的胜率通常达不到40%。我们自然会想到加些过滤———建仓的一些限制条件,如改用两均线的交叉代替收盘线的交叉,加止损等。但一般结果不会太好。因为所有这些做法都没有改变问题的根源------顺势系统在无势可顺的盘局里的窘境。
4、过渡追求胜率而忽视总盈利水平。如前所述。胜率与盈利并不一定同步,一个较低胜率但盈利预期是正值的系统,通过简单的加设止损止盈等手段,可以改造成一个胜率明显提高但总盈利可能下降的系统。除非是给别人看,胜率很高看上去漂亮。但还是建议您别这样做。优先考虑盈利,而不是胜率!
5、同质信号的叠加。当我们在使用单信号系统发现问题后,最容易想到的就是开发用不同的指标信号叠加来过滤现有信号多信号系统,这注意不错。但要注意的是,有些常用指标虽然形式不同,但其本质是相同的。如我们常用的MACD,KD,RSi,乖离等。用同质的指标信号过滤,效果不一定会如你所愿。
6、优化与过度拟合,优化是针对过去的数据进行的,过分追求优化,反而会失去它的普适性,适合过去,不一定适合未来。
7、混合系统。现在比较火的算法有:遗传演化算法 神经网络 模糊系统 混合系统 混沌系统等。涉及各种机器学习方法。没有任何单个算法可能解决所有问题。必须将与问题有关的知识以合适的方式结合到算法之中;否则,它比随机搜索好不到哪里去。
记住,任何EA,实现过程再复杂,其实都是要回答几个简单的问题:我们现在是应该多还是空?抑或是保持状态不动。所以,EA演算的结果可以用三种状态来表示:1,0,-1。至于复杂的持仓管理等,都是从这三个状态出发得来的。你可以在它的基础上加上评估函数,可以加上一层神经元等等。你可以把用不同指标及方法得到的这些1或0做为基因进行进化……
虽然混迹于市场多年,但EA实践时间并不长。写上面这些内容是想抛砖引玉。希望同好们把自己的经验拿出来跟大家共享。
2010-1-19 子

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多