Новички, с какими трудностями в программировании на MQL вы сталкиваетесь в 2025 году? - страница 9

 
Artyom Trishkin #:

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

Спасибо, Артём, за добрые слова. Много раз благодарил участников Форума и ещё раз повторю - СПАСИБО ВСЕМ ЗА ОКАЗАННУЮ МНЕ ПОМОЩЬ В САМООБУЧЕНИИ!!!

С уважением ко всем, Владимир.

 
Vasiliy Sokolov #:

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

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

Пример: для нормального запуска советника нужна гарантировано синхронизированная история котировок. Пока не попадалась нормальная документация на тему, как этого добиться со 100% гарантией, если всё работает и как узнать что не работает, если это не получается. Имхо, документация как-то плавно обходит подобные практические вопросы.

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

 
Artyom Trishkin #:

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

Именно так. И очень интересно, что объясняя Владимиру что-то, я вдруг находил для себя какие-то неожиданные решения.

Например:

Я всегда считал бесполезной функцию выбора позиции по символу. Ведь она выбирает последнюю позицию. И имеет смысл при нетинге. Но вдруг пришёл к такому выводу, что если по символу нет позиции, то и искать среди открытых нет смысла. А если есть хоть одна, то надо перебрать все позиции и просеять их по своему алгоритму.

 
Aleksey Nikolayev #:

Пример: для нормального запуска советника нужна гарантировано синхронизированная история котировок. Пока не попадалась нормальная документация на тему, как этого добиться со 100% гарантией, если всё работает и как узнать что не работает, если это не получается. Имхо, документация как-то плавно обходит подобные практические вопросы.

Это первый пример, что пришёл в голову...

   if(!SymbolIsSynchronized(_Symbol))
     {
      Print("Ошибка синхронизированности данных по указанному символу! ",GetLastError());
      return(false);
     }

Это не подходит?

С уважением, Владимир.

Документация по MQL5: Получение рыночной информации / SymbolIsSynchronized
Документация по MQL5: Получение рыночной информации / SymbolIsSynchronized
  • www.mql5.com
Проверяет факт синхронизированности данных по указанному символу в терминале с данными на торговом сервере Параметры name [in]  Имя символа...
 
MrBrooklin #:
Это не подходит?

Вполне подходит. Как и SeriesInfoInteger() с идентификатором SERIES_SYNCHRONIZED (кстати, было бы неплохо в документации проговорить их различия).

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

 
Aleksey Nikolayev #:

Вполне подходит. Как и SeriesInfoInteger() с идентификатором SERIES_SYNCHRONIZED (кстати, было бы неплохо в документации проговорить их различия).

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

Посмотрите вот здесь (про различие) и здесь (про синхронизацию - см.QuoteRefresh) - может быть подойдёт.

Учебник по MQL5: Автоматизация торговли / Финансовые инструменты и обзор рынка / Проверка актуальности данных по символу
Учебник по MQL5: Автоматизация торговли / Финансовые инструменты и обзор рынка / Проверка актуальности данных по символу
  • www.mql5.com
В силу распределенности клиент-серверной архитектуры, клиентские и серверные данные могут время от времени отличаться. Например, это может...
 
Stanislav Korotky #:

Посмотрите вот здесь (про различие) и здесь (про синхронизацию - см.QuoteRefresh) - может быть подойдёт.

Спасибо, обязательно посмотрю.

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

И это не может не отталкивать новичков.

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

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

В приведённом мною коде показан пример, который не позволит советнику работать до тех пор, пока не произойдёт синхронизация данных по указанному символу. Простыми словами Ваш советник не будет дальше работать до тех пор пока не произойдёт 100% синхронизация данных. Вы же этого хотите добиться?

С уважением, Владимир.

 
MrBrooklin #:

В приведённом мною коде показан пример, который не позволит советнику работать до тех пор, пока не произойдёт синхронизация данных по указанному символу. Простыми словами Ваш советник не будет дальше работать до тех пор пока не произойдёт 100% синхронизация данных. Вы же этого хотите добиться?

С уважением, Владимир.

Что конкретно в вашем коде запускает процесс синхронизации?