После того, как графики инструмента и индикаторов начерчены, появляется необходимость снабдить эти графики некоторыми пояснениями. Иногда нужно прямо на графике написать пометки или пояснения. Конечно, это можно сделать вручную, но если изучить несложные методы работы с текстом в программе Wealth Lab, у Вас появится больше возможностей для работы с информацией.
Для написания текста на графиках с помощью программного кода в программе Велс Лаб доступны следующие методы:
AnnotateBar()
Данный метод необходим для написания текстовых символов выше максимальных цен бара и ниже минимальных цен бара в области цен.
AnnotateChart()
Этот метод подобен методу AnnotateBar(), но он более гибкий, так как Вы можете выбирать область графика, необходимый бар, а также выравнивать размещение текста относительно баров и соответствующих цен.
DrawLabel()
В верхнем левом углу области цен графика, пониже чем название финансового инструмента располагается несколько надписей. Эти надписи автоматически вытягиваются для того чтобы отобразить здесь описание уже нанесенных на график рядов данных (индикаторов, осциляторов и т.п.).
DrawText()
Этот метод дает возможность написать текстовые символы. Причем расположение этих символов определяется координатами x, y в пикселях, где нулевой точкой отсчета является верхний левый угол графика.
Как: написать вертикальный текст на гарфике в программе Wealth-Lab?
Когда пространство ограничено и Вам необходимо вместить больше примечаний, воспользуйтесь преимуществом метода Annotate Bar() для того, чтобы вставлять по одной букве за один раз - как показано в этом примере:
Пример (как выполнить пример приведенного кода)...
// Метод написания вертикального текста public void VerticalText(int bar, string str, bool abovePrices, Color color) { if (abovePrices) for (int n = str.Length - 1; n >= 0; n--) AnnotateBar(str.Substring(n, 1), bar, abovePrices, color); else for (int n = 0; n < str.Length; n++) AnnotateBar(str.Substring(n, 1), bar, abovePrices, color); } protected override void Execute() { // Создаем дополнительное место для верхнего символа HidePaneLines(); CreatePane(3, true, false); // находим номера баров, на которых формируются пятипроцентные вершины или впадины int bar = Bars.Count -1; while (bar > 0) { bar = (int)PeakBar.Series(Close, 5, WealthLab.Indicators.PeakTroughMode.Percent)[bar]; if (bar > -1) VerticalText(bar, "Вершина", true, Color.Red); //используя созданный метод пишем вертикальный текст } bar = Bars.Count -1; while (bar > 0) { bar = (int)TroughBar.Series(Close, 5, WealthLab.Indicators.PeakTroughMode.Percent)[bar]; if (bar > -1) VerticalText(bar, "Дно", false, Color.Green); //используя созданный метод пишем вертикальный текст } }
Пример с использованием метода AnnotateBar() показывает, как можно сконструировать метод, пишущий текст по одной букве друг над другом вертикально. Потом этот метод применяется и в итоге получается вот такой график:
Как видите, слова "вершина" и "дно" здесь располагаются вертикально над пиками и под впадинами.
Как: сделать более удобным описание рядов данных (индикаторов, осцилляторов и т.п.) для отображении описания ряда данных на графике?
Описание ряда данных на графике зависит от свойства DataSeries.Description. Wealth-Lab присваивает свойству DataSeries.Description значение по умолчанию при создании ряда данных. Однако Вы можете самостоятельно поменять это описание на любое, которое Вам нравится, для того чтобы использовать это описание на графике.
Совет: Надпись на графике обусловливается тем цветом, который применяется для отображении на графике рядов данных.
Пример (как выполнить пример приведенного кода)...
protected override void Execute() { // Создание ряда данных средних цен, сдвинутых на 1 бар вправо по шкале времени. DataSeries avgPrice = (High + Low) / 2 >> 1; string defaultDescription = avgPrice.Description; //запоминаем, кокое было описание по умолчанию avgPrice.Description = "Средняя цена (сдвинута на 1 бар вправо)"; //Делаем новое удобное описание: PlotSeries(PricePane, avgPrice, Color.Blue, WealthLab.LineStyle.Solid, 1); //отображаем ряд данных на графике (описание отображается по умолчанию) DrawLabel(PricePane, "Default Description: " + defaultDescription, Color.Red); //пишем то описание, которое было по умолчанию... }
Выполнив код мы получим в верхнем левом углу графика вот такой вид:
Как Вы можете заметить, синим цветом написано более "дружественное" описание ряда данных, которое мы присвоили свойству DataSeries.Description. При этом это описание появляется при отображении ряда данных в верхнем левом углу области цен автоматически, без вызова дополнительных методов. Красным же цветом мы с помощью метода DrawLabel() отобразили старое, присваиваемое по умолчанию описание ряда данных.
Итак, сегодня мы вкратце рассмотрели - как можно с помощью программирования отобразить на графике текстовые метки. Это поможет Вам сделать проектируемые Вами стратегии более понятными для Вас и конечных пользователей на этапе их использования. В следующей статье рассмотрим возможности по отображению на графиках графической информации, что даст еще больше возможностей. Не забывайте подписываться на наш блог по RSS.
[...] [...]
[...] На сегодня информации достаточно. В процессе Вы узнали о нескольких методах, которые позволяют Вам достаточно гибко отображать на разных областях графика всевозможные количественные показатели, рассчитанные перед или в процессе выполнения стратегии. Следующий раз мы затронем тему написания текста на графике. [...]