Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 449

 
Juer:

Cómo puedo obtener el valor de un campo de una variable de tipo estructura, conociendo el número de secuencia del campo en dicha estructura.

Sé que el campo 1 (es decir, el doble) ha cambiado de valor. ¿Cómo puedo utilizar el número de secuencia para encontrar este campo?

O dime cómo puedo obtener el campo de la estructura sabiendo su nombre de cadena?

struct test
  {
   int num;
   double dval;
   string sval;			
  };

aquí tengo un valor

string field="dval";

Quiero consultar este campo de estructura particular.

 
Juer:

O dígame, ¿cómo puedo obtener un campo de estructura conociendo su nombre de cadena?

aquí tengo un valor

string field="dval";

Quiero consultar este campo de estructura particular.

Estructuras y, clases e interfaces

 

Gracias, ¿puede decirme dónde está la respuesta a mi pregunta?

 
Juer:

Gracias, pero ¿puede decirme dónde está la respuesta a mi pregunta?

struct trade_settings
  {
   double take;         // значения цены фиксации прибыли
   double stop;         // значение цены защитного стопа
   uchar  slippage;     // значение допустимого проскальзывания
  };
//--- создали и проинициализировали переменную типа trade_settings
trade_settings my_set={0.0,0.0,5};  
if (input_TP>0) my_set.take=input_TP;

Cuál es el problema, hay ejemplos de asignación y obtención de valor de las estructuras.

struct test
  {
   int num;
   double dval;
   string sval;                 
  };
test Test;

//...

string field=DoubleToString(Test.dval);

Sólo hay que convertir el doble encadena. DoubleToString

 
Konstantin Nikitin:

Cuál es el problema, hay ejemplos de asignación y obtención de valor de las estructuras.

Lo único que hay que hacer es convertir el doble encadena. DoubleToString

¿Qué ha escrito y cómo resuelve mi problema? No lo entiendo.

Y esto era sólo un ejemplo. Mi estructura tiene varios campos de diferentes tipos. Y no sé el tipo de campo, sólo sé el nombre del campo.

Tengo un nombre de campo de cadena de la estructura. Quiero, conociendo este nombre, solicitar el campo correspondiente de la estructura, es decir, obtener el valor de este campo.

 

ya sabes, te estás echando a perder con el java).

necesitas esto.
https://www.mql5.com/ru/code/13663

JSON Serialization and Deserialization (native MQL)
JSON Serialization and Deserialization (native MQL)
  • votos: 34
  • 2015.08.18
  • o_o
  • www.mql5.com
Сериализация и десериализация JSON-протокола. Портированный код со скоростной библиотеки С++. Практичный пример: авторизация на сайте и парсинг ответа Благодарности принимаются в виде примеров, кто как применяет MQL для работы с веб-ресурсами. Поделитесь своим опытом работы с JSON в MQL. В протокол добавлены функции Escape / Unescape...
 
Juer:

¿Qué ha escrito y cómo resuelve mi problema? No está claro.

Y eso era sólo un ejemplo. Mi estructura tiene varios campos de diferentes tipos. Y no sé el tipo de campo, sólo sé el nombre del campo.

Tengo un nombre de campo de cadena de la estructura. Quiero, conociendo este nombre, consultar el campo correspondiente de la estructura, es decir, obtener el valor de este campo.

Mira aquí, ¿tal vez esto es lo que necesito?

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias

¿Puedo definir el tipo de pirámide mediante programación?

Anatoli Kazharski, 2015.06.17 17:07

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   double d_value =0.0;
   int    i_value =0;
   Print("d_value: type=",GetTypeName(d_value));
   Print("i_value: type=",GetTypeName(i_value));
  }
//+------------------------------------------------------------------+
//| Возвращает в строковом виде тип                                  |
//+------------------------------------------------------------------+
template<typename T>
string GetTypeName(const T &t)
  {
   return(typename(T));
  }

Es decir, antes de leer el valor de una variable, obtener su tipo y luego leer el valor en una variable del tipo correspondiente.
 

¿Quieres preguntar?

https://book.mql4.com/ru/build/conditions

La función calcula los criterios de negociación. La función devuelve los siguientes valores:

10- se ha activado un criterio de negociación para la apertura de una orden de compra de mercado;
20- se ha activado el criterio de apertura de una orden de venta
11- criterio de negociación para el cierre de una orden de compra de mercado activada;
21 - se ha activado el criterio de negociación para el cierre de una orden de mercado de venta;

   if(M_0>S_0 && -M_0>Opn && St_M_0>St_S_0 && St_S_0<St_min)
      return(10);                      // Открытие Buy    
   if(M_0<S_0 &&  M_0>Opn && St_M_0<St_S_0 && St_S_0>St_max)
      return(20);                      // Открытие Sell 
   if(M_0<S_0 &&  M_0>Cls && St_M_0<St_S_0 && St_S_0>St_max)
      return(11);                      // Закрытие Buy    
   if(M_0>S_0 && -M_0>Cls && St_M_0>St_S_0 && St_S_0<St_min)
      return(21);                      // Закрытие Sell  
return 10 20 11 21 возвращаемые значения

¿por qué el programa está tan bloqueado en los valores de retorno?

 
Alexey Viktorov:

Mira aquí, tal vez este sea el correcto.


Es decir, antes de leer el valor de una variable, obtener su tipo y luego leer el valor en una variable del tipo correspondiente.

Y tengo varios campos del mismo tipo. No creo que eso ayude.

Encontré estehttps://www.mql5.com/ru/code/16282

He decidido pasar su dirección (offset) en bytes en lugar del nombre del campo.

TypeToBytes
TypeToBytes
  • votos: 22
  • 2016.09.13
  • fxsaber
  • www.mql5.com
Эта кроссплатформенная библиотека позволяет удобно осуществлять побайтовую работу со структурами, массивами и стандартными типами данных. Возможности Побайтовое сравнение (== и !=) между собой структур, массивов и стандартных типов данных (в MQL по умолчанию отсутствуют операторы сравнения структур) в любом сочетании. Определение байтового...
 
Seric29:

¿Quieres preguntar?

https://book.mql4.com/ru/build/conditions

La función calcula los criterios de negociación. La función devuelve los siguientes valores:

10- se ha activado un criterio de negociación para abrir una orden de compra de mercado;
20- se ha activado el criterio de apertura de una orden de venta
11- criterio de negociación para el cierre de una orden de compra de mercado activada;
21 - se ha activado el criterio de negociación para el cierre de una orden de mercado de venta;

¿por qué el programa está tan bloqueado en los valores de retorno?

Este ciclo es una repetición múltiple. Aquí también hay una ramificación. Cuando se dispara la primera condición, se ejecuta el operador retorno y se detiene la ejecución del programa. Si la condición es falsa, se comprueba la segunda condición, y así sucesivamente. Si las 4 condiciones son falsas, se ejecutará lo siguiente

Razón de la queja: