string ObjectDescription (string name) // Функция возвращает описание объекта. Для объектов типа OBJ_TEXT и OBJ_LABEL возвращается текст, отображаемый этими объектами. // Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().
to Murman
на графике одновременно могут находиться тысячи объектов - их создает индикатор как пояснение к той или иной ситуации
меня интерисует только небольшая часть из них, имена которых я знаю - эти имена им дает индикатор по определенной схеме
поэтому я их знаю.
В такой ситуации выбирать по схеме: Графики > Объекты > Список объектов > Показать.
кране неудобно - этот вариант не подходит.
Есть еще варианты.У меня такой вопрос:
На ценовом графике терминала где-то есть некий графический объект (допустим вертикальная линия) с именем N (допустим "LineFor") - имя мне известно.
Мне нужно наити этот объект по имени и отобразить его на графике - сместить ценовой график в точку, где установлен объект.
Все это нужно сделать программно, то есть допустим (как вариант) нужно написать скрипт, в который перед компиляцей забивается имя этого обекта,
компилируется, запускается и ценовой график смещается в точку, где находиться данный объект.
Вопрос: это вообще можно сделать программно? Если можно, то как?
Зарание благодарен.
найти объект и изменить его координаты труда не составит, а что значит сместить ценовой график?
Всё можно. Только надо будет функции API использывать. Вот скрипт, который двигает и обновляет график.
#property show_inputs //----Внешние параметры.--------------------------------------------- extern int NumberBar = 200; // Конец истории в барах от конца истории в окне. extern double PERIOD = 0.5; // Период в секундах между тиками и сменой баров. //----Включаемые файлы.---------------------------------------------- #include <WinUser32.mqh> //=================================================================== int start() { int i; int h = WindowHandle (Symbol(), NULL); PostMessageA (h, WM_KEYDOWN, 36, 1); PostMessageA (h, WM_KEYUP, 36, 1); for (i = 0; i < NumberBar && !IsStopped(); i++) { PostMessageA (h, WM_COMMAND, 33324, 0); // Обновляем график. PostMessageA (h, WM_KEYDOWN, 123, 1); // Сдвигаем на один бар. Sleep (1000 * PERIOD); } PostMessageA (h, WM_KEYUP, 123, 1); }Разберитесь. Сделайте, чтобы скрипт двигал график до нужного бара. Функцию для описание объекта показал выше. Из неё возьмёте дату бара. Потом получите его номер...
to Gutman
"cместить ценовой график"
обозначае то, что допустим я смотрю на ценовой график - на графическое отображение котировок, я знаю что гдето там, за пределами зоны видимости есть графический объект с именем m.
Мне нужно наити этот объект и сместить к нему зону видимости, то есть в результате выполнения программного кода я хочу увидить этот графический объект с именем m (пускай он будет в крайне левой точке зоны видимости - неважно) - просто перекручивать весь график катировок с целью поиска нужного мне объекта довольно неблагодарная затея.
Надеюсь этих пояснений хватит, если нет, то спросите еще раз - постараюсь пояснить по другому.
Вот ещё функция:
double ObjectGet (string name, int prop_id) // Функция возвращает значение указанного свойства объекта. Для получения информации об ошибке необходимо вызвать функцию GetLastError().Та, которую показал выше, не совсем то, что Вам надо.
to Gutman
"cместить ценовой график"
обозначае то, что допустим я смотрю на ценовой график - на графическое отображение котировок, я знаю что гдето там, за пределами зоны видимости есть графический объект с именем m.
Мне нужно наити этот объект и сместить к нему зону видимости, то есть в результате выполнения программного кода я хочу увидить этот графический объект с именем m (пускай он будет в крайне левой точке зоны видимости - неважно) - просто перекручивать весь график катировок с целью поиска нужного мне объекта довольно неблагодарная затея.
Надеюсь этих пояснений хватит, если нет, то спросите еще раз - постараюсь пояснить по другому.
понятно!
для начала надо вычислить координату времени
вы потом хотите показать в окне участок в истории где расположен объект ?
ну в смысле аналог поиска !
только первая же котировка сместит если не отключить смещение графика
to
Благодарю.
А еще вопрос по API функциям можно:
определить хендел нужного окна смогу (вы уже привели пример),
определить первую координату времени графического объекта по имени смогу (функция ObjectGet)- в итоге получу строку в формате "2008.04.20 10:00",
послать нажатие кнопки "Enter" окну по хендлу смогу.
Вопрос: как послать в окно опредеелнную ранее строку времени - первую координату времени объекта - то есть нужно съэмитировать забитие координаты времени и нажатие кнопки "Enter"еще раз.
Пояснение: Основной вопрос заключается в том, как передать строку времени в окно с определенным ранее хендлом.
Можно съэмитировать последовательное нажатие клавиш в соответствии со строкой времени, но это помоему делитанский подход. Можно это сделать как-то по другому.
Заранее благодарен.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
У меня такой вопрос:
На ценовом графике терминала где-то есть некий графический объект (допустим вертикальная линия) с именем N (допустим "LineFor") - имя мне известно.
Мне нужно наити этот объект по имени и отобразить его на графике - сместить ценовой график в точку, где установлен объект.
Все это нужно сделать программно, то есть допустим (как вариант) нужно написать скрипт, в который перед компиляцей забивается имя этого обекта,
компилируется, запускается и ценовой график смещается в точку, где находиться данный объект.
Вопрос: это вообще можно сделать программно? Если можно, то как?
Зарание благодарен.