mt4外汇ea编程代写中&&是什么意思

如何学习外汇EA的编程
我的图书馆
如何学习外汇EA的编程
& &&&大家第一次接触编程的时候我想很多人都会在那些Q群啊之类的地方不断的问,怎么学习编程,要看些那些书。甚至在百度,谷歌里搜索如何学习编程。&&&&这篇文章,我会从我自己学习编程的角度去描述,如何学习,可能不是最好的学习方法,但是我想对于一些朋友总会有帮助的,因为方法是源自你个人。我在这里说一下我的格言:别去想别人怎么做,首先应该想自己怎么做。别去想别人怎么帮助你。首先想自己帮助自己。&&&&想想我自己学习编程也有好多年啦。初三开始小打小闹的用C语言写个无聊的printf()到用HTML写几个个人网站。虽然没啥技术含量不过都是自己的劳动,那时候真的很激动,现在回想起来,其实那时候很幼稚。不过也造就了我的兴趣吧!好了闲话就少说了,我们入正题。&&&&在学习之前,请允许自己先问下自己:我为什么要做这样的事。对于编程,我会先问一下,你为什么要学习编程?你会怎么回答?&&&&A:兴趣;&&&&B:读书需要;&&&&C:传闻是高薪职业;&&&&D:容易就业;&&&&E:被逼的;&&&&F:无聊学学;&&&&这个你会怎么选择;什么样的目的,得到什么样的结果。& & 如果你选择的是A:我会开心,兴趣就是动力,就算没有人教,你也会鼓足勇气去学习,就我个人来说,我是那种屁股坐不稳的人,你叫我坐在那里什么都不做半个小时,我会全身都不舒服的。但是一说到计算机,编程我可以一坐就是7,8个小时自己还没感觉。兴趣第一,很好,你以这个为目的我相信你一定能学好。相信你也有自己的一套学习方式。&&&&如果你选择的是B:那么你也有一定的成功几率,首先你要是一个会读书的人,可以说读书就是你的兴趣,那么你也可以学好。当然如果只是随潮流大家都读所以我也要读,那么你只能学不好了。&&&&如果你选择的是C:那么你还是早点放弃吧,那些拥有高薪的都是十分牛的人,其实的广大程序员还是挣扎在生活的水平线上。混饭吃而已,所以如果你抱着高薪去学习编程,你一定肯痛苦。这类也是最能有成就的一类,编程是技术需要的是一份执着,但是你的执着只是金钱。技术现在并不等于金钱……&&&&如果你选择的是D:我还是劝你早点放弃,现在的就业也不乐观啊,失业大军里计算机就占了很大的一部分比重,你随时都可能是其中的一分子。&&&&如果你选择的是E:很好,你也有可能学好,前提是逼你的人能一直强逼你下去,让你进步,一句非常经典的话:“人都是被逼出来的……”。你出生的时候的确是被逼出来的,被你妈妈逼出来,呵呵!&&&&如果你选择的是F:也不错,起码你无聊的时候想到的居然是编程,证明编程还能给你带来乐趣。&&&&既然你已经知道为什么学习编程,那么我们要做的就是怎么去学习了。现在的编程语言很多,上百个语言,但是无论什么语言,都会有共同性的。所以你要学习编程那么就要先学习编程的思想,这个编程的思想你也只能看一下而已。了解一下计算机如何去读这些编程语言这个很重要。不了解过个你学习任何编程语言都很难做到灵活运用。&&&&你明白了计算机是如何读编程语言是的这个时候你就可以开始选择你学习的语言了。至少这些编程语言都是我能看懂的,可以说是自己学过的。也会解析一下学习这些语言的一些特点。&&&&A: c#.NET&&&&B: Java&&&&C:C/C++&&&&D: PHP&&&&E: JavaScript&&&&F: lua&&&&&我只列出了五种,其实还有更多的语言,有兴趣可以自己去找下这些语言的特色。其实我了出的这些都有一个特色。都是跟C语言有一定的相似的。&&&&&&&A: C#这个语言是微软推出的,目前大部分应用都是应用在WIN平台上,虽然LINUX也能用,但支持还不是太好。编程风格上我觉得是最优美。至少看起来很舒适,强大的智能感知。编程的学习难度分级是:初学偏易,一般编程中等,高级编程难。梯度不算陡峭。虽然是面向对象,但是现在大部分的人都很用到面向对象至少我在国内反编译很多的应用系统的时候很多都没有用到编程思想的,虽多就是把类用来实现脚本编程闭包功能而已。真正使用到面向对象的继承多态的并不多。当然也有很多是使用了面向对象思想的,所以我觉得初学C#的时候完全可以放弃对象的继承,多态这类比较复杂的东西。专心学习他的语法糖,还有封装好的API,其实C#这个语言已经有个很完善的API基本上的应用都可以直接使用API来实现,而且从算法构造上也不算复杂。再加上IDE的智能感知,新手只需要了解各个命名空间的作用就可以了,智能感知会帮助我们完成API的调用(至少你要知道那些方法在那个空间,怎么用)。所以初学我把它定义在上手“易”。现在的学习其实并非一定要从记事本开始。学会使用IDE学习其实也是一项技能。编程很重要的一点。就是你动了多少手,你就收获了多少,无论你看了多少别人的代码,如果你不自己动手去写一下,你永远没办法感受到内涵,之前我有部分同学,他们跟我说,现在网上大把代码,那里需要自己敲得那么辛苦干嘛上网COPY一下就什么都有了,傻瓜才自己手写。& & & 好吧我承认我傻瓜。但是自少我现在的水平我敢说,,你只需要给我2样东西我一样能写出你上网找的那些代码。一样是VS,另一样是帮助文档。说起这个事又令我想起最近公司招聘的一些趣事。最近公司面试了接近80个人吧,因为我们公司的上机考试是不允许上网的。呵呵!你们可以想象一下,不能上网后只有30个能勉强敲的出代码的。能做出题目的更是少得可怜。突然我就想,这些人到底有没基础的,一个简单的登录功能和上传文件功能不能上网就不会写,我真是狂汗……一些号称三年五年工作经验的,居然还写不出一个简单的交叉表查询。(其实就10句代码……)。所以啊过分依靠网络怎么可能有自己的技术积累呢,这些人在我眼里三年五年也成不了构架师……可能十年也去不到构架师的水平。&&&&&&&B:JAVA 跟C#类似,传闻微软推出C#也是为了对抗JAVA而搞出来的。这两种语言有很多相似的地方什么是命名的方式上都有很多相似的地方,JAVA也是从C语言里发展起来的。不过我觉得在学习曲线上,初学要比C#难,中国人普遍英语不太好。而且在IDE上微软的VS要比JAVA的各类编辑器要优胜,主要是在智能感知上,还有一些辅助上。可能很多JAVA的铁杆FANS会给我丢西瓜,丢鸡蛋了。但我敢说,我说的是事实,JAVA位置一个环境都很辛苦,至少我学习的时候是这样。免费啊,JAVA很多东西都是免费的,微软要收费的,收费肯定好了……我会偷偷的笑……你丫就不用盗版?有了光荣的盗版。收费问题根本就不是问题,再说从学习的角度……盗版这些东西根本就无关痛痒的……反而更容易召集人气……&&&&C: C语言可以说是非常牛逼的语言,长期位居第一。但是需要投入的精力也不少啊,智能感知一直进步不大,可能是因为万恶的宏定义呵呵(这个万恶可不是我说的。)当然学习C语言如果你不懂使用宏定义那么你肯定没学过C语言,C语言的宏定义虽然一直在C语言的书本上很少描述但是实际应用却是不可缺少的,我看过 IDSOFT的DOOM的源代码里简直就是神一般。但是看起来也真是辛苦。题外话,其实上面很多语言都是根据C语言衍生出来的,什么很多特性都是参照了C 语言。用很玄幻的说话。C语言是远古时代遗留的强大魔法。既然是远古学习曲线自然就陡峭得可以,我个人感觉我的C语言水平其实都只是菜鸟而已。C++一样是菜鸟。C++和C其实我觉得是2个语言根本不能混为一谈的,但是很多招聘之的都把C/C++归为一类,所以我也把它归为一类,很多人想问学C++是不是要先学C.而且C++的分支多得吓人。内涵也丰富得吓人……C语言个人技术化,我个人觉得C/C++起码要4年才算出师,JAVA是2年,C#都是2 年。而且还需要一系列的计算机基础,算法基础等一些东西。而JAVA和C#都把这些东西封装了成标准的API了,我们只需要使用。但是C/C++这些东西都没有一个确定的标准例如界面库,有人用QT有人用MFC.这些都是不一样的所以选择的路也多,学的东西自然也更多了。但从编程上,并非就是C++的就比用C#的牛。C++只是拥有深厚的历史,有自己独特的文明。是因为它的文明而牛。&&&&D:PHP 接触不深,但是我觉得它是一个制作网页的好语言,其他领域我并不怎么看好他,我觉得PHP在开发网页上有很大的优势,但是开发B/S级系统应用就现得比较力不从心了。所以如果你定位自己作为一个网页开发人员的话,你就应该学习这种语言。如果是B/S级的应用的话,就应该使用C#或者JAVA,或者其他的语言。&&&&E:JavaScript,非常有名的脚本语言,如果你想从事B/S的开发,网页开发,你就一定要学这个,是一个必须掌握的技能。学习曲线相对比较平坦,而且内容也不算多,但是应用却十分灵活的语言。强烈推荐初学者先学习这个语言,来寻找感觉,因为这个语言完全不存在编程环境的问题,你只需要有浏览器,记事本,两样任何系统都有的软件就可以编写它。所以我觉得首先学习它会对你理解编程思想有一定帮助。&&&&F:LUA这个也是一个脚本语言,成就这个语言的名声是来自一个叫“魔兽世界”的游戏,目前我了解LUA应用的领域比较多都是作为一种嵌入语言,嵌入到C 或者C++中去使用,在国内很多游戏公司都会有LUA程序员,部分会由C语言程序员去兼任。因为LUA在语法上和C有很相似的地方,基本对旧的C语言程序员学习LUA是无难度的。当然也有它的局限性,作为脚本语言它本身就存在不足,而且这个语言本身就是作为C语言的扩展来用的所以,学习这个语言的话,建议先学习C语言。或者成就更高(或者而已!)&&&&我个人是选择C#作为长期发展的语言的。我觉得这个语言比较适合我这种英语不算好,但是又喜欢编程的人。&&&&PS:真心想学编程的必须要学习一定的英语能力,因为很多编程的先进思想都是英文的。所以英语好,对成为高手起很大作用的。&&&&知道为什么学习编程,又选择了目标语言,接下来就是基础学习了。&&&&这个基础学习,我觉得首先要对一些语法糖熟悉,第二件事情就是要多编,多看,可能你买的书都附带着实例代码的,我觉得对于初学者,首先你把书上的程序都照着编一次,在这期间,你一定会遇到无数的错误,但是这些错误将会是重复出现的,这个时候你就学会了如何排错,有人说过编程不是一口气写出来的,是修改出来的。所以学习排错是编程的第一步,虽然随书光盘有很多代码,但是这些代码都不属于你的。没有入你脑,唯一让这些代码属于你的办法就是多抄(打)几次。当你把一本编程的基础书都看透了……至少别人问你这本书的知识你能答得上口,那就是你度过了第一时期了。你可以进入一搬阶段了。&&&&一般的阶段,这个阶段我把它定义为是把这些语法组织成句子,组织成文章的时期。我想问下,大家都上过语文课吧,我们来回想一下,我们学习语文的过程&&&&字=》词=》句=》文章;&&&&而编程的学习则是这样的;&&&&变量=》函数=》类=》架构&&&&所以我们在初学阶段做的都是学那些字,那些词(其实就是语法糖)然后我们就会学造句,造句的时候就会涉及到把什么词语组合起来会得到优美的句子,而合理的句子,加上合理的逻辑就会变成一篇优美的文章。但是一篇优美的文章并非那么简单的。也就是一个程序架构的优美一样没那么简单一样,需要很多很多学识。
馆藏&30124
TA的推荐TA的最新馆藏
喜欢该文的人也喜欢114网址导航&>&&>& > 正文
外汇EA的编写心得
时间: 08:05:11&&&&来源:&&&&作者:
我编写EA的目的:建立系统的交易方法,机械化运行,排除情感的影响,实现稳定赢利。
做EA一年了,最初做的是突破系统,依据突破方向追买追卖,测试近半年,效果一般,决定放弃,但这个EA使我坚信了一点,即只有跟着趋势交易才能实现EA的稳定赢利。因此,我认为要做一个成功的EA,关键就在于如何应用一切可能的方法去判断趋势。我发现很多很普通的指标都很容易做到这点,举个例子,GBP/USD日线图,用一个长周期的RVI做趋势判断(RVI-110),当RVI在&0&值上方趋势为上升,反之则为下降,开仓及平仓用一个短周期RVI做信号指示(RVI-13),在上升趋势时,采用RVI MAIN 上穿RVI SIGNAL作为买入信号;在下降趋势时,采用RVI MAIN 下破RIV SIGNAL作卖出信号,这个系统很简单,却很实用,配合好的止损止赢策略,赢利是有保证的,我还为此编写了一个EA,有兴趣的可以看看(附MQ4文件,写得很粗糙,高手别笑话)。
抓住了主要趋势,就好比跳上了一匹脱缰快马,带着你一路往前冲,可能前面是悬崖,有些悬崖可能会提前看到,但有些只能更着跳下去。。。所以上马前最好带个降落伞包。什么?不是悬崖只是个楼梯?呵呵,我要的是不死,受点伤难免啦。
我会为EA设定止损条件,这个算是&正统&的理念还是有效的。
先看一张图,这个EA能较好的抓住趋势,但第一个悬崖还是跳下去了,由于汇价急挫,EA本身的CLOSE-ORDER机制还来不及反应,幸而止损帮了忙。接下来是9笔的连续获利,最后一笔追踪止损保护了赢利;
第二张图,行情振荡,此时的EA表现平平,每个趋势都很短命,得益于止损机制,EA仍能偷生。
这个EA获利靠的主要是趋势行情,振荡时候能保本就可以了。
关于&曲线套入&。
这里先讲两个故事:
◎某人练习射箭,可总射不准,看到其他人箭箭红心,不禁眼红,后来他想了一个好办法,就是先把箭射出去,然后跑到箭射入的目标处把&箭靶&画上,这样看来,也是箭箭红心;
◎又话说英国赌球风气盛行,某君也想通过赌球捞一把,可是他老猜不中,于是他想了一个点子:周末开赛前,他通过黄页选定了3000个人作为目标,分别去信,声称自己能准确预测周末A队对B队的战果,对其中1000人,他预测A队获胜,对另外中的1000人,他预测B对获胜,剩下的1000人,则预测两队战和;下一个周末,他对上周预测准确的1000人又分成3批发信,分别作出3种预测,再下周亦如是。。。到剩下33人的时候,他又分别向他们去信,声明如想要获得本周末赛果的预测,需先向他支付1000英镑,结果,这些人中的大部分对这个&独具慧眼&的专家早已倾心不已,某君终于大赚一笔。
所谓的&曲线套入&,就是利用历史资料匹配系统,针对一段历史行情与指标、数据的关系编写EA,为使EA看起来有良好的表现,不断地对参数作出调整、优化,设置过滤条件,使EA与历史资料数据之间完全吻合,结果可以肯定,这套EA在历史数据测试中表现良好,会在大涨之前适时地买入,大跌之前适时地卖出,可是当下次大涨大跌之前EA还会适时地发出信号吗?恐怕不能,因为这个EA是针对过去的状况编写的,它不一定适用于未来。从自己的经验总结,EA设定的条件越多,结构越复杂,&曲线套入&的情况就越严重。话又说回来,编写EA不能离开历史资料,不然我们就成了盲人摸象,无从入手,怎样避免过度的&曲线套入&,我是这样做的,首先准备足够长的历史资料数据,将其分成两份,前一份用于观察,后一份尽量不去看它,EA出来后先用前一份数据作测试、调整,直到EA达到目标要求后再用后一份历史资料去测试它,如果这时EA的表现和前一份数据差不多,那么我认为这个EA基本合格了。
如何利用历史测试评估EA
历史数据测试的目的是客观地评估EA的效果,暴露EA的缺陷,让我们加以改进,为此,在测试前我们应该作如下准备:
1、一段未被用作EA设计时参考的历史数据资料,该份资料的数据应做到尽可能详细,如有可能应包括所有时段的数据。当然,不同的EA对数据的详细依赖程度各有不同,例如一个只根据日平均线穿越发出买卖入信号和一个通过多时段KD共振获得信号的EA,显然后者对数据详尽程度的依赖更高一些;
2、清空MT4\TESTER目录,每次进行数据测试该目录下都会留下大量数据文件及EA的设置文件(常有几G之巨),及时清理可恢复大量磁盘空间及减少以前设置对当前可能测试造成的影响*(这种影响纯属个人猜测,具体原因及是否一定有直接关联我无法找到确切的依据,但我在测试过程中因为这些问题而遇到的异常状况实在是不少);
3、关闭EA的资金管理选项,将LOTS设置为0.1或1,尽量使每笔测试记录的成交量一致,这是为了更好的计算EA的盈亏状况,避免了一些巧合(如赢利时刚好使用大LOTS,亏损时使用了小LOTS,当然,如果这是你的EA特有的智能化管理,例外。);
4、起此存款本金不太要紧,不过我们总希望以将来准备投入的本金作测试本金;
5、调整好其他参数,参数多的话把它SAVE成*.SET文件吧,方便下次调用。
都准备好了?按START!
相关文章 >
&&&&&&&&&&
盟友评论 >
外汇微信群
跟随优秀操盘手炒外汇

我要回帖

更多关于 外汇中的ea是什么意思 的文章

 

随机推荐