Preguntas de un "tonto" - página 141

 
Yedelkin:

El problema parece ser otro.

El valor "3" no vuelve de ninguna manera :) Al fin y al cabo, las enumeraciones están numeradas desde cero.

Utilice la función EnumToString para obtener los valores de la enumeración
 
En MQL5, los valores de los períodos de tipo PERIOD_M1 ... PERIOD_MN1 son valores de tipo entero? Quiero compararlos utilizando el operador de conmutación. Por ejemplo, si la expresión es correcta:
input ENUM_TIMEFRAMES Period_code=PERIOD_H4;
int result; string big;

switch (Period_code)
{
case PERIOD_H4: { result=1; big="data 1"; break; }
case PERIOD_D1: { result=2; big="data 2"; break; }
}
 

Rosh:

Yedelkin:

El problema parece estar en otra parte.

El valor "3" no vuelve de ninguna manera :) Porque las enumeraciones se numeran a partir de cero.

Utilice la función EnumToString para obtener valores de enumeración

Lo extraño es que esta sugerencia no haya surgido antes, cuando el autor del tema local exponía sus resultados como"Returns 3". Bien, vayamos por el camino de los invictos.

T-G:

Devuelve 3 - es decir, SYMBOL_TRADE_EXECUTION_MARKET.

Siguiendo el consejo de Roche, escribimos una simple comprobación (usando EnumToString):

//+------------------------------------------------------------------+
//|                                                       class5.mq5 |
//+------------------------------------------------------------------+
void OnStart()
  {
   Print("EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(3))=",EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(3)));
  }
//+------------------------------------------------------------------+

¿Y qué vemos? - Lo que vemos es que el número "3" no corresponde a SYMBOL_TRADE_EXECUTION_MARKET. Así que volvemos a https://www.mql5.com/ru/forum/3775/page143#comment_192116

 
Paladin80:
En MQL5 los valores de los períodos de tipo PERIOD_M1 ... PERIOD_MN1 son valores de tipo entero? Quiero compararlos utilizando el operador de conmutación. Por ejemplo, es la expresión
ENUM_TIMEFRAMES es un enum(MQL5 Reference / Status Check / Period). Enumeraciones es un tipo de datos entero(MQL5 Reference / Language Basics / Data Types / Integer Types / Enumerations ).
 
Hola, ¿podríais decirme cómo comprobar si hoy se ha cerrado una compra o una venta para un instrumento concreto?
 
T-G:
Hola, ¿pueden decirme cómo comprobar si la compra y la venta de un determinado instrumento se han cerrado hoy?

Si nadie publica el código listo, intenta escribirlo tú mismo. Probablemente el método más sencillo sea el siguiente: seleccione el historial de operaciones de un día concreto(HistorySelect) e intente buscar en el historial las operaciones que se refieran al símbolo seleccionado

SÍMBOLO_DE_TRATO

Nombre del símbolo para el que se ha realizado la operación

cadena

a continuación, compruebe

DEAL_TIME

Hora de la negociación

datetime

и

DEAL_ENTRY_OUT

Salida del mercado

Si hubo varias posiciones de cierre para un símbolo durante el día, también puede obtener la hora de cada operación y procesarla según el algoritmo del autor.

 
Yedelkin:

Lo extraño es que esta sugerencia no se haya hecho antes, cuando el autor del tema local exponía sus resultados como"Devoluciones 3". Bien, vayamos por el camino de los invictos.

Siguiendo el consejo de Roche, escribimos una simple comprobación (usando EnumToString):

//+------------------------------------------------------------------+
//|                                                       class5.mq5 |
//+------------------------------------------------------------------+
void OnStart()
  {
   Print("EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(3))=",EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(3)));
  }
//+------------------------------------------------------------------+

¿Y qué vemos? - Lo que vemos es que el número "3" no se corresponde de ninguna manera con SYMBOL_TRADE_EXECUTION_MARKET. Así que volvemos a https://www.mql5.com/ru/forum/3775/page143#comment_192116.

¿Qué te parece esto? :)

Print("SYMBOL_TRADE_EXECUTION_MARKET=",SYMBOL_TRADE_EXECUTION_MARKET);
Print("EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(2))=",EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(2)));
T-G:

Devuelve 3 - es decir SYMBOL_TRADE_EXECUTION_MARKET

3 es SYMBOL_TRADE_EXECUTION_EXCHANGE lógicamente.

Será mejor que nos diga qué y dónde estamos tratando de comerciar... :)

 
Interesting:

¿Qué te parece esto? :)

Print("SYMBOL_TRADE_EXECUTION_MARKET=",SYMBOL_TRADE_EXECUTION_MARKET);
Print("EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(2))=",EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(2)));

Bueno, es lo mismo. Sólo que desde otro ángulo. El número "3" y el valor de la enumeración"SYMBOL_TRADE_EXECUTION_MARKET" no están relacionados en absoluto.Excepto quizás por la relación de precedencia.

Interesante:

3 es SYMBOL_TRADE_EXECUTION_EXCHANGE lógicamente.

No es tan "lógico", pero así es en este momento.

 
Yedelkin:

Bueno, es lo mismo. Sólo que desde un ángulo diferente. El número "3" y el valor de la enumeración"SYMBOL_TRADE_EXECUTION_MARKET" no están relacionados de ninguna manera.La única diferencia está en la relación de precedencia.

No es tan "lógico", pero así es en este momento.

Bueno, tiene sentido que tengamos ejecución de intercambio(SYMBOL_TRADE_EXECUTION_EXCHANGE) y en consecuencia no haya TP/SL
 
Interesting:
Así que tiene sentido, tenemos la ejecución de intercambio(SYMBOL_TRADE_EXECUTION_EXCHANGE) y por lo tanto no hay TP/SL
No encuentro el camino, ¿en qué parte de la Guía de Referencia dice que cuando hay una ejecución de intercambio, la solicitud no debe contener TP/SL?