Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
А вообще развел демагогию.
Все что нужно для того что знать выбран ордер или нет.
Я же объяснил все в начале темы, неужели так непонятно?
У нас есть некоторая функция, которая потенциально работает с ордерами, т.е. выбирает их и анализирует. Она может вызываться из разных частей кода, в том числе из тех частей, где уже выбран для работы какой-то ордер. Если в этой отдельной функции не делать сохранение выбранного ордера и восстановление его выбора, то это приведет к ошибкам в логике советника, т.к. по возвращению из этой функции будет выбран не тот ордер, который был выбран до её вызова. Поэтому для избегания таких ошибок нужно в каждой вспомогательной функции, которая сама по себе работает с ордерами, запоминать текущий выбранный ордер из места её вызова и возвращать его выделение при завершении. Как эту задачу выполнить просто и без генерации ошибок - это и есть вопрос данной темы
// Поразумевает ордер выбраный посредством OrderSelect (ну или ошибку)
Почему ошибку? Если ордер не выбран, то в этом действии просто нет необходимости, но узнать заранее, выбран ордер или нет без специальных ухищрений похоже нельзя
// Так зачем его еще раз выбирать???
Именно затем, чтобы после возврата из этой функции в вызывающую часть кода выбранный в этой части кода до вызова этой функции ордер оставался выбранным - чтобы операции, предпринимаемые дальше с текущим выбранным ордером не приводили к ошибкам
Нет он реально в танке.
Я же объяснил все в начале темы, неужели так непонятно?
У нас есть некоторая функция, которая потенциально работает с ордерами, т.е. выбирает их и анализирует. Она может вызываться из разных частей кода, в том числе из тех частей, где уже выбран для работы какой-то ордер. Если в этой отдельной функции не делать сохранение выбранного ордера и восстановление его выбора, то это приведет к ошибкам в логике советника, т.к. по возвращению из этой функции будет выбран не тот ордер, который был выбран до её вызова. Поэтому для избегания таких ошибок нужно в каждой вспомогательной функции, которая сама по себе работает с ордерами, запоминать текущий выбранный ордер из места её вызова и возвращать его выделение при завершении. Как эту задачу выполнить просто и без генерации ошибок - это и есть вопрос данной темы
1. Передать в функцию номер ордера, выбранного до ее вызова.
2. По завершении работы функции повторно выбрать тот же ордер.
ЗЫ Откуда я знаю, что Вы хотите получить? Внятнее как нибудь нужно бы :(
1. Передать в функцию номер ордера, выбранного до ее вызова.
2. По завершении работы функции повторно выбрать тот же ордер.
ЗЫ Откуда я знаю, что Вы хотите получить? Внятнее как нибудь нужно бы :(
Да, я понимаю это, однако, я бы хотел писать информационные функции, типа там общей прибыли или кол-ва открытых ордеров, которые можно вызывать, не задумываясь о том, что они что-то поменяют в логике выполнения программы. Это вполне логично, я думаю
Не всегда тривиально передать выбранный ордер в вызывающей функции, представьте что вложенность вызовов >1, в каждую функцию что ли передавать тикет ради того, чтобы какая-то мелкая информационная функция могла им воспользоваться?
Логичнее как раз сделать обертку на OrderSelect и OrderTicket, которые сохраняют и получают информацию о текущем выбранном ордере из отдельной переменной, но тут получается дублирование информации (терминал и так знает, выбран ли ордер, но не может сообщить эту информацию без потенциальной ошибки). Т.е. у нас получается либо дублирование информации, либо чрезмерное усложнение функций (передавать в каждую параметром ещё и выбранный ордер с самого верха), либо вынужденная генерация ошибок выполнения программы.
Да, я понимаю это, однако, я бы хотел писать информационные функции, типа там общей прибыли или кол-ва открытых ордеров, которые можно вызывать, не задумываясь о том, что они что-то поменяют в логике выполнения программы. Это вполне логично, я думаю
Логично, но тогда нужно, как минимум, разделить функции на "белые" и "черные". Номер ордера, выбранного в первых, сохраняется, а после его нарушения в последних - восстанавливается.
Вроде, все просто.
Да, я понимаю это, однако, я бы хотел писать информационные функции, типа там общей прибыли или кол-ва открытых ордеров, которые можно вызывать, не задумываясь о том, что они что-то поменяют в логике выполнения программы. Это вполне логично, я думаю
Не всегда тривиально передать выбранный ордер в вызывающей функции, представьте что вложенность вызовов >1, в каждую функцию что ли передавать тикет ради того, чтобы какая-то мелкая информационная функция могла им воспользоваться?
Посмотрите библиотеку функций у Кима и увидите, что в каждой функции производится перебор, выбор и проверка тикет, а потом уже то, что нужно узнать. Ваша "логика" не позволяет Вам усваивать азбучные правила программирования.
В огороде бузина, а в Киеве дядька.
Посмотрите библиотеку функций у Кима и увилите, что в каждой функции производится перебор, выбор и проверка тикет, а потом уже то, что нужно узнать. Ваша "логика" не позволяет Вам усваивать азбучные правила программирования.
В огороде бузина, а в Киеве дядька.
Борис, это не обязательно. Я об азбучных правилах.