Все верно. Вы перепутали операцию. Надо использовать += , а не =+
Из документации:
Из документации:
Следующие операции объединяют арифметические или побитовые операции с операцией присваивания:
Увеличение значения переменной у на x у += x;
Уменьшение значения переменной y на x y -= x;
Умножение значения переменной y на x y *= x;
Деление значения переменной y на x y /= x;
Остаток от деления значения переменной y на x y %= x;
Сдвиг двоичного представления y вправо на x бит y >>= x;
Сдвиг двоичного представления y влево на x бит y <<= x;
Побитовая операция И двоичных представлений y и x y &= x;
Побитовая операция ИЛИ двоичных представлений y и x y |= x;
Побитовая операция исключающее ИЛИ
двоичных представлений y и x y ^= x;
Renat писал (а):
Все верно. Вы перепутали операцию. Надо использовать += , а не =+
Из документации:
Все верно. Вы перепутали операцию. Надо использовать += , а не =+
Из документации:
Следующие операции объединяют арифметические или побитовые операции с операцией присваивания:
Увеличение значения переменной у на x у += x;
Уменьшение значения переменной y на x y -= x;
Умножение значения переменной y на x y *= x;
Деление значения переменной y на x y /= x;
Остаток от деления значения переменной y на x y %= x;
Сдвиг двоичного представления y вправо на x бит y >>= x;
Сдвиг двоичного представления y влево на x бит y <<= x;
Побитовая операция И двоичных представлений y и x y &= x;
Побитовая операция ИЛИ двоичных представлений y и x y |= x;
Побитовая операция исключающее ИЛИ
двоичных представлений y и x y ^= x;
Спасибо! Это была моя дурацкая ошибка, но компилятор не отловил неправильную операцию и не выдал код ошибки! Хотя операция =+ может существовать, если компилятор считает, что + это унитарная операция изменения знака для переменной Bid. Но было бы лучше, если бы компилятор отлавливал сочетание =+ как ошибочное
В С операция =+ определена, существует и называется "постинкремент".
Поскольку компилятор MQL4 - близкий родственник сишного, наверно,
потому и не заметил.
alexjou:
В С операция =+ определена, существует и называется "постинкремент". Поскольку компилятор MQL4 - близкий родственник сишного, наверно, потому и не заметил.
Нет, не правильно ...В С операция =+ определена, существует и называется "постинкремент". Поскольку компилятор MQL4 - близкий родственник сишного, наверно, потому и не заметил.
В С есть два варианта ++а и а++
Вот второй наверное можно назвать "постинкремент"
В MQL4 только один вариант.
А sum =+ Bid полностью эквивалентно выражению sum = +Bid;
Которое наверное ни у кого сомнений не вызывает.
Пардон, перепутал. :(((
sum=+Bid <===> sum=Bid simple assignment
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Когда мучал код советника Тестором, обнаружил, что операция =+ выполняется неправильно.
Ниже приведен соответствующий фрагмент кода:
Если его прогнать через Тестер, то в Журнале можно увидеть следующее:
2006.11.19 07:53:23 2006.11.08 00:01 Bug GBPUSD,M15: 2006.11.08 00:00 sum=1. 9069 Bid=1.9069
2006.11.19 07:53:23 2006.11.08 00:01 Bug GBPUSD,M15: 2006.11.08 00:00 sum=1. 9072 Bid=1.9072
2006.11.19 07:53:23 2006.11.08 00:00 Bug GBPUSD,M15: 2006.11.08 00:00 sum=1. 9073 Bid=1.9073
2006.11.19 07:53:23 2006.11.08 00:00 Bug GBPUSD,M15: 2006.11.08 00:00 sum=1. 9071 Bid=1.9071
2006.11.19 07:53:23 2006.11.08 00:00 Bug GBPUSD,M15: 2006.11.08 00:00 sum=1. 9071 Bid=1.9071
2006.11.19 07:53:23 Bug started for testing
2006.11.19 07:53:23 Bug GBPUSD,M15: loaded successfully
- что не есть хорошо
Если прогнать второй вариант, то все в порядке:
2006.11.19 08:04:59 2006.11.08 00:01 Bug GBPUSD,M15: 2006.11.08 00:00 sum=9. 5356 Bid=1.9069
2006.11.19 08:04:59 2006.11.08 00:01 Bug GBPUSD,M15: 2006.11.08 00:00 sum=7. 6287 Bid=1.9072
2006.11.19 08:04:59 2006.11.08 00:00 Bug GBPUSD,M15: 2006.11.08 00:00 sum=5. 7215 Bid=1.9073
2006.11.19 08:04:59 2006.11.08 00:00 Bug GBPUSD,M15: 2006.11.08 00:00 sum=3. 8142 Bid=1.9071
2006.11.19 08:04:59 2006.11.08 00:00 Bug GBPUSD,M15: 2006.11.08 00:00 sum=1. 9071 Bid=1.9071
2006.11.19 08:04:59 Bug started for testing
2006.11.19 08:04:59 Bug GBPUSD,M15: loaded successfully
Ну и на всякий случай -
Build 200
Символ: GPBUSD Период: М15
Модель: Все тики
Использовать дату: от 2006.11.08 до 2006.11.09