MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 449

 
Juer :

이 구조에서 필드의 서수를 알고 있는 유형 구조의 변수 필드 값을 어떻게 얻을 수 있습니까?

필드 #1(즉, 이중)이 값을 변경했다는 것을 알고 있습니다. 일련 번호로 이 필드를 찾으려면 어떻게 해야 합니까?

아니면 문자열 이름을 알고 구조 필드를 얻을 수 있는 방법을 알려주시겠습니까?

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

여기에 의미가 있습니다

문자열 필드 = "dval";

구조체의 이 필드를 정확히 쿼리하고 싶습니다.

 
Juer :

아니면 문자열 이름을 알고 구조 필드를 얻을 수 있는 방법을 알려주시겠습니까?

여기에 의미가 있습니다

문자열 필드 = "dval";

구조체의 이 필드를 정확히 쿼리하고 싶습니다.

구조체 및, 클래스 및 인터페이스

 

감사합니다만 제 질문에 대한 답변이 어디에 있는지 알려주실 수 있나요?

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

double string 으로 변환하기만 하면 됩니다. DoubleToString

 
Konstantin Nikitin :

문제는 구조체에서 값을 할당하고 가져오는 예가 있다는 것입니다.

double string 으로 변환하기만 하면 됩니다. DoubleToString

당신은 무엇을 썼고 그것이 내 문제를 어떻게 해결합니까? 불명.

그리고 이것은 단지 예일 뿐입니다. 내 구조체에는 여러 유형의 필드가 있습니다. 그리고 필드 유형은 모르고 필드 이름만 알고 있습니다.

구조 문자열 필드 이름이 있습니다. 이 이름을 알고 구조의 해당 필드, 즉 해당 필드의 값을 가져옵니다.

 

버릇, 자바에서)

당신은 그것을 필요로
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 :

당신은 무엇을 썼고 그것이 내 문제를 어떻게 해결합니까? 불명.

그리고 이것은 단지 예일 뿐입니다. 내 구조체에는 다양한 유형의 여러 필드가 있습니다. 필드 유형은 모르고 필드 이름만 알고 있습니다.

구조 문자열 필드 이름이 있습니다. 이 이름을 알고 구조의 해당 필드, 즉 해당 필드의 값을 가져옵니다.

여기 보세요, 이게 당신에게 필요한 것 아닐까요?

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

pyremen의 유형을 프로그래밍 방식으로 결정할 수 있습니까?

아나톨리 카자르스키 , 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 - 매도 시장 주문을 마감하기 위한 거래 기준이 트리거되었습니다.

   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 - 매도 시장 주문을 마감하기 위한 거래 기준이 트리거되었습니다.

프로그램이 반환 값에 그렇게 고정되어 있는 이유는 무엇입니까? 왜 이런 식으로 수행됩니까?

주기가 여러 번 반복됩니다. 다음은 분기입니다. 첫 번째 조건이 트리거된 후 return 문 이 실행되고 프로그램 실행이 종료됩니다. 조건이 거짓으로 판명되면 두 번째 조건을 확인하는 식으로... 4가지 조건이 모두 거짓이면 다음 조건이 실행됩니다