错误、漏洞、问题 - 页 2940

 
Slava Botalov:

太糟糕了,我们不得不换成另一个。有什么建议吗?

所有建议都在谷歌上。这里禁止任何关于第三方的讨论。

 
Vladimir Karputov:

所有建议都在谷歌上。这里禁止任何关于第三方的讨论。

明白了。谢谢你帮助我解决我的问题

 
x572intraday:

这不是问题的关键。问题是,它能在哪些方面发挥作用,特别是对交易者,而不是程序员?我在终端中没有看到这样的数字,既没有在价格表中,也没有在下单窗口中,所有地方都是一样的(某处是五位数,某处是其他)。

这不是一个在哪里可以发挥作用的问题。这是一个知道数字在计算机中如何表示的问题,知道计算机中没有0.72352这个数字,只有0.7235200000000001,可以打印成5位数,为此,有一个函数DoubleToString。
 

无法复制数据。

MqlRates mql_rates[];
bar_kol = Bars("EURUSD", _Period);
copy_rates = CopyRates("EURUSD", _Period, bar_kol, 100, mql_rates);

当试图将数据从6105条复制到+100条时,bar_kol变成6105条,copy_rates-1(错误)。

日志显示如下。

欧元兑美元:从2007.01.02到2020.06.30的历史同步数据

EURUSD,H1:历史缓存分配给74955条,包含6105条,从2008.01.02 10:00到2008.12.31 17:00

EURUSD,H1:历史从2008.01.02 10:00开始

历史数据被缓存在74955条,但2008年同样包含6105条。即最多抄写一年。不可能复制超过6105条。窗口中的最大条数是100000,整个历史在图表中是可见的,你可以滚动浏览,所有的条数都存在,所有的东西都被加载。从字面上看,mql_rates数组没有被复制。

 

调试不是真实的数据。挂在一行上,反复按F11或F10不会使调试继续进行。 指针停留在一行上,只是闪烁屏幕。

建2715。Win10,20H2 build 19042.746。


这就是记忆的状态

 
Ilyas:

告诉我,ZeroMemory 的潜在危险是什么,在这种情况下会出现错误?

struct A
{
private:
  int i;
};

void OnStart()
{
  A a[1];
  
  ZeroMemory(a); // not allowed for objects with protected members or inheritance
}
 
Aleksey Mavrin:

调试不是真实的数据。挂在一行上,反复按F11或F10不会使调试继续进行。 指针停留在一行上,只是闪烁屏幕。

建2715。Win10,20H2 build 19042.746。


这是内存的状态

请更新到最新的测试版2747。

我们正在改变调试器中的很多东西。

 
fxsaber:

告诉我,ZeroMemory的潜在危险是什么,在这种情况下会出现错误?

private/protected和const(在大多数情况下)纯粹是为程序员服务的,编译器只帮助遵守对代码的限制。

一个典型的例子:
你使用了别人的库,在引擎盖下是沉重的代码与链接,未经授权的改变会导致失败,所以库的创建者将部分对象隐藏在私下,禁止计划外的改变。

 
Ilyas:

private/protected和const(在大多数情况下)只适用于程序员,编译器只帮助遵守对代码的限制。

一个典型的例子:
你使用了别人的库,在引擎盖下是沉重的代码与链接,未经授权的改变会导致失败,所以库的创建者将部分对象隐藏在私下,禁止计划外的改变。

明白了,谢谢你的详细解释!

 

似乎MqlRates结构 中的real_volume字段,尽管它有长类型,但不能在所有长值的范围内存储数值(根据文档--0x7FFFFFFFFFFFFFFF)。例如,0x4000000000000000A8将被写入字段0xA8。我说的是自定义角色。

是否在任何地方规定了实际的有效值范围?基本上,没有理由它不应该作为一个正常的长工作 - 它看起来像一个错误。

PS.对于tick_volume可能有同样的问题