文章 "6 步创建您自己的交易机器人!" - 页 4

 

非常好的文章。感谢您的帮助。

 

我一定是找错了地方,请给我指出CCustom的说明方向

我不明白为什么在创建自定义指标 后,需要调用检查(或者是指标的自定义?)

//| 设置指标的缓冲区数量。|

//--- 缓冲区的数量
   if(!m_slow_ma.NumBuffers(1)) return(false);
//--- 我们已到达这一点,这意味着函数已成功执行 - 返回 true
   
 
bivmail:

我一定是找错了,请给我指出 CCustom 说明的方向。

你拼错了。文章中提到了 CiCustom

当然,您可以创建自己的指标类,它将是CIndicator 的后代,并实现所有必要的方法,以便与 MQL5 向导一起使用。但在本例中,我们想向您展示如何使用CiCustom 在交易信号模块中使用任何自定义 指标。

 

好文章

 

赢不了...帮助

根据同一目录中的示例创建了一个信号器,生成了一个智能交易系统,一切正常。

我根据信号器生成了一个智能交易系统,它显示了一个包含描述和输入参数的窗口,我单击 "确定",它失败了:

2012.03.26 20:45:16 art367exp.ex5 无效 EX5 文件

我已经给出了不同的名称,创建了一个新的信号文件,并复制了文本,两个文件都能正常编译,但图表显示 EX5 文件无效。

我进行了直观比较,似乎一切正常。错误出在哪里?第 572 版


	          
附加的文件:
 
bivmail:

赢不了...帮助

根据同一目录中的示例创建了一个信号器,生成了一个智能交易系统,一切正常。

我根据信号器生成了一个智能交易系统,它显示了一个包含描述和输入参数的窗口,我单击 "确定",它失败了:

2012.03.26 20:45:16 art367exp.ex5 EX5 文件无效

我已经给出了不同的名称,创建了一个新的信号文件,并复制了文本,两个文件都能正常编译,但图表显示 EX5 文件无效。

我进行了直观比较,似乎一切正常。错误出在哪里?第 572 版

我们会查查的(甚至连 OnInit() 都没有出现)。
 
uncleVic:
我们会研究一下的(甚至连 OnInit() 都不会出现)。
尝试更新终端(当前版本是 600 多年前的版本)
 
uncleVic:
尝试更新终端(目前的版本是 600 多年前的版本)

我从 3 月 23 日更新到了 619,alfaforex 没有提供任何其他版本。

结果还是一样。我试着将信号器文本直接放入智能交易系统(而不是包含行),编译正常,但却无法正常工作,出现了同样的错误....。

怎样才能找出它所碰到的文件名?

我试着在 onInit 中加入第一行 printf(__FUNCTION__+":初始化专家");没有结果,这实际上证实了上述....。

它写入了日志:

2012.03.27 14:59:39 Experts expert art367biv (EURUSD,H1) loaded successfully

2012.03.27 14:59:41 Experts 初始化 art367biv (EURUSD,H1) 失败

2012.03.27 14:59:41 Experts experts art367biv (EURUSD,H1) removed

显然,我们必须按照类似示例的顺序逐行操作。

Документация по MQL5: Стандартные константы, перечисления и структуры / Именованные константы / Предопределенные макроподстановки
Документация по MQL5: Стандартные константы, перечисления и структуры / Именованные константы / Предопределенные макроподстановки
  • www.mql5.com
Стандартные константы, перечисления и структуры / Именованные константы / Предопределенные макроподстановки - Документация по MQL5
 
bivmail:

我从 3 月 23 日更新到 619,alfaforex 不提供任何其他服务。

结果还是一样。我试着将信号器文本直接放入智能交易系统(而不是包含行),编译很好,但却无法运行,出现了同样的错误。

我怎样才能找出出现错误的文件名呢?

我试着在 onInit 中加入第一行 printf(__FUNCTION__+":初始化专家");没有任何结果,这实际上证实了上述....。

它写入了日志:

2012.03.27 14:59:39 Experts expert art367biv (EURUSD,H1) loaded successfully

2012.03.27 14:59:41 Experts 初始化 art367biv (EURUSD,H1) 失败

2012.03.27 14:59:41 Experts experts art367biv (EURUSD,H1) removed

显然,我们必须按照类似示例的顺序逐行操作。


谢谢。感谢您的编程,我们发现了编译器中的一个错误。

您有:

   bool GetFastMA(const int index) const{ return(m_fast_ma.GetData(0,index));}
   bool GetSlowMA(const int index) const{ return(m_slow_ma.GetData(0,index));}

你需要

   double GetFastMA(const int index) const{ return(m_fast_ma.GetData(0,index));}
   double GetSlowMA(const int index) const{ return(m_slow_ma.GetData(0,index));}
 

又一个错误(你的):

//--- 对象初始化 
   if(!m_fast_ma m_slow_ma.Create(m_symbol.Name(),m_period,IND_CUSTOM,4,parameters))
     {
      printf(__FUNCTION__+":缓慢的 MA 对象初始化错误");
      return(false);
     }
//--- 缓冲区的数量
   if(!m_slow_ma.NumBuffers(1)) return(false);

我看看如何在图书馆中避免这种情况。