Любая программа оперирует данными. Данные могут быть различных типов в зависимости от назначения. Например, для доступа к элементам массива используются данные целочисленного типа. Ценовые данные имеют тип двойной точности с плавающей точкой. Это связано с тем, что в языке MQL5 не предусмотрено специального типа для ценовых данных. Данные...
在结构上
结构_位置
结构包含方法
GetCurrentPositionProperty(void)
它计算并为结构中的元素赋值。在结构外定义方法的主体。要做到这一点,请使用上下文解析操作(::)。
在OnTick()中,我们调用该函数。
void OnTick() { //---STRUCT_POSITION.GetCurrentPositionProperty();}
而在这里,我们得到了一个错误。
'.'- name expected eSower_and_Gather_5.mq5 69 19
我不知道哪里出错了,请帮助。
'.'- 名称预期eSower_and_Gather_5.mq5 69 19
69 19行是什么?请公布代码第69行,并说明19的位置在哪里。它将立即明确错误在哪里。
69 19行是什么?发布代码第69行,并说明第19个位置的位置。它将立即明确错误在哪里。
STRUCT_POSITION.GetCurrentPositionProperty();
它在上面的帖子中以红色标出。谢谢你的及时答复。
69 19行是什么?发布代码第69行,并说明第19个位置的位置。它将立即明确错误在哪里。
这是一个必须让人进入一个函数的点,而这个函数又使用结构上下文。但我无法理解为什么它不起作用。
它在上面的帖子中以红色标出。谢谢你的及时答复。
'STRUCT_POSITION'是一个数据类型。你需要创建一个具有这种类型的变量,然后调用VARIABLE.GetCurrentPositionProperty()。
这是应该让人进入函数的点,而函数又使用结构的上下文。这是我从教科书上理解的。但为什么它不工作,我无法理解。
代码:(只是调用一个函数--EA函数,而不是结构方法--这样更有意义。)
STRUCT_POSITION'是一个数据类型。你需要创建一个具有这种类型的对象,然后调用OBJECT.GetCurrentPositionProperty()。
试过了。这样一个对象被创建,在声明了
StrPositionArray[]。
如果你把它放入OnTick
我们得到一个错误。
']'- 预期表达式 eSower_and_Gather_5.mq5 69 21
代码:(只是调用一个函数--EA函数,而不是结构方法--这样更有意义。)
所以使用::是一个徒劳的想法?
那么你为什么要写函数
结构内部?它将填补结构内部没有任何填充物,不是吗?请澄清一下,我很困惑,也许这是一个过时的功能,我应该忘记它?
所以使用::是在浪费时间?
那么你为什么要写一个函数
在结构内?我的意思是,即使没有它,它也会完美地填充结构。请澄清一下,我很困惑,也许这是一个过时的想法,应该被遗忘。
复制粘贴。复制粘贴后还剩一行。
它应该是这样的(结构内部没有方法)。
复制粘贴。拷贝后还剩一行。
它应该是这样的(结构内部没有方法)。
好吧,我已经花了这么多时间在这门课上。虽然是针对MT4的,但在那里是作为一个技巧来介绍的,所以这里是摘录的文字。
该结构有一个Refresh()方法,用于计算并为结构中的元素赋值。让我们在结构外定义方法的主体。要做到这一点,我们使用上下文解析操作(::)。上下文是一个结构的描述符(名称)。
请注意,在方法的主体中,我们引用结构中的元素时没有使用点,因为我们使用了上下文解析操作。数值字段在方法主体的开头更新之前,由 ZeroMemory() 用this 关键字归零,所以结构会传递给自己一个引用。
现在,OnTick() 处理程序内的主要EA代码将看起来像这样