Передача значения типа "long" между индикаторами на разных графиках - страница 2

 

Каким образом место размещения может решить проблему различия количества значащих цифр, long имеет 19 значащих чисел, а double 17.

Теряете два числа.

 

С ulong еще сложнее:

 2015.03.03 18:48:43.598 UlongDoubleUlong EURUSD,H1:  18446744073709551615

2015.03.03 18:48:43.598 UlongDoubleUlong EURUSD,H1:   1.844674407370955e+019 

2015.03.03 18:48:43.598 UlongDoubleUlong EURUSD,H1:    9223372036854775808

Файлы:
 
sandex:

С ulong еще сложнее:

 2015.03.03 18:48:43.598 UlongDoubleUlong EURUSD,H1:  18446744073709551615

2015.03.03 18:48:43.598 UlongDoubleUlong EURUSD,H1:   1.844674407370955e+019 

2015.03.03 18:48:43.598 UlongDoubleUlong EURUSD,H1:    9223372036854775808

Простите, Вы умеете смотреть? Вот пример кода:https://www.mql5.com/ru/forum/41255#comment_1403673
Передача значения типа "long" между индикаторами на разных графиках
Передача значения типа "long" между индикаторами на разных графиках
  • www.mql5.com
Напрямую, через глобальные переменные терминала не получается, так глобальные переменные терминала имеют тип "double" и, соответственно, происходит потеря точности при преобразовании. - - Категория: технические индикаторы и анализ рынка форекс
 
sandex:

Каким образом место размещения может решить проблему различия количества значащих цифр, long имеет 19 значащих чисел, а double 17.

Теряете два числа.

И лонг и дабл занимают по 8-мь байтов. 
 
   long lng=LONG_MAX;
   
   uint i1=(uint)(lng & 0x00000000FFFFFFFF);
   uint i2=(uint)((lng >> 32) & 0x00000000FFFFFFFF);

   // Разделили, имеем две uint

   //***

   // Соединяем

   long lngz=((long)i2 << 32) | (long)i1;
  
   // Проверяем
   
   if(lng==lngz){
      Alert("ok");
   }
   else{
      Alert("er");
   }
Это как на два инта разделить.
 
sandex:

Как не может быть, посмотрите внимательно справку.

Вот-вот. Посмотрите внимательно что сверху написали, разберитесь, а потом почитайте внимательно справку.