关于MQL4编程的在线书籍的测试版 - 由Sergey Kovalev (SK.)撰写。 - 页 8

 
Climber:
这里有什么问题吗?什么是对错误的尖叫?

编译器给出了一个错误:没有找到Start函数,不能运行,这意味着:没有找到start()函数,不能执行。

这是很自然的。如果程序中没有特殊功能,就不能在MT客户终端运行。

 
这里有一个错误 函数 "GetExtremumZZZBar "没有被引用,将从exp-file中删除(嗯,很清楚,这个函数没有被用到任何地方)。我在添加的代码中写了一个注释,之后错误就消失了。

//+------------------------------------------------------------------+
//|                                                         1111.mq4 |
//|                      Copyright © 2008, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
 
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
}    // Добавил вот эту скобку, точнее переместил с конца, в результате 1 ошибка
int GetExtremumZZBar(string sym="", int tf=0, int ne=0, int dp=12, int dv=5, int bc=3) {
  if (sym=="") sym=Symbol();
  double zz;
  int    i, k=iBars(sym, tf), ke=0;
 
  for (i=1; i<k; i++) {
    zz=iCustom(sym, tf, "ZigZag", dp, dv, bc, 0, i);
    if (zz!=0) {
      ke++;
      if (ke>ne) return(i);
    }
  }
  Print("GetExtremumZZBar(): Экстремум ЗигЗага номер ",ne," не найден");
  return(0);
}   
//----
   
//+------------------------------------------------------------------+
当我在写这个消息时,我似乎已经明白了我的问题。该函数不应出现在启动函数的主体 中。只有这个函数的调用应该在开始的正文中。对吗?
 
Climber:
 
在我写这篇文章的时候,我想我已经发现了我的问题。该函数不应出现在启动函数的主体中。只有这个函数的调用应该在开始的正文中。对吗?

 
Climber:
在我写这篇文章的时候,我想我找到了我的问题。 这个函数不应该出现在start函数的主体中。只有这个函数的调用应该在开始的正文中。对吗?

正确。任何函数都不能被描述在另一个函数的主体中。
 
Climber:
在我写这篇文章的时候,我想我找到了我的问题。 这个函数不应该出现在start函数的主体中。只有这个函数的调用应该在开始的正文中。对吗?
是的,请看这里:MQL4教程 MQL4程序结构 .
 
出现了一个新的问题))
一个多币种的EA是否有必要打开所有使用的符号的图表?
如果EA所连接的图表中出现了一个符号,那么其他符号的相同交易标准 将被检查。在这种情况下,我想使用多币种来增加白天开立的订单数量。 我们不会开立很多订单,因为我们用小时图工作,我们每天手动收到不超过两个一个符号的订单。

而我的下一个可怕的任务是为多货币专家顾问写一个订单块核算。我很高兴在我的专家顾问中没有使用挂单(至少它减少了会计块:))。 你能建议我在这个问题上阅读一些与多货币会计有关的东西吗?
 
Climber:
我有一个新问题))
多币种EA是否必须要打开所有使用的符号的图表?

不,但所有使用的符号在市场观察窗口中都是d.b.。

 

你能告诉我如何阻止EA 吗?我想让它在止损被触发时停止工作。如果有人能给我一个提示,请写信给mininp@list.ru。提前感谢!

 
Mister_X:

你能告诉我如何阻止EA吗?我想让它在止损被触发时停止工作。如果有人能给我一个提示,请写信给mininp@list.ru。提前感谢!


也许不停止更容易,但只需检查是否有停止指令,如果有,就什么都不做。
 
我在SK找到了一篇关于复杂订单记账的好文章'在一个大型程序中记账'
我目前正在我的模拟账户上手动工作。我在这最后一个系统上手动工作了大约一个月。

我从千分之一的存款和1:100的杠杆开始。总是最低的地段面积是100美元。我使用3-4种货币对工作。在前两周,我成功地将我的存款增加了2倍,也就是说,我的存款已经变成了=2000美元。现在大约是3000人。

在这段时间里,一个工具的最大利润是118点(当然是来自一个订单)。 平均而言,我关闭订单的利润为40-50点。对于一个这样的订单,一对订单被停止,总损失在10点附近。 每天有几个工具总共100点。而这不亚于一个月内存款的2倍增长。如果考虑到再投资,那么10个月后的存款将是100万24000美元。

一切都会很好,我们应该感到高兴,但有一个合理的问题:什么经纪公司在10个月内如此明目张胆地以1000美元????,成为流行。

我想写一个专家顾问,我应该自己去交易。

我必须对你说实话,我在思考这整个事件,它是不是一个骗局?