Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
double orderstoploss = NormalizeDouble ( OrderStopLoss(), digits );
Цены из ордеров нормализовать не обязательно - они (по идее) должны быть итак нормализованными.
2Василий: помещайте, пожалуйста, код в тег [ pre ] - иначе читать просто невозможно.
В том то и дело, что по идее =) я билдов 5 - 10 назад писал в эксперте такую конструкцию - и заметил, что если не нормализовать, например, OrderStopLoss(), он _не_будет_равен_ нормализованному stoploss_level, хоть значения одинаковые...
Особое спасибо komposter.
totalBuy равен OP_BUY , т.е 0. В блоке case OP_BUY: по условиям не пролазиим и соответсвенно изменений не делаем. А вот в блоке case OP_BUYSTOP: срабатывание происходит. Ведь этот блок должен игнарироваться.
OP_BUYSTOP=4. Или опять что-то упустил?
Еще одна неудачка
У вас оператор break; срабатывает только в случае модификации ордера. Его надо вынести из скобок:
почитайте синтаксис команды switch....
там хороший пример:
посмотрите case B u C
зы:
можно назначать один раз - сразу после ордерселект, нет смысла в каждом кейсе писАть.
Господа разработчики.
Что-то как-то не логично работает switch. Вот выписка из описания MQL II:
"Последовательность инструкций выполняется до следующего 'case', 'default' или 'end'. Также последовательность инструкций может быть досрочно прервана оператором 'break'."
Это логично и соответствует аналогичным конструкциям других языков (я пользую Delphi). А в MQ4 получается, что последовательность инструкций выполняется от точки входа по CASE до закрытия switch или до break. Может так устроен C++, но, по моему, не логично.
"Последовательность инструкций выполняется до следующего 'case', 'default' или 'end'. Также последовательность инструкций может быть досрочно прервана оператором 'break'."
Это логично и соответствует аналогичным конструкциям других языков (я пользую Delphi). А в MQ4 получается, что последовательность инструкций выполняется от точки входа по CASE до закрытия switch или до break. Может так устроен C++, но, по моему, не логично.
именно так устроено в языке C. MQL4 - это си-подобный язык, в отличие от MQL II, который является паскалеподобным. не надо руководствоваться описаниями одного языка при программировании на другом.