Может ли робот с указанной периодичностью считывать меняющееся значение уровня?
Хочется сделать так, чтобы вручную передвигать на графике горизонтальный уровень, значение которого автоматически будет подтягиваться в глобальную переменную. Нашёл только как фиксировано прописать уровень в function Initialize() без возможности его динамического изменения.
Задача возникла чисто из соображений удобства. Сейчас приходиться каждый раз отключать робота и править значение в параметрах.
Спасибо.
Общие вопросы по разработке > Как научить робота считывать уровень?
- evge
- Администратор
- Сообщения: 1808
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 365 раз
- Контактная информация:
Re: Как научить робота считывать уровень?
Уровни и их значения
Levels[0].Level
Из документации
AddLevel (Value, Color, SeriesName)
AddLevel (Value, Color, LineStyle, LineWidth, SeriesName)
– создание уровня. Может быть несколько уровней.
Параметры:
• Value – значение по умолчанию
• Color – цвет уровня (значения стандартные для MicroSoft)
• LineStyle – стиль линии
• LineWidth – толщина линии
• SeriesName – имя ряда, к которому привязана линия (требуется для определения области, где будет размещена линия)
Пример. Создание уровня в индикаторе.
Пример. Изменение значения и цвета уровня с индексом 0.
Levels[0].Level
Из документации
AddLevel (Value, Color, SeriesName)
AddLevel (Value, Color, LineStyle, LineWidth, SeriesName)
– создание уровня. Может быть несколько уровней.
Параметры:
• Value – значение по умолчанию
• Color – цвет уровня (значения стандартные для MicroSoft)
• LineStyle – стиль линии
• LineWidth – толщина линии
• SeriesName – имя ряда, к которому привязана линия (требуется для определения области, где будет размещена линия)
Пример. Создание уровня в индикаторе.
Код: Выделить всё
AddLevel(0, Color.Red, "Last"); // Создание уровня со значением 0 в области ряда Last
AddLevel(70, Color.Red, LineStyles.Dot, 1, "Last"); // задание типа и толщины линии
Пример. Изменение значения и цвета уровня с индексом 0.
Код: Выделить всё
function Evaluate()
{
//Далее в области вычисления можно изменять значение и цвет уровня
Levels[0].Level = 12.0;
Levels[0].Color = Color.Red;
никогда такого не было и вот опять
Re: Как научить робота считывать уровень?
evge, можно у вас попросить пример простенького кода, в котором робот через ShowMessage() раз в минуту выводит значение одного единственного уровня на графике SBER. Когда передвигаем вручную мышкой этот уровень, то соответственно меняется его значение в сообщении робота. Интересует чисто техническая возможность прочитать значение графического объекта на графике, но не индикатора. По сути это не должно быть проблемой. Терминал внутри себя ведь хранит эту информацию для отображения уровня, например.
Спасибо.
Спасибо.
-
- Сообщения: 534
- Зарегистрирован: 11 ноя 2018, 17:11
- Благодарил (а): 21 раз
- Поблагодарили: 91 раз
Re: Как научить робота считывать уровень?
Никакого документированного способа обращения к графическим объектам нет.
Разве что гуру найдут недокументированный, но сомнительно, что это возможно.
Как-то коряво можно сделать через чтение файла: создаете файл с единственной цифрой - значением уровня, пишете в него руками, а индикатор считывает. Но возможен конфликт при чтении в момент обновления, неудачное чтение нужно отрабатывать.
Разве что гуру найдут недокументированный, но сомнительно, что это возможно.
Как-то коряво можно сделать через чтение файла: создаете файл с единственной цифрой - значением уровня, пишете в него руками, а индикатор считывает. Но возможен конфликт при чтении в момент обновления, неудачное чтение нужно отрабатывать.
- evge
- Администратор
- Сообщения: 1808
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 365 раз
- Контактная информация:
Re: Как научить робота считывать уровень?
Понятно, созданный не индикатором, а вручную.
Нет, такого не встречал.
Нет, такого не встречал.
никогда такого не было и вот опять
Re: Как научить робота считывать уровень?
BugsDigger писал(а):Никакого документированного способа обращения к графическим объектам нет.
Разве что гуру найдут недокументированный, но сомнительно, что это возможно.
Как-то коряво можно сделать через чтение файла: создаете файл с единственной цифрой - значением уровня, пишете в него руками, а индикатор считывает. Но возможен конфликт при чтении в момент обновления, неудачное чтение нужно отрабатывать.
У меня сейчас это реализовано через параметр. Вот его как раз и неудобно менять всякий раз при смене уровеня. Необходимо остановить робот, поменять значение параметра, опять включить. Теряется драгоценное время, особенно на малых таймфреймах.
Вернуться в «Общие вопросы по разработке»
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 28 гостей