Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Что произойдет по истечении этой секунды? Продолжится работа в условиях отсутствия синхронизации?
Да, продолжит, выдав Алерт. Но я с трудом представляю, чтобы секунды не хватило. Рассинхрон длится миллисекунды.
Если такое произойдет, желательно здесь отписаться.
Это нужно прописывать в боевых роботах?
Не нужно. Если запустить скрипт выше без этой строки, то статистика, скорее всего, покажет, что не было ни одного рассинхрона. Мне эта строка нужна была, как дополнительный фактор, провоцирующий на обнаружение проблемы. Почти изначально библиотека каждый торговый запрос пытается довести до состояния синхронизации. Строкой специально отключил, чтобы усложнить задачу и проверить независимый механизм идентификации рассинхрона.
Или достаточно проверять MT4ORDERS::ByPass.Is() перед торговыми операциями (чтобы убедиться в отсутствии рассинхрона)?
Каждый раз при вызове OrdersTotal, OrdersHistoryTotal и OrderSelect идет ожидание ByPass.Is()==true. Поэтому результат этих функций актуален СРАЗУ после их вызова. По прошествии времени они могут измениться, поэтому правильно их вызывать снова, если была какая-либо пауза. В этом и состоит ответ на заданный выше вопрос. Это правильно делать не только в MT5, но и в MT4.
Так что если только что считали торговое окружение, то можно делать торговую операцию сразу, т.к. окружение еще актуально. Поэтому и получилось скрыть механизм от рядового пользователя библиотеки.
fxsaber:
Да, продолжит, выдав Алерт. Но я с трудом представляю, чтобы секунды не хватило. Рассинхрон длится миллисекунды.
Если такое произойдет, желательно здесь отписаться.
Если все-таки не полагаться на то, что за секунду окружение синхронизировалось, как правильно прервать работу советника (запретить новые ордера) при отсутствии синхронизации?
?
Если все-таки не полагаться на то, что за секунду окружение синхронизировалось, как правильно прервать работу советника (запретить новые ордера) при отсутствии синхронизации?
Здесь уже на свое усмотрение. Можете, как написали. Или сделать очередной Waiting. Или паузу увеличить. Я бы попытался дождаться хоть одного такого длительного рассинхрона.
Здесь уже на свое усмотрение. Можете, как написали. Или сделать очередной Waiting. Или паузу увеличить. Я бы попытался дождаться хоть одного такого длительного рассинхрона.
Спасибо!
Попробую подождать алерта или задвоения, другие проверки уберу.
Важно для тех, кто использует снепшоты и другие очень специфические техники торговли.
Утомили сюрпризы с маржой. Рекомендую запускать подобные проверочные скрипты перед тем, как использовать боевые советники.
Видим полное несоответствие расчетных показателей маржи MT5 и реальных. При таких раскладах, наверное, пока единственный способ - обходить соответствующие символы стороной.
ЗЫ А еще утомляет, что берешься за элементарные вещи, сразу находишь там баги, а на форуме об этом ни слова!