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

 
Напрямую, через глобальные переменные терминала не получается, так глобальные переменные терминала имеют тип "double" и, соответственно, происходит потеря точности при преобразовании.
 
Можно разбить на два int, потом соединить.
 
barabashkakvn:
Напрямую, через глобальные переменные терминала не получается, так глобальные переменные терминала имеют тип "double" и, соответственно, происходит потеря точности при преобразовании.

Можно использовать копирование через структуры, одна структура имеет один long, другая один double.

upd: пример. 

void OnStart()
{
   struct SLong      { long  value;}   v1, v2;
   struct SDouble    { double  value;} d1, d2;
   v1.value=LONG_MAX;
   d1=(SDouble)v1;
   GlobalVariableSet("test",d1.value);
   d2.value=GlobalVariableGet("test");
   v2=(SLong)d2;
   Print(d1.value," ",v1.value," ",v2.value);
   GlobalVariableDel("test");
}
 
погляди пример в терминале Pipes там как раз все это и реализовано.
 
Yurich:

Можно использовать копирование через структуры, одна структура имеет один long, другая один double.

upd: пример. 

Происходит потери последних чисел:

2015.03.03 11:30:28.648 test_script (GBPUSD,H1) 1.#QNAN 9223372036854775807 9223372036854775807

 
barabashkakvn:
Никаких потерь быть не может.
 
Благодарю. Разобрался. Всё передаётся без потерь.
 
TheXpert:
Никаких потерь быть не может.

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

 
sandex:

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

Лучше возьмите пример и проверьте. Способ предложенный Yurich  - рабочий.
 
barabashkakvn:
Лучше возьмите пример и проверьте. Способ предложенный Yurich  - рабочий.

Проверил, происходит потеря последних чисел, скрипт прилагается:

 2015.03.03 18:38:53.942 LongDoubleLong EURUSD,H1:   -9223372036854775808

2015.03.03 18:38:53.942 LongDoubleLong EURUSD,H1:   9.223372036854776e+018

2015.03.03 18:38:53.942 LongDoubleLong EURUSD,H1:   9223372036854775797

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