Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Отчасти проблема в том, как вы написали этот код с большими длинными условиями if, полными &&, ||, и вызовом функции за вызовом функции, что затрудняет отладку, и вам повезет, если вы найдете кого-нибудь, у кого хватит времени распутать этот беспорядок. Вам следует посмотреть примеры кодирования в документации, чтобы увидеть, как код должен быть оформлен в гораздо более короткие строки и прокомментирован.
" Makes it difficult to debug "?? :( Никогда не слышал о таком, это правда ....
Компилятору также трудно отлаживать мой код :( ?
Если причина в этом, значит, мне придется пересмотреть все мои идеи по кодированию этой части? Тогда получится совсем другая вещь ...... :( :( :( :(
Да, его трудно отлаживать, например, посмотрите на этот код для трейлинг-стопа. Легко увидеть, что делает каждая строка, поэтому легко заметить ошибки.
Я разместил этот код просто как пример легко читаемого кода, он не должен был быть примером законченной самостоятельной функции.
Это раздел ордеров на покупку в коде трейлинг-стопа из примера советника MetaQuotes MACD, поставляемого с MT4.
1) Неправда, вы можете считать вверх или вниз, цикл более эффективен, OrdersTotal() вызывается один раз и присваивается локальной переменной.
Спасибо SDC . Спасибо за советы также WHRoeder . Это полезно .
Я попробовал поменять OrderClosePrice() на MarketInfo в предыдущем коде и отредактировал (убрал условие && и поместил их в оператор if как после, тот что во втором цикле for), но результат все равно иногда работает иногда не работает.
В цикле for для подсчета общего количества ордеров в пуле я использую цикл обратного отсчета, но с x--. Я не понимаю, почему вы предлагаете --x.
Я нагуглил "операторы короткого замыкания", но не очень понимаю, что это значит в mql4, не могли бы вы немного объяснить ^_^ ? Почему плохо замыкать цепочки 'if'?
Кстати, код выше, который предложил SDC, это не тот код, который я использую >.< .
Неплохо выстраивать цепочки "если". Разработчики языка MQL4 написали код, который я разместил выше. Это код, который я вырезал из их примера советника macd в качестве примера.
WHR имел в виду недавнее изменение в способе оценки условий && ||, которое теперь делает их такими же эффективными, как и цепочки if. Ранее они были менее эффективны. Вы можете использовать любой из этих методов. Цепочки if полезны, когда в коде есть расхождения, и вы можете использовать 'else'.
Длинные строки условий if( && || ) могут создать путаницу в круглых скобках, что затрудняет поиск ошибок, поэтому я не люблю так делать. Кроме того, существует общепринятый стандарт кодирования, согласно которому оно не должно превышать 80 символов. Однако многие кодеры не стремятся придерживаться этого стандарта, и разработчики MQL4 продолжают создавать перечислимые идентификаторы с большими длинными именами, которые используются в вызовах функций с такими же большими длинными именами, что не очень помогает в форматировании кода.