新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1857

 
Порт-моне тв 开盘时间,我如何获得 第二个和后续订单的开盘时间,同时由于OpenOrderPrice()也给出第一个订单的价格,我如何获得第二个和后续订单的开盘价格?

收集(或记住/知道)一切,按开放时间排序。就是这样,但开放时间并没有改变 :-)

如果EA逻辑包含1个以上的订单(如网格),那么你将不得不记住它们。否则你将不得不放慢速度,试图在每次打喷嚏时都记住它们。

 
Mykhailo Turovskyi #:
你能告诉我,如果历史上的利润是用蓝色圈起来的,这是否包括佣金和互换?
没有。
 
Порт-моне тв 获得 第二笔和后续订单的开盘时间? OpenOrderTime()只给出第一笔订单,同时我如何获得第二笔和后续订单的开盘价,因为OpenOrderPrice() 模拟也给出了第一笔 订单的价格

将获得使用函数OrderSelect()选择的订单的时间和价格。

 
Mihail Matkovskij #:

据我所知,文件中没有提到这一点。所以最好是安全行事。它不会使事情变得更糟。

有人抱怨说,这个程序需要大量的CPU时间。

Mihail Matkovskij#:

就SL和TP而言,它们 经过计算的。因此,他们 肯定应该 根据数位值进行规范化

在这里,无论如何,有必要找出作者的意图。

 
Andrey Sokolov #:

有人抱怨说,这个程序需要大量的CPU时间。

计算的SLs和TAs的归一化需要两倍的时间。但我不会说它对优化的影响有多大,对机器人测试的影响更小。

无论如何,我们都要找出作者的想法

文件中白纸黑字写着要将计算出的水平归一。那么 "作者的意图 "可能是什么呢?什么是不正常化的SL和TP?我不打算和你争论,因为这里的事实很明显!我不打算和你争论。

 
Порт-моне тв 开盘时间,我如何获得 第二个和后续订单的开盘时间,同时由于OpenOrderPrice()也给出了第一个订单的价格,我如何获得第二个和后续订单的开盘价格?

如果这是一个问题,那么得到第一张票,选择第一张和随后的有票!=第一张。

 
Mihail Matkovskij #:

将计算出的SLs和TAs标准化需要两倍的时间。但我不会说它对优化的影响有多大,对机器人测试的影响更小。

确实如此,而且在这个论坛上也有关于简化这一程序的问题。

我不知道有哪种情况,收到的价格没有被规范化而导致错误。

供参考。

Mihail Matkovskij#:

而在这种情况下,作者的 "意图 "可能是什么呢?这不是为了使SL和TP正常化吗?我不打算和你争论,因为事实是显而易见的!

一个事后的想法可能是四舍五入。理论上这是不可能的,但在四舍五入到较少数字的情况下,在价格将是正确的SL和TP的情况下, 这种方式将发挥作用所以你必须找出在任何情况下的意图。

 
Urman Ru 获得分形最高的和最低的,但不是标准的,而且向左是i-2,向右是0,这样结果就不会被覆盖了。

我试着自己解决这个问题,大致在这个指标的代码中 加入了一些内容,但并不奏效。虽然它的编译并没有错误。

也许我们应该使用iCustom和处理指标?

如果你试着找出问题,然后更详细地描述你不能做的到底是什么,那么得到答案的概率就会高很多。

 
Mihail Matkovskij #:

将计算出的SLs和TAs标准化需要两倍的时间。但我不会说它对优化有那么大的影响,更不用说机器人测试了。

不仅如此,有些人还忽视了诸如以下这些简单的检查

if (name == NULL)
  return;

认为它可能会消耗大量的CPU时间 :)

但实际上,消耗处理器时间的是ObjectCreate和ObjectDelete等函数。如果一个程序员有,比如说,一个图形对象的数组,而它在每次打勾时都会被删除和重新创建,那么就必须对它采取一些措施。虽然简单的检查和计算的时间不多。这就是为什么很多程序员只是在错误的地方寻找。

 
Andrey Sokolov #:

确实如此,而且在这个论坛上也有关于简化这一程序的问题。

我不知道它影响了谁,也不知道它影响了什么。我在使用NormaizeDouble时从未遇到过任何问题。如果有的话,任何代码都会影响到一个应用程序的速度。但如果一切都那么关键,你可以让处理程序OnTick或OnCalculate为空。在这种情况下,你的申请将根本飞不起来。:)或者在汇编器上重写函数,编译成DLL并将其连接到应用程序。

我不知道在什么情况下收到的和非正常化的价格会导致错误。

但文件是这样的!而你却忽视了文档中的建议。随你便吧。这是你的事。我认为这是显而易见的,我不会和你争论这个问题,我再说一遍!我认为这是显而易见的。

四舍五入可能是事后的考虑。

这不是四舍五入,而是把超过小数点后两位的东西都砍掉。

NormalizeDouble((Ask1+StopLoss*Point1), 2)

我也不知道作者的想法。但我不需要它。我认为他能自己想出办法。

原因: