Скачать MetaTrader 5

Как перевести время в double

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Александр
123
Александр  

Подскажите пожалуйста как перевести Время получяемое допустим от выражения (TimeLocal() - OrderOpenTime())  в "double" пробую перевести в "стринг" потом в "double" - как-то криво и не выходит ? Если можно, хоть с минимальным примером кода. Заранее спасибо. Александр. 

Запрос по форуму ничего не дал. 

Victor Nikolaev
Модератор
14651
Victor Nikolaev  
expertboss:

Подскажите пожалуйста как перевести Время получяемое допустим от выражения (TimeLocal() - OrderOpenTime())  в "double" пробую перевести в "стринг" потом в "double" - как-то криво и не выходит ? Если можно, хоть с минимальным примером кода. Заранее спасибо. Александр. 

Запрос по форуму ничего не дал. 


double dTime= TimeLocal() - OrderOpenTime();
Александр
123
Александр  
Vinin:



Спасибо пробую ...
Александр
123
Александр  
Попробую сжато:   ордер выставлен на 300 сек.   закрылся через  150 сек.     надо вычислить 150/300=0,5 по сути процентное отношение.  Все операции выполняются нормально пока значение находится до запятой как только после итог  = 0.   """""""""DoubleToStr(dTime,2)"""""""
Александр
123
Александр  
expertboss:
Попробую сжато:   ордер выставлен на 300 сек.   закрылся через  150 сек.     надо вычислить 150/300=0,5 по сути процентное отношение.  Все операции выполняются нормально пока значение находится до запятой как только после итог  = 0.   """""""""DoubleToStr(dTime,2)"""""""

Извиняюсь за краткость, без просьбы, думал получится диалог.  Целую вечность мучаю эти строчки решил спросить.  Здесь так получается - ордер берется из истории, сервер присылает готовый ответ по профиту , а при вызове  OrderProfit() показывает "0" решил сам просчитать да не тут-то было все повисло из за этого. Не знаю как еще "голову ломать"    с Ув. Александр
Artyom Trishkin
Модератор
77535
Artyom Trishkin  
expertboss:

Извиняюсь за краткость, без просьбы, думал получится диалог.  Целую вечность мучаю эти строчки решил спросить.  Здесь так получается - ордер берется из истории, сервер присылает готовый ответ по профиту , а при вызове  OrderProfit() показывает "0" решил сам просчитать да не тут-то было все повисло из за этого. Не знаю как еще "голову ломать"    с Ув. Александр
Лично мне видно - на заданный вами вопрос Виктор ответил коротко и ясно, что тогда у вас не получается, подробнее опишите суть того, что хотите. Проблема может крыться вовсе не там, где вам думается.
Александр
123
Александр  
artmedia70:
Лично мне видно - на заданный вами вопрос Виктор ответил коротко и ясно, что тогда у вас не получается, подробнее опишите суть того, что хотите. Проблема может крыться вовсе не там, где вам думается.

Здравствуйте.  Ответ был своевременным и точным. Спасибо ему еще раз.  Вопрос вот: я пытаюсь вычислить коэффициент от заданной длительности ордера к фактическому, то есть поставил на час - он закрылся через полчаса.  Эта величина меньше 1  (30 мин / 60 мин = 0,5)  когда начинаешь просчитывать в программе формулами то ответ " 0 "  потому-что результат находится в дробных величинах если в примере написать ниже то      dTime = 0,  а должен быть 0,5

    """""   double dTime= (300 - 150)/300;   """""  300 - время выставленное     150 - время жизни ордера

keekkenen
1135
keekkenen  

суть в том, значения в скобках и делитель это числа типа int, поэтому все округляется до целых..

скобку до деления умножьте на 1.0, т.о. значение разницы будет приведено к double типу и дальнейшее деление вернет дробное значение

Александр
123
Александр  
keekkenen:

суть в том, значения в скобках и делитель это числа типа int, поэтому все округляется до целых..

скобку до деления умножьте на 1.0, т.о. значение разницы будет приведено к double типу и дальнейшее деление вернет дробное значение


Если это выход огромное спасибо. Проверять буду завтра - мозг "съёжился".  

Безмерно всем благодарен. Александр. 

Ура! Ура! Ура! Заработало! keekkenen ОГРОМНОЕ спасибо!

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий