改变 发表于 2011-11-18 04:55:02

李沂鸿:MT4 EA 制作速成班_初级篇(第二版本)(40课全)[索引]

为了方便大家学习,我把所有课程做了一个索引,希望对大家有用!!
在此也特别感谢作者:李沂鸿

第一课


认识一些常用符号


加减乘除的符号 + - * /

大过的符号 >

小过的符号
=

小过或者等于

秀色可餐 发表于 2012-11-25 18:27:51

支持一下吧

udvwf 发表于 2012-11-25 18:27:51

真的有么

仓木 发表于 2012-11-25 18:27:51

好帖子,要顶!

wenken123 发表于 2012-11-25 18:27:51

发贴看看自己积分

kalialy 发表于 2012-11-25 18:27:51

坐下沙发,呵呵,模拟了一下,觉得可以。

谢了好兄弟 发表于 2012-11-25 18:27:51

你好!我想编写一平仓条件,可一直不成功。当下单成功后赢利超过7点之后赢利又小于6点平仓。就这个平仓条件能辛苦帮我写一下吗?这样能保住赢利不会变亏损。先行谢谢了!!!~~~

柒侠伍义 发表于 2013-12-31 16:10:21

?? 一点点 没有了吗

柒侠伍义 发表于 2013-12-31 16:11:04

李沂鸿:MT4 EA 初级1-26


第一课
认识一些常用符号

第二课
认识柱子(bar)的结构
开市价 Open
闭市价 Closed
高价   High
低价   Low

认识第二个柱子(bar)的结构
开市价 Open
闭市价 Closed
高价   High
低价   Low

认识第3个柱子(bar)的结构
开市价 Open
闭市价 Closed
高价   High
低价   Low

认识第4....



第三课
认识EA常用的一点点英文



if 如果
else 不然
true 真的
false 假的
double 数目字是有小数点
int 数目字没有小数点
extern 外部可以看到的及设定
start 开始
buy 买上
sell 卖下
ask --> 有人出的叫卖价, for buy
bid -->有人出的叫买价, for sell



第四课 认识EA策略表达方程式

告诉EA的基础方法: if( ){ }
EA会明白你要表达什么

变化
if( 条件1){执行}

变化
if( 条件1&&条件2){执行}

变化
if( 条件1   &&   条件2)   { 执行}

变化
if( 条件1 && 条件2 && 条件3 && 条件4 &&条件5){执行}

变化
if(条件1
&&条件2
){执行}

变化
if(条件
&&条件2
&&条件3
&&条件4
&&条件5
){执行}

变化
if(条件1
&&条件2 || 条件2b
&&条件3
&&条件4
&&条件5){执行}

以上变化EA都可以明白你要表达什么,只是排版不同,答案是一样的

第5课:EA模式结构


打开你的编缉器metaeditor
新建一个EA
保存 一个名字
比如:my1ea001


//+------------------------------------------------------------------+
//| my1ea001.mq4 |
//| Copyright ?2009, MetaQuotes Software Corp. |
//||
//+------------------------------------------------------------------+
#property copyright "Copyright ?2009, MetaQuotes Software Corp."
#property link ""

//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+

这个是个《空》的ea
所以应该是:0错误 0警告



第6课:阴阳太极

首先教你第一招:阴阳太极
打开你的编缉器

打开你的my1ea002


我先用中文编写一次
你就明白我们等下要编写什么

我们要编写。。。

如果(
没有任何单
和 青bar   //上升的趋势
){可以下注买上的单}

如果(
没有任何单
和 红bar   //代表下降低趋势
){可以下注买下的单}


ok
就这么简单


你还记得要要求ea的编写方程式吗?
对,就是
if(){}


编写结果如下:
//+------------------------------------------------------------------+
//| my1ea.mq4 |
//||
//+------------------------------------------------------------------+
#property copyright "Copyright ?2009, 柒侠伍义"
#property link ""

//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----




/*如果(
没有任何单
和 青色bar      //上升的趋势
){可以下注买上的单}

如果(
没有任何单
和 红色bar       //代表下降低趋势
) {可以下注买下的单}

*/

if(
OrdersTotal()==0
&& Close>Open
) {
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"macd sample",16384,0,Green);
}

if(
OrdersTotal()==0
&& Close<Open
){
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point,"macd sample",16384,0,Red);
}
//----
return(0);
}
//+------------------------------------------------------------------+
 

OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point,"macd sample",16384,0,Red);
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"macd sample",16384,0,Green);

以上两个OrderSend是从macd sample
copy & press 过来的


还没有结束。。。。


把这两个改一改就可以了
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point,"macd sample",16384,0,Red);
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"macd sample",16384,0,Green);

Lots改成1
TakeProfit改成200
0 改成Bid+200*Point
0 改成Ask-200*Point

变成
OrderSend(Symbol(),OP_SELL,1,Bid,3,Bid-+200*Point,Bid-200*Point,"macd sample",16384,0,Red);
OrderSend(Symbol(),OP_BUY,1,Ask,3,Ask-200*Point,Ask+200*Point,"macd sample",16384,0,Green);

按《编写》
如果0错误 0警告
你的my1ea002成功了





第7课:阴阳太极-升级

阴阳太极可以继续升级
继续完整它

你会发现这ea不够完整
比如:会在同一根柱子下注超过一次

解决方案就是给ea添加时间条件

条件:限制一根柱子下注一次 !=Time


编写结果。。。。
datetime 限制一根柱子下注一次 =0;   //自定义

int start()
{

if(
OrdersTotal()==0
&& Close>Open
&& 限制一根柱子下注一次 !=Time
){
OrderSend(Symbol(),OP_BUY,1,Ask,3,Ask-200*Point,Ask+200*Point,"macd sample",16384,0,Green);
限制一根柱子下注一次 =Time;
}

if(
OrdersTotal()==0
&& Close<Open
&& 限制一根柱子下注一次 !=Time
){
OrderSend(Symbol(),OP_SELL,1,Bid,3,Bid+200*Point,Bid-200*Point,"macd sample",16384,0,Red);
限制一根柱子下注一次 =Time;
}

return(0);
}



第8课:阴阳太极-自定义01

阴阳太极可以继续升级
继续完整它

你又发现一个问题
如果不要下注一个lot
可不可以简单的修改lotsize?

解决方案就是给ea添加<自定义>

如果你学会了《自定义》
很多东西是可以《自定义》的

编写结果。。。。
datetime 限制一根柱子下注一次 =0;   //自定义

double 下注数量=0.1;   //自定义

int start()
{
if(
OrdersTotal()==0
&& Close>Open
&& 限制一根柱子下注一次 !=Time
) {
OrderSend(Symbol(),OP_BUY,下注数量,Ask,3,Ask-200*Point,Ask+200*Point,"macd sample",16384,0,Green);
限制一根柱子下注一次 =Time;
}

if(
OrdersTotal()==0
&& Close<Open
&& 限制一根柱子下注一次 !=Time

){
OrderSend(Symbol(),OP_SELL,下注数量,Bid,3,Bid+200*Point,Bid-200*Point,"macd sample",16384,0,Red);
限制一根柱子下注一次 =Time;
}

return(0);
}



第9课:阴阳太极-自定义02

人真的麻烦,多事是人的天性
你又发现。。。
为什么没有《自定义》stoploss?
为什么没有《自定义》takeprofit?

你不是刚刚学会《自定义》吗?
给ea添加修改就可以了

编写如下:
datetime 限制一根柱子下注一次 =0;//自定义
double 下注数量=0.1;//自定义
double 止损=200;//自定义
double 止盈=200;//自定义

int start()
{
if(
OrdersTotal()==0
&& Close>Open
&& 限制一根柱子下注一次 !=Time
) {
OrderSend(Symbol(),OP_BUY,下注数量,Ask,3,Ask-止损*Point,Ask+止盈*Point,"macd sample",16384,0,Green);
限制一根柱子下注一次 =Time;
}

if(
OrdersTotal()==0
&& Close<Open
&& 限制一根柱子下注一次 !=Time
) {
OrderSend(Symbol(),OP_SELL,下注数量,Bid,3,Bid+止损*Point,Bid-止盈*Point,"macd sample",16384,0,Red);
限制一根柱子下注一次 =Time;
}

return(0);
}



第10课:你可以创造无穷无尽的策略

人真的厉害
当你学会了编写ea
你的《脑》不停的转动
你又发现。。。
你又发现。。。
你又要怎样怎样。。。
你又要怎样怎样。。。
无穷无尽的。。。



把这个条件加入你的ea
IsDemo()
这个可以避免人为错误
用不成熟的ea去模拟玩真钱外汇

当你把这条件加入ea
这ea只能在假的户口运行

编写结果:
datetime 限制一根柱子下注一次 =0;//自定义
double 下注数量=0.1;//自定义
double 止损=200;//自定义
double 止盈=200;//自定义

int start()
{
if(
OrdersTotal()==0
&& Close>Open
&& 限制一根柱子下注一次 !=Time
&& IsDemo()
){
OrderSend(Symbol(),OP_BUY,下注数量,Ask,3,Ask-止损*Point,Ask+止盈*Point,"macd sample",16384,0,Green);
限制一根柱子下注一次 =Time;
}

if(
OrdersTotal()==0
&& Close<Open
&& 限制一根柱子下注一次 !=Time
&& IsDemo()
){
OrderSend(Symbol(),OP_SELL,下注数量,Bid,3,Bid+止损*Point,Bid-止盈*Point,"macd sample",16384,0,Red);
限制一根柱子下注一次 =Time;
}

return(0);
}



第11课:完整的ea

datetime 限制一根柱子下注一次 =0; //自定义
double 下注数量=0.1;//自定义
double 止损=200;//自定义
double 止盈=200;//自定义

int start() //ea 开始运行
{

   
if(//如果
OrdersTotal()==0//没有单可以下注
&& Close>Open//判断上升趋势
&& 限制一根柱子下注一次 !=Time   //限制一根柱子下注一次
&& IsDemo()//限制模拟户口运行
){
OrderSend(Symbol(),OP_BUY,下注数量,Ask,3,Ask-止损*Point,Ask+止盈*Point,"macd sample",16384,0,Green);
限制一根柱子下注一次 =Time;
}   
   
if(//如果
OrdersTotal()==0//没有单可以下注
&& Close<Open//判断下降趋势
&& 限制一根柱子下注一次 !=Time   //限制一根柱子下注一次
&& IsDemo() //限制模拟户口运行
){
OrderSend(Symbol(),OP_SELL,下注数量,Bid,3,Bid+止损*Point,Bid-止盈*Point,"macd sample",16384,0,Red);
限制一根柱子下注一次 =Time;
}   

   return(0);   //叫 ea 重复运行 每秒大概可能重新运算1次
}



第12课:为ea加入不要交易的日子限制

datetime 限制一根柱子下注一次 =0; //自定义
double 下注数量=0.1;//自定义
double 止损=200;//自定义
double 止盈=200;//自定义
int start()//ea 开始运行
{
if(//如果
OrdersTotal()==0 //没有单可以下注
&& Close>Open //判断上升趋势
&& 限制一根柱子下注一次 !=Time//限制一根柱子下注一次
&& IsDemo() //限制模拟户口运行
&& DayOfWeek() !=0//礼拜不要交易
&& DayOfWeek() !=6//星期6不要交易
&& DayOfWeek() !=5//星期5不要交易
){
OrderSend(Symbol(),OP_BUY,下注数量,Ask,3,Ask-止损*Point,Ask+止盈*Point,"macd sample",16384,0,Green);
限制一根柱子下注一次 =Time;
}   
   
if(//如果
OrdersTotal()==0//没有单可以下注
&& Close<Open//判断下降趋势
&& 限制一根柱子下注一次 !=Time   //限制一根柱子下注一次
&& IsDemo() //限制模拟户口运行
&& DayOfWeek() !=0//礼拜不要交易
&& DayOfWeek() !=6//星期6不要交易
&& DayOfWeek() !=5//星期5不要交易
){
OrderSend(Symbol(),OP_SELL,下注数量,Bid,3,Bid+止损*Point,Bid-止盈*Point,"macd sample",16384,0,Red);
限制一根柱子下注一次 =Time;
}   
   return(0); //叫 ea 重复运行 每秒大概可能重新运算1次
}



第13课:为ea添加时间限制

datetime 限制一根柱子下注一次 =0; //自定义
double 下注数量=0.1;//自定义
double 止损=200;//自定义
double 止盈=200;//自定义
int start() //ea 开始运行
{
   
if(//如果
OrdersTotal()==0 //没有单可以下注
&& Close>Open //判断上升趋势
&& 限制一根柱子下注一次 !=Time//限制一根柱子下注一次
&& IsDemo() //限制模拟户口运行
&& DayOfWeek() !=0//礼拜不要交易
&& DayOfWeek() !=6//星期6不要交易
&& DayOfWeek() !=5//星期5不要交易
&& (Hour()>3&&Hour()<22) //限制交易时间:早上3点到晚上10点可以交易
){
OrderSend(Symbol(),OP_BUY,下注数量,Ask,3,Ask-止损*Point,Ask+止盈*Point,"macd sample",16384,0,Green);
限制一根柱子下注一次 =Time;
}   
   
if(//如果
OrdersTotal()==0//没有单可以下注
&& Close<Open//判断下降趋势
&& 限制一根柱子下注一次 !=Time   //限制一根柱子下注一次
&& IsDemo() //限制模拟户口运行
&& DayOfWeek() !=0//礼拜不要交易
&& DayOfWeek() !=6//星期6不要交易
&& DayOfWeek() !=5//星期5不要交易
&& (Hour()>3&&Hour()<22) //限制交易时间:早上3点到晚上10点可以交易
){
OrderSend(Symbol(),OP_SELL,下注数量,Bid,3,Bid+止损*Point,Bid-止盈*Point,"macd sample",16384,0,Red);
限制一根柱子下注一次 =Time;
}   
   return(0); //叫 ea 重复运行 每秒大概可能重新运算100次
}



第14课:再给ea限制年份运行

datetime 限制一根柱子下注一次 =0; //自定义
double 下注数量=0.1;//自定义
double 止损=200;//自定义
double 止盈=200;//自定义
int start()//ea 开始运行
{
if(//如果
OrdersTotal()==0 //没有单可以下注
&& Close>Open //判断上升趋势
&& 限制一根柱子下注一次 !=Time//限制一根柱子下注一次
&& IsDemo() //限制模拟户口运行
&& DayOfWeek() !=0//礼拜不要交易
&& DayOfWeek() !=6//星期6不要交易
&& DayOfWeek() !=5//星期5不要交易
&& (Hour()>3&&Hour()<22) //限制交易时间:早上3点到晚上10点可以交易
&& Year()==2009//限制交易时间:只限2009年可以运行
){
OrderSend(Symbol(),OP_BUY,下注数量,Ask,3,Ask-止损*Point,Ask+止盈*Point,"macd sample",16384,0,Green);
限制一根柱子下注一次 =Time;
}   
   
if(//如果
OrdersTotal()==0//没有单可以下注
&& Close<Open//判断下降趋势
&& 限制一根柱子下注一次 !=Time   //限制一根柱子下注一次
&& IsDemo() //限制模拟户口运行
&& DayOfWeek() !=0//礼拜不要交易
&& DayOfWeek() !=6//星期6不要交易
&& DayOfWeek() !=5//星期5不要交易
&& (Hour()>3&&Hour()<22) //限制交易时间:早上3点到晚上10点可以交易
&& Year()==2009//限制交易时间:只限2009年可以运行
){
OrderSend(Symbol(),OP_SELL,下注数量,Bid,3,Bid+止损*Point,Bid-止盈*Point,"macd sample",16384,0,Red);
限制一根柱子下注一次 =Time;
}   
   return(0);//让ea 重复运行 每秒大概可能重新运算100次
}



第15课:修改ea的上升趋势点
使判断更加准确

datetime 限制一根柱子下注一次 =0; //自定义
double 下注数量=0.1;//自定义
double 止损=200;//自定义
double 止盈=200;//自定义
int start() //ea 开始运行
{
   
if(//如果
OrdersTotal()==0 //没有单可以下注
&& Close-Open>200*Point //判断上升趋势
&& 限制一根柱子下注一次 !=Time//限制一根柱子下注一次
&& IsDemo() //限制模拟户口运行
&& DayOfWeek() !=0//礼拜不要交易
&& DayOfWeek() !=6//星期6不要交易
&& DayOfWeek() !=5//星期5不要交易
&& (Hour()>3&&Hour()<22) //限制交易时间:早上3点到晚上10点可以交易
&& Year()==2009//限制交易时间:只限2009年可以运行
){
OrderSend(Symbol(),OP_BUY,下注数量,Ask,3,Ask-止损*Point,Ask+止盈*Point,"macd sample",16384,0,Green);
限制一根柱子下注一次 =Time;
}   
   
if(//如果
OrdersTotal()==0//没有单可以下注
&& Open-Close>200*Point//判断下降趋势
&& 限制一根柱子下注一次 !=Time   //限制一根柱子下注一次
&& IsDemo() //限制模拟户口运行
&& DayOfWeek() !=0//礼拜不要交易
&& DayOfWeek() !=6//星期6不要交易
&& DayOfWeek() !=5//星期5不要交易
&& (Hour()>3&&Hour()<22) //限制交易时间:早上3点到晚上10点可以交易
&& Year()==2009//限制交易时间:只限2009年可以运行
){
OrderSend(Symbol(),OP_SELL,下注数量,Bid,3,Bid+止损*Point,Bid-止盈*Point,"macd sample",16384,0,Red);
限制一根柱子下注一次 =Time;
}   
   return(0); //叫 ea 重复运行 每秒大概可能重新运算100次
}



第16课:给ea添加滑点自定义

datetime 限制一根柱子下注一次 =0; //自定义
double 下注数量=0.1;//自定义
double 止损=200;//自定义
double 止盈=200;//自定义
double 滑点=30;//自定义
int start() //ea 开始运行
{
if(//如果
OrdersTotal()==0 //没有单可以下注
&& Close-Open>200*Point //判断上升趋势
&& 限制一根柱子下注一次 !=Time//限制一根柱子下注一次
&& IsDemo() //限制模拟户口运行
&& DayOfWeek() !=0//礼拜不要交易
&& DayOfWeek() !=6//星期6不要交易
&& DayOfWeek() !=5//星期5不要交易
&& (Hour()>3&&Hour()<22) //限制交易时间:早上3点到晚上10点可以交易
&& Year()==2009//限制交易时间:只限2009年可以运行
){
OrderSend(Symbol(),OP_BUY,下注数量,Ask,滑点,Ask-止损*Point,Ask+止盈*Point,"macd sample",16384,0,Green);
限制一根柱子下注一次 =Time;
}   
   
if(//如果
OrdersTotal()==0//没有单可以下注
&& Open-Close>200*Point//判断下降趋势
&& 限制一根柱子下注一次 !=Time   //限制一根柱子下注一次
&& IsDemo() //限制模拟户口运行
&& DayOfWeek() !=0//礼拜不要交易
&& DayOfWeek() !=6//星期6不要交易
&& DayOfWeek() !=5//星期5不要交易
&& (Hour()>3&&Hour()<22) //限制交易时间:早上3点到晚上10点可以交易
&& Year()==2009//限制交易时间:只限2009年可以运行
){
OrderSend(Symbol(),OP_SELL,下注数量,Bid,滑点,Bid+止损*Point,Bid-止盈*Point,"macd sample",16384,0,Red);
限制一根柱子下注一次 =Time;
}   
   return(0); //叫 ea 重复运行 每秒大概可能重新运算100次
}


第17课:给ea添加声音

datetime 限制一根柱子下注一次 =0; //自定义
double 下注数量=0.1;//自定义
double 止损=200;//自定义
double 止盈=200;//自定义
double 滑点=30;//自定义
int start() //ea 开始运行
{
if(//如果
OrdersTotal()==0 //没有单可以下注
&& Close-Open>200*Point //判断上升趋势
&& 限制一根柱子下注一次 !=Time//限制一根柱子下注一次
&& IsDemo() //限制模拟户口运行
&& DayOfWeek() !=0//礼拜不要交易
&& DayOfWeek() !=6//星期6不要交易
&& DayOfWeek() !=5//星期5不要交易
&& (Hour()>3&&Hour()<22) //限制交易时间:早上3点到晚上10点可以交易
&& Year()==2009//限制交易时间:只限2009年可以运行
){
OrderSend(Symbol(),OP_BUY,下注数量,Ask,滑点,Ask-止损*Point,Ask+止盈*Point,"macd sample",16384,0,Green);
限制一根柱子下注一次 =Time;
PlaySound("Conditions.wav");
}   
   
if(//如果
OrdersTotal()==0//没有单可以下注
&& Open-Close>200*Point//判断下降趋势
&& 限制一根柱子下注一次 !=Time   //限制一根柱子下注一次
&& IsDemo() //限制模拟户口运行
&& DayOfWeek() !=0//礼拜不要交易
&& DayOfWeek() !=6//星期6不要交易
&& DayOfWeek() !=5//星期5不要交易
&& (Hour()>3&&Hour()<22) //限制交易时间:早上3点到晚上10点可以交易
&& Year()==2009//限制交易时间:只限2009年可以运行
){
OrderSend(Symbol(),OP_SELL,下注数量,Bid,滑点,Bid+止损*Point,Bid-止盈*Point,"macd sample",16384,0,Red);
限制一根柱子下注一次 =Time;
PlaySound("Conditions.wav");
}   
   return(0); //叫 ea 重复运行 每秒大概可能重新运算100次
}

第18课:不要声音,改成弹出提示

datetime 限制一根柱子下注一次 =0; //自定义
double 下注数量=0.1;//自定义
double 止损=200;//自定义
double 止盈=200;//自定义
double 滑点=30;//自定义
int start() //ea 开始运行
{
if(//如果
OrdersTotal()==0 //没有单可以下注
&& Close-Open>200*Point //判断上升趋势
&& 限制一根柱子下注一次 !=Time//限制一根柱子下注一次
&& IsDemo() //限制模拟户口运行
&& DayOfWeek() !=0//礼拜不要交易
&& DayOfWeek() !=6//星期6不要交易
&& DayOfWeek() !=5//星期5不要交易
&& (Hour()>3&&Hour()<22) //限制交易时间:早上3点到晚上10点可以交易
&& Year()==2009//限制交易时间:只限2009年可以运行
){
OrderSend(Symbol(),OP_BUY,下注数量,Ask,滑点,Ask-止损*Point,Ask+止盈*Point,"macd sample",16384,0,Green);
限制一根柱子下注一次 =Time;
//PlaySound("Conditions.wav");
Alert(" M",Period()," ",Symbol(),"buy开仓, 余额资金::",AccountBalance()," ");
}   
   
if(//如果
OrdersTotal()==0//没有单可以下注
&& Open-Close>200*Point//判断下降趋势
&& 限制一根柱子下注一次 !=Time   //限制一根柱子下注一次
&& IsDemo() //限制模拟户口运行
&& DayOfWeek() !=0//礼拜不要交易
&& DayOfWeek() !=6//星期6不要交易
&& DayOfWeek() !=5//星期5不要交易
&& (Hour()>3&&Hour()<22) //限制交易时间:早上3点到晚上10点可以交易
&& Year()==2009//限制交易时间:只限2009年可以运行
){
OrderSend(Symbol(),OP_SELL,下注数量,Bid,滑点,Bid+止损*Point,Bid-止盈*Point,"macd sample",16384,0,Red);
限制一根柱子下注一次 =Time;
//PlaySound("Conditions.wav");
Alert(" M",Period()," ",Symbol(),"sell开仓, 余额资金::",AccountBalance()," ");
}   
   return(0); //叫 ea 重复运行 每秒大概可能重新运算100次
}

第19课:提供自己或顾客选择
使用音乐
或 使用弹出提示
或 2个都不要用

本帖隐藏的内容需要回复才可以浏览
datetime 限制一根柱子下注一次 =0; //自定义
double 下注数量=0.1;//自定义
double 止损=200;//自定义
double 止盈=200;//自定义
double 滑点=30;//自定义
extern bool使用音乐=true;//true=要用false=不要用
extern bool使用弹出提示=false;//true=要用false=不要用

int start() //ea 开始运行
{
if(//如果
OrdersTotal()==0 //没有单可以下注
&& Close-Open>200*Point //判断上升趋势
&& 限制一根柱子下注一次 !=Time//限制一根柱子下注一次
&& IsDemo() //限制模拟户口运行
&& DayOfWeek() !=0//礼拜不要交易
&& DayOfWeek() !=6//星期6不要交易
&& DayOfWeek() !=5//星期5不要交易
&& (Hour()>3&&Hour()<22) //限制交易时间:早上3点到晚上10点可以交易
&& Year()==2009//限制交易时间:只限2009年可以运行
){
OrderSend(Symbol(),OP_BUY,下注数量,Ask,滑点,Ask-止损*Point,Ask+止盈*Point,"macd sample",16384,0,Green);
限制一根柱子下注一次 =Time;
if(使用音乐){PlaySound("Conditions.wav");}
if(使用弹出提示){Alert(" M",Period()," ",Symbol(),"buy开仓, 余额资金::",AccountBalance()," ");}
}   
   
if(//如果
OrdersTotal()==0//没有单可以下注
&& Open-Close>200*Point//判断下降趋势
&& 限制一根柱子下注一次 !=Time   //限制一根柱子下注一次
&& IsDemo() //限制模拟户口运行
&& DayOfWeek() !=0//礼拜不要交易
&& DayOfWeek() !=6//星期6不要交易
&& DayOfWeek() !=5//星期5不要交易
&& (Hour()>3&&Hour()<22) //限制交易时间:早上3点到晚上10点可以交易
&& Year()==2009//限制交易时间:只限2009年可以运行
){
OrderSend(Symbol(),OP_SELL,下注数量,Bid,滑点,Bid+止损*Point,Bid-止盈*Point,"macd sample",16384,0,Red);
限制一根柱子下注一次 =Time;
if(使用音乐){PlaySound("Conditions.wav");}
if(使用弹出提示){Alert(" M",Period()," ",Symbol(),"sell开仓, 余额资金::",AccountBalance()," ");}
}   
   return(0); //叫 ea 重复运行 每秒大概可能重新运算100次
}


第20课:策略是ea的灵魂
改变ea策略
2个青bar买上
2个红bar卖下

datetime 限制一根柱子下注一次 =0; //自定义
double 下注数量=0.1;//自定义
double 止损=200;//自定义
double 止盈=200;//自定义
double 滑点=30;//自定义
extern bool使用音乐=true;//true=要用false=不要用
extern bool使用弹出提示=false;//true=要用false=不要用
string   ea名字 = "柒侠伍义_初级EA教程";

int start() //ea 开始运行
{
if(//如果
OrdersTotal()==0 //没有单可以下注
&& Close-Open>200*Point //判断上升趋势
&& Close-Open>200*Point //判断上升趋势
&& 限制一根柱子下注一次 !=Time//限制一根柱子下注一次
&& IsDemo() //限制模拟户口运行
&& DayOfWeek() !=0//礼拜不要交易
&& DayOfWeek() !=6//星期6不要交易
&& DayOfWeek() !=5//星期5不要交易
&& (Hour()>3&&Hour()<22) //限制交易时间:早上3点到晚上10点可以交易
&& Year()==2009//限制交易时间:只限2009年可以运行
){
OrderSend(Symbol(),OP_BUY,下注数量,Ask,滑点,Ask-止损*Point,Ask+止盈*Point,""+ea名字+"",16384,0,Green);
限制一根柱子下注一次 =Time;
if(使用音乐){PlaySound("Conditions.wav");}
if(使用弹出提示){Alert(" M",Period()," ",Symbol(),"buy开仓, 余额资金::",AccountBalance()," ");}
}   
   
if(//如果
OrdersTotal()==0//没有单可以下注
&& Open-Close>200*Point//判断下降趋势
&& Open-Close>200*Point//判断下降趋势
&& 限制一根柱子下注一次 !=Time   //限制一根柱子下注一次
&& IsDemo() //限制模拟户口运行
&& DayOfWeek() !=0//礼拜不要交易
&& DayOfWeek() !=6//星期6不要交易
&& DayOfWeek() !=5//星期5不要交易
&& (Hour()>3&&Hour()<22) //限制交易时间:早上3点到晚上10点可以交易
&& Year()==2009//限制交易时间:只限2009年可以运行
){
OrderSend(Symbol(),OP_SELL,下注数量,Bid,滑点,Bid+止损*Point,Bid-止盈*Point,""+ea名字+"",16384,0,Red);
限制一根柱子下注一次 =Time;
if(使用音乐){PlaySound("Conditions.wav");}
if(使用弹出提示){Alert(" M",Period()," ",Symbol(),"sell开仓, 余额资金::",AccountBalance()," ");}
}   
   return(0); //叫 ea 重复运行 每秒大概可能重新运算100次
}



第21课:策略是ea的灵魂
改变ea策略
4个青bar买上
4个红bar卖下

datetime 限制一根柱子下注一次 =0; //自定义
double 下注数量=0.1;//自定义
double 止损=200;//自定义
double 止盈=200;//自定义
double 滑点=30;//自定义
extern bool使用音乐=true;//true=要用false=不要用
extern bool使用弹出提示=false;//true=要用false=不要用
string   ea名字 = "柒侠伍义_初级EA教程";

int start() //ea 开始运行
{
if(//如果
OrdersTotal()==0 //没有单可以下注
&& Close-Open>200*Point //判断上升趋势
&& Close-Open>200*Point //判断上升趋势
&& Close-Open>200*Point //判断上升趋势
&& Close-Open>200*Point //判断上升趋势
&& 限制一根柱子下注一次 !=Time//限制一根柱子下注一次
&& IsDemo() //限制模拟户口运行
&& DayOfWeek() !=0//礼拜不要交易
&& DayOfWeek() !=6//星期6不要交易
&& DayOfWeek() !=5//星期5不要交易
&& (Hour()>3&&Hour()<22) //限制交易时间:早上3点到晚上10点可以交易
&& Year()==2009//限制交易时间:只限2009年可以运行
){
OrderSend(Symbol(),OP_BUY,下注数量,Ask,滑点,Ask-止损*Point,Ask+止盈*Point,""+ea名字+"",16384,0,Green);
限制一根柱子下注一次 =Time;
if(使用音乐){PlaySound("Conditions.wav");}
if(使用弹出提示){Alert(" M",Period()," ",Symbol(),"buy开仓, 余额资金::",AccountBalance()," ");}
}   
   
if(//如果
OrdersTotal()==0//没有单可以下注
&& Open-Close>200*Point//判断下降趋势
&& Open-Close>200*Point//判断下降趋势
&& Open-Close>200*Point//判断下降趋势
&& Open-Close>200*Point//判断下降趋势
&& 限制一根柱子下注一次 !=Time   //限制一根柱子下注一次
&& IsDemo() //限制模拟户口运行
&& DayOfWeek() !=0//礼拜不要交易
&& DayOfWeek() !=6//星期6不要交易
&& DayOfWeek() !=5//星期5不要交易
&& (Hour()>3&&Hour()<22) //限制交易时间:早上3点到晚上10点可以交易
&& Year()==2009//限制交易时间:只限2009年可以运行
){
OrderSend(Symbol(),OP_SELL,下注数量,Bid,滑点,Bid+止损*Point,Bid-止盈*Point,""+ea名字+"",16384,0,Red);
限制一根柱子下注一次 =Time;
if(使用音乐){PlaySound("Conditions.wav");}
if(使用弹出提示){Alert(" M",Period()," ",Symbol(),"sell开仓, 余额资金::",AccountBalance()," ");}
}   
   return(0); //叫 ea 重复运行 每秒大概可能重新运算100次
}

第22课:调整ea 修理自定义交易时间

datetime 限制一根柱子下注一次 =0; //自定义
double 下注数量=0.1;//自定义
double 止损=200;//自定义
double 止盈=200;//自定义
double 滑点=30;//自定义
extern bool使用音乐=true;//true=要用false=不要用
extern bool使用弹出提示=false;//true=要用false=不要用
string   ea名字 = "柒侠伍义_初级EA教程";
double 开始交易时间=3;//自定义交易时间
double 结束交易时间=23;//自定义交易时间

int start() //ea 开始运行
{
if(//如果
OrdersTotal()==0 //没有单可以下注
&& Close-Open>200*Point //判断上升趋势
&& Close-Open>200*Point //判断上升趋势
&& Close-Open>200*Point //判断上升趋势
&& Close-Open>200*Point //判断上升趋势
&& 限制一根柱子下注一次 !=Time//限制一根柱子下注一次
&& IsDemo() //限制模拟户口运行
&& DayOfWeek() !=0//礼拜不要交易
&& DayOfWeek() !=6//星期6不要交易
&& DayOfWeek() !=5//星期5不要交易
&& (Hour()>开始交易时间 && Hour()<结束交易时间) //限制交易时间:早上3点到晚上10点可以交易
&& Year()==2009//限制交易时间:只限2009年可以运行
){
OrderSend(Symbol(),OP_BUY,下注数量,Ask,滑点,Ask-止损*Point,Ask+止盈*Point,""+ea名字+"",16384,0,Green);
限制一根柱子下注一次 =Time;
if(使用音乐){PlaySound("Conditions.wav");}
if(使用弹出提示){Alert(" M",Period()," ",Symbol(),"buy开仓, 余额资金::",AccountBalance()," ");}
}   
   
if(//如果
OrdersTotal()==0//没有单可以下注
&& Open-Close>200*Point//判断下降趋势
&& Open-Close>200*Point//判断下降趋势
&& Open-Close>200*Point//判断下降趋势
&& Open-Close>200*Point//判断下降趋势
&& 限制一根柱子下注一次 !=Time   //限制一根柱子下注一次
&& IsDemo() //限制模拟户口运行
&& DayOfWeek() !=0//礼拜不要交易
&& DayOfWeek() !=6//星期6不要交易
&& DayOfWeek() !=5//星期5不要交易
&& (Hour()>开始交易时间 && Hour()<结束交易时间) //限制交易时间:早上3点到晚上10点可以交易
&& Year()==2009//限制交易时间:只限2009年可以运行
){
OrderSend(Symbol(),OP_SELL,下注数量,Bid,滑点,Bid+止损*Point,Bid-止盈*Point,""+ea名字+"",16384,0,Red);
限制一根柱子下注一次 =Time;
if(使用音乐){PlaySound("Conditions.wav");}
if(使用弹出提示){Alert(" M",Period()," ",Symbol(),"sell开仓, 余额资金::",AccountBalance()," ");}
}   
   return(0); //叫 ea 重复运行 每秒大概可能重新运算100次
}


第23课:为ea添加死亡日期
阿弥陀佛!!!
死亡日期:12点12号12月2009年

datetime 限制一根柱子下注一次 =0; //自定义
double 下注数量=0.1;//自定义
double 止损=200;//自定义
double 止盈=200;//自定义
double 滑点=30;//自定义
extern bool使用音乐=true;//true=要用false=不要用
extern bool使用弹出提示=false;//true=要用false=不要用
string   ea名字 = "柒侠伍义_初级EA教程";
double 开始交易时间=3;//自定义交易时间
double 结束交易时间=23;//自定义交易时间

int start() //ea 开始运行
{
if(//如果
OrdersTotal()==0 //没有单可以下注
&& Close-Open>200*Point //判断上升趋势
&& Close-Open>200*Point //判断上升趋势
&& Close-Open>200*Point //判断上升趋势
&& Close-Open>200*Point //判断上升趋势
&& 限制一根柱子下注一次 !=Time//限制一根柱子下注一次
&& IsDemo() //限制模拟户口运行
&& DayOfWeek() !=0//礼拜不要交易
&& DayOfWeek() !=6//星期6不要交易
&& DayOfWeek() !=5//星期5不要交易
&& (Hour()>开始交易时间&&Hour()<结束交易时间) //限制交易时间:早上3点到晚上10点可以交易
&& Year()==2009//限制交易时间:只限2009年可以运行
&& (Year()<=2009 && Month()<=12 && Day()<=12 && Hour()<=12)//ea死亡日期
){
OrderSend(Symbol(),OP_BUY,下注数量,Ask,滑点,Ask-止损*Point,Ask+止盈*Point,""+ea名字+"",16384,0,Green);
限制一根柱子下注一次 =Time;
if(使用音乐){PlaySound("Conditions.wav");}
if(使用弹出提示){Alert(" M",Period()," ",Symbol(),"buy开仓, 余额资金::",AccountBalance()," ");}
}   
   
if(//如果
OrdersTotal()==0//没有单可以下注
&& Open-Close>200*Point//判断下降趋势
&& Open-Close>200*Point//判断下降趋势
&& Open-Close>200*Point//判断下降趋势
&& Open-Close>200*Point//判断下降趋势
&& 限制一根柱子下注一次 !=Time   //限制一根柱子下注一次
&& IsDemo() //限制模拟户口运行
&& DayOfWeek() !=0//礼拜不要交易
&& DayOfWeek() !=6//星期6不要交易
&& DayOfWeek() !=5//星期5不要交易
&& (Hour()>开始交易时间&&Hour()<结束交易时间) //限制交易时间:早上3点到晚上10点可以交易
&& Year()==2009//限制交易时间:只限2009年可以运行
&& (Year()<=2009 && Month()<=12 && Day()<=12 && Hour()<=12)//ea死亡日期
){
OrderSend(Symbol(),OP_SELL,下注数量,Bid,滑点,Bid+止损*Point,Bid-止盈*Point,""+ea名字+"",16384,0,Red);
限制一根柱子下注一次 =Time;
if(使用音乐){PlaySound("Conditions.wav");}
if(使用弹出提示){Alert(" M",Period()," ",Symbol(),"sell开仓, 余额资金::",AccountBalance()," ");}
}   
   return(0); //叫 ea 重复运行 每秒大概可能重新运算100次
}


第24课:修改为ea自定义魔术号码


datetime 限制一根柱子下注一次 =0; //自定义
double 下注数量=0.1;//自定义
double 止损=200;//自定义
double 止盈=200;//自定义
double 滑点=30;//自定义
extern bool使用音乐=true;//true=要用false=不要用
extern bool使用弹出提示=false;//true=要用false=不要用
string   ea名字 = "柒侠伍义_初级EA教程";
double 开始交易时间=3;//自定义交易时间
double 结束交易时间=23;//自定义交易时间
double 魔术号码=16384;//自定义魔术号码
int start() //ea 开始运行
{
   
if(//如果
OrdersTotal()==0 //没有单可以下注
&& Close-Open>200*Point //判断上升趋势
&& Close-Open>200*Point //判断上升趋势
&& Close-Open>200*Point //判断上升趋势
&& Close-Open>200*Point //判断上升趋势
&& 限制一根柱子下注一次 !=Time//限制一根柱子下注一次
&& IsDemo() //限制模拟户口运行
&& DayOfWeek() !=0//礼拜不要交易
&& DayOfWeek() !=6//星期6不要交易
&& DayOfWeek() !=5//星期5不要交易
&& (Hour()>开始交易时间&&Hour()<结束交易时间) //限制交易时间:早上3点到晚上10点可以交易
&& Year()==2009//限制交易时间:只限2009年可以运行
&& (Year()<=2009&&Month()<=12&&Day()<=12&&Hour()<=12)//ea死亡日期
){
OrderSend(Symbol(),OP_BUY,下注数量,Ask,滑点,Ask-止损*Point,Ask+止盈*Point,""+ea名字+"",魔术号码,0,Green);
限制一根柱子下注一次 =Time;
if(使用音乐){PlaySound("Conditions.wav");}
if(使用弹出提示){Alert(" M",Period()," ",Symbol(),"buy开仓, 余额资金::",AccountBalance()," ");}
}   
   
if(//如果
OrdersTotal()==0//没有单可以下注
&& Open-Close>200*Point//判断下降趋势
&& Open-Close>200*Point//判断下降趋势
&& Open-Close>200*Point//判断下降趋势
&& Open-Close>200*Point//判断下降趋势
&& 限制一根柱子下注一次 !=Time   //限制一根柱子下注一次
&& IsDemo() //限制模拟户口运行
&& DayOfWeek() !=0//礼拜不要交易
&& DayOfWeek() !=6//星期6不要交易
&& DayOfWeek() !=5//星期5不要交易
&& (Hour()>开始交易时间&&Hour()<结束交易时间) //限制交易时间:早上3点到晚上10点可以交易
&& Year()==2009//限制交易时间:只限2009年可以运行
&& (Year()<=2009&&Month()<=12&&Day()<=12&&Hour()<=12)//ea死亡日期
){
OrderSend(Symbol(),OP_SELL,下注数量,Bid,滑点,Bid+止损*Point,Bid-止盈*Point,""+ea名字+"",魔术号码,0,Red);
限制一根柱子下注一次 =Time;
if(使用音乐){PlaySound("Conditions.wav");}
if(使用弹出提示){Alert(" M",Period()," ",Symbol(),"sell开仓, 余额资金::",AccountBalance()," ");}
}   
   return(0); //叫 ea 重复运行 每秒大概可能重新运算100次
}

第25课:修理为ea自定义死亡日期


datetime 限制一根柱子下注一次 =0; //自定义
double 下注数量=0.1;//自定义
double 止损=200;//自定义
double 止盈=200;//自定义
double 滑点=30;//自定义
extern bool使用音乐=true;//true=要用false=不要用
extern bool使用弹出提示=false;//true=要用false=不要用
string   ea名字 = "柒侠伍义_初级EA教程";
double 开始交易时间=3;//自定义交易时间
double 结束交易时间=23;//自定义交易时间
double 魔术号码=16384;//自定义魔术号码
double 死亡日期年=2009;
double 死亡日期月=12;
double 死亡日期日=12;
double 死亡日期时=12;
int start() //ea 开始运行
{
if(//如果
OrdersTotal()==0 //没有单可以下注
&& Close-Open>200*Point //判断上升趋势
&& Close-Open>200*Point //判断上升趋势
&& Close-Open>200*Point //判断上升趋势
&& Close-Open>200*Point //判断上升趋势
&& 限制一根柱子下注一次 !=Time//限制一根柱子下注一次
&& IsDemo() //限制模拟户口运行
&& DayOfWeek() !=0//礼拜不要交易
&& DayOfWeek() !=6//星期6不要交易
&& DayOfWeek() !=5//星期5不要交易
&& (Hour()>开始交易时间&&Hour()<结束交易时间) //限制交易时间:早上3点到晚上10点可以交易
&& Year()==2009//限制交易时间:只限2009年可以运行
&& (Year()<=死亡日期年&&Month()<=死亡日期月&&Day()<=死亡日期日&&Hour()<=死亡日期时)//ea死亡日期
){
OrderSend(Symbol(),OP_BUY,下注数量,Ask,滑点,Ask-止损*Point,Ask+止盈*Point,""+ea名字+"",魔术号码,0,Green);
限制一根柱子下注一次 =Time;
if(使用音乐){PlaySound("Conditions.wav");}
if(使用弹出提示){Alert(" M",Period()," ",Symbol(),"buy开仓, 余额资金::",AccountBalance()," ");}
}   
   
if(//如果
OrdersTotal()==0//没有单可以下注
&& Open-Close>200*Point//判断下降趋势
&& Open-Close>200*Point//判断下降趋势
&& Open-Close>200*Point//判断下降趋势
&& Open-Close>200*Point//判断下降趋势
&& 限制一根柱子下注一次 !=Time   //限制一根柱子下注一次
&& IsDemo() //限制模拟户口运行
&& DayOfWeek() !=0//礼拜不要交易
&& DayOfWeek() !=6//星期6不要交易
&& DayOfWeek() !=5//星期5不要交易
&& (Hour()>开始交易时间&&Hour()<结束交易时间) //限制交易时间:早上3点到晚上10点可以交易
&& Year()==2009//限制交易时间:只限2009年可以运行
&& (Year()<=死亡日期年&&Month()<=死亡日期月&&Day()<=死亡日期日&&Hour()<=死亡日期时)//ea死亡日期
){
OrderSend(Symbol(),OP_SELL,下注数量,Bid,滑点,Bid+止损*Point,Bid-止盈*Point,""+ea名字+"",魔术号码,0,Red);
限制一根柱子下注一次 =Time;
if(使用音乐){PlaySound("Conditions.wav");}
if(使用弹出提示){Alert(" M",Period()," ",Symbol(),"sell开仓, 余额资金::",AccountBalance()," ");}
}   
   return(0); //叫 ea 重复运行 每秒大概可能重新运算100次
}



第26课:为ea添加指定用户方可以执行
(商业用途)


datetime 限制一根柱子下注一次 =0; //自定义
double 下注数量=0.1;//自定义
double 止损=200;//自定义
double 止盈=200;//自定义
double 滑点=30;//自定义
extern bool使用音乐=true;//true=要用false=不要用
extern bool使用弹出提示=false;//true=要用false=不要用
string   ea名字 = "柒侠伍义_初级EA教程";
double 开始交易时间=3;//自定义交易时间
double 结束交易时间=23;//自定义交易时间
double 魔术号码=16384;//自定义魔术号码
double 死亡日期年=2009;
double 死亡日期月=12;
double 死亡日期日=12;
double 死亡日期时=12;
int start() //ea 开始运行
{
   
if(//如果
OrdersTotal()==0 //没有单可以下注
&& Close-Open>200*Point //判断上升趋势
&& Close-Open>200*Point //判断上升趋势
&& Close-Open>200*Point //判断上升趋势
&& Close-Open>200*Point //判断上升趋势
&& 限制一根柱子下注一次 !=Time//限制一根柱子下注一次
&& IsDemo() //限制模拟户口运行
&& DayOfWeek() !=0//礼拜不要交易
&& DayOfWeek() !=6//星期6不要交易
&& DayOfWeek() !=5//星期5不要交易
&& (Hour()>开始交易时间&&Hour()<结束交易时间) //限制交易时间:早上3点到晚上10点可以交易
&& Year()==2009//限制交易时间:只限2009年可以运行
&& (Year()<=死亡日期年&&Month()<=死亡日期月&&Day()<=死亡日期日&&Hour()<=死亡日期时)//ea死亡日期
&& AccountNumber()==584584
){
OrderSend(Symbol(),OP_BUY,下注数量,Ask,滑点,Ask-止损*Point,Ask+止盈*Point,""+ea名字+"",魔术号码,0,Green);
限制一根柱子下注一次 =Time;
if(使用音乐){PlaySound("Conditions.wav");}
if(使用弹出提示){Alert(" M",Period()," ",Symbol(),"buy开仓, 余额资金::",AccountBalance()," ");}
}   
   
if(//如果
OrdersTotal()==0//没有单可以下注
&& Open-Close>200*Point//判断下降趋势
&& Open-Close>200*Point//判断下降趋势
&& Open-Close>200*Point//判断下降趋势
&& Open-Close>200*Point//判断下降趋势
&& 限制一根柱子下注一次 !=Time   //限制一根柱子下注一次
&& IsDemo() //限制模拟户口运行
&& DayOfWeek() !=0//礼拜不要交易
&& DayOfWeek() !=6//星期6不要交易
&& DayOfWeek() !=5//星期5不要交易
&& (Hour()>开始交易时间&&Hour()<结束交易时间) //限制交易时间:早上3点到晚上10点可以交易
&& Year()==2009//限制交易时间:只限2009年可以运行
&& (Year()<=死亡日期年&&Month()<=死亡日期月&&Day()<=死亡日期日&&Hour()<=死亡日期时)//ea死亡日期
&& AccountNumber()==584584
){
OrderSend(Symbol(),OP_SELL,下注数量,Bid,滑点,Bid+止损*Point,Bid-止盈*Point,""+ea名字+"",魔术号码,0,Red);
限制一根柱子下注一次 =Time;
if(使用音乐){PlaySound("Conditions.wav");}
if(使用弹出提示){Alert(" M",Period()," ",Symbol(),"sell开仓, 余额资金::",AccountBalance()," ");}
}   
   return(0); //叫 ea 重复运行 每秒大概可能重新运算100次
}

恒久毅力 发表于 2014-1-20 18:28:05

-------------------------------
页: [1]
查看完整版本: 李沂鸿:MT4 EA 制作速成班_初级篇(第二版本)(40课全)[索引]