Как перевести значение глобальной переменной в тип данных double?

 

Подскажите, пожалуйста, как перевести значение глобальной переменной  в MQL4 в какой-либо тип данных, например double?

Значение находится в переменной  "balance"

Так, как в примере не получается!((

double balance =StringToDouble(ObjectGetString(0,"balance",OBJPROP_TEXT));
Документация по MQL5: Глобальные переменные терминала / GlobalVariableGet
Документация по MQL5: Глобальные переменные терминала / GlobalVariableGet
  • www.mql5.com
GlobalVariableGet - Глобальные переменные терминала - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
double balance = AccountInfoDouble(ACCOUNT_BALANCE);
Только не уверен, что правильно Вас понял. Вам баланс получить? Вот он. Область видимости (scope) зависит от места объявления.
 
Yadroshnikoff:

Подскажите, пожалуйста, как перевести значение глобальной переменной  в MQL4 в какой-либо тип данных, например double?

Значение находится в переменной  "balance"

Так, как в примере не получается!((




double balance =StringToDouble(ObjectGetString(0,"balance",OBJPROP_TEXT));

Она и есть double. Вернее, была, пока Вы ее не изнасиловали. 

 
Yadroshnikoff:

Подскажите, пожалуйста, как перевести значение глобальной переменной  в MQL4 в какой-либо тип данных, например double?

Значение находится в переменной  "balance"

Так, как в примере не получается!((




double balance =StringToDouble(ObjectGetString(0,"balance",OBJPROP_TEXT));

Почитайте в документации о ключевом слове union.
Создайте union с полями нужных типов той же длины, что и double. Пишите в одно поле, читайте из другого.
 

pribludilsa #:
Только не уверен, что правильно Вас понял. Вам баланс получить? Вот он. Область видимости (scope) зависит от места объявления.

Да, мне требуется получить из глобальной переменной значение баланса, записанного в неё на момент прошедшего события, и перевести его в double для последующей обработки. Текущий баланс я знаю...

 

считываем:

double balance = GlobalVariableGet("balance");

записываем:

GlobalVariableSet("balance",AccountInfoDouble(ACCOUNT_BALANCE));
если эти операции будут выполняться на каждом тике, то лучше так не делать!!!!
 
Yadroshnikoff #:

Да, мне требуется получить из глобальной переменной значение баланса, записанного в неё на момент прошедшего события, и перевести его в double для последующей обработки. Текущий баланс я знаю...

У вас неправильные представления о глобальных переменных.

Глобальная переменная - это не то, что у вас в коде. В вашем коде производится извлечение текста из графического объекта, который носит имя "balance".

 
Yadroshnikoff:

Подскажите, пожалуйста, как перевести значение глобальной переменной  в MQL4 в какой-либо тип данных, например double?

Значение находится в переменной  "balance"

Так, как в примере не получается!((

Вот пример неправильной формулировки вопроса и соответственно куча ненужных советов. При чём тут глобальные переменные??? Вы получаете текст из объекта, а уверены что полученное можно перевести в тип double? Переведите в тип double "абра-ка-дабра" получится?

 
Yadroshnikoff #:

Да, мне требуется получить из глобальной переменной значение баланса, записанного в неё на момент прошедшего события, и перевести его в double для последующей обработки. Текущий баланс я знаю...

Почитайте, что такое области видимости, чтобы понять, что такое глобальные переменные. По вашему вопросу, можно записывать значение баланса в момент прошедшего события, потом запрашивать. Вам не нужны графические объекты, для этой задачи. И еще, если позволите, совет. Мне кажется, лучше сразу изучать mql5. Там тестер лучше. Брокера с мт5 найти не проблема.

 
Спасибо большое за объяснение, я просто в первый раз добрался до использования в коде глобальных переменных и не до конца с ними разобрался. Запись в переменную по условию наступления события с блеском получилась, а вот как из переменной её значение вытащить в нужный момент было непонятно. Теперь разобрался, нужно было применить простую конструкцию: double balance = GlobalVariableGet("balance"), а не городить "абра-ка-дабру". В следующий раз не затуплю с этим вопросом, спасибо всем кто откликнулся за помощь!)
Причина обращения: