tara: Не ту часть кода выложили:( функцию свою выкладывайте.
Часть кода правильная, я её специально вырезал и оформил в виде советника, после этого прогнал через тестер стратегий и получился странный результат, как будто глючит функция DoubleToStrMorePrecision стандартной библиотекиstdlib.mqh
А можете показать значения часов, минут и секунд до вставки в общий номер?
ПыСы. Какова практическая ценность данного преобразования?
#include <stdlib.mqh>
bool once=false;
int start()
{
if (once==false)
{
double DTM; // дата и время в формате 0,20130429164459
int YY=TimeYear( TimeCurrent()); // Year
int MN=TimeMonth( TimeCurrent()); // Month
int DD=TimeDay( TimeCurrent()); // Day
int HH=TimeHour( TimeCurrent()); // Hour
int MM=TimeMinute( TimeCurrent()); // Minute
int SS=TimeSeconds(TimeCurrent()); // Second
Alert ("Значение переменной YY = ", YY);
Alert ("Значение переменной MN = ", MN);
Alert ("Значение переменной DD = ", DD);
Alert ("Значение переменной HH = ", HH);
Alert ("Значение переменной MM = ", MM);
Alert ("Значение переменной SS = ", SS);
DTM = YY*0.0001+MN*0.000001+DD*0.00000001+HH*0.0000000001+MM*0.000000000001+SS;
Alert ("Значение переменной DTM с 06 знаками равно ", DoubleToStrMorePrecision(DTM,6));
Alert ("Значение переменной DTM с 07 знаками равно ", DoubleToStrMorePrecision(DTM,7));
Alert ("Значение переменной DTM с 08 знаками равно ", DoubleToStrMorePrecision(DTM,8));
Alert ("Значение переменной DTM с 09 знаками равно ", DoubleToStrMorePrecision(DTM,9));
Alert ("Значение переменной DTM с 10 знаками равно ", DoubleToStrMorePrecision(DTM,10));
Alert ("Значение переменной DTM с 11 знаками равно ", DoubleToStrMorePrecision(DTM,11));
Alert ("Значение переменной DTM с 12 знаками равно ", DoubleToStrMorePrecision(DTM,12));
Alert ("Значение переменной DTM с 13 знаками равно ", DoubleToStrMorePrecision(DTM,13));
Alert ("Значение переменной DTM с 14 знаками равно ", DoubleToStrMorePrecision(DTM,14));
Alert ("Значение переменной DTM с 15 знаками равно ", DoubleToStrMorePrecision(DTM,15));
once=true;
}
return(0);
}
Вывод такой:
2007.01.0208:00double EURUSD,M15: Alert: Значение переменной SS = 02007.01.0208:00double EURUSD,M15: Alert: Значение переменной MM = 02007.01.0208:00double EURUSD,M15: Alert: Значение переменной HH = 82007.01.0208:00double EURUSD,M15: Alert: Значение переменной DD = 22007.01.0208:00double EURUSD,M15: Alert: Значение переменной MN = 12007.01.0208:00double EURUSD,M15: Alert: Значение переменной YY = 2007
Практическую ценность ещё сам до конца не осознал, но это вторично, тут мне нужно понять почему результат вычислений получается не тот который ожидается
Zhunko: Размер файлов ограничен размером диска, но его отображение ограниченно размером памяти. Вряд ли, у Вас такое количество данных.
В том то и дело, есть идея написать грааль, но она подразумевает что нужна очень большая база данных, вот я и думаю с какой стороны подойти к этому вопросу
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Не ту часть кода выложили:( функцию свою выкладывайте.
Если Вы про DoubleToStrMorePrecision, то это библиотечная функция :)
Тогда, вперед, в анналы, за знаниями :)
Либо покажите, либо сами туда отправляйтесь.
Поиск рулит
https://www.mql5.com/ru/articles/1561
Поиск рулит
https://www.mql5.com/ru/articles/1561
Это статья о библиотечных функциях?
Не ту часть кода выложили:( функцию свою выкладывайте.
А можете показать значения часов, минут и секунд до вставки в общий номер?
ПыСы. Какова практическая ценность данного преобразования?
#include <stdlib.mqh> bool once=false; int start() { if (once==false) { double DTM; // дата и время в формате 0,20130429164459 int YY=TimeYear( TimeCurrent()); // Year int MN=TimeMonth( TimeCurrent()); // Month int DD=TimeDay( TimeCurrent()); // Day int HH=TimeHour( TimeCurrent()); // Hour int MM=TimeMinute( TimeCurrent()); // Minute int SS=TimeSeconds(TimeCurrent()); // Second Alert ("Значение переменной YY = ", YY); Alert ("Значение переменной MN = ", MN); Alert ("Значение переменной DD = ", DD); Alert ("Значение переменной HH = ", HH); Alert ("Значение переменной MM = ", MM); Alert ("Значение переменной SS = ", SS); DTM = YY*0.0001+MN*0.000001+DD*0.00000001+HH*0.0000000001+MM*0.000000000001+SS; Alert ("Значение переменной DTM с 06 знаками равно ", DoubleToStrMorePrecision(DTM,6)); Alert ("Значение переменной DTM с 07 знаками равно ", DoubleToStrMorePrecision(DTM,7)); Alert ("Значение переменной DTM с 08 знаками равно ", DoubleToStrMorePrecision(DTM,8)); Alert ("Значение переменной DTM с 09 знаками равно ", DoubleToStrMorePrecision(DTM,9)); Alert ("Значение переменной DTM с 10 знаками равно ", DoubleToStrMorePrecision(DTM,10)); Alert ("Значение переменной DTM с 11 знаками равно ", DoubleToStrMorePrecision(DTM,11)); Alert ("Значение переменной DTM с 12 знаками равно ", DoubleToStrMorePrecision(DTM,12)); Alert ("Значение переменной DTM с 13 знаками равно ", DoubleToStrMorePrecision(DTM,13)); Alert ("Значение переменной DTM с 14 знаками равно ", DoubleToStrMorePrecision(DTM,14)); Alert ("Значение переменной DTM с 15 знаками равно ", DoubleToStrMorePrecision(DTM,15)); once=true; } return(0); }Вывод такой:
Практическую ценность ещё сам до конца не осознал, но это вторично, тут мне нужно понять почему результат вычислений получается не тот который ожидается
Размер файлов ограничен размером диска, но его отображение ограниченно размером памяти. Вряд ли, у Вас такое количество данных.
У меня почему-то, все правильно выводит (не считая кириллицу)