821
В период практической работы с экспертом пользователь может вручную создать в окне
финансового инструмента и другие объекты, например, установить канал стандартных
отклонений, уровни Фибоначчи, линии поддержки и пр. Поэтому в программе должен
быть реализован алгоритм, позволяющий отличать объекты, созданные программой, от
объектов, установленных пользователем. Это особенно важно при завершении
программы: необходимо удалить только "свои" объекты, а "пользовательские" оставить
без изменения. Каждый графический объект обладает определёнными свойствами,
которые, в общем случае, могут совпадать. Единственным отличительным признаком
любого объекта является его уникальное имя (одинаковые имена не допускаются).
При составлении имени каждого из создаваемых объектов желательно ввести в имя
объекта полезную информацию, по которой можно было бы судить о местоположении и
свойствах объекта. Например, имя объекта может содержать префикс, отличающий
объект, созданный этой программой, от всех других. В нашем случае это строковое
значение "Paint_". Кроме того, необходимо отличать и "свои" объекты между собой. При
этом простая нумерация (Paint_1, Paint_2 и т.д.) не может быть использована. Используя
такой способ именования имён объектов, невозможно понять: на каком баре должен быть
отображён, например, объект Paint_73. Тот бар, который имел индекс 73, с появлением
нового бара получит индекс 74, при следующем новом баре 75 и т.д. При таком решении
пришлось бы удалять и вновь создавать все объекты на каждом новом баре. Понятно, что
это решение (хотя и осуществимо), является очень грубым и затратным.
Каждый из создаваемых объектов должен иметь координаты времени, совпадающие со
временем открытия бара. Кроме того, на каждом баре необходимо отображать 2 линии -
тонкую и широкую. Наиболее удобно представить имена создаваемых программой
объектов в таком виде:
Имя объекта = Paint_2_2007.03.22 16:40, здесь:
Paint_ - префикс, отличающий объекты, созданные программой;
2_ - номер одного из двух объектов, отображаемых на баре (возможные значения 1 и 2);
2007.03.22 16:40 - координата времени, однозначно характеризующая бар, на котором
отображается объект.
Paint_ и 2_ - это значения переменных Prefix и Nom_Lin. Координату времени для каждого
бара можно получить путём преобразования значения типа datetime в значение типа string
с помощью функции преобразования данных: