Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Какие действия были до этого?
Обновление помогает?
Открыл терминал после нескольких дней неиспользования. Получил такую картину. Потом использовал скрипт подгрузить историю. Без изменений. Подождал пару часов. Теперь всё нормально.
Можете объяснить, почему по результатам прогона x==0, а y==1 ? Build 342
PS. Следует читать ... x==1, а y==0 ...
Можете объяснить, почему по результатам прогона x==0, а y==1 ? Build 342
Посмотри здесь https://www.mql5.com/ru/docs/basis/operations/mathoperation
Компилятор не выдвет ошибок или предупреждений?
Можете объяснить, почему по результатам прогона x==0, а y==1 ? Build 342
Проверили, результат получается x=1, y=0
первый инкремент x=x++ раскладывается на
t=x; // x=0
x++; // x=1
x=t; // x=0
Можете объяснить, почему по результатам прогона x==0, а y==1 ? Build 342
Можем. Всё дело в реализации x = x++;
Перед постинкрементом значение x сохраняется во временную переменную. Затем производится инкремент. Затем производится присвоение из временной переменной.
Посмотри здесь https://www.mql5.com/ru/docs/basis/operations/mathoperation
Компилятор не выдвет ошибок или предупреждений?
Компилятор MT5 проглатывает молча! В MT4 компиляция не проходит.
Из любопытства попробовал аналогичную конструкцию в С++ (из Visual Studio 2005) - там результат для x и y одинаковый.
Можете объяснить, почему по результатам прогона x==0, а y==1 ? Build 342
Нужно инициализировать переменные перед совершением с ними мат операций. Если сделать просто присвоение к неинициализированной переменной, то всё будет нормально.
Однако, всегда рекомендуется, во избежания неприятностей, инициализировать переменные.
Компилятор MT5 проглатывает молча! В MT4 компиляция не проходит.
Из любопытства попробовал аналогичную конструкцию в С++ (из Visual Studio 2005) - там результат для x и y одинаковый.
В стандарте c++ это место не определено и явно сказано, что зависит от реализации. Существует 2 основные реализации:
1. Производить постинкремент(постдекремент) сразу после использования переменной в выражении. (как это сделано у нас)
2. Производить постинкремент после вычисления всего выражения.
Всмысле где можно узнать у каких брокеров МТ5 запущен на реале