错误、漏洞、问题 - 页 849

 
Heroix:

这是在1台计算机上的2个终端。对于来自终端的所有更新建议--我回答 "是"。

该文件以.mql5的形式从另一台电脑传输到flash,由两个终端的不同编辑打开并编译。

一般来说,按照我的理解,我需要升级MT...

如果你是手动升级,你也需要转移/MQL5文件夹,因为它包含了大量的你正在使用的标准库

由于你只将可执行文件和你的源代码作为mq5文件传输,你犯了一个错误。

 
OrderLots()和iClose 在MQL 5中可能吗?
 

升级到bild 695。编译Object.mqh 时开始出现错误。


 
denkir:

升级到bild 695。在编译Object.mqh 时开始弹出一个错误。

你是自动更新还是只是移动文件?

如果你是自动做的,在UserData中存储文件 时,将/MQL5目录从程序根目录复制到数据目录(你可以从文件菜单中打开它)。

 
致开发者

经济日历 怎么了,它存在吗?

补充问题:它是基于什么数据,如何能 "插入 "到直流中?

 
papaklass: 数据并不重合,但它们应该重合,因为第二和第三种情况是第一个条件的独立部分。 我不明白问题出在哪里。

这就是条件

if( mn < STP || mn >= STP )

- 现在的情况是,它对任何Mn和STP都有效。我们为什么需要引入它呢?而接下来的两个选项--有一个特定的切断某些情况。

但一切似乎都是合乎逻辑的:在所有三种变体中,一+二==三(不涉及一、二和三的计算细节)。

 
papaklass:

这就是我所说的。我想把公共空间(案例1)分成两组(案例2和3)。从逻辑上讲,表达式一+二==三应该是真的,但它不是。在第一个条件下,1=148,在第二个条件下,172。也不是两个人和三个人的比赛。我不知道问题出在哪里。

也许问题在于一个共同的条件?这段代码是否依赖于其他东西?

只是一个微不足道的例子。

条件(a):如果H1上的条形图上升,则打开。TP=SL=100

条件(b):如果H1的柱状物减少,则打开。TP=SL=100

附加条件:如果我们已经有了一个位置,我们就不会再检查第二次的条件。

那么如果我们启用(a)和(b),当TP/SL被触发时,我们将每次开盘。

如果我们包括(a),我们将在所有的第一次中打开,加上(!!!!)另外几次我们没有打开的时候,因为我们之前用条件(b)打开过。

并仅包括条件(b),同样地

 
papaklass: 从逻辑上讲,表达式一+二==三应该是正确的,但它对我来说并不适用。

再仔细看看:这正是对每个选项进行的比较(一+二==三)。

papaklass:在第一个条件下,一个=148,在第二个条件下,一个=172。

那么,这是一个不同的问题,即为什么第一种变体的1的价值不等于第二和第三种变体的1的价值。

与第一个变体相比,你在第二个和第三个变体中引入了一个限制性条件。例如,考虑一下为什么在第二个变体中,一的价值比第一个变体增加。迄今为止,从引用的代码部分来看,这一点并不清楚。

 
papaklass:

对上一个帖子。

在第三种情况下:一=0,二=124,三=124。

数据不匹配,但它们应该匹配,因为第二和第三种情况是第一个条件的独立部分。 我无法理解问题出在哪里。

PS:输入int STP=200。

改变数据集的结果是正确的,因为空间mn<STP你已经排除。

if( /*mn < STP || */ mn >= STP ){
 
papaklass: 在我的例子中,我只是做了采样。

1.我同时选择空间2(一)和空间3(二);230=148+82,即空间2(一)=148,空间3(二)=82。

2. ...应该保持148,而变成了172。

3. ...应该保持82,而变成124。

这就是我所说的:你的问题是为什么第一个选项中的一个的价值不等于第二个和第三个选项中的一个的价值

空间2和空间3的值应该是恒定的,因为在我以前的帖子中给出的三个例子中,获得这些空间的条件是相同的。

为了找到这个逻辑假设中的错误,我建议做得非常简单:打印所有三种变体中增加 "空格X "的每一种情况,比较结果并分析 "空格2和空格3的值 "不相同的原因。

补遗。ilunga 已经暗示,当从一个变体转移到另一个变体时,一些交易可能会丢失。你有一个杀手级的函数/方法OpenPosition()嵌入到if()运算符的主体中。而且根据if()运算符检查的条件,它在不同的时间工作。