К сожалению никак. При острой необходимости, можно вывести MessageBox с сообщением... Дальше по необходимости, выйти из программы, или пойти по указанному пути...
К сожалению никак. При острой необходимости, можно вывести MessageBox с сообщением... Дальше по необходимости, выйти из программы, или пойти по указанному пути...
Спасибо. Так это означает, что фактически невозможно подсчитать реальный профит, заработанный c конкретной даты по конкретному инструменту с конкретным магиком.
Как же тогда дать понять советнику, что "Цель" достигнута - пора закрывать сделки. AccountEquity() использовать некорректно - поскольку эта функция учитывает все без разбора на магики.
Спасибо. Так это означает, что фактически невозможно подсчитать реальный профит, заработанный c конкретной даты по конкретному инструменту с конкретным магиком.
Как же тогда дать понять советнику, что "Цель" достигнута - пора закрывать сделки. AccountEquity() использовать некорректно - поскольку эта функция учитывает все без разбора на магики.
В истории поставить "Вся история" или необходимую глубину, потом начинать цикл с проверкой магиков и прочих атрибутов и пересчётом желаемого параметра.
В истории поставить "Вся история" или необходимую глубину, потом начинать цикл с проверкой магиков и прочих атрибутов и пересчётом желаемого параметра.
А как же если пишешь советник на заказ? Обращать внимание заказчика, что "Account History" нужно поставить в "Вся История"
А как же если пишешь советник на заказ? Обращать внимание заказчика, что "Account History" нужно поставить в "Вся История"
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Alexey Viktorov, 2017.12.04 12:22
К сожалению никак. При острой необходимости, можно вывести MessageBox с сообщением... Дальше по необходимости, выйти из программы, или пойти по указанному пути...
А как же если пишешь советник на заказ? Обращать внимание заказчика, что "Account History" нужно поставить в "Вся История"
Для MT4 можно поправить (программно, перед запуском терминала) файл config\terminal.ini. Посмотрел комментарий к этой моей функции:
"Также проверит, что в config\terminal.ini есть строка HistoryPeriod=7 для MT4 - показывать всю историю счета, а не за иной период. Если ее нет или установка иная, перепишет файл"
Для MT4 можно поправить (программно, перед запуском терминала) файл config\terminal.ini. Посмотрел комментарий к этой моей функции:
"Также проверит, что в config\terminal.ini есть строка HistoryPeriod=7 для MT4 - показывать всю историю счета, а не за иной период. Если ее нет или установка иная, перепишет файл"
Спасибо, за подсказку. Я нашел эту тему https://www.mql5.com/ru/forum/160726. Уверен, что средствами MQL config не переписать. Нужно писать BAT или привязывать внешний dll или еще что-то ...

- 2016.11.10
- www.mql5.com
Спасибо, за подсказку. Я нашел эту тему https://www.mql5.com/ru/forum/160726. Уверен, что средствами MQL config не переписать. Нужно писать BAT или привязывать внешний dll или еще что-то ...
Один раз через mklink поместите config-папку в песочницу. И конфиги навсегда станут доступны из MQL.
А у меня вот такая проверка есть, делюсь...
int It2 = 0; int TryWait = 6000; // 6000 - 10 minutes //--------- All access history if(accountHistoryF) { while(!IsStopped() ) { RefreshRates(); if(OrderSelect(0, SELECT_BY_POS, MODE_HISTORY) ) { if(OrderType() == ORDER_TYPE_BALANCE) break; } if(It2 == 0) { Alert("Open the all Account History please. Waiting..."); SendMail(AccountInfoString(ACCOUNT_COMPANY) + " Account " + IntegerToString(AccountInfoInteger(ACCOUNT_LOGIN) ), AccountInfoString(ACCOUNT_COMPANY) + " Account " + IntegerToString(AccountInfoInteger(ACCOUNT_LOGIN) ) + "\n Symbol " + symbolF + "\n expert " + MQLInfoString(MQL_PROGRAM_NAME) + "\n Open the all Account History please!"); SendNotification( AccountInfoString(ACCOUNT_COMPANY) + " Account " + IntegerToString(AccountInfoInteger(ACCOUNT_LOGIN) ) + "\n Symbol " + symbolF + "\n expert " + MQLInfoString(MQL_PROGRAM_NAME) + "\n Open the all Account History please!"); } It2++; if(It2 >= TryWait) { Print("!!! End waiting - Account History."); return(false); } Sleep(100); } // while(!IsStopped() ) if(It2 > 0) { Alert("Ok. All Account History "); } }
А у меня вот такая проверка есть, делюсь...
В принципе, идея интересная, но если первой в истории идет не балансовая операция, то не сработает. Такое часто бывает, когда брокеры удаляют старую историю. К примеру, у меня сейчас история счета начинается со сделки sell от 04.09.2017 (брокер хранит только три месяца истории).
К сожалению, в МТ4 нет программного способа определения наличия всей доступной истории счета.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Коллеги, приветствую!
Вопрос по OrdersHistoryTotal(). Читаем к ней описание и видим - "Количество закрытых и удаленных ордеров в истории текущего счета, загруженной в клиентском терминале. Размер списка истории зависит от текущих настроек вкладки "История счета" терминала".
Как из MQL4 узнать, что в клиентский терминал загружена история с "нужной даты"...и если нет, то дозагрузить?
Спасибо.