Preguntas de un "tonto" - página 59

 
Yedelkin:
¿Las matrices bidimensionales como array[][] no funcionan?
En teoría, deberían, e incluso he intentado... No lo he dominado. Me gustaría ver una aplicación lista, si es posible en principio. Hubo muchos contratiempos inmediatamente... Si hablamos de un array bidimensional, lo primero que me extrañó fue que los buffers son inicialmente indefinidos, es decir, dinámicos. ¿Cómo podrían cargarse en la matriz? Y entonces... Si cada búfer tiene su propia longitud individual cuando se llena, terminaremos con una matriz cúbica en lugar de una bidimensional, y ni siquiera será un cubo, sino una especie de tetris en 3D.
 
x100intraday:
En teoría deberían, incluso lo intenté... No pude hacerlo. Me gustaría ver una implementación terminada, si es posible en principio. Hubo muchos contratiempos inmediatamente... Si hablamos de un array bidimensional, lo primero que me extrañó fue que los buffers son inicialmente indefinidos, es decir, dinámicos. ¿Cómo podrían cargarse en la matriz? Y entonces... Si cada búfer tiene su propia longitud individual cuando se llena, terminaremos con una matriz cúbica en lugar de una 2D, pero ni siquiera será un cubo, sino una especie de tetris 3D.
Utiliza la estructura como una envoltura para un buffer dinámico. Se ha probado y funciona.
 

¿Pueden decirme cómo encontrar la hora de cierre de una transacción?

No lo encuentro en las propiedades del trato.

 
masharov:

¿Pueden decirme cómo averiguar la hora de cierre de una transacción?

No lo encuentro en las propiedades del trato.

La operación (orden) no tiene hora de cierre, como era en MT4. Para determinar la duración de una "operación única", como era en MT4, tendremos que analizar las operaciones de "apertura" (IN) y las de "cierre" (OUT/INOUT).

Lo mismo ocurre con el puesto.

 
El Manual de Referencia dice que para la funciónPositionGetSymbol() "si no se encuentra ninguna posición, se devolverá una cadena vacía". Y si lo que hay que controlar es la devolución de cadenas vacías, ¿con qué debe compararse el valor devuelto por la función: con NULL o con "" (dos comillas)?
 
Yedelkin:
El Manual de Referencia dice que para la función PositionGetSymbol() "si no se encuentra ninguna posición, se devolverá una cadena vacía". Y si es necesario controlar la devolución de cadenas vacías, ¿con qué debe compararse el valor de retorno de la función: NULL o "" (dos comillas)?
Es necesario utilizar otra función para comprobar si hay una posición.
 
Renat:
Es necesario utilizar otra función para comprobar si hay una posición.
No, el propósito no es comprobar si hay una posición, sino aplicar el operador continue cuando se devuelve una cadena vacía en el bucle. En un post anterior escribí:"es necesario controlar la devolución de cadenas vacías", así que ¿quién puede decirme qué comparar?
Документация по MQL5: Основы языка / Операторы / Оператор продолжения continue
Документация по MQL5: Основы языка / Операторы / Оператор продолжения continue
  • www.mql5.com
Основы языка / Операторы / Оператор продолжения continue - Документация по MQL5
 
Yedelkin:
No, el propósito no es comprobar si hay una posición, sino utilizar el operador continue cuando se devuelve una cadena vacía en el bucle. Escribí en un mensaje anterior:"es necesario rastrear el retorno de las cadenas vacías".Entonces, ¿con qué comparar, quién lo dirá?

La sección de ayuda tiene un tipo void y una constante NULL. De hecho, podría haberlo comprobado hace mucho tiempo:

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

Hay una sección en la ayuda sobre el tipo void y la constante NULL.

Bueno, sí, hay una sección. Sólo que esta sección no dice exactamente cómo se denota una cadena vacía. El ejemplo de la sección utiliza la variable NULL sólo para detectar una cadena no inicializada.

En cuanto a la autocomprobación, la cuestión surgió después de que el compilador soltara la frase

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

de la siguiente manera:"conversión implícita de 'número' a 'cadena'", pero la comparación de los valores de cadena especificados por separado no causó ninguna objeción al compilador . Por eso hice la pregunta en lugar de agravarme con razonamientos casi teóricos sobre "cast to an older type" y tratar de simplificar el código.

De tu ejemplo se desprende que al menos los desarrolladores del lenguaje utilizan las comillas dobles sin espacios para denotar una cadena vacía. Eso es lo que quería saber. Gracias.

 
Yedelkin:

Bueno, sí, hay una sección. Sólo que esta sección no dice exactamente cómo se identifica una cadena vacía. El ejemplo de la sección utiliza la variable NULL sólo para detectar una cadena no inicializada.

En cuanto a la autocomprobación, la cuestión ha surgido después de que el compilador haya soltado la siguiente frase

¿Qué esperaba obtener de esta expresión?

(NULL || "")
Leer operaciones booleanas