新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 449

 
Juer:

如何在知道结构型变量的字段的序列号的情况下,获得该结构型变量的字段的值。

我知道1号字段(即double)的值已经改变。我如何使用序列号来寻找这个字段?

或者告诉我,我怎样才能在知道其字符串名称的情况下获得结构的字段?

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

这里我有一个值

string field="dval"。

我想查询这个特定的结构字段。

 
Juer:

或者告诉我,我怎样才能得到一个知道其字符串名称的结构域?

这里我有一个值

string field="dval"。

我想查询这个特定的结构字段。

结构和,类和接口

 
Konstantin Nikitin:

结构和,类和接口

谢谢,你能告诉我我的问题的答案在哪里吗?

 
Juer:

谢谢,但你能告诉我我的问题的答案在哪里吗?

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;

有什么问题呢,有分配和从结构中获得价值的例子。

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

//...

string field=DoubleToString(Test.dval);

你只需要将双数 转换字符串 双向字符串

 
Konstantin Nikitin:

有什么问题,有分配和从结构中获得价值的例子。

你所需要做的就是将双倍数 转换字符串 双向字符串

你写了什么,它是如何解决我的问题的?我不明白这一点。

而这只是一个例子。我的结构有几个不同类型的字段。而且我不知道字段类型,我只知道字段名。

我有一个结构的字符串字段名。我想在知道这个名字的情况下,请求结构中的相应字段,也就是获得这个字段的值。

 

你知道的,你在java上被宠坏了)。

你需要这个。
https://www.mql5.com/ru/code/13663

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

你写了什么,它是如何解决我的问题的?这一点并不清楚。

而这只是一个例子。我的结构有几个不同类型的字段。而且我不知道字段类型,我只知道字段名。

我有一个结构的字符串字段名。我想在知道这个名字的情况下,查询结构中的相应字段,即获得这个字段的值。

看这里,也许这就是我需要的东西?

关于交易、自动交易系统和策略测试的论坛

我可以以编程方式定义金字塔类型吗?

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

也就是说,在读取一个变量的值之前,要先得到它的类型,然后将该值读到相应类型的变量中。
 

你想问吗?

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

该函数计算了交易标准。该函数返回以下值。

10- 触发了开市买入订单的交易标准
20- 开启卖出 订单 交易标准已经触发
11- 触发的市场买入 订单关闭 的交易标准。
21- 关闭卖出市场订单 的交易标准已经触发;21 - 关闭卖出 订单的市场标准 已经触发。

   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 возвращаемые значения

为什么该程序如此锁定返回值?

 
Alexey Viktorov:

看这里,也许这才是正确的。


也就是说,在读取一个变量的值之前,要先得到它的类型,然后将该值读到相应类型的变量中。

而且我有几个相同类型的字段。我不认为那会有什么帮助。

我发现这个https://www.mql5.com/ru/code/16282

我决定用字节来传递它的地址(偏移量)而不是字段名。

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

你想问吗?

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

该函数计算了交易标准。该函数返回以下值。

10- 触发了开市买入订单的交易标准
20- 开启卖出 订单 交易标准已经触发
11- 触发了关闭买入 市场订单的交易标准
21- 关闭卖出市场订单 的交易标准已经触发;21 - 关闭卖出 订单的市场标准 已经触发。

为什么该程序如此锁定返回值?

这个周期是一个多次重复的过程。这里也有一个分支。当第一个条件被触发时,操作者返回被执行,程序执行 停止。如果条件为假,则检查第二个条件,以此类推。如果4个条件都是假的,将执行以下内容

原因: