Обновление платформы MetaTrader 4 build 670: виртуальный хостинг, web-запросы и работа с сигналами из MQL-программ - страница 42
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Что-то вы очень усложнили.
Проверять, сработал ли СЛ или ТП, нужно только при изменении OrdersHistoryTotal(). Обратный цикл, поиск последнего ордера с нужным магиком и символом.
На каждом тике ничего перебирать не надо.
Если стоп сработает с процессе выполнения функции start() (или OnTick()), то советник об этом не узнает. Собственно, как и об изменении цены.
Но в этом и нет необходимости, текущий запуск должен обработать текущую ситуацию, а не отслеживать все возможные следующие.
Чтоб посоветовать что-то более конкретное, нужна более конкретная задача.
В оперативной памяти, которая занята процессом MT4. Не файлах, если Вы об этом.
МТ4, независимо от того, нужна трейдеру/программе информация по ордерам или нет, получает эти данные с сервера на каждом тике соответствующего символа. То есть эта информация всегда есть и всегда актуальна (при наличии связи). Эксперт/индикатор запрашивает ее у терминала, а терминал отдает то, что у него уже есть. Лишний запрос на сервер здесь не требуется.
Что-то здесь не так. Между приходами тиков соответствующего символа, выходит, история в терминале может и не совпадать с историей на сервере. У меня в советнике после успешного завершения запроса на открытие сделки вновь открытая сделка сразу же (в следующих строках) обнаруживается в истории. Всегда, без ожидания следующего тика. Это в MT4. В MT5 иначе - приходится ждать 15-30 миллисекунд, пока не актуализируется еще один экземпляр истории, самого советника.
Да и вообще, несолидно как-то для сервера, ждать несколько секунд или десятков секунд посылки тика, не оповещая терминал о случившемся изменении истории.
У меня в советнике после успешного завершения запроса на открытие сделки вновь открытая сделка сразу же (в следующих строках) обнаруживается в истории. Всегда, без ожидания следующего тика.
Мы говорим о событии срабатывания SL/TP. Они не могут сработать без прихода нового тика.
При открытии/установке/закрытии/удалении ордера алгоритм обновления данных диктуется совершением торгового запроса.
Что-то вы очень усложнили.
Проверять, сработал ли СЛ или ТП, нужно только при изменении OrdersHistoryTotal(). Обратный цикл, поиск последнего ордера с нужным магиком и символом.
На каждом тике ничего перебирать не надо.
Подскажите, кто-нибудь, если с индикатором идет библиотека ххх.dll, в какую папку ее надо поместить ? Спасибо.
Документация.
Наблюдения показывают, что вызваный через iCustom индикатор "дремлет" до следующего вызова, а после вызова допросчитывается и снова "дремлет". Это действительно так?
И нельзя ли что-нибудь сказать по #1060392 в Сервисдеск?
Документация.
Наблюдения показывают, что вызваный через iCustom индикатор "дремлет" до следующего вызова, а после вызова допросчитывается и снова "дремлет". Это действительно так?
каждый раз индикатор выгружается, а потом снова загружается и полностью просчитывает все доступные бары при следующем вызове, никакой "дремоты" нет.
каждый раз индикатор выгружается, а потом снова загружается и полностью просчитывает все доступные бары при следующем вызове, никакой "дремоты" нет.
Извините, но я только что экспериментировал с принтами.
Допускаю, что Вы много лучше меня знаете язык, но вы ведь не из команды разработчиков и всего про язык знать не можете.
Извините, но я только что экспериментировал с принтами.
Допускаю, что Вы много лучше меня знаете язык, но вы ведь не из команды разработчиков и всего про язык знать не можете.
может и правда индикатор не выгружается, запринтовал иниты-деиниты с подсчётом в теле OnCalculate:
получается, что индикатор не выгружается, по крайней мере в тестере на протяжении теста: