Теоретически - да .
Rosh:
Теоретически - да .
Теоретически - да .
Ближе к практике, вероятно, можно зацепиться за функцию
int WindowHandle( string symbol, int timeframe) Возвращает системный дескриптор окна (window handle), содержащего указанный график. Если график с symbol и timeframe на момент вызова функции не открыт, то возвращается 0.Если Вы сможете получить список всех валютных пар в терминале (скрипт пробегал на форуме, кажется Komposter его делал, поищите), то набор timeframe'ов тоже фиксированный. Их взаимное произведение в двух вложенных циклах с ненулевыми дескрипторами, сложенными в хэш (без повторов), и даст искомый набор окон графиков (не индикаторов).
chv:
Ближе к практике, вероятно, можно зацепиться за функцию
Rosh:
Теоретически - да .
Теоретически - да .
Ближе к практике, вероятно, можно зацепиться за функцию
int WindowHandle( string symbol, int timeframe) Возвращает системный дескриптор окна (window handle), содержащего указанный график. Если график с symbol и timeframe на момент вызова функции не открыт, то возвращается 0.Если Вы сможете получить список всех валютных пар в терминале (скрипт пробегал на форуме, кажется Komposter его делал, поищите), то набор timeframe'ов тоже фиксированный. Их взаимное произведение в двух вложенных циклах с ненулевыми дескрипторами, сложенными в хэш (без повторов), и даст искомый набор окон графиков (не индикаторов).
chv, спасибо. Это то, что нужно.
chv:
Их взаимное произведение в двух вложенных циклах с ненулевыми дескрипторами, сложенными в хэш (без повторов), и даст искомый набор окон графиков (не индикаторов).
Ой, chv, как только я прочитал эту вумную фразу, тут же себя таким тупым
почувствовал. Про взаимное произведение вроде как понятно,
что-то типа произведения двух множеств. А вот то, что сказано
про хэш, для меня темный лес. Буду рад, если сможете уделить время
и прояснить.
Их взаимное произведение в двух вложенных циклах с ненулевыми дескрипторами, сложенными в хэш (без повторов), и даст искомый набор окон графиков (не индикаторов).
Mathemat писал (а):
Ой, chv, как только я прочитал эту вумную фразу, тут же себя таким тупым почувствовал. Про взаимное произведение вроде как понятно, что-то типа произведения двух множеств. А вот то, что сказано про хэш, для меня темный лес. Буду рад, если сможете уделить время и прояснить.
Ой, chv, как только я прочитал эту вумную фразу, тут же себя таким тупым почувствовал. Про взаимное произведение вроде как понятно, что-то типа произведения двух множеств. А вот то, что сказано про хэш, для меня темный лес. Буду рад, если сможете уделить время и прояснить.
Есть такой класс в MS .NET (наверняка и в других системах аналоги), называется System.Collections.Hashtable. Он по сути нужен для хранения пар (ключ/значение), что-то типа:
openWith.Add("txt", "notepad.exe"); openWith.Add("bmp", "paint.exe"); openWith.Add("dib", "paint.exe"); openWith.Add("rtf", "wordpad.exe");причём значения ключей не повторяются. Можно проверить перед добавлением наличие ключа:
if (!openWith.ContainsKey("ht")) { openWith.Add("ht", "hypertrm.exe"); Console.WriteLine("Value added for key = "ht": {0", openWith["ht"]); }Применительно к озвученной MQL задаче значения (handle) дескрипторов и будут ключами (и значениями тоже), гарантируя их уникальность (отсутствие повторов) в итоговом списке.
Надеюсь, объяснил понятно :)
В PERL - массив спец. структуры, состоящий из пар КЛЮЧ_[разделитель]_ЗНАЧЕНИЕ;
перебор производится в цикле FOR EACH {...} по хэш-дескриптору (ключу).
ИМХО, очень удобная штука. Пожелание: встроить когда-нибудь
эту конструкцию в MQL.
alexjou:
В PERL - массив спец. структуры, состоящий из пар КЛЮЧ_[разделитель]_ЗНАЧЕНИЕ; перебор производится в цикле FOR EACH {...} по хэш-дескриптору (ключу). ИМХО, очень удобная штука. Пожелание: встроить когда-нибудь эту конструкцию в MQL.
В PERL - массив спец. структуры, состоящий из пар КЛЮЧ_[разделитель]_ЗНАЧЕНИЕ; перебор производится в цикле FOR EACH {...} по хэш-дескриптору (ключу). ИМХО, очень удобная штука. Пожелание: встроить когда-нибудь эту конструкцию в MQL.
Да, похоже, это общий стандарт для платформ разработки:
foreach (string sTerminal in m_HostCol) { runOneTerminal(sTerminal); }
Ага, спасибо, теперь понятно.
Такую функцию можно и самим написать для собственных нужд (в
MQL4). Встраивание ее в язык на данный момент мне кажется надуманным,
только для крутизны.
"Ако някогда..." (Э. Димитров) - "Когда-нибудь..."
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Скрипту надо передать список валютных пар, для которых открыты окна графиков.
Можно ли это сделать?