public ChartWindow(MarketDataMessage mdMsg)
        {
            if (mdMsg is null)
            {
                throw new ArgumentNullException(nameof(mdMsg));
            }

            InitializeComponent();

            Title = mdMsg.SecurityId + " - " + mdMsg.DataType2.ToString();

            _connector = MainWindow.Instance.MainPanel.Connector;

            Chart.ChartTheme = ChartThemes.ExpressionDark;

            var area = Chart.CreateArea();

            Chart.Areas.Add(area);

            _candleElem = Chart.CreateCandleElement();
            _candleElem.AntiAliasing    = false;
            _candleElem.UpFillColor     = Color.White;
            _candleElem.UpBorderColor   = Color.Black;
            _candleElem.DownFillColor   = Color.Black;
            _candleElem.DownBorderColor = Color.Black;

            area.Elements.Add(_candleElem);

            _connector.CandleReceived += OnCandleReceived;
            _subscription              = _connector.SubscribeMarketData(mdMsg);
        }
Example #2
0
        /// <summary>
        /// To draw the candle.
        /// </summary>
        /// <param name="chart">Chart.</param>
        /// <param name="element">The chart element representing a candle.</param>
        /// <param name="candle">Candle.</param>
        public static void Draw(this IChart chart, IChartCandleElement element, Candle candle)
        {
            if (element == null)
            {
                throw new ArgumentNullException(nameof(element));
            }

            if (candle == null)
            {
                throw new ArgumentNullException(nameof(candle));
            }

            var data = chart.CreateData();

            data
            .Group(candle.OpenTime)
            .Add(element, candle);

            chart.Draw(data);
        }