EA制作速成班 基础篇_第1页
EA制作速成班 基础篇_第2页
EA制作速成班 基础篇_第3页
EA制作速成班 基础篇_第4页
EA制作速成班 基础篇_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Mt4 Ea 制作速成班-基础篇原创:李沂鸿(柒侠伍义)# 什么是MT4?我就当你了解什么是MT4了MT4就是META. TRADER 4# 什么是EA?我也当你了解什么是EA了EA 就是 Expert AdviserEA 就是智能交易系统智能教育系统就是:软件自己判断下订单软件自己判断提成利润软件自己判断砍仓止输# 什么是速成班?就是你在很短很快的时间内就可以学会如何编写EA是的,快则8个学习小时慢则24个学习小时# 什么叫“易学难精”?就是你很快的就上手,难在成为厉害的高手。这需要时间慢慢的去研究编写。久而久之你就可以是EA编写高手了。05-25-2009 08:56 AMyes810第一

2、课:了解EA的形式* 以下就是EA的编写形式/+-+/| MT4EA制作速成班.mq4 |/| Copyright ?2007, MetaQuotes Software Corp. |/| |/+-+#property copyright Copyright ?2007, MetaQuotes Software Corp.#property link. /+-+/| expert initialization function |/+-+int init()/-/-return(0);/+-+/|

3、 expert deinitialization function |/+-+int deinit()/-/-return(0);/+-+/| expert start function |/+-+int start()/-/-return(0);/+-+* /+-+/| MT4EA制作速成班.mq4 |/| Copyright ?2007, MetaQuotes Software Corp. |/| |/+-+这个是在上面的垃圾写与不写都无所谓我们就不用理他* #property copyright Copyright ?2007, Meta

4、Quotes Software Corp.#property link. 这个也是在上面的垃圾写与不写都无所谓我们也不用理他* /+-+/| expert initialization function |/+-+int init()/-/以后可能有用到/-return(0);/+-+/| expert deinitialization function |/+-+int deinit()/-/以后可能有用到/-return(0);这两个很少用到。高高手才会用速成班的话,这个可以不用理他。放在一边先,以后才学怎样用它。* /+-+/| exper

5、t start function |/+-+int start()/-/主程式/-return(0);/+-+这个就是EA开始操作的重要部分以上的EA的编写形式我们改成如下:* /+-+/| MT4EA制作速成班.mq4 |/| Copyright 2007, MT4EA制作速成班. |/| http:/www. MT4EA制作速成班.net |/+-+#property copyright Copyright 2007, MT4EA制作速成班.#property link. http:/www. MT4EA制作速成班.net/+-+/| expert initialization funct

6、ion |/+-+int init()/-/以后可能有用到/-return(0);/+-+/| expert deinitialization function |/+-+int deinit()/-/以后可能有用到/-return(0);/+-+/| expert start function |/+-+int start()/-/主程式/-return(0);/+-+* 什么是“.mq4”?EA制作好了就save成.mq4的文件这文件是可以修改的* 什么是“.ex4”?EA制作好了按“编写”就会自动save成.ex4的文件这文件是不可以被修改的这文件是加密的可以出售的文件。* 有什么问题要

7、问吗?但是我告诉你不要问太深的问题,我是不会的。05-25-2009 08:59 AMyes810第二课:EA重要部分* 回到EA重要部分/+-+/| expert start function |/+-+int start()/-/主程式/-return(0);/+-+* 我们要知道EA是由上面往下读的所以我们在编写方面要有逻辑思考以下是速成班编写的形式/+-+/| expert start function |/+-+int start()/-MoneyManagement();macd();ma();zhangchang();buyme();sellme();xianshi();/-re

8、turn(0);/+-+void MoneyManagement() /+-+void macd() /+-+void ma() /+-+void zhangchang() /+-+void buyme() /+-+void sellme() /+-+void buyme() /+-+void xianshi() /+-+/end* / 这两划代表右边的不要读也可以说是注解注意:EA不会读中文符号。比如这个“”这个就可以 * 我们可以完整他/+-+/| MT4EA制作速成班.mq4 |/| Copyright 2007, MT4EA制作速成班. |/| http:/www. MT4EA制作速成

9、班.net |/+-+#property copyright Copyright 2007, MT4EA制作速成班.#property link. http:/www. MT4EA制作速成班.net/+-+/| expert initialization function |/+-+int init()/-/以后可能有用到/-return(0);/+-+/| expert deinitialization function |/+-+int deinit()/-/以后可能有用到/-return(0);/+-+/| expert start function |/+-+int start()/-

10、/主程式MoneyManagement();/资金管理macd();/指标管理ma();/指标管理zhangchang();/战场管理buyme();/买上sellme();/买下xianshi();/显示管理/-return(0);/+-+void MoneyManagement() /子程式/这边要写一些东西/+-+void macd() /子程式/这边要写一些东西/+-+void ma() /子程式/这边要写一些东西/+-+void zhangchang() /子程式/这边要写一些东西/+-+void buyme() /子程式/这边要写一些东西/+-+void sellme() /子程式

11、/这边要写一些东西/+-+void buyme() /子程式/这边要写一些东西/+-+void xianshi() /子程式/这边要写一些东西/+-+/end* 如果你在上面加这个xianshi2();下面就加这个/void xianshi2() /这边要写一些东西/可以任意无限的加。* 有什么问题要问吗?但是我老实告诉你不要问太深的问题,我是不会回答的。05-25-2009 09:03 AMyes810第三课:加入指标* /void ma()ma1now = iMA(NULL,0,ma1,0,MODE_EMA,PRICE_CLOSE,0);ma1now2 = iMA(NULL,0,ma1,0

12、,MODE_EMA,PRICE_CLOSE,1);ma2now = iMA(NULL,0,ma2,0,MODE_EMA,PRICE_CLOSE,0);ma2now2 = iMA(NULL,0,ma2,0,MODE_EMA,PRICE_CLOSE,1);ma1bnow = iMA(NULL,0,ma1,0,MODE_EMA,PRICE_OPEN,0);ma2bnow = iMA(NULL,0,ma2,0,MODE_EMA,PRICE_OPEN,0);/ma1now是代表的字你可以写成什么都可以PRICE_CLOSE是ma最新的参数PRICE_OPEN是ma开始的参数ma1now = iMA(NU

13、LL,0,ma1,0,MODE_EMA,PRICE_CLOSE,0);这个整句是死的。你只要copy&press就可以用了ma1是ma的参数号码或bar如果这样写法,他人不能更改参数double ma1=1,ma2=2;double ma1now,ma1now2,ma2now,ma2now2,ma1bnow,ma2bnow;这样写法,他人可以更改参数extern double ma1=1,ma2=2;这个是要放在#property上面那边的* 其它指标的写法macd1now=iMACD(NULL,0,macd1,macd1*2,1,PRICE_CLOSE, MODE_MAIN,0);zigza

14、g1now=iCustom(NULL,0,ZigZag,2,deviation,bac kstep,0,0);Highest1now=HighiHighest(NULL,0,MODE_HIGH,Highest1,0);Lowest1now=LowiLowest(NULL,0,MODE_LOW,Lowest1,0);iTrend1now=iCustom(NULL,0,iTrend,2,0,0,iTrend1,0 ,iTrend1,0,0,1);wpr1now = iWPR(Symbol(),0,wpr1,0);指标写法是不用记住的网上可以找到很多指标的写法* 有了指标我们可以更改我们的EA了更改

15、如下:注意看看刚刚的指标加在什么地方什么位置/+-+/| MT4EA制作速成班.mq4 |/| Copyright 2007, MT4EA制作速成班. |/| http:/www. MT4EA制作速成班.net |/+-+#property copyright Copyright 2007, MT4EA制作速成班.#property link. http:/www. MT4EA制作速成班.netextern double ma1=1,ma2=2;double ma1now,ma1now2,ma2now,ma2now2,ma1bnow,ma2bnow;/+-+/| expert initiali

16、zation function |/+-+int init()/-/-return(0);/+-+/| expert deinitialization function |/+-+int deinit()/-/-return(0);/+-+/| expert start function |/+-+int start()/-MoneyManagement();/资金管理macd();/指标管理ma();/指标管理zhangchang();/战场管理buyme();/买上sellme();/买下xianshi();/显示管理/-return(0);/+-+void MoneyManagement

17、() /这边要写一些东西/+-+void macd() /这边要写一些东西/+-+void ma()ma1now = iMA(NULL,0,ma1,0,MODE_EMA,PRICE_CLOSE,0);ma1now2 = iMA(NULL,0,ma10,0,MODE_EMA,PRICE_CLOSE,1);ma2now = iMA(NULL,0,ma2,0,MODE_EMA,PRICE_CLOSE,0);ma2now2 = iMA(NULL,0,ma2,0,MODE_EMA,PRICE_CLOSE,1);ma1bnow = iMA(NULL,0,ma1,0,MODE_EMA,PRICE_OPEN,

18、0);ma2bnow = iMA(NULL,0,ma2,0,MODE_EMA,PRICE_OPEN,0);/+-+void zhangchang() /这边要写一些东西/+-+void buyme() /这边要写一些东西/+-+void sellme() /这边要写一些东西/+-+void buyme() /这边要写一些东西/+-+void xianshi() /这边要写一些东西/+-+/end* 注意这个,不要糊涂的删除了也不知道会出错的注意这个可以写成这样效果一样double ma1=1;double ma2=2;double ma1now;double ma1now2;double ma

19、2now;double ma2now2;double ma1bnow;double ma2bnow;* extern double ma1=1;extern double ma2=2;这样写可以显示在EA开始的修改处* 有什么问题要问吗?但是我老实告诉你不要问太深的问题可能我也不会回答的。05-25-2009 09:07 AMyes810第四课资金管理* 这个将放在#property上面那边/extern string _资金管理_ =任选一个;extern bool zijiguanli1 = true;/false true、extern bool zijiguanli2= false;/

20、false true、extern bool zijiguanli3= false;/false true、/true要false =不要用我提供了三个资金管理作为参考你可以自己增加自己喜欢的资金管理方案* /void MoneyManagement() lotstart=(AccountBalance()*lotab/10000);lots=lotstart;if(cheng=0)cheng=1;CurrentBasket=AccountEquity()-AccountBalance();/if(zijiguanli1) LotMM = lots;/if(zijiguanli2)if(Cur

21、rentBasket=10)aa=66;if(CurrentBasket0 ) LotMM=NormalizeDouble(lotstart*aa,2); if(CurrentBasket=0 ) LotMM=NormalizeDouble(LotMM*0,2); /if(LotMMLotsMax)LotMM=LotsMax;/end zijiguanli/注意:这个资金管理加了很多新的词句所以我们要加上去#property上面那边不然会出错* 新的词句:extern double cheng=1;double aa=0;int s=0,b=0;intdouble CurrentBasket=

22、0;double LotMM=0;double lotstart=0;double LotsMax=100;extern double lotab=0.1;double lots=0;* 注意:double 是有小数点的int 是没有小数点的* 注意:if()很容易用,比如:if(LotMMLotsMax)LotMM=LotsMax;意思就是:如果LotMM大过LotsMax,LotMM就等于LotsMax。不会的话,不要紧copy&press就可以用了把void MoneyManagement() copy&press到我们EA模板去结果如下:/* +-+/| MT4EA制作速成班.mq4

23、|/| Copyright 2007, MT4EA制作速成班. |/| http:/www. MT4EA制作速成班.net |/+-+#property copyright Copyright 2007, MT4EA制作速成班.#property link. http:/www. MT4EA制作速成班.netextern double ma1=1,ma2=2;double ma1now,ma1now2,ma2now,ma2now2,ma1bnow,ma2bnow;/extern string _资金管理_ =任选一个;extern bool zijiguanli1= true;/false t

24、rue、extern bool zijiguanli2= false;/false true、extern bool zijiguanli3= false;/false true、/extern double cheng=1;double aa=0;int s=0,b=0;int double CurrentBasket=0;double LotMM=0;double lotstart=0;double LotsMax=100;extern double lotab=0.1;double lots=0;/+-+/| expert initialization function |/+-+int

25、 init()/-/-return(0);/+-+/| expert deinitialization function |/+-+int deinit()/-/-return(0);/+-+/| expert start function |/+-+int start()/-MoneyManagement();/资金管理macd();/指标管理ma();/指标管理zhangchang();/战场管理buyme();/买上sellme();/买下xianshi();/显示管理/-return(0);/+-+void MoneyManagement() lotstart=(AccountBala

26、nce()*lotab/10000);lots=lotstart;if(cheng=0)cheng=1;CurrentBasket=AccountEquity()-AccountBalance();/if(zijiguanli1) LotMM = lots;/if(zijiguanli2)if(CurrentBasket=10)aa=66;if(CurrentBasket0 ) LotMM=NormalizeDouble(lotstart*aa,2); if(CurrentBasket=0 ) LotMM=NormalizeDouble(LotMM*0,2); /if(LotMMLotsMax

27、)LotMM=LotsMax;/end zijiguanli/+-+void macd() /这边要写一些东西/+-+void ma()ma1now = iMA(NULL,0,ma1,0,MODE_EMA,PRICE_CLOSE,0);ma1now2 = iMA(NULL,0,ma10,0,MODE_EMA,PRICE_CLOSE,1);ma2now = iMA(NULL,0,ma2,0,MODE_EMA,PRICE_CLOSE,0);ma2now2 = iMA(NULL,0,ma2,0,MODE_EMA,PRICE_CLOSE,1);ma1bnow = iMA(NULL,0,ma1,0,MO

28、DE_EMA,PRICE_OPEN,0);ma2bnow = iMA(NULL,0,ma2,0,MODE_EMA,PRICE_OPEN,0);/+-+void zhangchang() /这边要写一些东西/+-+void buyme() /这边要写一些东西/+-+void sellme() /这边要写一些东西/+-+void buyme() /这边要写一些东西/+-+void xianshi() /这边要写一些东西/+-+/end* 资金管理有三个方案:资金管理1=平注资金管理2=1,2,3,4,5.可以乘,如果你把cheng改成2或3或0.2资金管理3是固定式,1,3,7,11.。* 不明白?别急,用了就明白。有什么问题要问吗?但是我老实告诉你我是自学成功的,没有上过什么EA课程不要问太深的问题可能我也不会回答的。05-25-2009 09:14 AMyes810第五课:策略:战场* 这里是整个EA最重要的地方这里策略变化无穷高深莫测就是这里作怪* 在这里你要想:。你的EA要怎样下注什么时候买上?什么时候买下?怎样买上?怎样买下?有买上又买下?什么时候离场?条件满足是很重要的* 在这里我给个简单的策略ma1黄金交叉ma2,EA买上ma1死

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论