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