将开放的职位分成若干组 - 页 8

 
Sergey Voytsekhovsky:

请告诉我,文章https://www.mql5.com/ru/articles/567,有以下代码并提到了

但我在标准包装中找不到它。不是很好的搜索,或者文章已经过期?

不,我只是犯了一个错误。

你从这里、那里和那里拉出一些代码片段,而我们应该猜测。

你展示的在列表末尾添加一个项目的代码与标准库中在列表末尾添加一个项目的代码非常相似。

结果发现你从某个地方拿了东西出来......

 
Sergey Voytsekhovsky:

这个想法很清楚,不清楚为什么不使用现成的算法,但关于 "三个循环"--很好理解,谢谢你。 当你得到高质量的简单解决方案时,我总是在想为什么我自己没有想出来,因为它是如此明显。 谢谢你。

那里也有很多错误,在别人的代码中寻找问题对我来说是绝对不可能的。此外,如果你突然发现一个错误,你自己解决,即使你报告,也不意味着他们会看到这个信息并解决它。而下一次更新将重新开始。
 
Alexey Viktorov:
那里也有很多错误,在别人的代码中寻找问题对我来说是相当不可能的。此外,如果你突然发现一个错误,你自己解决,即使你报告,也不一定会看到和纠正这个信息。而下一次更新将重新开始。

你确定SB中存在大量的bug吗?或者你只是不喜欢猫,因为你没有一本烹饪书?

 
Artyom Trishkin:

不,我只是犯了一个错误。

你从这里、那里、那里...... "拉 "出一些代码片段,我们不得不猜测。

你向我们展示的将一个项目添加到列表末尾的代码与标准库中将一个项目添加到列表末尾的代码非常相似。

而事实证明,你从某个地方拉来的东西......

将一个项目添加到列表末尾的代码来自标准库,你是对的。而我在没有从文章中找到那段代码后,试图 "拉 "出来。:-))

 
Artyom Trishkin:

你确定你知道SB有很多错误吗?或者只是因为缺少一本烹饪书而不喜欢猫?

说,Artyom,你还记得部分平仓 的问题吗?你是否记得他们后来增加了另一种方法,而没有找到这种行为的原因?

我不知道deviation=ULONG_MAX是如何使整个方法失效的,但我用deviation=1000替换了它,一切都正常了。我在 "Bugs bugs...... "主题中写了这个问题,但这个话题发展得太快了,以至于这个信息掉进了深渊,没有被注意到。结果,出现了另一种方法,但它真的有必要吗?而现在怎么能确定哪里没有错误了呢?你怎么能确定信息会被注意到?

 
Sergey Voytsekhovsky:

将一个项目添加到列表末尾的代码来自标准库,你是对的。而我在没有从文章中找到那段代码后,就试图 "拉 "它。:-))

如果你使用标准库来存储由对象 表示的数据,那么这些数据不应该是一个结构,而是基于标准库的CObject 的对象,然后你可以使用指向 标准库的对象的动态数组 来存储它们。没有办法拉出一块。

Документация по MQL5: Стандартная библиотека / Базовый класс CObject
Документация по MQL5: Стандартная библиотека / Базовый класс CObject
  • www.mql5.com
Класс CObject обеспечивает всем своим потомкам возможность быть элементом связанного списка. Кроме того определяется ряд виртуальных методов для дальнейшей реализации в классах-потомках.
 
Alexey Viktorov:

说,Artyom,你还记得部分平仓 的问题吗?你是否记得,他们后来增加了另一种方法,而不是找到这种行为的原因?

我不知道deviation=ULONG_MAX是如何影响整个方法不工作的,但我用deviation=1000代替了它,一切都正常了。我在 "Bugs bugs...... "主题中写了这个问题,但这个话题发展得太快了,以至于这个消息被遗忘了,没有人注意到。结果,出现了另一种方法,但它真的有必要吗?而现在怎么能确定哪里没有错误了呢? 你怎么能确定信息会被注意到?

不,我不记得有部分关闭的问题。而且我不知道偏差会影响操作。而且我甚至无法想象一个等于ULONG_MAX点的最大偏差(相当于没有偏差)会对部分封闭产生什么影响。而且我没有听说过新的方法。方法是什么?

为了确保信息没有丢失--找到它,把它复制到你的口袋里,然后重新发布,并注明它一定是在"MQL !=C++,应该是=="的讨论中丢失了。

 
Artyom Trishkin:

不,我不记得有部分关闭的问题。而且我不知道偏离会影响操作。而且我甚至无法想象ULONG_MAX点的最大偏差(相当于没有偏差)会如何影响部分封闭。而且我没有听说过新的方法。什么样的方法?

为了不让信息丢失--找到它,把它复制到一个口袋里,然后重新张贴,并注明某处可能在"MQL != C++,应该是=="的讨论中丢失。

关于交易、自动交易系统和交易策略测试的论坛

将开放的职位分成几组

Alexey Viktorov, 2020.04.08 09:13

告诉我Artem,你还记得部分平仓 的问题吗?你是否记得,后来他们增加了另一种方法,而不是找到这种行为的原因?

我不知道deviation=ULONG_MAX如何影响整个方法的不可操作性,但我用deviation=1000替换了它,一切都很正常。在 "错误的错误...... "主题中 写到这里,但这个话题发展得太快了,以至于这个消息消失在深渊中,没有被注意到。结果,出现了另一种方法,但它真的有必要吗?而现在怎么能确定其他地方没有错误呢?你怎么能确定信息会被注意到?


 
Artyom Trishkin:

不,我不记得有部分关闭的问题。而且我不知道偏离会影响操作。而且我甚至无法想象ULONG_MAX点的最大偏差(相当于没有偏差)会如何影响部分封闭。而且我没有听说过新的方法。什么方法?

因此,这个信息并没有丢失--找到它,把它复制到一个口袋里,然后重新张贴,并注明某处可能在"MQL != C++,以及是否应该=="的讨论中丢失。

你是否因此建议将其他信息推后?不让人提起他们?这是不对的。

在我看来,最好是定义一个单独的论坛部分,每个问题都是一个单独的主题。主题的数量要比每个主题的帖子数量少得多。因此,尽管有大量的主题,但它们不会像现在推送的个别问题和错误报告 那样被推送到很远。

 
Alexey Viktorov:

摒弃对头寸的粗暴强迫,以确定 "该头寸确实是新的"。找到另一种方法。例如,在OnTradeTransaction 中。 并尝试使用ArrayRemove函数来代替数组的溢出

如果我没有理解错的话,这就是正确的方法。作为一个更有经验的同志,请指点一下,为了抓取新生儿的位置,这样的过滤器会起作用吗?或者,也许有一个更好的选择?

void OnTradeTransaction(const MqlTradeTransaction& trans,
                        const MqlTradeRequest& request,
                        const MqlTradeResult& result)
 {
     if(trans.type == TRADE_TRANSACTION_DEAL_ADD)
      {
         if(trans.type != TRADE_TRANSACTION_ORDER_DELETE)
            {
             if(HistoryDealGetInteger(trans.deal, DEAL_ENTRY) == DEAL_ENTRY_IN) // открылась позиция
               {