Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Anton Gaisin
132
Anton Gaisin 2016.11.10 12:43 

Добрый день!

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

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

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

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

Alekseu Fedotov
887
Alekseu Fedotov 2016.11.10 18:02  
Anton Gaisin:

Добрый день!

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

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

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

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

Программно?

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

Anton Gaisin
132
Anton Gaisin 2016.11.10 18:08  
Alekseu Fedotov:

Программно?

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

Эт понятно... я хочу программно загружать историю в терминал, чтобы потом ее выгрузить в БД.
Yury Kirillov
3372
Yury Kirillov 2016.11.10 21:08  
Anton Gaisin:
Эт понятно... я хочу программно загружать историю в терминал, чтобы потом ее выгрузить в БД.
Обычно большинство брокеров отдают историю месяца за два прошлых, не больше.
Vladimir
334
Vladimir 2016.11.11 02:09  

Прямого способа программно из языков 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"

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий