Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Подключи MQL5 Cloud Network. Увеличивай свой рейтинг!
Vladimir Karputov
Модератор
45421
Vladimir Karputov 2015.03.03 06:23 
Напрямую, через глобальные переменные терминала не получается, так глобальные переменные терминала имеют тип "double" и, соответственно, происходит потеря точности при преобразовании.
Dmitry Fedoseev
42862
Dmitry Fedoseev 2015.03.03 06:48  
Можно разбить на два int, потом соединить.
Yury Kulikov
29874
Yury Kulikov 2015.03.03 07:48  
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");
}
Alexandr Gavrilin
31233
Alexandr Gavrilin 2015.03.03 10:14  
погляди пример в терминале Pipes там как раз все это и реализовано.
Vladimir Karputov
Модератор
45421
Vladimir Karputov 2015.03.03 10:31  
Yurich:

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

upd: пример. 

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

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

Комбинатор
15888
Комбинатор 2015.03.03 10:38  
barabashkakvn:
Никаких потерь быть не может.
Vladimir Karputov
Модератор
45421
Vladimir Karputov 2015.03.03 10:59  
Благодарю. Разобрался. Всё передаётся без потерь.
Alexander Bereznyak
21426
Alexander Bereznyak 2015.03.03 16:21  
TheXpert:
Никаких потерь быть не может.

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

Vladimir Karputov
Модератор
45421
Vladimir Karputov 2015.03.03 16:26  
sandex:

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

Лучше возьмите пример и проверьте. Способ предложенный Yurich  - рабочий.
Alexander Bereznyak
21426
Alexander Bereznyak 2015.03.03 16:41  
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

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