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

 
Реter Konow:

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

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

Хорошие, самодостаточные ориентиры - сами статьи. В них не только есть ориентиры, но они ещё и разжёваны досконально - было б не лень читать.

Схема будет в конце создания библиотеки. Равно как и user-case-методы для быстрого доступа ко всем возможностям библиотеки.

 
Реter Konow:

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

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

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

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

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

Попробую ещё раз сказать (это было в прошлой статье): есть такие ошибки торгового сервера, которые требуют некоторой задержки перед повторной отправкой торгового запроса на сервер.
Обычно предлагается задержку делать при помощи Sleep(). Но она останавливает выполнение программы. Таким образом, вся программа будет ожидать завершения паузы внутри торгового метода перед отправкой повторного запроса на сервер.
Хорошо ли это? В общем и простейшем случае - нормально.
Но советник может быть мультивалютным. И во время ожидания он больше ничего, кроме самого этого ожидания делать не будет.
Хорошо ли это? Думаю, что нет - советник должен продолжать контролировать окружающую обстановку по всем своим рабочим символам. Именно это ему и предоставляют отложенные запросы: получили ошибку от сервера, требующую ожидания - создали отложенный запрос с нужным количеством попыток и требуемым временем ожидания между ними, и пошли дальше делать свои дела. Далее уже торговый класс сам вовремя отправит нужный торговый запрос на сервер. При этом сначала проверит "а не закончилось ли время на исполнение всех, отведённых для торгового запроса, попыток". Поэтому, через стопятьсотчасов советник не будет отсылать устаревшие ордера на сервер.

И если вы так сильно любите общаться с программой, то предложенные мною "отложенные торговые запросы" позволяют пользователю задать условие, когда нужно отослать торговый приказ. Задали условие, и идёте по своим делам - как только условие наступит - запрос сработает. Это один из множества методов создания торговой логики для советников. И когда в библиотеке будет доступно построение графической оболочки для своих программ, тогда можно будет легко создавать инструменты для создания торговой логики - ввели нужные значения, указали тип запроса, и когда ему нужно сработать, и всё...

Это первое что в голову приходит для пояснения и ответа на ваш вопрос "зачем всё это нужно" - всё делается не "прямо здесь и сейчас", а по кирпичикам, постепенно.

 
Artyom Trishkin:

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

Попробую ещё раз сказать (это было в прошлой статье): есть такие ошибки торгового сервера, которые требуют некоторой задержки перед повторной отправкой торгового запроса на сервер.
Обычно предлагается задержку делать при помощи Sleep(). Но она останавливает выполнение программы. Таким образом, вся программа будет ожидать завершения паузы внутри торгового метода перед отправкой повторного запроса на сервер.
Хорошо ли это? В общем и простейшем случае - нормально.
Но советник может быть мультивалютным. И во время ожидания он больше ничего, кроме самого этого ожидания делать не будет.
Хорошо ли это? Думаю, что нет - советник должен продолжать контролировать окружающую обстановку по всем своим рабочим символам. Именно это ему и предоставляют отложенные запросы: получили ошибку от сервера, требующую ожидания - создали отложенный запрос с нужным количеством попыток и требуемым временем ожидания между ними, и пошли дальше делать свои дела. Далее уже торговый класс сам вовремя отправит нужный торговый запрос на сервер. При этом сначала проверит "а не закончилось ли время на исполнение всех, отведённых для торгового запроса, попыток". Поэтому, через стопятьсотчасов советник не будет отсылать устаревшие ордера на сервер.

И если вы так сильно любите общаться с программой, то предложенные мною "отложенные торговые запросы" позволяют пользователю задать условие, когда нужно отослать торговый приказ. Задали условие, и идёте по своим делам - как только условие наступит - запрос сработает. Это один из множества методов создания торговой логики для советников. И когда в библиотеке будет доступно построение графической оболочки для своих программ, тогда можно будет легко создавать инструменты для создания торговой логики - ввели нужные значения, указали тип запроса, и когда ему нужно сработать, и всё...

Это первое что в голову приходит для пояснения и ответа на ваш вопрос "зачем всё это нужно" - всё делается не "прямо здесь и сейчас", а по кирпичикам, постепенно.

При обрыве связи с сервером, все вычисления в советнике останавливаются, потому что главный двигатель расчетов, - цена. 
Нет интернета - нет тиков - нечего рассчитывать в мультивалютном советнике. Нужно ждать соединения. После восстановления связи нужно переспросить об отсылке сорвавшихся ордеров, а до этого, можно сидеть в цикле ожидания связи - все равно делать нечего.
 
Реter Konow:
При обрыве связи с сервером, все вычисления в советнике останавливаются, потому что главный двигатель расчетов, - цена. 
Нет интернета - нет тиков - нечего рассчитывать в мультивалютном советнике. Нужно ждать соединения. После восстановления связи нужно переспросить об отсылке сорвавшихся ордеров, а до этого, можно сидеть в цикле ожидания связи - все равно делать нечего.
Петр, обрыв связи - не единственная ошибка, требующая ожидания перед повтором. Вот же прицепились к искусственно-эмулированной ошибке для тестирования...
Ожидания Sleep-ом в библиотеке не будет.
 
Artyom Trishkin:
Петр, обрыв связи - не единственная ошибка, требующая ожидания перед повтором. Вот же прицепились к искусственно-эмулированной ошибке для тестирования...
Ожидания Sleep-ом в библиотеке не будет.  

Все обращения советника к серверу отследить невозможно.


  •  Вы можете отследить торговые ордера посылаемые серверу ТОЛЬКО через методы вашей библиотеки. А если ордера идут через собственные функции?
  • Как вы отследите и что можете сделать в случае обрыва/соединения связи, если советник использует свои методы для общения с сервером? 
  Поэтому вопрос:
  • Что еще вы можете предложить в качестве решения проблем общения с сервером, кроме повторных отсылок сорвавшихся ордеров?


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

 
Artyom Trishkin:

...

Попробую ещё раз сказать (это было в прошлой статье): есть такие ошибки торгового сервера, которые требуют некоторой задержки перед повторной отправкой торгового запроса на сервер.
Обычно предлагается задержку делать при помощи Sleep(). Но она останавливает выполнение программы. Таким образом, вся программа будет ожидать завершения паузы внутри торгового метода перед отправкой повторного запроса на сервер.
...

Нужен конкретный перечень таких ошибок, и объяснение - ЧТО библиотека предлагает в качестве решения.

Нужно для пользователей, чтобы заставить их применять функции библиотеки, а не собственные. 

Так что это за ошибки и какие у вас решения в общих чертах?

 
Реter Konow:

...

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

Посмотрел прошлую статью. Там речь только о срыве отсылки ордера в следствии недоступности сервера. Форма решения намного более сложная, чем я мог себе представить. Но, Суть решения от этого сложнее не становиться.

Решения для остальных типов повторных запросов там нет.

 
Реter Konow:

Посмотрел прошлую статью. Там речь только о срыве отсылки ордера в следствии недоступности сервера. Форма решения намного более сложная, чем я мог себе представить. Но, Суть решения от этого сложнее не становиться.

Решения для остальных типов повторных запросов там нет.

А вы проверьте :)
Как вы не можете понять, что для тестирования отработки отложенных запросов я специально эмулировал лишь одну из возможных ошибок... В следующей статье я упростил эту эмуляцию - там реакция на кнопку авто-торговля в терминале. 
А список ошибок есть в коде. Для тех, кто не читает, заново объяснять не хочется.
 
Artyom Trishkin:
А вы проверьте :)
Как вы не можете понять, что для тестирования отработки отложенных запросов я специально эмулировал лишь одну из возможных ошибок... В следующей статье я упростил эту эмуляцию - там реакция на кнопку авто-торговля в терминале. 
А список ошибок есть в коде. Для тех, кто не читает, заново объяснять не хочется.

Это не ответ. 

Вы не хотите общаться по теме, и показать, какие отложенные запросы может обрабатывать библиотека. 

Для каждого отложенного запроса (не ордера) нужно свое решение, - свой магик, свои свойства, свои методы и прочее. И где это?  

 
Реter Konow:

Это не ответ. 

Вы не хотите общаться по теме, и показать, какие отложенные запросы может обрабатывать библиотека. 

Для каждого отложенного запроса (не ордера) нужно свое решение, - свой магик, свои свойства, свои методы и прочее. И где это?  

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