Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 449

 
Juer:

Como posso obter o valor de um campo de uma variável do tipo de estrutura, conhecendo o número seqüencial do campo naquela estrutura.

Eu sei que o campo nº 1 (ou seja, o dobro) mudou de valor. Como posso usar o número sequencial para encontrar este campo?

Ou me diga como posso obter o campo da estrutura sabendo seu nome de corda?

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

aqui eu tenho um valor

string field="dval";

Quero consultar este campo particular de estrutura.

 
Juer:

Ou me diga, como posso obter um campo de estrutura sabendo seu nome de corda?

aqui eu tenho um valor

string field="dval";

Quero consultar este campo particular de estrutura.

Estruturas e, classes e interfaces

 

Obrigado, você pode me dizer onde está a resposta à minha pergunta?

 
Juer:

Obrigado, mas você pode me dizer onde está a resposta à minha pergunta?

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;

Qual é o problema, existem exemplos de atribuição e de obtenção de valor das estruturas.

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

//...

string field=DoubleToString(Test.dval);

Você só precisa converter o dobro emcordel. DoubleToString

 
Konstantin Nikitin:

Qual é o problema, existem exemplos de atribuição e de obtenção de valor das estruturas.

Tudo o que você precisa fazer é converter o dobro emcordel. DoubleToString

O que você escreveu e como isso resolve meu problema? Eu não entendo.

E isto foi apenas um exemplo. Minha estrutura tem vários campos de diferentes tipos. E eu não conheço o tipo de campo, só conheço o nome do campo.

Eu tenho um nome de campo de corda da estrutura. Quero, conhecendo este nome, solicitar o campo correspondente da estrutura, ou seja, obter o valor neste campo.

 

você sabe, você está sendo estragado no java).

você precisa disto.
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:

O que você escreveu e como isso resolve meu problema? Não está claro.

E isso foi apenas um exemplo. Minha estrutura tem vários campos de diferentes tipos. E eu não conheço o tipo de campo, só conheço o nome do campo.

Eu tenho um nome de campo de corda da estrutura. Eu quero, conhecendo este nome, consultar o campo correspondente da estrutura, ou seja, obter o valor neste campo.

Olhe aqui, talvez isto seja o que eu preciso?

Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos

Posso definir programticamente o tipo de pirâmide?

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));
  }

Ou seja, antes de ler o valor de uma variável, obter seu tipo e depois ler o valor em uma variável do tipo correspondente.
 

Você gostaria de perguntar?

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

A função calcula os critérios comerciais. A função retorna os seguintes valores:

10- um critério comercial para a abertura de um mercado Uma ordem de compra foi acionada;
20- o critério comercial para a abertura de uma ordem de venda desencadeou
11- critério de negociação para fechar um mercado Ordem de compra acionada;
21- o critério de negociação para o fechamento de uma ordem de Sell market foi acionado; 21 - o critério de mercado para o fechamento de uma ordem de Sell foi acionado;

   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 que o programa está tão preso aos valores de retorno?

 
Alexey Viktorov:

Olhe aqui, talvez este seja o certo.


Isto é, antes de ler o valor de uma variável, obtenha seu tipo e depois leia o valor em uma variável do tipo correspondente.

E eu tenho vários campos do mesmo tipo. Acho que isso não vai ajudar.

Encontrei istohttps://www.mql5.com/ru/code/16282

Decidi passar seu endereço (offset) em bytes em vez do nome do campo.

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

Você gostaria de perguntar?

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

A função calcula os critérios comerciais. A função retorna os seguintes valores:

10- um critério comercial para a abertura de um mercado Uma ordem de compra foi acionada;
20- o critério comercial para a abertura de uma ordem de venda desencadeou
11- critério de negociação para fechar um mercado Ordem de compra acionada;
21- o critério de negociação para o fechamento de uma ordem de Sell market foi acionado; 21 - o critério de mercado para o fechamento de uma ordem de Sell foi acionado;

por que o programa está tão preso aos valores de retorno?

Este ciclo é uma repetição múltipla. Há também uma ramificação aqui. Quando a primeira condição dispara, o retorno do operador é executado e a execução do programa pára. Se a condição for falsa, a segunda condição é verificada, e assim por diante. Se todas as 4 condições forem falsas, as seguintes serão executadas

Razão: