来自一个 "傻瓜 "的问题 - 页 59

 
Yedelkin:
像array[][]这样的二维数组就不能用?
从理论上讲,他们应该这样做,而且我甚至尝试过...我还没有掌握它。我希望看到一个现成的实施方案,如果它在原则上是可能的。马上就有了很多麻烦事...如果我们谈论的是一个二维数组,首先让我困惑的是,缓冲区最初是未定义的,也就是动态的。它们怎么能被装入父数组呢?然后...如果每个缓冲区在填充时都有自己独立的长度,我们最终会得到一个立方体数组,而不是二维数组,它甚至不是一个立方体,而是某种三维四边形。
 
x100intraday:
理论上他们应该这样做,我甚至试着...我无法做到这一点。如果原则上可以的话,我希望看到一个完整的实现。立即出现了很多麻烦事...如果我们谈论的是一个二维数组,首先让我困惑的是,缓冲区最初是未定义的,也就是动态的。它们怎么能被装入父数组呢?然后...如果每个缓冲区在填充时都有自己独立的长度,我们最终会得到一个立方体数组而不是二维数组,但它甚至不是一个立方体,而是某种三维俄罗斯方块。
使用该结构作为动态缓冲区的封装器。它已经过测试--它是有效的。
 

你能告诉我如何查出交易的结束时间吗?

我在交易属性中找不到它。

 
masharov:

你能告诉我如何查出交易的结束时间吗?

我在交易属性中找不到它。

交易(订单)没有关闭时间,因为它在MT4中是这样的。为了确定 "单一交易 "的寿命,就像在MT4中那样,我们必须分析 "开仓"(IN)交易和 "平仓"(OUT/INOUT)交易。

这同样适用于该职位。

 
参考手册》说,对于PositionGetSymbol() 函数,"如果没有找到位置,将返回一个空字符串"。如果需要跟踪的是空字符串的返回,那么函数返回的值应该与什么相比较:与NULL还是与""(两个引号)?
 
Yedelkin:
参考手册》说,对于PositionGetSymbol()函数,"如果没有找到位置,将返回一个空字符串"。而如果有必要监控空字符串的返回,那么函数的返回值应该与什么相比较:NULL还是""(两个倒逗号)?
你需要使用另一个函数来检查是否有一个位置。
 
Renat:
你需要使用另一个函数来检查这个位置是否存在。
不,目的不是检查是否有一个位置,而是在循环中返回一个空字符串时应用继续操作符。我在以前的帖子中写道:"有必要监控空字符串的返回",那么谁能告诉我该如何比较?
Документация по MQL5: Основы языка / Операторы / Оператор продолжения continue
Документация по MQL5: Основы языка / Операторы / Оператор продолжения continue
  • www.mql5.com
Основы языка / Операторы / Оператор продолжения continue - Документация по MQL5
 
Yedelkin:
不,目的不是检查是否有一个位置,而是在循环中返回一个空字符串时使用continue操作符。我在以前的信息中写道:"有必要跟踪空字符串的返回。"那么,要比较什么呢,谁来告诉我们呢?

帮助部分有一个void类型和一个NULL常数。一般来说,你很早就可以检查了。

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   string a=NULL;
   string b="";
   if(a==b)
      Print("Пустая строка и NULL - одно и то же");
   else
      Print("Пустая строка не равна NULL");
  }
//+--
 
Rosh:

在帮助中,有一个关于void类型和NULL常数 的章节。

嗯,是的,有一个部分。只是这一节并没有说清楚空字符串是如何表示的。本节中的例子仅使用NULL变量来检测未初始化的字符串。

至于自我检查,这个问题是在编译器爆出这句话之后出现的

switch(PositionGetSymbol(i)!=(NULL || ""))

如下:"从'数字'到'字符串'的隐性转换",但单独比较指定的字符串值并没有引起编译器的任何异议。这就是为什么我提出了这个问题,而不是被 "投向旧类型 "的近乎理论的推理所激怒,试图简化代码。

从你的例子中可以看出,至少语言开发人员使用不带空格的双引号来表示空字符串。 这正是我想知道的。谢谢你。

 
Yedelkin:

嗯,是的,有一个部分。只是这一节并没有确切说明如何识别空字符串。本节中的例子仅使用NULL变量来检测未初始化的字符串。

至于自我测试,在编译器爆出以下这句话后,问题已经出现了

你期望从这个表达中得到什么?

(NULL || "")
读取布尔运算