错误、漏洞、问题 - 页 1506

 
DV2010:

请原谅任何不完整的信息。

1.该信息在日志选项卡中。

2.被测试删除的指标是标准布林线。

- 该指标文件位于C:\Program Files\Alpari Limited MT5\MQL5\Indicators\Examples\BB.ex5。

- 编译后的文件被手动添加到图表中。

- 两个文件都附在这个帖子后面。

3.删除指标的完整专家顾问代码,并在其上检测到错误。

   void OnInit(){
      ChartIndicatorDelete(0,0,"Bollinger Bands");
   } 

测试结果。

在图表上拖动这样一个 "专家顾问"(在应用程序中 - DeleteInd.ex5)后

手动添加到图表中的布林线被删除,但之后当图表大小改变时,图表不会被缩放。

谢谢你提出如此详细和格式化的问题(很久没有人这样写了!)。

我的情况是这样的。

  1. 我从...\MQL5\Indicators\Examples\BB.mq5手动添加BB指标。
  2. 我在同一图表上运行专家顾问。我已经添加了专家顾问本身。
    //+------------------------------------------------------------------+
    //|                                                      ProjectName |
    //|                                      Copyright 2012, CompanyName |
    //|                                       http://www.companyname.net |
    //+------------------------------------------------------------------+
    void OnInit()
      {
       ResetLastError();
       if(!ChartIndicatorDelete(0,0,"Bollinger Bands"))
          Print("Error delete BB ",GetLastError());
      }
    //+------------------------------------------------------------------+
    我得到一个错误

    绘图指示器不能删除

    4115

    从图表中删除指标时出错


出现这个错误的原因是,从EA中删除指标后,在BB所在的图表窗口中,虽然我们可以看到它,但事实上它已经被删除。要检查这一点,在运行专家顾问后,在终端 切换到另一个配置文件,然后回去(到旧的配置文件),发现图表已经像牛一样冲了出来。

我的配置。

2016.02.11 18:47:04.915 Terminal        MetaTrader 5 x64 build 1241 started (MetaQuotes Software Corp.)
2016.02.11 18:47:04.915 Terminal        Windows 10 Pro (x64 based PC), IE 11.63, UAC, Intel Core i3-3120 M  @ 2.50 GHz, RAM: 785 / 3981 Mb, HDD: 68822 / 233310 Mb, GMT+02:00
2016.02.11 18:47:04.915 Terminal        C:\Users\KVN\AppData\Roaming\MetaQuotes\Terminal\43 B472C43247368C5B97C7F22A1AE963
附加的文件:
DeleteInd.mq5  1 kb
 
Karputov Vladimir:

谢谢你提出这样一个详细的、写得很好的问题(已经很久没有人这样写过了!)。

以下是发生的情况。

  1. 我从...\MQL5\Indicators\Examples\BB.mq5手动添加BB指标。
  2. 我在同一个图表上运行专家顾问。我在专家顾问中增加了一些变化。
    我得到一个错误

    绘图指示器不能删除

    4115

    从图表中删除指标时出错


出现这个错误的原因是,从EA中删除指标后,在BB所在的图表窗口中,虽然我们可以看到它,但事实上它已经被删除。要检查这一点,在运行专家顾问后,在终端 切换到另一个配置文件,然后回去(到旧的配置文件),发现图表已经像牛一样冲了出来。

我的配置。

当执行你的代码时,我只得到。

2016.02.11 20:14:01.996    Experts    expert DeleteInd (XAUUSD,M1) loaded successfully

但当我切换到另一个配置文件后,再回来时,该窗口就不存在了(尽管在添加专家顾问后,其中的报价在变化)。

这是否意味着这是一个错误?据我所知,ChartIndicatorDelete()函数不应该导致图表的这种异常行为。是否有可能修复它?

 
DV2010:

当我执行你的代码时,我只在日志中得到它。

2016.02.11 20:14:01.996    Experts    expert DeleteInd (XAUUSD,M1) loaded successfully

但在切换到另一个配置文件后再回来时,该窗口就不存在了(尽管在添加专家顾问后,其中的报价在变化)。

这是否意味着这是一个错误?据我所知,ChartIndicatorDelete()函数不应该导致图表的这种异常行为。是否有可能修复它?

我已经向服务台报告了这个问题。
 
他们建议,我们应该在专家顾问和指标之间切换模式,以便有一个文件。同一产品将被安装在不同的终端上。

我做了一个转换。但发生的情况是:如果我在Experts文件夹中编译mq4文件,该程序只作为EA工作,作为指标(当我把它复制到指标文件夹中时)甚至没有在图表上设置。但如果我在这个文件夹中重新编译,一切都会好起来。EA也是如此,如果它已经被编译在指标文件夹中,它将不会被安装。请告诉我这是什么原因?编译模式是严格的,没有错误。

 

在MT5的最新版本中,1241的ChartIndicatorDelete功能 "搞乱 "了图表。调整大小时不重新绘制图表,关闭终端 时不保存图表,等等。

这已经被修复了。请等待下一次构建

 
Igor Ramensky:
服务台建议,应该只有一个文件。
你能向服务台 索要申请号 吗?
 
尊敬的开发人员,您能告诉我在MQL中是否允许函数和类方法 的递归?我做了一个递归方法调用,得到一个堆栈溢出。
 
coderex:
尊敬的开发人员,您能否告知在MQL中是否允许 函数和方法 的递归?我正在进行一个递归方法的调用,得到一个堆栈溢出。

当然,这是被允许的。否则你就不会出现堆栈溢出。

而你期望的是什么呢?

你是否以某种方式控制递归深度?

 
Slawa:

当然,这是被允许的。否则你就不会出现堆栈溢出。

你期待什么?

你是否以某种方式控制递归的深度?

我已经想明白了 :) 当然,我很抱歉,我磕磕绊绊的,我已经很久没有使用递归了,我忘记了递归深度控制...
 
多久可以进行一次激活?或者在一次激活后,多长时间才能进行下一次激活?