您现在的位置:主页 > 热点 >

MT4 EA制作速成班――基础篇

更新时间:2022-07-03 14:25:09

  # 什么是MT4?
我就当你了解什么是MT4了
MT4就是META. TRADER 4

  # 什么是EA?
我也当你了解什么是EA了
EA 就是 Expert Adviser
EA 就是智能交易系统
智能教育系统就是:
-软件自己判断下订单
-软件自己判断提成利润
-软件自己判断砍仓止输

  # 什么是速成班?
就是你在很短很快的时间内就可以学会如何编写EA
是的,快则8个学习小时
慢则24个学习小时

  # 什么叫易学难精?
就是你很快的就上手,难在成为厉害的高手。
这需要时间慢慢的去研究编写。
久而久之你就可以是EA编写高手了。
05-25-2009 08:56 AM
yes810
第一课::了解EA的形式

  
* 以下就是EA的编写形式//

  +------------------------------------------------------------------+
// MT4-EA制作速成班.mq4
// Copyright ?2007, MetaQuotes Software Corp.
//
//+------------------------------------------------------------------+
#property copyright "Copyright ?2007, MetaQuotes Software Corp."
#property link. "

  //+------------------------------------------------------------------+
// expert initialization function
//+------------------------------------------------------------------+
int init
{
//----

  //----
return;
}
//+------------------------------------------------------------------+
// expert deinitialization function
//+------------------------------------------------------------------+
int deinit
{
//----

  //----
return;
}
//+------------------------------------------------------------------+
// expert start function
//+------------------------------------------------------------------+
int start
{
//----

  //----
return;
}
//+------------------------------------------------------------------+

  
* //+------------------------------------------------------------------+
// MT4-EA制作速成班.mq4
// Copyright ?2007, MetaQuotes Software Corp.
//
//+------------------------------------------------------------------+

  这个是在上面的垃圾
写与不写都无所谓
我们就不用理他

  
* #property copyright "Copyright ?2007, MetaQuotes Software Corp."
#property link. "

  这个也是在上面的垃圾
写与不写都无所谓
我们也不用理他

  
* //+------------------------------------------------------------------+
// expert initialization function
//+------------------------------------------------------------------+
int init
{
//----
//以后可能有用到
//----
return;
}
//+------------------------------------------------------------------+
// expert deinitialization function
//+------------------------------------------------------------------+
int deinit
{
//----
//以后可能有用到
//----
return;
}

  这两个很少用到。高高手才会用
速成班的话,这个可以不用理他。
放在一边先,以后才学怎样用它。

  * //+------------------------------------------------------------------+
// expert start function
//+------------------------------------------------------------------+
int start
{
//----
//主程式
//----
return;
}
//+------------------------------------------------------------------+

  这个就是EA开始操作的重要部分
以上的EA的编写形式我们改成如下:

  
* //+------------------------------------------------------------------+
// MT4-EA制作速成班.mq4
// Copyright 2007, MT4-EA制作速成班.
//
//+------------------------------------------------------------------+
#property copyright "Copyright 2007, MT4-EA制作速成班."
#property link. "

  //+------------------------------------------------------------------+
// expert initialization function
//+------------------------------------------------------------------+
int init
{
//----
/以后可能有用到
//----
return;
}
//+------------------------------------------------------------------+
// expert deinitialization function
//+------------------------------------------------------------------+
int deinit
{
//----
/以后可能有用到
//----
return;
}
//+------------------------------------------------------------------+
// expert start function
//+------------------------------------------------------------------+
int start
{
//----
//主程式
//----
return;
}
//+------------------------------------------------------------------+

  
* 什么是.mq4?
EA制作好了就save成.mq4的文件
这文件是可以修改的

  * 什么是.ex4?
EA制作好了
按编写就会自动save成.ex4的文件
这文件是不可以被修改的
这文件是加密的
可以出售的文件。

  * 有什么问题要问吗?
但是我告诉你
不要问太深的问题,我是不会的。
05-25-2009 08:59 AM
yes810
第二课:EA重要部分

  
 

  * 回到EA重要部分

  
//+------------------------------------------------------------------+
// expert start function
//+------------------------------------------------------------------+
int start
{
//----
//主程式
//----
return;
}
//+------------------------------------------------------------------+

* 我们要知道EA是由上面往下读的
所以我们在编写方面要有逻辑思考
以下是速成班编写的形式

  //+------------------------------------------------------------------+
// expert start function
//+------------------------------------------------------------------+
int start
{
//----

  MoneyManagement;
macd;
ma;
zhangchang;
buyme;
sellme;
xianshi;
//----
return;
}
//+------------------------------------------------------------------+
void MoneyManagement {
}
//+------------------------------------------------------------------+
void macd {
}
//+------------------------------------------------------------------+
void ma {
}
//+------------------------------------------------------------------+
void zhangchang {
}
//+------------------------------------------------------------------+
void buyme {
}
//+------------------------------------------------------------------+
void sellme {
}
//+------------------------------------------------------------------+
void buyme {
}
//+------------------------------------------------------------------+
void xianshi {
}
//+------------------------------------------------------------------+
/////end

  
* // 这两划代表右边的不要读
也可以说是注解
注意:EA不会读中文符号。比如这个
这个就可以 ""

  * 我们可以完整他

  //+------------------------------------------------------------------+
// MT4-EA制作速成班.mq4
// Copyright 2007, MT4-EA制作速成班.
//
//+------------------------------------------------------------------+
#property copyright "Copyright 2007, MT4-EA制作速成班."
#property link. "

  //+------------------------------------------------------------------+
// expert initialization function
//+------------------------------------------------------------------+
int init
{
//----
//以后可能有用到
//----
return;
}
//+------------------------------------------------------------------+
// expert deinitialization function
//+------------------------------------------------------------------+
int deinit
{
//----
//以后可能有用到
//----
return;
}
//+------------------------------------------------------------------+
// expert start function
//+------------------------------------------------------------------+
int start
{
//----
//主程式
MoneyManagement;//资金管理
macd;//指标管理
ma;//指标管理
zhangchang;//战场管理
buyme;//买上
sellme;//买下
xianshi;//显示管理

  //----
return;
}
//+------------------------------------------------------------------+
void MoneyManagement {
//子程式
//这边要写一些东西
}
//+------------------------------------------------------------------+
void macd {
//子程式
//这边要写一些东西
}
//+------------------------------------------------------------------+
void ma {
//子程式
//这边要写一些东西
}
//+------------------------------------------------------------------+
void zhangchang {
///子程式
//这边要写一些东西
}
//+------------------------------------------------------------------+
void buyme {
//子程式
//这边要写一些东西
}
//+------------------------------------------------------------------+
void sellme {
//子程式
//这边要写一些东西
}
//+------------------------------------------------------------------+
void buyme {
//子程式
//这边要写一些东西
}
//+------------------------------------------------------------------+
void xianshi {
//子程式
//这边要写一些东西
}
//+------------------------------------------------------------------+
/////end
 

  * 如果你在上面加这个xianshi2;
下面就加这个

  //////////////////////////
void xianshi2 {
//这边要写一些东西
}
////////////////////////////

  可以任意无限的加。。。
* 有什么问题要问吗?
但是我老实告诉你
不要问太深的问题,我是不会回答的。
05-25-2009 09:03 AM
yes810
第三课::加入指标

  
* //////////////////////////////
void ma
{
ma1now = iMA;
ma1now2 = iMA;

  ma2now = iMA;
ma2now2 = iMA;

  ma1bnow = iMA;
ma2bnow = iMA;
}
////////////////////////

  ma1now是代表的字
你可以写成什么都可以
PRICE_CLOSE是ma最新的参数
PRICE_OPEN是ma开始的参数

  ma1now = iMA;
这个整句是死的。
你只要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;
zigzag1now=iCustom;
Highest1now=High[iHighest];
Lowest1now=Low[iLowest];
iTrend1now=iCustom;
wpr1now = iWPR,0,wpr1,0);

  指标写法是不用记住的
网上可以找到很多指标的写法

  
* 有了指标
我们可以更改我们的EA了
更改如下:
注意看看
刚刚的指标加在什么地方
什么位置

  //+------------------------------------------------------------------+
// MT4-EA制作速成班.mq4
// Copyright 2007, MT4-EA制作速成班.
//
//+------------------------------------------------------------------+
#property copyright "Copyright 2007, MT4-EA制作速成班."
#property link. "
extern double ma1=1,ma2=2;
double ma1now,ma1now2,ma2now,ma2now2,ma1bnow,ma2bnow;
//+------------------------------------------------------------------+
// expert initialization function
//+------------------------------------------------------------------+
int init
{
//----

  //----
return;
}
//+------------------------------------------------------------------+
// expert deinitialization function
//+------------------------------------------------------------------+
int deinit
{
//----

  //----
return;
}
//+------------------------------------------------------------------+
// expert start function
//+------------------------------------------------------------------+
int start
{
//----

  MoneyManagement;//资金管理
macd;//指标管理
ma;//指标管理
zhangchang;//战场管理
buyme;//买上
sellme;//买下
xianshi;//显示管理
//----
return;
}
//+------------------------------------------------------------------
+void MoneyManagement {
//这边要写一些东西
}
//+------------------------------------------------------------------+
void macd {
//这边要写一些东西
}
//+------------------------------------------------------------------+
void ma
{
ma1now = iMA;
ma1now2 = iMA;

  ma2now = iMA;
ma2now2 = iMA;

  ma1bnow = iMA;
ma2bnow = iMA;

  }
//+------------------------------------------------------------------+
void zhangchang {
//这边要写一些东西
}
//+------------------------------------------------------------------+
void buyme {
//这边要写一些东西
}
//+------------------------------------------------------------------+
void sellme {
//这边要写一些东西
}
//+------------------------------------------------------------------+
void buyme {
//这边要写一些东西
}
//+------------------------------------------------------------------+
void xianshi {
//这边要写一些东西
}
//+------------------------------------------------------------------+
/////end

  
* 注意这个{},不要糊涂的删除了也不知道
会出错的
注意这个可以写成这样
效果一样
double ma1=1;
double ma2=2;
double ma1now;
double ma1now2;
double ma2now;
double ma2now2;
double ma1bnow;
double ma2bnow;

  
* extern double ma1=1;
extern double ma2=2;
这样写可以显示在EA开始的修改处

  
* 有什么问题要问吗?
但是我老实告诉你
不要问太深的问题
可能我也不会回答的。
05-25-2009 09:07 AM
yes810
第四课-资金管理

  * 这个将放在#property上面那边
////////////////////////
extern string _资金管理_ ="任选一个";
extern bool zijiguanli1 = true;//false true、、
extern bool zijiguanli2= false;//false true、、
extern bool zijiguanli3= false;//false true、、
///////////////////////////////////
true=要
false =不要用
我提供了三个资金管理作为参考
你可以自己增加自己喜欢的资金管理方案

  * /////////////////////////////////////
void MoneyManagement {
lotstart=*lotab/10000);
lots=lotstart;
if{cheng=1;}
CurrentBasket=AccountEquity-AccountBalance;
/////////////////////////////////////////////////////////////////
if{ LotMM = lots;}
/////////////////////////////////////////////////////////////////
if{
if {LotMM=NormalizeDouble*cheng)+ lotstart,2); }
if {LotMM=NormalizeDouble; }
}
/////////////////////////////////////////////////////////////////
if{
if{aa=1;}
if{aa=3;}
if{aa=7;}
if{aa=11;}
if{aa=20;}
if{aa=31;}
if{aa=42;}
if{aa=54;}
if{aa=66;}
if{aa=76;}
if{aa=66;}
if {LotMM=NormalizeDouble; }
if {LotMM=NormalizeDouble; }
}
/////////////////////////////////////////////////////////////////
if{LotMM=0.01;}
if{LotMM=LotsMax;}
}//end zijiguanli
//////////////////////////////////////////

  注意:这个资金管理加了很多新的词句
所以我们要加上去#property上面那边
不然会出错

  
* 新的词句:
extern double cheng=1;
double aa=0;
int s=0,b=0;
intdouble CurrentBasket=0;
double LotMM=0;
double lotstart=0;
double LotsMax=100;
extern double lotab=0.1;
double lots=0;

  * 注意:
double 是有小数点的
int 是没有小数点的

  * 注意:
if{}
很容易用,比如:
if{LotMM=0.01;}
意思就是:
如果LotMM小过lots,LotMM就等于0.01。

  if{LotMM=LotsMax;}
意思就是:
如果LotMM大过LotsMax,LotMM就等于LotsMax。

  不会的话,不要紧
copy&press就可以用了
把void MoneyManagement { }
copy&press到我们EA模板去
结果如下://

  * +------------------------------------------------------------------+
// MT4-EA制作速成班.mq4
// Copyright 2007, MT4-EA制作速成班.
//
//+------------------------------------------------------------------+
#property copyright "Copyright 2007, MT4-EA制作速成班."
#property link. "
extern double ma1=1,ma2=2;
double ma1now,ma1now2,ma2now,ma2now2,ma1bnow,ma2bnow;
////////////////////////
extern string _资金管理_ ="任选一个";
extern bool zijiguanli1= true;//false true、、
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 init
{
//----

  //----
return;
}
//+------------------------------------------------------------------+
// expert deinitialization function
//+------------------------------------------------------------------+
int deinit
{
//----

  //----
return;
}
//+------------------------------------------------------------------+
// expert start function
//+------------------------------------------------------------------+
int start
{
//----

  MoneyManagement;//资金管理
macd;//指标管理
ma;//指标管理
zhangchang;//战场管理
buyme;//买上
sellme;//买下
xianshi;//显示管理
//----
return;
}
//+------------------------------------------------------------------+
void MoneyManagement {
lotstart=*lotab/10000);
lots=lotstart;
if{cheng=1;}
CurrentBasket=AccountEquity-AccountBalance;
/////////////////////////////////////////////////////////////////
if{ LotMM = lots;}
/////////////////////////////////////////////////////////////////
if{
if {LotMM=NormalizeDouble*cheng)+ lotstart,2); }
if {LotMM=NormalizeDouble; }
}
/////////////////////////////////////////////////////////////////
if{
if{aa=1;}
if{aa=3;}
if{aa=7;}
if{aa=11;}
if{aa=20;}
if{aa=31;}
if{aa=42;}
if{aa=54;}
if{aa=66;}
if{aa=76;}
if{aa=66;}
if {LotMM=NormalizeDouble; }
if {LotMM=NormalizeDouble; }
}
/////////////////////////////////////////////////////////////////
if{LotMM=lots;}
if{LotMM=LotsMax;}
}//end zijiguanli
//+------------------------------------------------------------------+
void macd {
//这边要写一些东西
}
//+------------------------------------------------------------------+
void ma
{
ma1now = iMA;
ma1now2 = iMA;

  ma2now = iMA;
ma2now2 = iMA;

  ma1bnow = iMA;
ma2bnow = iMA;

  }
//+------------------------------------------------------------------+
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 AM
yes810
第五课:策略:战场

  * 这里是整个EA最重要的地方
这里策略变化无穷
高深莫测就是这里作怪

  
* 在这里你要想:。。。
你的EA要怎样下注
什么时候买上?
什么时候买下?
怎样买上?
怎样买下?
有买上又买下?
什么时候离场?
条件满足是很重要的

  
* 在这里我给个简单的策略
-ma1黄金交叉ma2,EA买上
-ma1死亡交叉ma2,EA买下
-有赚25点就出场
-如果亏的时候亏50点就出场

  * 是这样编写的:
ma1now>ma2now
这样一句是不够条件的

  ma1now>ma2now
&& ma1now2<ma2now2
这个就是黄金交叉的编写法

  * 反过来
ma1now<ma2now
&& ma1now2>ma2now2
这个就是死亡交叉的编写法

  * 但是条件还是不够的
再加
ma1now>ma2now
&& ma1now2<ma2now2
&& s+b==0

  s+b==0 意思就是 买上+买下等于没有
没有下注,如果遇到条件符合就可以下注的意思

  && 的意思就是再加什么什么的条件

  那么整句是这样编写
if{就什么什么}
就是用这个

  if{buyme;}
if{sellme;}

  * 现在我们就把这两句copy&press到战场去

  注意:
现在又多了两个新的东西
buyme和sellme
你就copy&press buyme和sellme的编写法就可以了。

  * 结果如下:
//+------------------------------------------------------------------+
// MT4-EA制作速成班.mq4
// Copyright 2007, MT4-EA制作速成班.
//
//+------------------------------------------------------------------+
#property copyright "Copyright 2007, MT4-EA制作速成班."
#property link. "
extern double ma1=1,ma2=2;
double ma1now,ma1now2,ma2now,ma2now2,ma1bnow,ma2bnow;
////////////////////////
extern string _资金管理_ ="任选一个";
extern bool zijiguanli1= true;//false true、、
extern bool zijiguanli2= false;//false true、、
extern bool zijiguanli3= false;//false true、、
///////////////////////////////////
extern double cheng=1;
double aa=0;
int s=0,b=0;
intdouble CurrentBasket=0;
double LotMM=0;
double lotstart=0;
double LotsMax=100;
extern double lotab=0.1;
double lots=0;
double TP=0,TPP=0,SL=0,SLL=0;
//+------------------------------------------------------------------+
// expert initialization function
//+------------------------------------------------------------------+
int init
{
//----

  //----
return;
}
//+------------------------------------------------------------------+
// expert deinitialization function
//+------------------------------------------------------------------+
int deinit
{
//----

  //----
return;
}
//+------------------------------------------------------------------+
// expert start function
//+------------------------------------------------------------------+
int start
{
//----

  MoneyManagement;//资金管理
macd;//指标管理
ma;//指标管理
zhangchang;//战场管理
buyme;//买上
sellme;//买下
xianshi;//显示管理
//----
return;
}
//+------------------------------------------------------------------+
void MoneyManagement {
lotstart=*lotab/10000);
lots=lotstart;
if{cheng=1;}
CurrentBasket=AccountEquity-AccountBalance;
/////////////////////////////////////////////////////////////////
if{ LotMM = lots;}
/////////////////////////////////////////////////////////////////
if{
if {LotMM=NormalizeDouble*cheng)+ lotstart,2); }
if {LotMM=NormalizeDouble; }
}
/////////////////////////////////////////////////////////////////
if{
if{aa=1;}
if{aa=3;}
if{aa=7;}
if{aa=11;}
if{aa=20;}
if{aa=31;}
if{aa=42;}
if{aa=54;}
if{aa=66;}
if{aa=76;}
if{aa=66;}
if {LotMM=NormalizeDouble; }
if {LotMM=NormalizeDouble; }
}
/////////////////////////////////////////////////////////////////
if{LotMM=lots;}
if{LotMM=LotsMax;}
}//end zijiguanli
//+------------------------------------------------------------------+
void macd {
//这边要写一些东西
}
//+------------------------------------------------------------------+
void ma
{
ma1now = iMA;
ma1now2 = iMA;

  ma2now = iMA;
ma2now2 = iMA;

  ma1bnow = iMA;
ma2bnow = iMA;

  }
//+------------------------------------------------------------------+
void zhangchang {
//这边要写一些东西

  if{buyme;}

  if{sellme;}

  }
//+------------------------------------------------------------------+
void buyme{
if { TPP=0; } if { TPP=Ask+TP*Point; }
if { SLL=0; } if { SLL=Ask-SL*Point; }
OrderSend,OP_BUY,LotMM,Ask,slip,SLL,TPP," M"+Period+"",0,0,Violet);

  return; }
//+------------------------------------------------------------------+
void sellme{
if { TPP=0; } if { TPP=Bid-; }
if { SLL=0; } if { SLL=Bid+; }
ticket=OrderSend,OP_SELL,LotMM,Bid,2,SLL, TPP,"M"+Period+"",0,0,GreenYellow);
return; }
//+------------------------------------------------------------------+
void buyme {
//这边要写一些东西
}
//+------------------------------------------------------------------
+void xianshi {
//这边要写一些东西
}
//+------------------------------------------------------------------+/////end
 

  
* 在buyme和sellme
我们又发现新的词句
TP,TPP,SL,SLL

  我们必须在#property上面加上他们
不然会出错

  我已经加上去了上面的结果了
你注意到了吗?

  * ok,这个EA可以用了
现在你copy&press 去你的METAEDITOR
save as 一个新的名字就可以了

  * 试一试,用一用
告诉你,它肯定是垃圾EA
因为是亏钱的EA
哈哈和。。。

  * 有什么问题要问吗?
但是我老实告诉你
我是自学成功的,没有上过什么EA课程
不要问太深奥或无聊的问题
我可能不知道怎样答你的问题。
哈哈和。。。

  
* 你会发现问题??。。。
然后告诉我上面问题。。。
这就是你今天的功课
再见
哈哈和。。。
05-25-2009 09:18 AM
yes810
第六课-解决出错问题

  
 

  * 如果你有做功课
你会知道以上的EA还是不能用
因为出错了
出错是常事
没有什么了不起
没有什么大事

  * 当你按在METAEDITOR按编写时
最下方会告诉你出错了
按一按下方的出错
他会告诉你在那里出错了
第一:intdouble CurrentBasket=0;
多了 int
删掉 int 就可以了
//int 是表示要整数比如:1,2,3,4...
//double 表示要有小数点,比如:1.1,7.987.56.897.....

  * 之后你在按一下编写
他告诉你
第二:ma1now2 = iMA;
ma10,意思就是没有ma10这个新词句
其实我们没有用到ma10
是编写错误
不是ma10,是多了个0
应该是ma1
删掉 0 就可以了

  * 之后你在按一下编写
他告诉你
第三:OrderSend,OP_BUY,LotMM,Ask,slip,SLL,TP P,"M"+Period+"",0,0,Violet);
问题是slip
应该是新的词句
slip 是什么?
听他们讲是滑点?管他
因为我们不可以删掉slip
所以在上方加上新的词句吧!
比如:
int slip=6;
就可以了

  * 再来。。。
ticket=OrderSend,OP_SELL,LotMM,Bid,2,SLL, TPP,"M"+Period+"",0,0,GreenYellow);
ticket?
我们没有用到ticket
所以可以删掉 ticket= 就可以了

  * 再来。。。他告诉你多了这个

  void buyme {
//这边要写一些东西
}

  因为已经有了的,哈哈和。。。
是糊涂多了一个
删掉 整句多余的buyme 就可以了

  
* 再来。。。
0错误 0警告
哈哈和。。。
成功了
恭喜你已经学会编写EA了

  
* 试一试用一用?
效果怎样?
是不是有一点怪怪?
又出错了?
又是功课的时间
告诉我又发生什么事情。。。

  
* 编写EA就是解决问题
当你是解决问题高手
你就是编写EA高手
哈哈和。。。
05-25-2009 09:22 AM
yes810
第七课-填写盈亏

  上一回我们讲到
-有赚25点就出场
-如果亏的时候亏50点就出场

  这个还没有加上去
编写方法就是
Take Profit=25
Stop Loss=50

  我把他们简写成
TP=25;
SL=50;

  你想到了什么吗?
对,这字眼很熟吧!
记得吗?
double TP=0,TPP=0,SL=0,SLL=0;

  我们改成
double TP=25,TPP=0,SL=50,SLL=0;
你发现吗?
不过下注方面还是有问题!

  其实是这EA没有判断
什么是B
什么是S

  B是buy
S是sell
速成班不必学会怎样写
你只要copy&prss下面的子程式
放进去就可以了

  我把它称为检查

  //////////////////////////////////////////
void jiancha
{

  b=0;s=0;
for ; cnt++)
{
OrderSelect;
if ==Symbol )
{
mode=OrderType;LastOrderType=OrderType;
if == OP_SELL){ s++; LastPricesell=OrderOpenPrice;}

  if == OP_BUY ){ b++; LastPricebuy=OrderOpenPrice;}
LastPrice=OrderOpenPrice;
if ==OP_SELL) {OpenSells++;}
if ==OP_SELLSTOP) {OpenSellStops++;}
if ==OP_BUY) {OpenBuys++;}
if ==OP_BUYSTOP) {OpenBuyStops++;}
}
}
}//end jiancha
//////////////////////////////////////////////////

  要记得:在start那边也加入
jiancha;
这样就可以了。
当我们按编写
会出错
因为有了新的词句
我们没有加在#property上面那边
新的词句:

  mode
LastOrderType
LastPricesell
LastPricebuy
LastPrice
OpenSells
OpenSellStops
OpenBuys
OpenBuyStops

  我们更正如下:

  double mode=0;
double LastOrderType;
double LastPricesell;
double LastPricebuy;
double LastPrice;
double OpenSells;
double OpenSellStops;
double OpenBuys;
double OpenBuyStops;

  按编写。。。
0错误 0警告
ok了
按终端试一试效果怎样
还是不行
还是buy sell buy sell buy sell
你知道什么事情发生了吗?
跟你讲一个逻辑
什么是主程式
就是主要的程式
什么是子程式
就是不是主要的程式
了解了这些
现在一个问题,这些子程式

  MoneyManagement;//资金管理
macd;//指标管理
ma;//指标管理
zhangchang;//战场管理
buyme;//买上
sellme;//买下
xianshi;//显示管理

  那些是不需要一直用的就不可以在主程式这里
对啦!

  buyme;//买上
sellme;//买下

  是有时用。