Ошибки, баги, вопросы - страница 1886
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
но при написании функции всегда стараешься, что бы при разных ситуациях возвращалось разное значение.
Так мэджик и упомянул по этой причине. Что возвращать в случае ошибки PositionGetInteger(POSITION_MAGIC) ?
Нормално ли то, что бы на разные ситуации одна функция дает одинаковое значение?
ЗЫ: кстати в посте был вопрос.
суть в том, что если выбрать покупку, то функция(PositionGetInteger(POSITION_TYPE)) возвращает 0
и если выбрать не существующую позицию, функция так же вернет 0
Так ведь первый вызов используется тогда, когда Вы ГАРАНТИРОВАННО выбрали позицию (например как у Вас в цикле). А вот вторая форма вызова
для случаев, когда позиция выбирается с бухты барахты.
Сделайте так и поверьте, что получаете в переменную "result" - всё станет на свои места:
0 - позиция открыта вручную. правильно?
Так ведь первый вызов используется тогда, когда Вы ГАРАНТИРОВАННО выбрали позицию (например как у Вас в цикле). А вот вторая форма вызова
для случаев, когда позиция выбирается с бухты барахты.
Сделайте так и поверьте, что получаете в переменную "result" - всё станет на свои места:
не об этом вопрос, а о том что функция на разные ситуации возвращает одно значение.
что как проверить знаю
изначально вопрос был о том нормально ли это вообще?
ЗЫ: ошибка может быть допущена не преднамерено и тогда в 100000 коде устанешь искать.
Что? Не нужно допускать ошибки? )
не об этом вопрос, а о том что функция на разные ситуации возвращает одно значение.
что как проверить знаю
изначально вопрос был о том нормально ли это вообще?
Вы, как я вижу, не проверили код, который я показал. ДАвайте так: Вы сначала проверяете, потом снова зададите вопрос.
Вы, как я вижу, не проверили код, который я показал. ДАвайте так: Вы сначала проверяете, потом снова зададите вопрос.
мне не нужно его преверять, я вижу: он возвращает, то что нужно
говорил о первом варианте использования функции
мне не нужно его преверять, я вижу что он возвращает, то что нужно
говорил о первом варианте использования функции
Ну ладно, тогда так. Пойдём от хвоста.
1. PositionGetInteger:
Функция возвращает запрошенное свойство открытой позиции, предварительно выбранной при помощи функции...
То есть, перед использованием PositionGetInteger нужно сначала выбрать позицию.
2. Выбираем позицию при помощи PositionGetTicket. PositionGetTicket:
Возвращаемое значение
Тикет позиции. В случае неудачного выполнения возвращает 0.
А где у Вас проверка (после цикла), что там было возвращено от PositionGetTicket? Проверки нет, а там, между прочим возвращается "ноль" - то есть PositionGetTicket сработала с ошибкой - что равнозначно выбору позиции, которой нет. Затем Вы, не проверим результат PositionGetTicket, пытаетесь получить от несуществующей позиции её свойство. А там, в свойствах нусуществующей позиции, или мусор или просто данные обнулённых структур.
Подытожу: не проверив PositionGetTicket на возврат "нуля" дальше двигаться нельзя.
Ну ладно, тогда так. Пойдём от хвоста.
1. PositionGetInteger:
Функция возвращает запрошенное свойство открытой позиции, предварительно выбранной при помощи функции...
То есть, перед использованием PositionGetInteger нужно сначала выбрать позицию.
2. Выбираем позицию при помощи PositionGetTicket. PositionGetTicket:
Возвращаемое значение
Тикет позиции. В случае неудачного выполнения возвращает 0.
А где у Вас проверка (после цикла), что там было возвращено от PositionGetTicket? Проверки нет, а там, между прочим возвращается "ноль" - то есть PositionGetTicket сработала с ошибкой - что равнозначно выбору позиции, которой нет. Затем Вы, не проверим результат PositionGetTicket, пытаетесь получить от несуществующей позиции её свойство. А там, в свойствах нусуществующей позиции, или мусор или просто данные обнулённых структур.
Подытожу: не проверив PositionGetTicket на возврат "нуля" дальше двигаться нельзя.
Ну ладно, тогда так. Пойдём от хвоста.
1. PositionGetInteger:
Функция возвращает запрошенное свойство открытой позиции, предварительно выбранной при помощи функции...
То есть, перед использованием PositionGetInteger нужно сначала выбрать позицию.
2. Выбираем позицию при помощи PositionGetTicket. PositionGetTicket:
Возвращаемое значение
Тикет позиции. В случае неудачного выполнения возвращает 0.
А где у Вас проверка (после цикла), что там было возвращено от PositionGetTicket? Проверки нет, а там, между прочим возвращается "ноль" - то есть PositionGetTicket сработала с ошибкой - что равнозначно выбору позиции, которой нет. Затем Вы, не проверим результат PositionGetTicket, пытаетесь получить от несуществующей позиции её свойство. А там, в свойствах нусуществующей позиции, или мусор или просто данные обнулённых структур.
Подытожу: не проверив PositionGetTicket на возврат "нуля" дальше двигаться нельзя.
можно не распинаться )
не в этом вопрос
читайте правильно: нормально ли то, что функция на разные ситуации возвращает одно значение?
это правильно, что функция так поступает?