コード例 #1
0
ファイル: PatternController.cs プロジェクト: w1r2p1/OsEngine
        /// <summary>
        /// отрисовать осноной чарт
        /// </summary>
        public void PaintPrimeChart()
        {
            if (string.IsNullOrEmpty(SecurityToInter))
            {
                return;
            }


            if (_chartHost == null ||
                _rectChart == null)
            {
                return;
            }

            _chart.Clear();
            _chart.StartPaint(_chartHost, _rectChart);

            MinerCandleSeries series = CandleSeries.Find(ser => ser.Security.Name == SecurityToInter);

            if (series == null)
            {
                return;
            }

            _chart.SetCandles(series.Candles);

            if (_volume == null)
            {
                _volume = new Volume("Volume", false);
                _volume = (Volume)_chart.CreateIndicator(_volume, "VolumeArea");
            }
            _volume.Process(series.Candles);
        }
コード例 #2
0
        /// <summary>
        /// из коннектора пришли новые данные
        /// </summary>
        private void BotTabIndex_NewCandlesChangeEvent(List <Candle> candles)
        {
            for (int i = 0; i < Tabs.Count; i++)
            {
                List <Candle> myCandles = Tabs[i].Candles(true);
                if (myCandles == null || myCandles.Count < 10)
                {
                    return;
                }
            }

            DateTime time = Tabs[0].Candles(true)[Tabs[0].Candles(true).Count - 1].TimeStart;

            for (int i = 0; i < Tabs.Count; i++)
            {
                List <Candle> myCandles = Tabs[i].Candles(true);
                if (myCandles[myCandles.Count - 1].TimeStart != time)
                {
                    return;
                }
            }
            // цикл для сбоа всех свечей в один массив

            if (string.IsNullOrWhiteSpace(ConvertedFormula))
            {
                return;
            }

            string nameArray = Calculate(ConvertedFormula);

            if (_valuesToFormula != null && !string.IsNullOrWhiteSpace(nameArray))
            {
                ValueForm val = _valuesToFormula.Find(v => v.Name == nameArray);

                if (val != null)
                {
                    Candles = val.ValueCandles;

                    for (int i = 1; i < Candles.Count; i++)
                    {
                        if (Candles[i].TimeStart == Candles[i - 1].TimeStart)
                        {
                            Candles.RemoveAt(i);
                            i--;
                        }
                    }

                    _chartMaster.SetCandles(Candles);

                    if (SpreadChangeEvent != null)
                    {
                        SpreadChangeEvent(Candles);
                    }
                }
            }
        }