Графики
S# предоставляет удобные компоненты для построения графиков. Эти компоненты собраны в пространстве имен StockSharp.Xaml.Charting.
Ключевым понятием в графической библиотеке является понятие chart. Chart - это контейнер для других элементов, которые используются при построении графиков. В S# имеется несколько типов чартов.
- Chart - графический компонент для отображения биржевых графиков.
- ChartPanel - расширенный графический компонент для отображения биржевых графиков.
- EquityCurveChart - графический компонент для отображения кривой доходности.
- BoxChart - график, представляющий объемы в виде сетки цифр.
- ClusterChart - график, отображающий объемы в виде кластеров с гистограммами.
- OptionPositionChart - графический компонент, показывающий позиции и "греки" опционов относительно базового актива. См. OptionPositionChart.
Кроме того в состав S# входят два типа графиков для анализа объемов BoxChart и ClusterChart.
На следующем рисунке показаны основные элементы графического компонента.
Элементы графического компонента
IChart
IChart является базовым интерфейсом для всех видов графиков. Он содержит методы для добавления и удаления "дочерних" элементов, свойства для настройки внешнего вида компонента и способа отрисовки графиков, а также метод отрисовки самих графиков. Chart может содержать несколько областей (IChartArea) для построения графиков (см. рисунок). Chart также содержит область предварительного просмотра OverView (см. рисунок). В этой области при помощи ползунков можно выбрать зону просмотра графика. Кроме того, можно скроллировать и зуммировать график при помощи перетаскивания области IChartArea, оси X и при помощи колесика мыши.
Основные свойства и методы IChart
- IChart.Areas - список областей IChartArea.
- IThemeableChart.ChartTheme - тема компонента.
- IChart.IndicatorTypes - список индикаторов, которые можно отображать на чарте.
- IChart.CrossHair - включить/выключить отображение перекрестья.
- IChart.CrossHairAxisLabels - включить/выключить отображение меток перекрестья на осях.
- IChart.IsAutoRange - включить/выключить автоматическое масштабирование оси X.
- IChart.IsAutoScroll - включить/выключить автопрокрутку по оси X.
- IChart.ShowLegend - включить/выключить отображение легенды.
- IChart.ShowOverview - включить/выключить отображение области предпросмотра OverView.
- IChart.AddArea(StockSharp.Charting.IChartArea area ) - добавить IChartArea.
- IChart.AddElement(StockSharp.Charting.IChartArea area, StockSharp.Charting.IChartElement element ) - добавить элемент серии данных. Имеет несколько перегрузок.
- IChart.Reset(System.Collections.Generic.IEnumerable<StockSharp.Charting.IChartElement> elements ) - "сбросить" ранее отрисованные значения.
- IChart.Draw(StockSharp.Charting.IChartDrawData data ) - отрисовать значение на графике.
- IChart.OrderCreationMode - Режим создания заявок, когда установлен позволяет создавать заявки из графика. По умолчанию выключено.
IChartArea
IChartArea - область построения графика, является контейнером для элементов IChartElement (индикаторы, свечи и т.п.), которые отрисовываются на графике, и осей (IChartAxis) графика.
Основные свойства IChartArea
- IChartArea.Elements - список элементов IChartElement.
- IChartArea.XAxises - список горизонтальных осей.
- IChartArea.YAxises - список вертикальных осей.
IChartElement
Все элементы, которые отображаются на графике должны, реализовывать интерфейс IChartElement. В S# имеются следующие классы, реализующие этот интерфейс:
- ChartCandleElement - элемент для отображения свечей.
- ChartIndicatorElement - элемент для отображения индикаторов.
- ChartOrderElement - элемент для отображения заявок.
- ChartTradeElement - элемент для оторбажения сделок.
Классы визуальных элементов имеют ряд свойств для настройки внешнего вида графика. Можно настроить цвета, толщину линий и стиль элементов. Например, при помощи свойства IChartCandleElement.DrawStyle можно изменять внешний вид свечи (свеча или бар). При помощи свойства ChartIndicatorElement.DrawStyle можно установить стиль линии индикатора. Так чтобы отображать индикатор в виде гистограммы нужно использовать значение ChartIndicatorDrawStyles.Histogram. Свойства ChartCandleElement.ShowAxisMarker и ChartIndicatorElement.ShowAxisMarker позволяют включать/выключать отображения маркёров (см. рисунок) на осях графика.