错误、漏洞、问题 - 页 1631

 
fxsaber:
mt5,1375,升级后发生的。 vinhp32

关于什么和什么的更新?请,如果你指出一个可能的故障--不要节省你的墨水,尽可能详细地说明情况。

关于交易、自动交易系统和策略测试的论坛

错误、漏洞、问题

Karputov Vladimir, 2016.08.07 14:11

  1. MetaEditor的构建是什么?
  2. 你是用MT4还是MT5运行?
  3. 你以前是否在这个MetaEditor中打开过文件?
  4. MetaEditor文件的权利是什么情况?
  5. 它是最近发生的还是在终端安装 后立即发生的?
  6. 你在什么操作系统中启动它(Windows,在Wine下)?

 

执行中的错误

操作的顺序。

1.运行Test.ex5专家,它在图表上逐行显示相同类型的文本,直到发生错误为止

2.在同一图表上运行演示错误的简化脚本

//Test.ex5 //Проверочный скрипт void OnStart() {         string text1 = NULL;                        ::ChartGetString( 0, CHART_COMMENT, text1 ); //(1)         string text2 = ::ChartGetString( 0, CHART_COMMENT ); //(2)         if ( text1 != text2 )                 Print( ::StringLen( text1 ), "-", ::StringLen( text2 ));         else                 Print( "OK" ); }

我们得到的结果是

2016.08.08 02:21:25.979 测试(EURUSD,M15)120-136

...并且应该是 "OK"。

附加的文件:
Test.ex5  13 kb
 
A100:

执行中的错误

操作的顺序。

1.运行Test.ex5专家,它在图表上逐行显示相同类型的文本,直到发生错误为止

2.在同一图表上运行演示错误的简化脚本

我们得到的结果是

2016.08.08 02:21:25.979 测试(EURUSD,M15)120-136

...并且应该是 "OK"。

我没有看到错误,在调用ChartGetString 之间,图表注释已经被改变了,这就是为什么行与行之间有16个字符的差异,只是在图表注释中加入了行的大小。
 
Ilyas:
我没有看到任何错误,在调用ChartGetString 之间,图表注释已经被改变了,这就是为什么行与行之间有16个字符的差异,只是为了在图表注释中添加行的大小。

专家被卸载(即不能再影响图形)。加载测试脚本(10行)。问题:哪条线会改变图表注释?

在调用::ChartGetString( )之间没有任何代码。

附加的文件:
Test.ex5  6 kb
 

手机版的论坛有什么问题?

当我按下 "回复 "键时,出现了一个带有鳄鱼般的htlm代码的引文。而且你不能把光标从里面拿出来。

安卓2.3.4


 
A100:

专家被卸载(即不能再影响图形)。加载测试脚本(10行)。问题:哪条线会改变图表注释?

在调用::ChartGetString( )之间没有任何代码。

通过行动(对于图表操作是同步/连续的,EA和脚本在各自的线程中工作)。

  1. 脚本调用第一个ChartGetString
  2. 专家顾问调用ChartSetString
  3. 专家顾问终止
  4. 脚本调用第二个ChartGetString
 
Ilyas:
通过操作(对于一个图表,操作是同步/连续的,专家顾问和脚本在他们的线程中工作)。

  1. 脚本首先调用ChartGetString
  2. 专家调用ChartSetString
  3. 专家整理
  4. 脚本调用第二个ChartGetString

Test.ex5专家不能调用任何东西(第2点),因为当脚本运行时,它已经事先被卸载。

即步骤3显然在步骤1之前

下面是Test.ex5脚本的结果

2016.08.08 02:21:25.979 测试(EURUSD,M15)120-136

...而且应该是 "OK"。

 
A100:

Test.ex5专家不能调用任何东西(第2点),因为当脚本运行时,它已经事先被卸载了。

即步骤3显然在步骤1之前

下面是Test.ex5脚本的结果

2016.08.08 02:21:25.979 测试(EURUSD,M15)120-136

...而且应该是 "OK"。

ExpertRemove不会立即从图表中移除专家顾问,而只是在OnTick完成后移除。而且它与exit()函数不相类似

日志中的引用只说明了调用ExpertRemove()函数 的事实。删除专家顾问的事实将反映在客户终端日志中,即 "专家被删除"。

显示专家顾问的源代码

 
Slawa:

日志中的引用只说明了调用ExpertRemove()函数 的事实。专家顾问将从客户终端日志中以 "专家被删除 "的形式被删除。

详细的行动顺序。

  1. 打开一个新的图表
  2. 在专家顾问的图表上运行Test.ex5(几秒钟后,专家标签中会出现以下信息。'2016.08.08 15:40:47.267 测试 (EURUSD,M15) ExpertRemove()函数被调用',EA被从图表中卸载。
  3. 确保 "日志 "选项卡显示以下形式的信息。'2016.08.08 15:40:47.286 专家专家测试(EURUSD,M15)被删除'
  4. 在同一图表上运行脚本Script1.ex5(这里的脚本名称与专家顾问的名称不一致)。

因此,在专家标签中会出现以下形式的信息。'2016.08.08.08 15:52:43.173 Scripts1 (EURUSD,M15) 120-136'
应该是这样。'2016.08.08 15:52:43.173 Scripts1 (EURUSD,M15) OK' 。

//Script1.mq5
void OnStart()
{
        string text1 = NULL;
                       ChartGetString( 0, CHART_COMMENT, text1 ); //(*)
        string text2 = ChartGetString( 0, CHART_COMMENT );
        if ( text1 != text2 )
                Print( StringLen( text1 ), "-", StringLen( text2 ));
        else
                Print( "OK" );
}
附加的文件:
Test.ex5  13 kb
Script1.ex5  7 kb
 
A100:

应该是这样。'2016.08.08 15:52:43.173 Scripts1 (EURUSD,M15) OK' 。

通过将Script1.mq5中的一行(*)替换为

               text1 = ChartGetString( 0, CHART_COMMENT );