- Ищу скрипт
- Позиционирование истории в окне
- Ошибки, баги, вопросы
Забыл уточнить - счета располагаются в разных ДЦ
ну, что тут думать написать скрипт, который бы писал историю в файл, например, в html формате
Разве существует из скрипта возможность перелогиниваться на азные сервера пол разными аккаунтами ?
Зачем перелогинваться? Скрипт на каждом счёте должен запускаться независимо.
Разве существует из скрипта возможность перелогиниваться на азные сервера пол разными аккаунтами ?
Зачем перелогинваться? Скрипт на каждом счёте должен запускаться независимо.
Разве существует из скрипта возможность перелогиниваться на азные сервера пол разными аккаунтами ?
Зачем перелогинваться? Скрипт на каждом счёте должен запускаться независимо.
если бы терминал позволял запускаться с параметрами
1-брокер
2-счет
3-пароль
проблема была бы решена
маленькая внешняя программа написанная на любом языке
могла бы гонять терминал по всем брокерам... причем не надо было бя для каждого брокера держать свой терминал
----
это если разработчики в следующих релизах посчитают сделать нужным
вообще хорошая штука для тех кто ходит по разным счетам и собирает инфу
или следит за конкурсом
--- я так понимаю надо собирать статистику типа следить за счетами разными ?
Profile - имя поддиректории в директории profiles. В клиентском терминале будут открыты графики в соответствии с указанным профилем. Если данный параметр не указан, то будет открыт текущий профиль.
MarketWatch - имя файла (каталог \symbolsets), в котором содержится список инструментов для отображения в окне обзора рынка. Такой файл может получить при помощи команды контекстного меню окна "Обзор Рынка - Набор символов - Сохранить как".
Login - номер счета, к которому нужно подключиться при запуске. Если данный параметр отсутствует, то будет использован текущий логин.
Password - пароль для входа в систему. Этот параметр будет проигнорирован, если клиентский терминал хранит личные данные на диске и подключаемый номер счета содержится в списке.
Server - имя торгового сервера, к которому должно быть произведено подключение. Имя сервера совпадает с именем соответствующего srv-файла, хранящемся в директории config. Этот параметр будет проигнорирован, если информация о подключаемом аккаунте сохранена на диске.
// Переменное подключение к указанному количеству торговых счетов // в закладке Избранное окна Навигатор #property show_inputs #include <WinUser32.mqh> extern int Amount = 3; // Количество счетов в закладке Избранное окна Навигатор extern int Pause = 10; // Пауза между переключениями торговых счетов #import "user32.dll" int GetParent( int hWnd ); int GetDlgItem( int hDlg, int nIDDlgItem ); int GetLastActivePopup( int hWnd ); #import #define VK_HOME 0x24 #define VK_DOWN 0x28 #define VK_ENTER 0x0D // Подключается к счету, расположенному в строчке номер Num в закладке Избранное окна Навигатор void Login( int Num ) { int hwnd = WindowHandle(Symbol(), Period()); int hwnd_parent = 0; while (!IsStopped()) { hwnd = GetParent(hwnd); if (hwnd == 0) break; hwnd_parent = hwnd; } if (hwnd_parent != 0) // нашли главное окно { hwnd = GetDlgItem(hwnd_parent, 0xE81C); // нашли Избранное окна Навигатор hwnd = GetDlgItem(hwnd, 0x52); hwnd = GetDlgItem(hwnd, 0x8A70); PostMessageA(hwnd, WM_KEYDOWN, VK_HOME,0); // верхняя строчка закладки Избранное окна Навигатор while (Num > 1) { PostMessageA(hwnd, WM_KEYDOWN,VK_DOWN, 0); // сместились на нужную строчку Num--; } PostMessageA(hwnd, WM_KEYDOWN, VK_ENTER, 0); // логин Sleep(1000); // выждали hwnd = GetLastActivePopup(hwnd_parent); // нашли форму логина PostMessageA(hwnd, WM_KEYDOWN, VK_ENTER, 0); // залогинились } return; } void start() { int i; Pause *= 1000; for (i = 1; i <= Amount; i++) { Login(i); Sleep(Pause); } return; }
Поместите нужные вам торговые счета (можно разных ДЦ) в закладку Избранное окна Навигатор.
Запустите скрипт, указав количество торговых счетов в закладке Избранное окна Навигатор.
Примечание: работе скрипта не мешают гуляние по окнам (настройки терминала, свойства графика, архив котировок и т.д.) и присутствие нескольких запущенных терминалов.
// Попеременное сохранение отчетов о торговой истории счетов, // находящихся в закладке Избранное окна Навигатор #property show_inputs #include <WinUser32.mqh> extern int Amount = 5; // Количество счетов в закладке Избранное окна Навигатор extern int Pause = 10; // Пауза между переключениями торговых счетов #import "user32.dll" int GetParent( int hWnd ); int GetDlgItem( int hDlg, int nIDDlgItem ); int GetLastActivePopup( int hWnd ); #import #define VK_HOME 0x24 #define VK_DOWN 0x28 #define VK_ENTER 0x0D #define PAUSE 1000 // Подключается к счету, расположенному в строчке номер Num в закладке Избранное окна Навигатор void Connect( int Num ) { int hwnd = WindowHandle(Symbol(), Period()); int hwnd_parent = 0; while (!IsStopped()) { hwnd = GetParent(hwnd); if (hwnd == 0) break; hwnd_parent = hwnd; } if (hwnd_parent != 0) // нашли главное окно { hwnd = GetDlgItem(hwnd_parent, 0xE81C); // нашли Избранное окна Навигатор hwnd = GetDlgItem(hwnd, 0x52); hwnd = GetDlgItem(hwnd, 0x8A70); PostMessageA(hwnd, WM_KEYDOWN, VK_HOME,0); // верхняя строчка закладки Избранное окна Навигатор while (Num > 1) { PostMessageA(hwnd, WM_KEYDOWN,VK_DOWN, 0); // сместились на нужную строчку Num--; } PostMessageA(hwnd, WM_KEYDOWN, VK_ENTER, 0); // логин Sleep(PAUSE); // выждали hwnd = GetLastActivePopup(hwnd_parent); // нашли форму логина PostMessageA(hwnd, WM_KEYDOWN, VK_ENTER, 0); // залогинились } return; } // Сохраняет детализированный/краткий (Detailed = TRUE/FALSE) отчет о торговой истории счета void SaveStatement( bool Detailed, string FileName ) { int hwnd = WindowHandle(Symbol(), Period()); int hwnd_parent = 0; while (!IsStopped()) { hwnd = GetParent(hwnd); if (hwnd == 0) break; hwnd_parent = hwnd; } if (hwnd_parent != 0) // нашли главное окно { if (Detailed) PostMessageA(hwnd_parent, WM_COMMAND, 35502,0); // Детализированный отчет else PostMessageA(hwnd_parent, WM_COMMAND, 33064,0); // Краткий отчет Sleep(PAUSE); hwnd = GetLastActivePopup(hwnd_parent); // нашли форму сохранения файла SetWindowTextA(GetDlgItem(hwnd, 0x480), FileName); // ввели имя файла PostMessageA(hwnd, WM_KEYDOWN, VK_ENTER, 0); // Подтвердили сохранение Sleep(PAUSE); hwnd = GetLastActivePopup(hwnd_parent); // Нашли предупреждение о перезаписи файла PostMessageA(hwnd, WM_KEYDOWN, VK_DOWN, 0); // Подтвердили перезапись PostMessageA(hwnd, WM_KEYDOWN, VK_ENTER, 0); } return; } void start() { int i; Pause *= 1000; for (i = 1; i <= Amount; i++) { Connect(i); Sleep(Pause); SaveStatement(TRUE, AccountNumber()); } return; }
Поместите нужные вам торговые счета (можно разных ДЦ) в закладку Избранное окна Навигатор.
Запустите скрипт, указав количество торговых счетов в закладке Избранное окна Навигатор.
Примечания:
- Отчеты сохраняются в последнюю использованную вами папку;
- работе скрипта не мешают гуляние по окнам (настройки терминала, свойства графика, архив котировок и т.д.) и присутствие нескольких запущенных терминалов.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования