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