История сделок в MT4

 

Добрый день!

Поиск по форуму и Google мне не помогли, по этому решил создать обсуждение.

Проблема: Программно (средствами языка MQL4 в частности) загрузить всю историю сделок в терминал для дальнейшей работы с ним.

У меня вообще задача стоит такая: загрузить историю сделок в базу данных. По-скольку счетов много, возникает вероятность,что где-то история отображается не вся или нет ее частично ... Хотелось бы иметь возможность перед загрузкой всей истории в базу программно подгрузить ее полностью в терминал, а потом перевести в, к примеру, "Сегодня". В этом случае код будет не привязан к рукам юзера, который может забыть загрузить ее полностью перед тем как использовать скрипт.

Подскажите, если это вообще возможно...

 
Anton Gaisin:

Добрый день!

Поиск по форуму и Google мне не помогли, по этому решил создать обсуждение.

Проблема: Программно (средствами языка MQL4 в частности) загрузить всю историю сделок в терминал для дальнейшей работы с ним.

У меня вообще задача стоит такая: загрузить историю сделок в базу данных. По-скольку счетов много, возникает вероятность,что где-то история отображается не вся или нет ее частично ... Хотелось бы иметь возможность перед загрузкой всей истории в базу программно подгрузить ее полностью в терминал, а потом перевести в, к примеру, "Сегодня". В этом случае код будет не привязан к рукам юзера, который может забыть загрузить ее полностью перед тем как использовать скрипт.

Подскажите, если это вообще возможно...

Программно?

 Размер списка истории зависит от текущих настроек вкладки "История счета" терминала.

 
Alekseu Fedotov:

Программно?

 Размер списка истории зависит от текущих настроек вкладки "История счета" терминала.

Эт понятно... я хочу программно загружать историю в терминал, чтобы потом ее выгрузить в БД.
 
Anton Gaisin:
Эт понятно... я хочу программно загружать историю в терминал, чтобы потом ее выгрузить в БД.
Обычно большинство брокеров отдают историю месяца за два прошлых, не больше.
 

Прямого способа программно из языков MQL изменить установку периода истории в закладке "История счета" я не знаю, только вручную. Однако в Вашем случае сбора историй со многих счетов, когда время не критично, это возможно.

Посмотрите в файл \config\terminal.ini. В нем перезаписывается строка с HistoryPeriod= всякий раз, когда Вы изменяете установку в закладке "История счета": вся история HistoryPeriod=7, за 3 месяца HistoryPeriod=5 и т.д. При работающем терминале файл не открыт им монопольно, файл можно редактировать и после этого сохранять на диске. Очевидно, его инструкции считываются при запуске терминала, однако это необходимо проверить.

Дальше. Напишите bat файл или более удобными для Вас средствами создайте программу, которая еще до запуска терминалов пропишет во все нужные terminal.ini строку HistoryPeriod= с требуемым вариантом. Путем замены строки или ее вставки перед строкой с "LastScanTime=". Эта же программа должна (либо один раз? сделать вручную, а не программно) рассовать по всем каталогам с нужными terminal.exe файлы с конфигурацией при старте (справка "Сервис\Конфигурация при старте"), указав в каждом из них логин и пароль к нужному счету, а также график, который должен автоматически появиться, и нужные скрипт и/или советник на нем. Например, такими строками в файле MyStart:

Login=1181083
Password=za2p55Join

.......

Symbol=EURUSD
Period=M1
Template=My_EUR.tpl  Здесь сразу задан еще и шаблон графика, его нужно поместить в \templates\. Это для единства внешнего вида, необязательно. В шаблоне графика скрипты и советники не упоминать
Script=My_Script Требуемые программки MQL должны быть уже откомпилированы, а их ex4 версии находиться в нужных местах
Expert=My_Ord

Теперь запускаем все терминалы с помощью bat файла, с ожиданием закрытия каждого терминала или без него, как требуется. Возникающие окна графиков из файла MyStart конфигурации при старте сразу будут иметь подключенный скрипт (эксперт), который и соберет сведения из истории счета, а в конце своей работы может и закрыть терминал командой TerminalClose(0).

Подразумевается режим работы терминалов /portable. То есть запуск из командной строки и bat файлов в виде "C:\каталоги\terminal.exe /portable MyStart"

 
Анализатор торговой истории для MetaTrader 4
Анализатор торговой истории для MetaTrader 4
  • 2018.01.09
  • Andrey Gordienko
  • www.mql5.com
Дано: история сделок в формате CSV со странички сигнала на www.mql5.com Требуется: посмотреть, как эта история выглядит на реальном графике в MetaTrader. Доработано и выложено "как есть". Работает в MetaTrader 4 следующим образом: На страничке интересующего сигнала открываем вкладку История сделок, внизу страницы Экспорт в CSV → История...
Причина обращения: