Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 964
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Спасибо за пример.
Уточните ещё пожалуйста... правильно ли понял.
вот этим самым =(datetime)OrderGetInteger. мы указываем OrderGetInteger принять явный тип datetime. ?
Это правило касается всех функций, которые не имеют явного типа или не соответствуют типу присваиваемой переменной? или это только частный случай?
Хочу понять, это правило или просто нужно запомнить как частный случай.
Это не частный случай. Если в переменную одного типа записываете значение другого типа, то компилятор вас об этом предупредит. А далее уже вам решать в какую переменную принимать какие данные.
В вашем случае - при возврате из функции с типом long явного datetime-значения, конечно же безопасно и нужно явно указать тип значения, которое вы получаете из функции.
Но вот если вы принимаете в int-переменную значение double, то тут уже вы сами должны понимать не будет ли потери данных при таком присвоении. Если вы точно знаете, что возвращаемое значение поместится в int, то указывайте явно int, если не знаете, то принимайте в double-переменную.
Это не частный случай. Если в переменную одного типа записываете значение другого типа, то компилятор вас об этом предупредит. А далее уже вам решать в какую переменную принимать какие данные.
В вашем случае - при возврате из функции с типом long явного datetime-значения, конечно же безопасно и нужно явно указать тип значения, которое вы получаете из функции.
Но вот если вы принимаете в int-переменную значение double, то тут уже вы сами должны понимать не будет ли потери данных при таком присвоении. Если вы точно знаете, что возвращаемое значение поместится в int, то указывайте явно int, если не знаете, то принимайте в double-переменную.
Спасибо за подробный ответ. Усвоил.
Доброго всем творчества)))
Освоил МТ4, а вот МТ5 …. не вьезжаю((( Мало наглядных примеров , а те что есть не обьясняют нужного.
Подскажите, пожалуйста, как будут выглядеть в МТ5 отрывки из кода на МТ4 или дайте ссылки на индикаторы с подобными случаями.
1.
2.
3. мне не понятно как с помощью хэндла iMa выполнять сравнение элементов... Знаю про структуры!!! Пробовал, но МТ5 не такой наглядный в отличие от МТ4...
Общие отличия программирования в МТ5 уже понял! Но пока программировать не получается (кубики не складываются)))))
Для меня важно СЛОЖИТЬ в моей голове эти части и модули МТ5.... В МТ4 я понимаю логику быстро, а МТ5 только "кубики"....
Спасибо за подсказки)))
Просьба переделать в моем роботе фикс лот на лот в %. Код в личке.
Фриланс.
Доброго всем творчества)))
Освоил МТ4, а вот МТ5 …. не вьезжаю((( Мало наглядных примеров , а те что есть не обьясняют нужного.
Подскажите, пожалуйста, как будут выглядеть в МТ5 отрывки из кода на МТ4 или дайте ссылки на индикаторы с подобными случаями.
1.
2.
3. мне не понятно как с помощью хэндла iMa выполнять сравнение элементов... Знаю про структуры!!! Пробовал, но МТ5 не такой наглядный в отличие от МТ4...
Общие отличия программирования в МТ5 уже понял! Но пока программировать не получается (кубики не складываются)))))
Для меня важно СЛОЖИТЬ в моей голове эти части и модули МТ5.... В МТ4 я понимаю логику быстро, а МТ5 только "кубики"....
Спасибо за подсказки)))
Для начала внимательно ознакомьтесь с документацией. Раздел "Доступ к таймсериям и индикаторам"
Должно стать понятным как получить время, "засунуть" его в структуру и оттуда получить по отдельности час и минуту.
Там-же есть CopyBuffer для получения значений индикатора по его хендлу.
Ну, а если останутся вопросы...
Доброго всем творчества)))
Освоил МТ4, а вот МТ5 …. не вьезжаю((( Мало наглядных примеров , а те что есть не обьясняют нужного.
Подскажите, пожалуйста, как будут выглядеть в МТ5 отрывки из кода на МТ4 или дайте ссылки на индикаторы с подобными случаями.
1.
2.
3. мне не понятно как с помощью хэндла iMa выполнять сравнение элементов... Знаю про структуры!!! Пробовал, но МТ5 не такой наглядный в отличие от МТ4...
Общие отличия программирования в МТ5 уже понял! Но пока программировать не получается (кубики не складываются)))))
Для меня важно СЛОЖИТЬ в моей голове эти части и модули МТ5.... В МТ4 я понимаю логику быстро, а МТ5 только "кубики"....
Спасибо за подсказки)))
Если нужно сравнивать несколько таймсерий одного таймрейма, работайте с массивом типа MqlRates -> и для заполнения этого массива используйте CopyRates.
Время удобно хранить в структуре MqlDateTime -> для конвертации времени из datetime в структуру MqlDateTime используйте TimeToStruct.
Теперь Ваши пример 1 будет выглядеть так:
Вопрос: приводит ли это к ошибкам или это нормально в рамках одного кода или даже одной функции?
Доброго всем творчества)))
Освоил МТ4, а вот МТ5 …. не вьезжаю((( Мало наглядных примеров , а те что есть не обьясняют нужного.
Подскажите, пожалуйста, как будут выглядеть в МТ5 отрывки из кода на МТ4 или дайте ссылки на индикаторы с подобными случаями.
1.
2.
3. мне не понятно как с помощью хэндла iMa выполнять сравнение элементов... Знаю про структуры!!! Пробовал, но МТ5 не такой наглядный в отличие от МТ4...
Общие отличия программирования в МТ5 уже понял! Но пока программировать не получается (кубики не складываются)))))
Для меня важно СЛОЖИТЬ в моей голове эти части и модули МТ5.... В МТ4 я понимаю логику быстро, а МТ5 только "кубики"....
Спасибо за подсказки)))
Работа с индикаторами - на примере кода MA Force
Шаг 1: на глобальном программном уровне объявляем переменную handle_iMA, в которой будет хранится хендл индикатора
Шаг 2: в OnInit() создаём индикатор и возвращаем хендл созданного индикатора в переменную handle_iMA
Шаг 3: в OnTick() делаем запрос - копируем определённое количество данных (count)с индикатора в массив ma[]
Шаг 4: работаем с массивом данных индикатора и сравниваем его элементы:
Вопрос: приводит ли это к ошибкам или это нормально в рамках одного кода или даже одной функции?
Лучше не путать и использовать один подход: или торговый класс CSymbolInfo или же системные функции вида SymbolInfoXXXX.