错误、漏洞、问题 - 页 2017

 
Alexey Navoykov:

在C++中,操作数的执行顺序没有规定,所以这取决于各个编译器。

操作数被评估的顺序不能被规定,因为它取决于上下文。

#ifdef __MQL__
class A { public:
        A *operator +( A* ) { return NULL; }
};
template<typename T>
T f( int i ) { Print( __FUNCTION__, ":", i ); return NULL; }
void OnStart()
{
        int i = f<int>(1) + f<int>(2) + f<int>(3); //слева направо 1-2-3
        A  *a = f<A* >(1) + f<A* >(2) + f<A* >(3); //справа налево 3-2-1
}

#endif

如果严格监管,效率将在以下两种情况中的一种丧失
 
A100:

操作数的计算顺序不能被规定,因为它取决于上下文

如果严格监管--在两种情况中的一种,效率会丧失

很好的例子!

我不明白为什么在执行过程中会出现 "无效的指针 访问 "的错误。我想一切都必须清楚。Win7x64.

 
fxsaber:

我搞不清楚为什么在执行过程中会出现 "无效指针访问 "的错误。看上去一切都应该是干净的。Win7x64.

32位是好的。对于64位,它需要一些额外的工作。

class A { public:
        A *operator +( A *a ) { return a; }
};
static A a;
int f( int i ) { Print( __FUNCTION__, ":", i ); return 0;  }
A  *g( int i ) { Print( __FUNCTION__, ":", i ); return &a; }
void OnStart()
{
        int i = f(1) + f(2) + f(3); //слева направо 1-2-3
        A  *a = g(1) + g(2) + g(3); //справа налево 3-2-1
}
 
A100:

32位规则。对于64,你需要做一些额外的工作。

优化器似乎变得聪明起来。

 
fxsaber:

指标参数 (+指标释放)


我忘了解释。我需要mql4。我也没有一个把手。我们的想法是,用户自己在图表上 安装指标,而程序应该决定它们的数量、名称和使用的参数(这不是一个间谍程序:),它是为用户准备的)。

 
Aleksandr Teleguz:

我忘了澄清。我需要mql4。是的,而且我没有把柄。我们的想法是,用户将自己在图表上 安装指标,而程序应该决定它们的数量、名称和使用的参数(这不是一个间谍程序:)它是为用户准备的)。

ChartSaveTemplate + 解析。这里有 一个MT5的例子,是一个EA的例子。以此类推,转换为MT4指标。

 
与本主题无关的评论已被移至 "MQL4 MT4 MetaTrader 4初学者的问题"。
 
与本主题无关的评论已被移至 "MQL4 MT4 MetaTrader 4初学者的问题"。
 

一个一直困扰着开发者的问题。

为什么没有像以下这样的功能?

datetime OrderDateModified(ticket)){} 		//последнее изменение на стороне брокера любого из параметров ордера
datetime OrdersTotalLastModified(){}		//последнее изменение на стороне брокера среди всех не закрытых ордеров MODE_TRADES на счете

这将提高生产力,因此可以消除许多不必要的请求/操作,并在订单搜索混乱中节省时间

问题到底出在哪里?

 

在编辑器的帮助中没有关于ENUM_SYMBOL_ORDER_GTC_MODE枚举的描述。