초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 1109

 
Vitaly Muzichenko :

그러면 나는 분수를 얻지 못할 것입니다.

분명히 다음과 같은 것이 필요합니다.

typename(TralingStop)=="이중" ? ...

 
Artyom Trishkin :

typename(TralingStop)=="이중" ? ...

실제로는 그렇지 않습니다. 예를 들어 15 또는 15.0과 같이 입력 매개변수에 "입력"을 입력한 경우 입력 필드에 표시되는 것은 단순히 15, 즉 정수입니다. 12.3이 입력 매개변수에 입력된 경우 입력 필드에 12.3이 표시됩니다.

 
Vitaly Muzichenko :

실제로는 그렇지 않습니다. 예를 들어 15 또는 15.0과 같이 입력 매개변수에 "입력"을 입력한 경우 입력 필드에 표시되는 것은 단순히 15, 즉 정수입니다. 12.3이 입력 매개변수에 입력된 경우 입력 필드에 12.3이 표시됩니다.

그렇다면 이것은 임의의 숫자에 대한 소수 자릿수의 정의입니다. 어딘가에 그런 주제가있었습니다. 모든 것이 거기에서 논의되었습니다.

 
Artyom Trishkin :

그렇다면 이것은 임의의 숫자에 대한 소수 자릿수의 정의입니다. 어딘가에 그런 주제가있었습니다. 모든 것이 거기에서 논의되었습니다.

인것 같았는데 못찾아서 여기에 적었습니다(

 
Vitaly Muzichenko :

실제로는 그렇지 않습니다. 예를 들어 15 또는 15.0과 같이 입력 매개변수에 "입력"을 입력한 경우 입력 필드에 표시되는 것은 단순히 15, 즉 정수입니다. 12.3이 입력 매개변수에 입력된 경우 입력 필드에 12.3이 표시됩니다.

이 스크립트로 실험:

 #property script_show_inputs
input double inp1 = 15.0 ;
input double inp2 = 12.3 ;
//+------------------------------------------------------------------+
void OnStart ()
  {
   int dig1 = GetDigitsInDouble(inp1);
   int dig2 = GetDigitsInDouble(inp2);
   printf ( "inp1 = %f --> %s" ,inp1, DoubleToString (inp1,dig1));
   printf ( "inp2 = %f --> %s" ,inp2, DoubleToString (inp2,dig2));
  }
//_______________________________________________________________________
int       GetDigitsInDouble( double doublevalue)
  {
   long l= long (doublevalue/ 0.0000001 ); int result= 0 ,i= 10000000 ; while (result< 7 && l%i> 0 )
     {i/= 10 ; result++;} return result;
  }

2019.08.06 22:40:44.668 tst1 (EURUSD,H1) inp1 = 15.000000 --> 15

2019.08.06 22:40:44.668 tst1 (EURUSD,H1) inp2 = 12.300000 --> 12.3


소수점 7자리가 가끔 틀릴 때가 있는 것 같습니다.

 
Vitaly Muzichenko :

인것 같았는데 못찾아서 여기에 적었습니다(

Получаем количество десятичных знаков после запятой любых чисел (не только котировок) в обход Digits() на MQL4 и MQL5
Получаем количество десятичных знаков после запятой любых чисел (не только котировок) в обход Digits() на MQL4 и MQL5
  • 2018.11.03
  • www.mql5.com
Думаю не у одного меня была редкая ситуация когда нужно было получить количество десятичных знаков после запятой, а функция Digits() работает тольк...
 
Igor Makanu :

이 스크립트로 실험:

2019.08.06 22:40:44.668 tst1 (EURUSD,H1) inp1 = 15.000000 --> 15

2019.08.06 22:40:44.668 tst1 (EURUSD,H1) inp2 = 12.300000 --> 12.3


소수점 7자리가 가끔 틀릴 때가 있는 것 같습니다.

Artyom Trishkin :

모두 감사합니다. 시도하겠습니다!

 
다른 MT5 단말기의 어드바이저로부터 읽을 수 있도록 열린 위치 (로트, 유형) 에 대한 정보를 기록하는 방법은 무엇입니까?
 
여러분, 이 질문에 대해 설명하십시오. 원격 에이전트에 최적화 가 있고 어드바이저가 파일에 데이터를 쓰는 경우 내 로컬 에이전트만 테스터 폴더에 있고 원격이 없다...
아니면 내가 잘못된 곳을 찾고 있습니까?
그렇다면 원격 에이전트에서 파일을 수신하는 기능을 구현하는 방법이 있습니까?
 
Vitaly Muzichenko :

인것 같았는데 못찾아서 여기에 적었습니다(

따라서 모든 것이 문서에 설명되어 있습니다. fmod에서 제수를 1로 설정하고 숫자의 소수 부분 또는 0을 얻습니다. 결국 필드나 입력 변수에 소수 자릿수가 몇 개나 입력되는지는 중요하지 않습니다.

Документация по MQL5: Математические функции / MathMod
Документация по MQL5: Математические функции / MathMod
  • www.mql5.com
Функция MathMod рассчитывает вещественный остаток f от val / y таким образом, что val = i * y + f , где i является целым числом, f имеет тот же знак, что и val, и абсолютное значение f меньше, чем абсолютное значение y.
사유: