Ошибки, баги, вопросы - страница 1432

 
Alexey Kozitsyn:

Функция OrderGetTicket() вернет тикет того ордера, индекс которого в нее передан.

По второму вопросу, OrderGetTicket() и возвращает тикет, и выбирает ордер для работы с ним.

Спасибо, Кэптайн О. А как определяется порядок индексов в списке всех ордеров?

OrderGetTicket возвращает тикет ордера с переданным номером в списке, а не номер текущего выбранного ордера, о котором я спрашивал. 

 
Ilya Malev:

Спасибо, Кэптайн О. А как определяется порядок индексов в списке всех ордеров?

OrderGetTicket возвращает тикет ордера с переданным номером в списке, а не номер текущего выбранного ордера, о котором я спрашивал. 

Насколько я помню, самый старший (первый) = 0 и т.д. Проверьте, там делов на 5 минут.

Вот выбран у Вас ордер. Он как выбран? По номеру или по тикету?

Короче, есть два способа: по номеру и по тикету. Пока не было ситуаций, в моей практике, где бы этого не хватило. 

 
Alexey Kozitsyn:

Проверьте, там делов на 5 минут.

Конечно я могу сам проверить. Я бы не писал сюда, если бы это решало проблему. Нужно подтверждение от разработчиков, потому что результат проверки может быть ситуативен или произвольно изменяться в будущем.

>> Вот выбран у Вас ордер. Он как выбран? По номеру или по тикету? 

Это лишний вопрос в МТ4, там мне было не важно как он выбран, но нужно узнать его тикет, например чтобы делать с ним что-то вне функции, которая его выбрала. В МТ5 похоже это придется решать программным путем, как и многое другое.

Alexey Kozitsyn:

Пока не было ситуаций, в моей практике, где бы этого не хватило. 

А в моей практике таких ситуаций полно. Это происходит каждый раз, когда хочется сэкономить при вызове функций, имеющих дело с ордерами, на объеме кода в части передаваемых параметров.
 

И не только, кстати: представьте ситуацию, когда Вы работаете с выбранным только что ордером, но Вам нужно вызвать функцию для получения информации из других ордеров. 

После вызова этой функции Вам придется выбирать ордер заново, потому что эта функция в свою очередь изменяет текущий выбор, получая какую-то информацию из других ордеров.

Было бы логично во всех подобных функциях перед началом их выполнения запоминать текущий выбранный тикет ордера и перед возвратом выбирать его заново, чтобы выбор текущего ордера не менялся при вызове таких функций, что может помочь избежать некоторых трудно выявляемых логических ошибок в коде. Но в МТ5 это оказывается попросту невозможно в виду отсутствия аналога функции OrderTicket и придется придумывать программную обертку в виде специального класса для выбора ордера и получения его тикета.

 
Ilya Malev:

И не только, кстати: представьте ситуацию, когда Вы работаете с выбранным только что ордером, но Вам нужно вызвать функцию для получения информации из других ордеров. 

После вызова этой функции Вам придется выбирать ордер заново, потому что эта функция в свою очередь изменяет текущий выбор, получая какую-то информацию из других ордеров.

Было бы логично во всех подобных функциях перед началом их выполнения запоминать текущий выбранный тикет ордера и перед возвратом выбирать его заново, чтобы выбор текущего ордера не менялся при вызове таких функций, что может помочь избежать некоторых трудно выявляемых логических ошибок в коде. Но в МТ5 это оказывается попросту невозможно в виду отсутствия аналога функции OrderTicket и придется придумывать программную обертку в виде специального класса для выбора ордера и получения его тикета.

Не вижу проблемы. Выбрали ордер. Запомнили его тикет. Нужен другой ордер - нашли другой ордер. Обработали. Нужно вернуться к предыдущему - используем OrderSelect(). Все.
 
Alexey Kozitsyn:
Не вижу проблемы. Выбрали ордер. Запомнили его тикет. Нужен другой ордер - нашли другой ордер. Обработали. Нужно вернуться к предыдущему - используем OrderSelect(). Все.
Если проблемой считать что-то, что нельзя обойти и сделать другим путем, то проблемы нет. Но и аналога полезной функции OrderTicket из MQL4 нет тоже.
 
Ilya Malev:
Если проблемой считать что-то, что нельзя обойти и сделать другим путем, то проблемы нет. Но и аналога полезной функции OrderTicket из MQL4 нет тоже.
Если очень нужно, то, Вы знаете где спрашивать. Однако, вряд ли там Вас обрадуют.
 
МТ4, билд 910. Нет обратной совместимости с предыдущим билдом. Отдаю человеку скомпилированный в 910-м билде файл индикатора, и он его не может запустить у себя в 902-м билде с ошибкой:

has newer unsupported version, please update your client terminal


Теперь так и будет?

 
Artyom Trishkin:
МТ4, билд 910. Нет обратной совместимости с предыдущим билдом. Отдаю человеку скомпилированный в 910-м билде файл индикатора, и он его не может запустить у себя в 902-м билде с ошибкой:

has newer unsupported version, please update your client terminal


Теперь так и будет?

В МТ5 также было, когда тики вводили.
 
Artyom Trishkin:
МТ4, билд 910. Нет обратной совместимости с предыдущим билдом. Отдаю человеку скомпилированный в 910-м билде файл индикатора, и он его не может запустить у себя в 902-м билде с ошибкой:

has newer unsupported version, please update your client terminal


Теперь так и будет?

Да, так задумано. В 910 билде были изменения в компиляторе, соответственно ex4 сгенерированные обновленным компилятором не могут запускаться в предыдущих версиях терминала.

Причина обращения: