Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Все корректно преобразуется без ошибок
В разделе "Справочник MQL5 / Основы языка / Типы данных / Приведение типов " говорится о двух вещах:
1) преобразование long=>double может привести к потере точности;
2) вместо типа long допустим тип datetime (занимают по 8 байт).
Прихожу к выводу, что, по идее, преобразование datetime =>double тоже может привести к потере точности. Но примера привести не могу.
Почему бы не хранить дату в индикат......орных буфер......ах типа double
Много точек добавил, а то какая-то ссылка появляется.
Проще поставить дополнительный пробел между двумя словами: "индикаторных буферах" (два пробела).
В разделе "Справочник MQL5 / Основы языка / Типы данных / Приведение типов " говорится о двух вещах:
1) преобразование long=>double может привести к потере точности;
2) вместо типа long допустим тип datetime (занимают по 8 байт).
Прихожу к выводу, что, по идее, преобразование datetime =>double тоже может привести к потере точности. Но примера привести не могу.
Проще поставить дополнительный пробел между двумя словами: "индикаторных буферах" (два пробела).
А напишите простенький тест преобразований - все сами и увидите. И всем остальным расскажете потом
А напишите простенький тест преобразований - все сами и увидите. И всем остальным расскажете потом
А по существу ответ есть?
"Простенький тест преобразований" уже приведён rlx. Вроде работает корректно. Сомнения на основе справочного материала изложены выше. Если существует пример некорректного преобразования datetime =>double - в студию.
А по существу ответ есть?
"Простенький тест преобразований" уже приведён rlx. Вроде работает корректно. Сомнения на основе справочного материала изложены выше. Если существует пример некорректного преобразования datetime =>double - в студию.
2011.09.25 16:24:38 test (EURUSD,H1) -9.223372036854776e+018
Это пример, когда могут произойти проблемы, но это точно не ваш случай
2011.09.25 16:24:38 test (EURUSD,H1) -9.223372036854776e+018
Это пример, когда могут произойти проблемы, но это точно не ваш случай
2011.09.25 16:24:38 test (EURUSD,H1) -9.223372036854776e+018
Это пример, когда могут произойти проблемы, но это точно не ваш случай
Не очень корректный пример, как гритца дураку стеклянный хрен на 20 минут.(это не о вас а о тех кто так будет использовать)
Текущее значение datetime 1316816136 те 10 разрядов, это за 40 лет набежало, у мантисы double 16 разрядов,
отсюда переполнение мантисы double и последующее некорректное преобразование из datetime в double произойдёт через 6*40=240 лет.
Думаю успеем попользоваться.
Спс! Век живи - век учись!
Сейчас накидал пример специально для вас. Выкладки следующие:
тип datetime определен до 31.12.3000 23:59:59, это в переводе на целые числа 32535215999
тип double определен до значения 1.7976931348623158e+308
Получается, что при переводе максимально возможного значения datetime в double остается еще допустимый запас по количеству значащих цифр.
Отсюда вывод - это будет работать корректно во всех случаях.
Не очень корректный пример, как гритца дураку стеклянный хрен на 20 минут.
Не самая удачная аналогия.
Это всего лишь пример того, что при приведении типов нужно проверять граничные значения величин, просто на заметку. Но, повторюсь, это не тот случай.
Предыдущие вычисления я сделал не верно, более точно вот тут: используется 15 разрядов тк при наличии 16-го идёт ошибка преобразования
до 31711762 года datetime в double преобразуется верно
ЗЫ так что до 31 миллионного года спим спокойно.
Вызов импортируемых функций из библиотеки ex5.
Объясните пож. Прочел https://www.mql5.com/ru/docs/runtime/imports
Как загружаются библиотеки ex5 ? Если библиотека уже загружена (например, другим экспертом и даже из другого клиентского терминала, запущенного параллельно),
Для теста создал библиотеку
lib.mq5
Скомпилировал lib.mq5 в lib.ex5
Создал советника
expert.mq5
Скомпилировал.
Вешаю эксперта на EURUSD.
Печатает
0
1
2
3
4
5
Вешаю эксперта (дополнительно) на GBPUSD
Печатает
6 --- от EURUSD советника
0 --- от GBPUSD советника.
7 --- от EURUSD советника
1 --- от GBPUSD советника.
8 --- от EURUSD советника
2 --- от GBPUSD советника.
Т.е. на GBPUSD советник загружается еще один экземпляр библиотеки lib.ex5
Кто нибудь знает как сделать чтобы печатало
6 --- от EURUSD советника
7 --- от GBPUSD советника.
8 --- от EURUSD советника
9 --- от GBPUSD советника.
10 --- от EURUSD советника
11 --- от GBPUSD советника.
Только используя возможности MT5
PS/// Или нужно как то специально подключать библиотеку .
///// Т.е. мне нужно чтобы данная библиотека ex5 загружалась один раз.
Здравствуйте. Подскажите пожалуйста. Почему у ордеров и сделок есть тикет а у позиций его нет?
И в чем вообще разница между тикетом и идентификатором?