Как перевести дату время в значение типа int?
void OnStart() { int value = INT_MAX; datetime t = (datetime)value; Print("t = ", t); // t = 2038.01.19 03:14:07 }еще 18 лет можно пользоваться
еще 18 лет можно пользоваться
А если ещё uint...
datatime 8 байт значит нужен long/ulong
но если не ошибаюсь, то задача была без потерь в int - ближайшие 18 лет без проблем можно пользоваться

- www.mql5.com
Автор написал, что конвертацию надо производить в сторонней программе. Тогда надо преобразовывать дату в количество секунд с 01.01.1970 и полученный ulong или uint передать в mql.
Тогда надо преобразовывать дату в количество секунд с 01.01.1970 <- Как это преобразовать. Именно это и нужно.
Оригинальные данные типа
StringToTime очень не хотелось бы пользоваться, потому что будет занимать время. Будет передаваться миллионов 10 записей. Это время. Строковыми вообще не хотелось бы пользоваться.
int быстрее обрабатывается
int быстрее обрабатывается
ну и пользуйтесь int ,я же выше пример показал, 18 лет сроку - довольно прилично
ЗЫ: сомневаюсь, что прибавку в скорости получите если int вместо long будете использовать....сам учился по учебникам прошлого века, по моему сейчас это вообще не критично на современных компиляторах и процессорах, если нет больших массивов - тогда сразу используйте ulong вместо int, имхо
Мы же до сих пор не знаем, из чего надо конвертировать, в каком языке и какой ОС.
А как бы Вы посоветовали лучше сделать. Есть DateTime С#. Его можно перевести в год, месяц, день и время. А уже потом из этого бульона собрать int который будет кушать mt4. Цель написать Мультивалютный Ручной Тестер стратегий. Пока ещё не встречал тестер для разных валют. Всё вроде реально написать, но вот как этот int получить понятия не имею. Строковые функции в MT4 совсем не хочется трогать. В С# будут разбиваться исторические данные на несколько таймфрейм файлов. Далее уже в МТ4 эти файлы будут читаться и строится графики.
Но опять же как из набора Год, Месяц, день, время получить число int чтобы потом с этим числом мог работать MT4 как со своим родным, пока не ясно.
Нужно что-то пита Год ..... операции + Месяц.....операции + День....операции+время.... операции = ПЕРЕМЕННОЙ, чтобы потом в MT4 смог написать datetime t = (datetime)ПЕРЕМЕННОЙ; и Год, Месяц, День, Час, Минута переменной t соответствовали исходным значения Год, Месяц, День, Час, Минута.
ну и пользуйтесь int ,я же выше пример показал, 18 лет сроку - довольно прилично
ЗЫ: сомневаюсь, что прибавку в скорости получите если int вместо long будете использовать....сам учился по учебникам прошлого века, по моему сейчас это вообще не критично на современных компиляторах и процессорах, если нет больших массивов - тогда сразу используйте ulong вместо int, имхо
uint

- Бесплатные приложения для трейдинга
- Форексный VPS бесплатно на 24 часа
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Есть исторические данные. Мне надо в сторонней программе перевести дату время в значение типа int, чтобы потом МетаТрейдер смог прочитать это значение как свои родные дату время. Нужен алгоритм перевода из даты время в int.
Спасибо.