任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 1031

 
artmedia70:
如果无意中删除指标应删除该指标创建的全局变量,应在指标的OnDeinit()函数中规定对这些全局变量的删除。
应该检查一下,这不是一个时间框架的切换,而是从图表中删除指标。
谢谢你!
 
artmedia70:
在终端中按F3,并手动删除这个变量。它被创建一次,位于环境中--EA从那里读取它。或者是我没有正确理解你的意思?你只是在指标代码中删除了终端的全局变量的创建,但它之前是由这个指标创建的?

阿特姆,请帮助我了解什么是错的。这里https://www.mql5.com/ru/code/10237 是专家顾问的代码,它通知(或者说用来通知)终端中的所有交易事件。这个代码一直在正常工作。我已经很久没有离开网站了。在mql4中发生了一些变化,现在这段代码在编译数组的初始化行时出现了错误。如果你能找到时间,请看一看。

注意到。

如果有人能看看问题出在哪里,我将不胜感激。

 
AlexeyVik:
嗯,我不知道,也许在C++中,我从来没有学过,但mql只是类似C的。其次,数组维度不能被设置为变量,尽管在你的例子中MAX_NUM_ORDER可能不是一个变量...
请看这里关于数组初始化 https://book.mql4.com/ru/variables/arrays
 
SunnYtheDreamer:

分别选择数组的一行和一列,可以在那里输入一个特定的值,也就是说,应该像普通变量那样输入,并且要重置所有的值

ArrayInitialize(Arr_Tickets, 0)。



项目参考将看起来像这样 -Arr_Tickets[MAX_NUM_ORDER,2] =0

我这里有 -Arr_Tickets[MAX_NUM_ORDER][2] = {0,0, ,0,0}

 
valenok2003:
关于数组初始化,请看这里 https://book.mql4.com/ru/variables/arrays
是的,我认为阵列是全局声明的,所以我变得聪明了...
 
valenok2003:

项目参考将看起来像这样 -Arr_Tickets[MAX_NUM_ORDER,2] =0

我写的是 -Arr_Tickets[MAX_NUM_ORDER][2] = {0,0, ,0,0}。

Arr_Tickets[MAX_NUM_ORDER,2] - 一个数组元素 的引用

Arr_Tickets[MAX_NUM_ORDER][2] - 数组元素引用

无论你怎么写,编译器都不会发誓,而是等待一个特定的值,而不是其他东西。我特别检查了一下。
从你给另一个论坛成员的链接中也确认了这一点:指定索引的方式,即每个索引都用方括号括起来,也是可以的。

 
SunnYtheDreamer:

Arr_Tickets[MAX_NUM_ORDER,2] - 对一个数组元素的引用

Arr_Tickets[MAX_NUM_ORDER][2] - 对一个数组项的引用

无论你怎么写,编译器都不会发誓,而是等待一个特定的值,而不是其他东西。我特别检查了一下。
从你给另一个论坛成员的链接中也确认了这一点:指定索引的方式,即每个索引都用方括号括起来,也是可以的。

我重新表述一下这个问题,--它以前编译和工作都很正常,谁能解释一下是什么原因造成的?那些不工作的代码不允许进入kodobase...

顺便说一下,错误出现在代码的第53和54行。在第54行,有什么问题?然后如何启动一个字符串数组?

我在教科书中搜索了一下,但我没有找到任何关于字符串数组的信息,只有关于数字数组的信息。也许我没有太认真看?请向我提供链接。

 
valenok2003:

阿特姆,请帮助我了解什么是错的。这里https://www.mql5.com/ru/code/10237 是专家顾问的代码,它通知(或者说用来通知)终端中的所有交易事件。这个代码一直在正常工作。我已经很久没有离开网站了。在mql4中发生了一些变化,现在这段代码在编译数组的初始化行时出现了错误。如果你能找到时间,请看一看。

注意到。

ps如果有人看一下问题出在哪里,我会很感激。

首先在代码的开头插入#property strict,然后进行编译。

是这样的。

#property copyright "Copyright © valenok2003@mail.ru"
#property link      "http://bluedream.ucoz.ru"

这样做。

#property copyright "Copyright © valenok2003@mail.ru"
#property link      "http://bluedream.ucoz.ru"
#property strict

之后,你需要看看它给出的错误。

 
artmedia70:

首先,在代码的开头插入#property strict,然后进行编译。

是这样的。

这样做。

之后,你必须看一下它给出的错误。

插入后,没有任何变化。

假设我可以替换Arr_Tickets[MAX_NUM_ORDER][2] = {0,0,,0,0}这一行;我也可以用ArrayInitialize(Arr_Tickets,0) 替换。

如何处理字符串Arr_Order_Symbol[MAX_NUM_SYMBOL] = {",",};? 当我试图通过ArrayInitialize(Arr_Order_Symbol,"") 初始化一个字符串数组时,它说 "我的你不明白...",没有合适的对象供这个函数处理...

 
valenok2003:

插入后,没有任何变化。

假设我可以把Arr_Tickets[MAX_NUM_ORDER][2]= {0,0,,0,0}这一行替换掉;我还是可以用ArrayInitialize(Arr_Tickets,0) 来替换。

如何处理字符串Arr_Order_Symbol[MAX_NUM_SYMBOL] = {",",};? 当我试图通过ArrayInitialize(Arr_Order_Symbol,"") 初始化一个字符串数组时,它说 "我的你不明白...",没有合适的对象供这个函数处理...

好吧,让这个数组归零:ZeroMemory()