错误、漏洞、问题 - 页 1405

 
Tapochun:
你能告诉我,当在指标中调用OnCalculate() 时,哪些点差值被传递到点差[]数组?每支蜡烛的最大/最小/平均值?
终端从服务器接收的那些。
 

出现了一个关于.dll加载顺序的问题。如果宣布

#import "Test1.dll" //1
#import "Test2.dll" //2
#import

它们将以相反的顺序被加载,即先加载"Test2.dll"看来,这两者是有区别的。事实证明,这有区别,在某些情况下(.dll需要一定的加载顺序)会失败。萨博特加载'Test1.dll'。
问题
是,是否将负载顺序改为直接,从代码的角度来看,这将是更合理的--或者确保这个顺序在未来不会被改变(这样,调整到反向顺序的代码不会突然停止工作)。目前,我们需要将代码调整为相反的顺序。

 

建1191。编译错误: 代码生成错误


我甚至不知道该去哪里找原因。但在构建1162中,一切都很好。

 
A100:

建1191。编译错误: 代码生成错误


我甚至不知道该去哪里找原因。但在构建1162中,一切都很好。

请将代码发送到servicedesk。
 
Alexander:
请将代码发送到servicedesk。

它的分布很广--我将尝试把它全部放在一个文件里。

其他代码 - 注意时间 - 它可能是20倍大

 
Ilyas:

迄今为止,已知有两例。
1) 在bool &=操作中(bool表达式)。
2) 在初始化序列 中多了一个逗号 val={ {...},{...},}

这是第一种情况--我的代码中有很多这样的操作。 我以前使用1159版本时没有问题。 我们什么时候可以期待修正?

 

代码生成错误

我把源代码发给了servicedesk:#1332553

 
Alexander:
请将代码发送到servicedesk。

代码生成错误


//build 1191
class A {};
class B : public A {};
void f( A& a ) {}
B *h() { return new B; }
void OnStart()
{
        f( h() );
}

请注意不要像我描述的那样,最后被装在口袋里。如果你能做到没有*,因为它现在和以前在下面的例子中都是有效的

//build 1191
class A {};
void f( A& a ) {}
A *h() { return new A; }
void OnStart()
{
        f(  h() ); //нормально
        f( *h() ); //нормально
}
请这样做,如果不这样做--也许在你开始使用创新之前,将所有东西都回滚是有意义的。

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

虫子,虫子,问题

A100, 2015.08.26 10:35

事实上,你正在提供一个简单而直接的条目

a = (b + c) - d*e + f;
*a = (*b + *c) - *d**e + *f;
,而这是为了什么?这样,你就可以写
bool c = *a == *b;

而一个特殊的函数可以用来比较指针是否相等,而所有其他与指针有关的算术运算(加法、减法、乘法等)本身没有任何意义,只是在能够重载的情况下才有意义。

只有通过创建一个数学基类和派生类,重新定义几个(而不是一两个)算术运算,使它们成为虚拟的,然后在它们的基础上测试复杂的表达式(不仅仅是a = b + c)--只有这样才能使你更接近于理解现在的一切都在优化进行。同时,你的推理是在一个入门级别。

如果你把平等指针比较纳入一个单独的函数,你就只剩下一个(!)瓶颈了

class A {};

A *a = b; //однозначно присвоение указателю значения
a = b;    //неоднозначно
然而,这也应该被视为一个赋值,而不是一个operator=()的调用,因为目前没有其他的语法来给指针赋值,而a.operator=( b )也可以明确调用
 
A100:


其他代码--注意时间--它肯定增长了20倍

这是一个用于MQL5的新的优化编译器(MQL4没有这个功能)。

你必须为更好的目标代码和更长的编译时间付费。一些由数百行组成的长函数是很难优化的。

 
Renat Fatkhullin:

这就是MQL5的新优化编译器的工作原理(MQL4中没有)。

为了获得更好的目标代码,你必须为更长的编译时间付费。一些长的函数,由数百行组成,它的优化非常顽固。

这真的有必要吗? 这种 "高质量的代码 "的代价是不是太高了? 为了一个相对较小的性能增益而使编译速度降低几十倍......更重要的是,在许多情况下,这种收益并不十分重要,而延长编译时间对程序员来说是一种折磨。

让 "调试 "和 "发布 "的编译选项不是更好吗?