Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Надо условие поменять:
Спасибо :)
Что то переклинило меня.
Спасибо :)
Что то переклинило меня.
Коллеги, прошу консультации по выравниванию текста на чарте.
На чарт необходимо выводить некоторую текстовую информацию. Например, вот так:
Как видно из примера, текст форматируется следующим образом:
1. Наименование параметра выравнивается слева направо, с одинаковым началом от левого края.
2. Значения параметра выравнивается справа налево, с одинаковым началом от правого края.
В приведённом мной примере выше используется функция Comment(). Для визуализации примера я использовал подгонку текста с помощью пробелов.
Собственно, вопрос. Каким способом (с помощью каких функций) лучше реализовать данный механизм автоматического выравнивания с учётом минимальной потери производительности?
Буду признателен как за общий ответ, так и за приведённый код.
Может, кому будет интересно. В общем, проблема отчасти решена применением графического объекта OBJ_LABEL и использованием моноширинного шрифта.
В OnInit() создаю объекты, в OnDeinit() - удаляю. В процессе работы пытаюсь установить свойство OBJPROP_TEXT. Если ошибка, просто рапортую об этом в виде лога. Проверять на каждом тике/таймере, не удалил ли метку пользователь/другой советник - слишком затратно по ресурсом.
Чего не сумел решить - получить ширину установленной метки. Чтобы, грубо говоря, в зависимости от величины_значения удалять её верхний правый угол подальше, дабы не наслаивался на наименование_значения. Тупо подобрал некое комфортное расстояние, чтобы поместилось семизначное значение. Восьмизначное будет наслаиваться. Не изящно и не практично! :)
Может, кому будет интересно. В общем, проблема отчасти решена применением графического объекта OBJ_LABEL и использованием моноширинного шрифта.
Используйте OBJ_EDIT ("Поле ввода") с запретом редактирования, ему можно задать размеры, цвета, шрифт и выравнивание текста с помощью OBJPROP_ALIGN.
Одно поле для наименования с ALIGN_LEFT, другое для значения с ALIGN_RIGHT.
Чтобы другая программа не удалила ваши объекты присваивайте уникальные имена.
Объекты созданные из программы пользователь изначально не может выделять и удалять, но если все таки удалит, то отследить этот факт и пересоздать объект не сложно.
В сигналах глюки:
Пополнения: 1.68 USD############Брокер: Alpari-Demo
КТО пополнилнил ??? кто подигрывает ???
Можно ли сделать так чтобы при оптимизации все вычисления уходили только в облако? Хотелось бы отключить от нагрузки все ядра процессора на моём компе, а то один агент не отключается.
Спасибо за совет.
Поделитесь, пожалуйста, опытом. А именно:
1. Механизм генерации уникальных имён. Прямой перебор существующих имён автомнкрементом?
2. Механизм проверки аутентичности объекта. Т.е. не просто проверить, есть ли объект с таким именем, а всех его параметров, например, размеров, типов, текста и прочее. При учёте экономии ресурсов. Выполнять колоссальное количество проверок каждого свойства каждого объекта на каждом тике - весьма трудозатратно. Конечно, если бы было либо блокировка объекта от любых изменений извне (кроме советника-создателя), или расчёт хэша объекта, чтобы БЫСТРО (за один "if") проверить объект на аутентичность.
Прошу подтвердить воспроизведение ситуации с отсутствием перерисовки чарта.
Приложил простенький эксперт. Условия:
1. С 2013.01.07 по 2013.02.11. Скорее всего, не влияет.
2. Тестирование в визуальном режиме.
3. При первом прогоне замедляем скорость до минимуму:
4. На последующем прогоне после инициализации нажимаем Ф12 (сгенерировать один тик).
Ещё одно очень важное условие - терминал должен работать в режиме офф-лайн. Для чистоты эксперимента попробуйте отключить комп от сети (отключить все сетевые адаптеры).
Наблюдаем.
1. Запаздывание отоброажение значения спреда на графике.
Некорретная работа функции ChartRedraw или я чего неверно сделал? Если пошевелить график мышкой (подвигать по горизонтали (времени), перерисовка производится корректно.