文章 "自定义交易历史表述并创建报告图表" - 页 3

 
Andrey Azatskiy:

请尝试将 DealHistoryGetter.mqh 文件替换为本帖所附的文件。

只剩下这个错误

2018.09.01 19:11:36.150 Get_TradingHistory (GAZR Splice,H1)     zero divide in 'DealHistoryGetter.mqh' (457,51)
 
在 451 和 461 处设置断点,然后查看 inputParam.deals[i].volume 和合约数组。

由于某种原因,您将合约交易量设置为零。如果我是对的,在出现这个错误之前应该有两次迭代。但如果我是对的,我无法想象为什么合约交易量会等于零,它不会发生....。
 
第 460 行,在第一次迭代时,将第一份合约输入合约数组。在第 457 行,使用文章中描述的方法从合约数组中计算出最后一份有效合约。在我运行的故事中,没有出现此类错误。
 
Andrey Azatskiy:
在 451 和 461 处设置断点,然后查看 inputParam.deals[i].volume 和合约数组。 由于某种原因,您将合约交易量设置为零。如果我是对的,在出现这个错误之前应该有两次迭代。但如果我是对的,我无法想象为什么合约交易量会等于零,它不会发生....。

我不知道如何使用调试器,我放了点数,运行了一下,但没有出现错误。

也许问题的关键在于历史记录中有这样的操作?


 

在第 407 行设置一个断点,并查看 lotArr 数组。

我不会重现您的问题,因为这与您的交易历史有关。我的历史记录(我通过该类运行的历史记录)没有产生这样的错误....。

 
Andrey Azatskiy:

最好在第 407 行设置断点,并查看 lotArr 数组。

我不会重现您的问题,因为这与您的交易历史有关。我的历史记录(我通过该类运行的历史记录)没有产生这样的错误....。

您是在真实账户 还是模拟账户上测试的?

 
也许我的类有缺陷,但我无法重现....。这与您的历史有关,因此也与您的终端和交易账户有关。也许在分析 Me5 历史记录时存在一些细微差别,而我在编写这个类时忽略了这些细微差别,但只有您才能重现这些细微差别。我得先弄明白调试器。
 
Aleksey Vyazmikin:

您是在真实账户 还是模拟账户上进行测试的?

这与账户无关,而是与您的历史记录有关。无论是真实账户还是模拟账户,终端生成历史记录的方式都是一样的。

 
Andrey Azatskiy:
也许我的类有缺陷,但我无法重现....。这与您的历史有关,因此也与您的终端和交易账户有关。也许在分析 Me5 历史记录时存在一些细微差别,而我在编写这个类时忽略了这些细微差别,但只有您才能重现这些细微差别。我必须用调试器来处理。

如果您能更具体地写出要查看和写入的内容和位置,我将帮助您找到错误。

 
Andrey Azatskiy:

这与账户无关,而是与您的历史记录有关。无论是真实账户还是模拟账户,终端生成历史记录的方式都是一样的。

模拟账户上没有修正,我在上面给出了截图。

每天都有。