示例#1
0
        // скорость тиков вверх
        private void TickBuySpeed(string _timeTrade, double _time_mcs, double _price)
        {
            double speed = 0;
            double TotalMillisec_trade = ConvertFunc.TotalMillisecondTradeCalc(_timeTrade, _time_mcs);

            if (_price > previosPriceBuy)
            {
                double delta_millisec = TotalMillisec_trade - startTimeBuy;
                startTimeBuy = TotalMillisec_trade;

                if (delta_millisec <= 0)
                {
                    return;
                }

                speed = sec / delta_millisec;
                exchangeInformation.SpeedTickBuy = AverageSpeed(speed, speedListBuy);

                previosPriceBuy = _price;
            }
            else
            {
                if (_price < previosPriceBuy)
                {
                    previosPriceBuy = _price;
                }
            }
        }
示例#2
0
        /// <summary>
        /// Pасчет скорости сделок в сд/сек
        /// </summary>
        /// <param name="_timeTrade">время сделки 00:00:00</param>
        /// <param name="_time_mcs">время микросекунды</param>
        public void TradesSpeed(string _timeTrade, double _time_mcs)
        {
            double speed = 0;
            double TotalMillisec_trade = ConvertFunc.TotalMillisecondTradeCalc(_timeTrade, _time_mcs);

            double delta_millisec = TotalMillisec_trade - TotalMillisec_trade_previos;

            TotalMillisec_trade_previos = TotalMillisec_trade;

            if (delta_millisec <= 0)
            {
                return;
            }

            speed = sec / delta_millisec;
            speedList.Add(speed);

            if (speedList.Count < countSpeedList)
            {
                return;
            }
            else
            {
                exchangeInformation.SpeedTrades = speedList.Average();
                speedList.RemoveAt(0);
            }
        }
示例#3
0
        /// <summary>
        /// Скорость сделок с группировкой по тикам
        /// </summary>
        /// <param name="_timeTrade">время сделки 00:00:00</param>
        /// <param name="_time_mcs">время сделки микросекунды</param>
        /// <param name="_priceTrade">цена сделки</param>
        public void SpeedTradesTickMeasure(string _timeTrade, double _time_mcs, double _priceTrade)
        {
            if (!ServiceFunc.CheckFunc.CheckTimeSession(_timeTrade, ref session_check))
            {
                return;
            }

            double speed = 0;
            double TotalMillisec_trade = ConvertFunc.TotalMillisecondTradeCalc(_timeTrade, _time_mcs);

            if (_priceTrade != priceTradesPrevios)
            {
                double delta = TotalMillisec_trade - TotalMillisecTradeStart;
                TotalMillisecTradeStart = TotalMillisec_trade;

                if (delta < 0)
                {
                    exchangeInformation.SpeedTradesTick = 0;
                    MessageBox.Show("delta меньше НУЛЯ!");
                }
                else
                {
                    if (delta == 0)
                    {
                        delta = 1;
                    }                                   // если delta==0, будем считать, что сделки в тике прошли с минимальным разрывом.
                    speed = sec / delta;

                    double maxspeed_for_view = 100;                                 // ограничение для отображения на графике
                    if (speed > maxspeed_for_view)
                    {
                        speed = maxspeed_for_view;
                    }

                    exchangeInformation.SpeedTradesTick = speed;
                    SpeedAvg(speed);
                }
            }
            else
            {
                /*здесь вариант если буду считать скорость до смены тика*/
            }
            priceTradesPrevios = _priceTrade;
        }