Интерфейс IIndicator представляет собой определенный контракт, реализация которого позволяет модулям терминала единообразно взаимодействовать с индикаторами. Разберем все члены данного интерфейса:
TypeIndicator – задает способ отображения индикатора в области графика. Перечисление IndicatorChartPaintType может иметь следующие значения:
Colors – список цветов для серий данных индикатора.
ValuesToChart – список всех значений индикатора, распределенных по сериям данных.
CanDelete – указывает можно ли удалять индикатор с графика. Данный флаг нужен для того, чтобы запрещать удалять индикаторы, которые являются источниками данных для других индикаторов.
NameSeries – название для серии данных, которое будет отображаться на графике.
NameArea – название области графика, на которой текущий индикатор будет отображаться.
Name – уникальное название для индикатора.
PaintOn – флаг указывает, нужно ли отображать данный индикатор на графике.
Save – метод сохраняет настройки индикатора в хранилище.
Load – метод загружает настройки индикатора из хранилища.
Delete – метод удаляет файл с настройками индикатора из хранилища.
Clear – метод удаляет серии данных из индикатора.
ShowDialog – открывает окно с настройками индикатора.
NeadToReloadEvent – событие сигнализирует о том, что необходимо перерисовать данный индикатор.
Process – метод принимает серию свечей, выполняет расчеты серий данных индикатора.
С введением нового способа создания индикаторов этот процесс стал проходить гораздо быстрее и комфортнее. Это произошло благодаря внедрению абстрактного класса Aindicator, который взял на себя реализацию интерфейса IIndicator. Помимо этого, данный класс предоставляет ряд методов, позволяющих гибко настраивать индикатор, привязывать другие индикаторы в качестве поставщиков данных, гибко управлять сериями данных.
Весь процесс создания индикатора сводится к переопределению двух абстрактных методов:
public abstract void OnStateChange(IndicatorState state);
public abstract void OnProcess(List<Candle> source, int index);
По аналогии с роботами, для внедрения настроек в индикатор используются так называемые параметры индикатора – потомки абстрактного класса IndicatorParameter. Для работы с сериями данных также существует специальный класс IndicatorDataSeries. В следующей статье мы подробнее рассмотрим способ создания индикатора при помощи описанных классов.
Комментарии