Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Кому стало плохо от того что ордер выбран повторно?
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Организация цикла перебора ордеров
fxsaber, 2017.10.06 06:26
может привести к ситуации, когда какой-то тикет будет пропущен или тикет через одного повторится и т.д.
И речь не про модификацию даже, а про простой AmountOrders.
Для чего, если IsChange - это пять строк?
Не для решения именно этой проблемы. Это для моей библиотеки - а там решаются очень многие вопросы, нужные для комфортного создания программ. Но в частности как раз и возвращает факт любого изменения в рыночном или историческом списках.
И речь не про модификацию даже, а про простой AmountOrders.
Просто нужно не перебирать списки из окружения, которые тасуются при изменении окружения, а иметь свой список - он не тасуется, и в нём есть все (или в избытке, но не в недостаточности) тикеты, нужные для закрытия/удаления/модификации. При их физическом отсутствии не нужно заново цикл начинать, а просто переходить к следующему по списку. И всё - не нужно изменять индекс цикла и ещё как-то пытаться повторить цикл. Прсто идём по своему списку и пытаемся делать что нужно. Нет уже тикета в рынке - ничего страшного (уже и не вернёшь) - идём к следующему и делаем с ним что задумано. А таймер в свою очередь скорректирует список на следующем тике.
И речь не про модификацию даже, а про простой AmountOrders.
Конечно может. Может случиться всё что угодно, когда угодно. Идёшь, идёшь, всё ровненько и вдруг оступился... На все случаи жизни не придумаешь подстраховку. Именно поэтому я не стараюсь писать максимально универсальные функции "на все случаи жизни". Ну и что от того что выбран ордер дважды для простого AmountOrders? Какова вероятность что ордер будет вручную закрыт/удалён именно в момент выполнения цикла? Ведь в приведённом примере кода, ордер закрывается в том-же самом цикле. Такое можно написать только для эксперимента, в реале я не могу представить чтобы надо было модифаить ордер или ещё что-то сделать и тут-же закрывать...
Просто нужно не перебирать списки из окружения, которые тасуются при изменении окружения, а иметь свой список - он не тасуется, и в нём есть все (или в избытке, но не в недостаточности) тикеты, нужные для закрытия/удаления/модификации. При их физическом отсутствии не нужно заново цикл начинать, а просто переходить к следующему по списку. И всё - не нужно изменять индекс цикла и ещё как-то пытаться повторить цикл. Прсто идём по своему списку и пытаемся делать что нужно. Нет уже тикета в рынке - ничего страшного (уже и не вернёшь) - идём к следующему и делаем с ним что задумано. А таймер в свою очередь скорректирует список на следующем тике.
Представим, что нужно отключить советник, если количество ордеров по заданному символу превышает указанное количество. Ну и как?
Конечно может. Может случиться всё что угодно, когда угодно. Идёшь, идёшь, всё ровненько и вдруг оступился... На все случаи жизни не придумаешь подстраховку. Именно поэтому я не стараюсь писать максимально универсальные функции "на все случаи жизни". Ну и что от того что выбран ордер дважды для простого AmountOrders? Какова вероятность что ордер будет вручную закрыт/удалён именно в момент выполнения цикла? Ведь в приведённом примере кода, ордер закрывается в том-же самом цикле. Такое можно написать только для эксперимента, в реале я не могу представить чтобы надо было модифаить ордер или ещё что-то сделать и тут-же закрывать...
А это смотреть не стали? Воспроизводится на раз!
Представим, что нужно отключить советник, если количество ордеров по заданному символу превышает указанное количество. Ну и как?
Там же - в таймере при записи ордеров в список - превышено - отправили событие или взвели флаг.
Там же - в таймере при записи ордеров в список - превышено - отправили событие или взвели флаг.
Впрочем, так лучше не делать - всё должно быть на своих местах.
В в таймере советника берём список по нужным критериям и при list.Total()>xxx делаем что задумано.
А это смотреть не стали? Воспроизводится на раз!
Именно это я и смотрел.
И мой пост
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Организация цикла перебора ордеров
Alexey Viktorov, 2017.10.06 08:49
Какова вероятность что ордер будет вручную закрыт/удалён именно в момент выполнения цикла?
И ещё, какой такой глубокий смысл в реальной торговле беспрерывно гонять цикл перебора ордеров? Самое главное впустую...
И ещё, какой такой глубокий смысл в реальной торговле беспрерывно гонять цикл перебора ордеров?
В боевом окружении это нужно делать всегда! Поэтому вероятность нарваться на сторонее закрытие позиции внутри цикла - проценты.