MetaTrader 4 Build 529测试版发布,带有新的编译器 - 页 37

 
Renat:
也就是说,你个人在软件操作性方面没有任何问题,而且你问的是一般性问题。

我看了你的问题好几遍,都不明白。我们在这里讨论的是具体细节。

编译方面没有任何问题。在可操作性方面存在问题,据我所知,这些问题与将MQL5逻辑与MQL4混合有关。然而,我们在这里讨论的问题并不足以应付所有的场合。所有这些都是一个特殊的情况。规则是必要的。如果你发表了一份初步指南,或者至少是将MQL5的功能和规则翻译成MQL4的预览,这不仅会帮助我们,也会帮助你了解出现的问题。试想一下,会有500页或更多。我怎样才能重新阅读它呢?

 
ForexMoneyMaker:

编译方面没有任何问题。在可操作性方面存在问题,据我所知,这些问题与将MQL5逻辑与MQL4混合有关。然而,我们在这里讨论的问题并不足以应付所有的场合。所有这些都是一个特殊的情况。规则是必要的。如 果你发表了一份初步指南,或者至少是将MQL5的功能和规则翻译成MQL4的预览,这不仅会帮助我们,也会帮助你了解出现的问题。试想一下,会有500页或更多。你如何能读懂这一切?

首先,其他东西可能会改变(包括影响兼容性的东西)。第二,现在所有的 "描述性资源 "都被用于准备帮助。为什么要给一个已经在全力工作的系统增加负担呢? 这样错误的数量就会增加?
 

MT4 build 536,ME build 872。

该指标使用独立窗口的输入参数:extern string Currency_Name = "EURUSD"。

如果在不改变输入参数的情况下启动指标,指标就会被画出来,并在没有错误的情况下工作。但只要我在第一次运行后改变符号,例如 "GBPUSD",指标就不接受新的符号名称。指标的short_Name保持不变,但指标根本没有被画出来(空栏)。如果你在第一次调用时改变了符号名称,那么指示器将按程序中写的初始名称绘制。

至于改变指标初始数据的数值,它们在所有情况下都被改变,而且指标的绘制没有错误。

 
Renat:

在一个程序中拥有数百个全局变量是不可取的。

OOP和类通过隐藏作用域和提供对数据的保护性访问,完全地、大幅度地解决了这个问题。

也许这还不够好。但我在那里写了为什么是这样。在MT4中不可能以不同的方式实现原定的目标。在图形方面,没有任何其他的工作方式。只有通过外部变量,你才能设置图形元素的 样式。如果我们有很多不同的图形元素,我们将有很多外部变量。除了样式之外,还有大量的图形项目的属性,它们也只能通过外部变量来改变。图形在ensign中是很好的。但在MT4中,它是一个真正的混乱。这就是为什么有数以百计的外部变量。我们还不知道新版本的MT4会发生什么。我们将拭目以待。
 
nen:
这可能还不够好。但我在那里写了为什么是这样。 在MT4中不可能以不同的方式实现原定的目标。在图形方面,没有任何其他的工作方式。 只有通过外部变量才能设置图形项目的样式。 如果有很多不同的图形项目,你也会有很多外部变量。 除了样式,还有很多图形项目的属性也只能在外部变量中改变。 ensign中的图形 很好。但在MT4中,它是一个真正的混乱。这就是为什么有数以百计的外部变量。 在新版本的MT4中会是怎样的情况还不知道。我们将拭目以待。

因此,我们谈论的是变量,而不是图形。此外,MT5的图形很好--你可以做任何事情,直到电脑游戏。Mt4也即将步入正轨。

你怎么能在任何程序中传输一百个参数,而用户必须在任何时候自己改变?只能用一个输入参数表。这并不取决于项目的类型。

总之,数以百计的参数是程序员的不二法门。我们需要使用智能自动控制方法,将参数的数量减少十倍。只要你开始思考,解决方案就会立即出现。

 
nen:

如果一个指标有几百个外部变量,在安装过程中需要改变几十个,那么...

在重新安装之前,你需要记住哪些变量需要从以前安装指标时改变的值中保存下来。

不谈摆脱100个参数的不可能性...

为了避免记住已经更改过的内容,有一个 "重置 "按钮。

而新的行为(重新编译后保存输入的变量值)使工作更加方便--如果你改变了指标中的某些内容,你不需要重新配置所有的副本。

 

雷纳特,斯特林戈,Unicode会永远留在这里吗?

 
input datetime  Date_From = D'08.10.2013';      // Начало периода
input datetime  Date_To = D'08.11.2013';        // Окончание периода
input bool      Column_Headers = true;          // Создавать заголовки колонок?

这是一个脚本,在启动时,Date_From字段总是当前的本地日期/时间,Date_To字段是好的。改变了设置的顺序--如果日期时间类型 的变量不是列表中的第一个,那么这个缺陷就不存在。

---

在帮助中,PRICE_CLOSE有ENUM_APPLIED_PRICE类型,但编译器不知道--'ENUM_APPLIED_PRICE'--没有类型的声明。帮助或编译器能解决这个问题吗?

---

总的来说,对于这个编辑器/编译器来说--谢谢!

 

我对已经编译好的指标进行修改,该指标在货币对图表上。我重新编译了它。为了使这些变化生效,有必要重新启动整个终端。将指标从图表中删除并重新启动并没有帮助,改变时间框架也没有帮助。只有重新启动终端本身才有助于看到所做的改变。

请修复它。

 
ObjectSetInteger(0,"Name",OBJPROP_CORNER,CORNER_RIGHT_LOWER);
ObjectSetInteger(0,"Name",OBJPROP_ANCHOR,ANCHOR_RIGHT_LOWER);

没有检测到CORNER_RIGHT_LOWER和ANCHOR_RIGHT_LOWER。

Mqh-file,日志中出现"未声明的标识符"错误


StringConcatenate 工作得很奇怪

它是这样工作的

StringConcatenate("Text 1 ","Text 2");
StringConcatenate("Text 1 ",10);
StringConcatenate(10," Text 2");
StringConcatenate(10,11);
StringConcatenate("Copyright ",CharToString(169));

但它并不像这样工作(只显示"©")。

StringConcatenate(CharToString(169)," Copyright");