joo: По-хорошему, нужно просить у разрабов чарты с возможностью их "придокивания" в любом месте интерфейса терминала (приводить примеры подобного решения в терминалах не буду, все знают), тогда и можно будет заполнять неиспользуемое место в интерфейсе терминала как жаждет топикстартер. А уже на таком чарте рисуй что душе угодно, хоть и бестолковые (пардон, на мой взгляд) таблицы сабжа.
Вроде как просили. От них один шаг остался бы до кастомной истории... не дадут.
В моем воспаленном мозгу наконец, оформилась конкретная идея.)) Очень надеюсь, что она будет интересна...
Можно всё сделать гораздо красивей!
Естественно и очевидно, что параметры рыночного окружения конкретного символа в терминале хранятся в одном месте и в единственном экземпляре. Независимо от количества графиков, советников и индикаторов.
Очевидно и то, что эти значения постоянно синхронизируются с сервером и изменяются.
Так вот, если добавить в эту кучу специальный хеш-массив даблов и сделать к нему доступ(r/w) только из MQL, это открывает широчайшие возможности для обмена данными в мульти-инструментных роботах.
И самое главное!)) Это позволяет решить и проблему сабжа. В смысле, достаточно будет сделать возможность подключения в марктвотче столбцов с нэймами и значениями из этого массива и всё. Больше не надо никаких других столбцов! Сами нарисуем как нам надо.
Вам конечно видней... На мой взгляд, доработка не громадная. Повлиять и как-то нарушить целостность архитектуры МТ не должна. В MQL придется добавить всего несколько функций. Возможно, порешать с потокобезопасностью. Зато, способ можно назвать красивым и незатейливым.
В моем воспаленном мозгу наконец, оформилась конкретная идея.)) Очень надеюсь, что она будет интересна...
Можно всё сделать гораздо красивей!
Естественно и очевидно, что параметры рыночного окружения конкретного символа в терминале хранятся в одном месте и в единственном экземпляре. Независимо от количества графиков, советников и индикаторов.
Очевидно и то, что эти значения постоянно синхронизируются с сервером и изменяются.
Так вот, если добавить в эту кучу специальный хеш-массив даблов и сделать к нему доступ(r/w) только из MQL, это открывает широчайшие возможности для обмена данными в мульти-инструментных роботах.
И самое главное!)) Это позволяет решить и проблему сабжа. В смысле, достаточно будет сделать возможность подключения в марктвотче столбцов с нэймами и значениями из этого массива и всё. Больше не надо никаких других столбцов! Сами нарисуем как нам надо.
Вам конечно видней... На мой взгляд, доработка не громадная. Повлиять и как-то нарушить целостность архитектуры МТ не должна. В MQL придется
добавить
всего несколько функций. Возможно, порешать с потокобезопасностью. Зато, способ можно назвать красивым и незатейливым.
Ничего не понял. Но задумка судя по обилию жирного текста интересная.
С-4: Ничего не понял. Но задумка судя по обилию жирного текста интересная.
Не удивлён! ))
Попробую объяснить на уровне программёров, разработчиков метатрейдера.
К примеру, у символа есть ласт-цена, так? Она относится только к своему символу и ни к чему более, так?
Переходим на уровень кода терминала (МТ). Вот там, где находится эта ячейка - это поле хранящее ласт-цену, в том же классе, в той же структуре, прям следующей строкой, надо объявить динамический dictionary-массив. dictionary-это с доступом по стринговому ключу, хэш-массив - я правильно понимаю?
Из MQL сделать доступ к этому массиву. Полный. Т.е. из одного индикатора мы можем добавить
туда
элемент с присвоением имени и записать в него любое значение, например уровень корреляции орбит венеры-марса. В другом считать это значение. На лицо прямой обмен данными, как с помощью глобальных переменных, только объединенными по конкретному символу.
Далее, останется сделать управляемое подключение столбцов в
MWatch
где можно будет добавить столбец с именем, взятым из любого ключа таких массивов. И отображать в маркетвотче значения из них. Хэши по столбцам, значения по символам.
Например, разные советники на трех парах выполняют такой код
на EURUSD:
CustomAdd("Change%");... CustomUpdate (Symbol(), "Change%", -2.21); //добавляем элемент массива(это однажды в ините), изменяем элемент
double pos_lot = [получаем текущую позицию]; CustomAdd("Position");... CustomUpdate ( Symbol(), "Position", pos_lot); // Открытый объем
на GBPUSD:
CustomAdd("Change%");... CustomUpdate ( Symbol(), "Change%", -1.32); //добавляем элемент массива(...), изменяем элемент
double pos_lot = [получаем текущую позицию]; CustomAdd("Position");... CustomUpdate ( Symbol(), "Position", pos_lot); // Открытый объем
на USDJPY:
double i=CustomGet("EURUSD", "Change%") + CustomGet("GBPUSD", "Change%");//получаем кастомные значения соответствующих символов
CustomAdd("ChangeSum");... CustomUpdate (Symbol(), ChangeSum", i); //добавляем элемент массива(...), изменяем элементdouble pos_lot = [получаем текущую позицию]; CustomAdd("Position");... CustomUpdate ( Symbol(), "Position", pos_lot); // Открытый объем
Получится такое:
Так мы сможем выводить в таблицу любые данные. Как уже существующие (проценты, занятую маржу, объемы сделок), так и свои собственные, получая необходимый инструмент для сравнения различных значений. Всё в одном месте и оставляя драгоценное место на чартах персонально советникам и индикаторам.
По-хорошему, нужно просить у разрабов чарты с возможностью их "придокивания" в любом месте интерфейса терминала (приводить примеры подобного решения в терминалах не буду, все знают), тогда и можно будет заполнять неиспользуемое место в интерфейсе терминала как жаждет топикстартер. А уже на таком чарте рисуй что душе угодно, хоть и бестолковые (пардон, на мой взгляд) таблицы сабжа.
Количество колонок в маркет вотче обязательно будем увеличивать.
В продолжение темы...
В моем воспаленном мозгу наконец, оформилась конкретная идея.)) Очень надеюсь, что она будет интересна...
Можно всё сделать гораздо красивей!
В продолжение темы...
В моем воспаленном мозгу наконец, оформилась конкретная идея.)) Очень надеюсь, что она будет интересна...
Можно всё сделать гораздо красивей!
Ничего не понял. Но задумка судя по обилию жирного текста интересная.
Не удивлён! ))
Попробую объяснить на уровне программёров, разработчиков метатрейдера.
К примеру, у символа есть ласт-цена, так? Она относится только к своему символу и ни к чему более, так?
Переходим на уровень кода терминала (МТ). Вот там, где находится эта ячейка - это поле хранящее ласт-цену, в том же классе, в той же структуре, прям следующей строкой, надо объявить динамический dictionary-массив. dictionary-это с доступом по стринговому ключу, хэш-массив - я правильно понимаю?
Из MQL сделать доступ к этому массиву. Полный. Т.е. из одного индикатора мы можем добавить туда элемент с присвоением имени и записать в него любое значение, например уровень корреляции орбит венеры-марса. В другом считать это значение. На лицо прямой обмен данными, как с помощью глобальных переменных, только объединенными по конкретному символу.
Далее, останется сделать управляемое подключение столбцов в MWatch где можно будет добавить столбец с именем, взятым из любого ключа таких массивов. И отображать в маркетвотче значения из них. Хэши по столбцам, значения по символам.
Например, разные советники на трех парах выполняют такой код
на EURUSD:
на GBPUSD: на USDJPY:Получится такое:
Так мы сможем выводить в таблицу любые данные. Как уже существующие (проценты, занятую маржу, объемы сделок), так и свои собственные, получая необходимый инструмент для сравнения различных значений. Всё в одном месте и оставляя драгоценное место на чартах персонально советникам и индикаторам.
Не удивлён! ))
Попробую объяснить на уровне программёров, разработчиков метатрейдера.
Не нужно было пытаться объяснять программистам, как им лучше написать программу.
Достаточно было вынести аргументированное предложение по доработке Обзора рынка.
Что я и предложил сделать несколькими страницами ранее )
Не нужно было пытаться объяснять программистам, как им лучше написать программу.
Достаточно было вынести аргументированное предложение по доработке Обзора рынка.
Что я и предложил сделать несколькими страницами ранее )
Да, ладно!
Когда нет взаимопонимания, заказчик пробует разные формы донесения информации. ;)
Не нужно было пытаться объяснять программистам, как им лучше написать программу.
Достаточно было вынести аргументированное предложение по доработке Обзора рынка.
Что я и предложил сделать несколькими страницами ранее )