Здравствуйте, я пытаюсь закодировать свою систему, но после компиляции она выдает "не все пути управления возвращают значение", а когда я делаю двойной щелчок, он показывает его в следующем блоке, не мог бы кто-нибудь указать на проблему.
Заранее спасибо
Проблема решена
Удалить #Property strict
Проблема решена
Удалить #Property strict
Это обходной путь, добавьте 1 дополнительную строку
if(sells>0) return(true); else return(false); // Add this line
Это обходной путь, добавьте 1 дополнительную строку
Спасибо, дружище
Или проще: | return( sells>0 ); // if(sells>0) return(true); // else return(false); // Add this line |
WHRoeder - благодаря вашим советам я продолжаю вычеркивать все больше строк из своего кода. Я бы поступил точно так же, как GumRai. Спасибо!
Это обходной путь, добавьте 1 дополнительную строку
Привет, GumRai, просто ради разговора, тебе ведь не нужен else, верно? )
if(sells>0) return(true); return(false);
Здравствуйте, я пытаюсь закодировать свою систему, но после компиляции она выдает "не все пути управления возвращают значение", а когда я делаю двойной щелчок, он показывает его в следующем блоке, не мог бы кто-нибудь указать на проблему.
Заранее спасибо
Вы можете получить предупреждение для OrderSelect, если не проверите результат.
bool CalculateCurrentSellOrders(string symbol) { int sells=0; for (int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) Print("OrderSelect() failed with error : "+GetLastError()); if(OrderSymbol()!=Symbol()||OrderMagicNumber()!=MAGICMA)continue; if(OrderType()==OP_SELL) sells++; } if(sells>0) return(true); return(false); }
Надеюсь, это поможет
Привет, GumRai, просто ради разговора, тебе ведь не нужно, чтобы там было еще что-то, верно? )
Нет, вы правы.
Пост WHRoeders выше вашего еще проще для достижения того же самого.
Нет, вы правы.
Пост WHRoeders выше вашего еще проще для достижения того же самого.
Верно, но только для конкретных ситуаций, подобных этой. Другой способ более общий, независимо от того, сколько и каких условий, если ни одно из них не возвращает true, то будет возвращено false.
Должен признать, что это элегантное решение для данного конкретного примера.
...
и если вы не используете :
Надеюсь, это поможет
i<OrdersTotal()Если вы добавите -1, то пропустите 1 элемент массива.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте, я пытаюсь закодировать свою систему, но после компиляции она выдает "не все пути управления возвращают значение", а когда я делаю двойной щелчок, он показывает его в следующем блоке, не мог бы кто-нибудь указать на проблему.
Заранее спасибо