Пример #1
0
        void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            lock (Locker)
            {
                IBars   bars    = data.GetBars(data.GetSymbol(textBox1.Text), data.GetScale(ScaleEnum.tick, 1));
                int     tickNum = bars.Count;
                int     secNum  = tickNum / 4 + 1;
                TimeFor timeFor = (TimeFor)(tickNum % 4);
                float   price   = 0;

                switch (timeFor)
                {
                case TimeFor.Open:
                    price = secNum + 2;
                    break;

                case TimeFor.Low:
                    price = secNum + 1;
                    break;

                case TimeFor.High:
                    price = secNum + 4;
                    break;

                case TimeFor.Close:
                    price = secNum + 3;
                    break;
                }

//                DateTime dt = new DateTime(2010,11,12,15,0,0) + new TimeSpan(secNum * 10000000);
                DateTime dt = startDT + new TimeSpan(secNum * 10000000);
                OpenWealth.Simple.Tick t = new OpenWealth.Simple.Tick(dt, tickNum, price, 1);
                bars.Add(dataProvider, t);
            }
        }
Пример #2
0
        /// <summary>
        /// Вселенское зло спит тут!
        /// </summary>
        /// <remarks>
        /// Обязательно!!!!! Необходимо соблюсти порядок столбцов в квике!
        /// Номер,Дата, Время, Класс Код, Код инстурмента, цена, кол-во!
        /// </remarks>
        /// <returns></returns>
        internal static void GetDeals(byte[] rawData)
        {
            if (data == null)
            {
                return;
            }

            int rowsNumber = BitConverter.ToInt16(new byte[] { rawData[4], rawData[5] }, 0);

            XLTableTyped table = new XLTableTyped(rawData);

            for (int i = 0; i < rowsNumber; i++)
            {
                double number = -1;
                try
                {
                    table.MoveNext();
                    number = (double)table.Current;
                    table.MoveNext();
                    string DateStr = (string)table.Current;
                    table.MoveNext();
                    string TimeStr = (string)table.Current;
                    table.MoveNext();
                    string MarketStr = (string)table.Current;
                    table.MoveNext();
                    string CodeStr = (string)table.Current;
                    table.MoveNext();
                    double price = (double)table.Current;
                    table.MoveNext();
                    double volume = (double)table.Current;

                    IBar tick = new OpenWealth.Simple.Tick(ParseDateTimeWithCache(String.Concat(DateStr, " ", TimeStr)), (int)number, (float)price, (int)volume);

                    l.Debug("GetDeals Tick " + MarketStr + "." + CodeStr + " " + tick.ToString());
                    // TODO избавится от null
                    data.GetBars(data.GetSymbol(MarketStr, CodeStr), tickScale).Add(null, tick);
                }
                catch (Exception e)
                {
                    l.Error("Exception в GetDeals, при обработке сделки номер " + number, e);
                }
            }
        }
Пример #3
0
        /// <summary>
        /// Вселенское зло спит тут!
        /// </summary>
        /// <remarks>
        /// Обязательно!!!!! Необходимо соблюсти порядок столбцов в квике!
        /// Номер,Дата, Время, Класс Код, Код инстурмента, цена, кол-во!
        /// </remarks>
        /// <returns></returns>
        internal static void GetDeals(byte[] rawData)
        {
            if (data == null)
                return;

            int rowsNumber = BitConverter.ToInt16(new byte[] { rawData[4], rawData[5] }, 0);

            XLTableTyped table = new XLTableTyped(rawData);
            for (int i = 0; i < rowsNumber; i++)
            {
                double number = -1;
                try
                {
                    table.MoveNext();
                    number = (double)table.Current;
                    table.MoveNext();
                    string DateStr = (string)table.Current;
                    table.MoveNext();
                    string TimeStr = (string)table.Current;
                    table.MoveNext();
                    string MarketStr = (string)table.Current;
                    table.MoveNext();
                    string CodeStr = (string)table.Current;
                    table.MoveNext();
                    double price = (double)table.Current;
                    table.MoveNext();
                    double volume = (double)table.Current;

                    IBar tick = new OpenWealth.Simple.Tick(ParseDateTimeWithCache(String.Concat(DateStr, " ", TimeStr)), (int)number, (float)price, (int)volume);

                    l.Debug("GetDeals Tick " + MarketStr + "." + CodeStr + " " + tick.ToString());
                    // TODO избавится от null
                    data.GetBars(data.GetSymbol(MarketStr, CodeStr), tickScale).Add(null, tick);
                }
                catch (Exception e)
                {
                    l.Error("Exception в GetDeals, при обработке сделки номер " + number, e);
                }
            }
        }