Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Чё-то я не вижу проблемы. А сыр-бор разведён... Вам нужно в одной главной функции А() выбирать ордер, а в другой функции В(), вызываемой из главной функции А(), обрабатывать выбранный в ф-ции А() ордер. И в функции В() нужно точно знать - выбран ли всё ещё ордер... Ну так передавайте в функцию В() тикет ордера, выбранного в функции А(). В функции В() можно проверить из какого списка выбран ордер и уже дальше решать куда ехать и что возвращать обратно в функцию А()...
Вы меня не правильно поняли. Как и половина народа почему-то. Мне не нужно в функции B() обрабатывать тот ордер, который выбран в функции A(). Функция B() работает с другими ордерами, не важно с какими, это никак не связано с функцией A(), у функции B() своя логика. Она может считать кол-во ордеров, их суммарную прибыль, смотреть их комменты маджики, ТП СЛ и т.п. Задача в том, чтобы по возврату из функции B() обратно в функцию A(), не зависимо от того, что функция B() делала с ордерами, логика работы функции A() в точке вызова из неё функции B() не нарушалась из-за того, что ордер, выбранный функцией A() до вызова функции B(), более не является выбранным, а выбранным является другой случайный произвольный ордер, с которым работала функция B(), скорее всего тоже перебирающая ордера в цикле.
Давайте теперь представим что произойдёт с переменной last_select после перезапуска терминала (свет противные дядьки вырубили)
После перезапуска переменная last_select будет инициализирована в 0, как и требуется.
Затеяли бла-бла-бла на 10 страниц. Вот код, который предусматривает работу функции с другим (не выделенным) ордером:
это просто для примера. Понимающий суть уловит.Затеяли бла-бла-бла на 10 страниц. Вот код, который предусматривает работу функции с другим (не выделенным) ордером:
это просто для примера. Понимающий суть уловит.Не в этом дело. Есть переменные, локальные или глобальные, в советнике и есть переменные терминала. С точки зрения программы, эти переменные интерактивны, поскольку их значение может совершенно необъяснимым для советника образом измениться в любой момент. Признак выбора ордера - именно такая переменная. Если бы Метаквоты разрешили доступ к признаку "выбора" графического объекта, то и с ним была бы такая же байда. Отсюда - неизбежное следствие: надо выбирать ордер всякий раз, когда необходимо узнать номер выбранного ордера, либо надо запоминать выбранный ордер тогда и только тогда, когда этого требует логика советника. Как-то так...
Не в этом дело. Есть переменные, локальные или глобальные, в советнике и есть переменные терминала. С точки зрения программы, эти переменные интерактивны, поскольку их значение может совершенно необъяснимым для советника образом измениться в любой момент. Признак выбора ордера - именно такая переменная. Если бы Метаквоты разрешили доступ к признаку "выбора" графического объекта, то и с ним была бы такая же байда. Отсюда - неизбежное следствие: надо выбирать ордер всякий раз, когда необходимо узнать номер выбранного ордера, либо надо запоминать выбранный ордер тогда и только тогда, когда этого требует логика советника. Как-то так...
Я с Вами полностью согласен:
P.S. А упомянутую проверку в коде произвожу "на всякий случай"... :)
:)
С Праздником! Для меня - 20 лет, не худших в жизни.
Затеяли бла-бла-бла на 10 страниц. Вот код, который предусматривает работу функции с другим (не выделенным) ордером:
это просто для примера. Понимающий суть уловит.Ага. Вот на этом месте:
int li_LastTicket = OrderTicket();
Ваш код сгенерирует ошибку выполнения 4105, если до совершения его вызова не было ни одного вызова OrderSelect. Просто поставьте проверку GetLastError на окончании каждого тика и обнаружите эту ошибку.
:)
С Праздником! Для меня - 20 лет, не худших в жизни.
Поздравляю! А что, 20 лет служили "Верой и Правдой"?
Ею, родимою.
Значит, сверхсрочником, как в мою бытность называли, а может и сейчас, куском!? :)