Обсуждение статьи "Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXVII): Работа с торговыми запросами - выставление отложенных ордеров"

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
MetaQuotes
Модератор
214640
MetaQuotes  

Опубликована статья Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXVII): Работа с торговыми запросами - выставление отложенных ордеров:

В статье продолжим работу над торговыми запросами и реализуем выставление отложенных ордеров, а также устраним найденные недочёты в работе торгового класса.

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

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

Это неудобно, так как требует вместо автоматической корректировки значений самой библиотекой, обязательного знания спецификации символа и ввода точных значений вручную прямо в коде программы. Поэтому мы внесём небольшие исправления в логику работы с торговым классом — в советнике в обработчике OnInit() все торгуемые объекты символов — их торговые объекты будут инициализироваться автоматическим выбором корректных значений. В торговые методы торгового класса по умолчанию будут передаваться значения -1 для типов заливки и экспирации ордеров, что будет сигналом к использованию заранее установленных корректных умолчательных значений. Если же из программы в торговый метод будет передано иное значение, то в этом случае будет использовано оно, и в случае, если значение окажется ошибочным, то оно будет скорректировано при обработке ошибок в торговом классе.

Автор: Artyom Trishkin

Реter Konow
8270
Реter Konow  

Почти 4 мегабайта кодов, а схема библиотеки и пользовательские методы не предоставлены... Вы для себя пишите?

Посмотрите глазами пользователей. Каково им во всем этом разбираться без ориентиров.

Реter Konow
8270
Реter Konow  
Еще вопрос: насколько "разумно" устанавливать отложенный ордер после обрыва интернета, без повторного опроса пользователя? Если подключение интернета займет у пользователя час и ситуация в корне измениться, стоит ли автоматически устанавливать ордер? Не лучше ли оставить сообщение о том, что ордер не был установлен из за отсутствия интернета и пользователь сам решит, нужно ли его повторно устанавливать?
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Приказы на проведение торговых операций оформляются ордерами. Каждый ордер имеет множество свойств для чтения, информацию по ним можно получать с помощью функций Идентификатор позиции, который ставится на ордере при его исполнении. Каждый исполненный ордер порождает сделку, которая открывает новую или изменяет уже существующую позицию...
Artyom Trishkin
Модератор
49530
Artyom Trishkin  
Реter Konow:
Еще вопрос: насколько "разумно" устанавливать отложенный ордер после обрыва интернета, без повторного опроса пользователя? Если подключение интернета займет у пользователя час и ситуация в корне измениться, стоит ли автоматически устанавливать ордер? Не лучше ли оставить сообщение о том, что ордер не был установлен из за отсутствия интернета и пользователь сам решит, нужно ли его повторно устанавливать?
Разве в статье не описан принцип, и для чего именно так?
Реter Konow
8270
Реter Konow  
Artyom Trishkin:
Разве в статье не описан принцип, и для чего именно так?

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

Есть предупреждение, что отложенные запросы представленные в статье нельзя использовать в реальной торговле. То есть, это все тестирование концепции и не больше. 

Объяснения установки ордера после переподключения интернета без опроса пользователя нет.

И неужели нужно несколько статей, чтобы тестировать незамысловатый механизм отложенного торгового запроса? Тем более, проще и правильней повторно опросить пользователя и все.

Alexey Viktorov
24427
Alexey Viktorov  
Реter Konow:

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

Есть предупреждение, что отложенные запросы представленные в статье нельзя использовать в реальной торговле. То есть, это все тестирование концепции и не больше. 

Объяснения установки ордера после переподключения интернета без опроса пользователя нет.

И неужели нужно несколько статей, чтобы тестировать незамысловатый механизм отложенного торгового запроса? Тем более, проще и правильней повторно опросить пользователя и все.

Не забывайте, что это только статья написанная для тех кто хочет в чём-то разобраться. Всего-лишь маленький кусочек урока по программированию, а не готовый советник. В статье описывается и в коде показывается как и что надо делать для достижения желаемого результата. Если-же вам надо делать в своём советнике опрос пользователя, так никто и не запрещает это делать.

Artyom Trishkin
Модератор
49530
Artyom Trishkin  
Реter Konow:

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

Есть предупреждение, что отложенные запросы представленные в статье нельзя использовать в реальной торговле. То есть, это все тестирование концепции и не больше. 

Объяснения установки ордера после переподключения интернета без опроса пользователя нет.

И неужели нужно несколько статей, чтобы тестировать незамысловатый механизм отложенного торгового запроса? Тем более, проще и правильней повторно опросить пользователя и все.

Почитайте пожалуйста прошлую статью - там есть пояснение зачем это нужно. Подсказка:
1. функция Sleep() останавливает выполнение эксперта. Совсем. 
2. Мультивалютный эксперт.
Вы не совсем понимаете эту концепцию. Отсюда такие вопросы.
Для опроса пользователя всё будет. Средствами библиотеки. Но не внутри торговых методов - они это делать не должны, и не будут.
Реter Konow
8270
Реter Konow  
Alexey Viktorov:

Не забывайте, что это только статья написанная для тех кто хочет в чём-то разобраться. Всего-лишь маленький кусочек урока по программированию, а не готовый советник. В статье описывается и в коде показывается как и что надо делать для достижения желаемого результата. Если-же вам надо делать в своём советнике опрос пользователя, так никто и не запрещает это делать.

1. Заботясь о тех, кто хочет разобраться, неплохо бы схему библиотеки сделать, чтобы облегчить ориентирование по материалу.  

2. Каждая поправка вносимая автором в торговые функции не повод в каждой статье их печатать. Материал раздувается. Одни и те же торговые функции кочуют из статьи в статью с малыми изменениями. Теперь будут кочевать коды отложенных запросов? Это не проясняет, а запутывает читателя.

3. Уже скоро 30 статей будет, а пользоваться библиотекой автор предостерегает. Зачем тогда она нужна? Для обучения тому, как писать библиотеку которой нежелательно пользоваться?

Artyom Trishkin
Модератор
49530
Artyom Trishkin  
Реter Konow:

1. Заботясь о тех, кто хочет разобраться, неплохо бы схему библиотеки сделать, чтобы облегчить ориентирование по материалу.  

2. Каждая поправка вносимая автором в торговые функции не повод в каждой статье их печатать. Материал раздувается. Одни и те же торговые функции кочуют из статьи в статью с малыми изменениями. Теперь будут кочевать коды отложенных запросов? Это не проясняет, а запутывает читателя.

3. Уже скоро 30 статей будет, а пользоваться библиотекой автор предостерегает. Зачем тогда она нужна? Для обучения тому, как писать библиотеку которой нежелательно пользоваться?

Вы фарш сырым едите? Вот, чтобы вы его не съели, и дано предупреждение - в этой и прошлой статье идёт подготовка материала и отладки концепции. 
И, да, если потребуется, то методы будут изменены и изменения будут пояснены. 
Троллинг в вопросах не поддерживаю - мне нравится предметный разговор.
Реter Konow
8270
Реter Konow  
Artyom Trishkin:
Вы фарш сырым едите? Вот, чтобы вы его не съели, и дано предупреждение - в этой и прошлой статье идёт подготовка материала и отладки концепции. 
И, да, если потребуется, то методы будут изменены и изменения будут пояснены. 
Троллинг в вопросах не поддерживаю - мне нравится предметный разговор.

Считал, что в статьях должны быть завершенные решения. И что тут отлаживать?

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

Алексей Тарабанов
9560
Алексей Тарабанов  
Вроде, вполне предметно. 
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий