ToString() public method

public ToString ( ) : string
return string
示例#1
0
        private void OnMouseMove(object sender, MouseEventArgs e)
        {
            if (this.currentCandles.Count == 0)
            {
                return;
            }
            Point  position = e.GetPosition(this.DrawElement);
            double price    = this.topPrice - position.Y / this.proportion;

            this.YLine.Y1     = position.Y;
            this.YCursor.Text = price.ToString("F" + this.Precision);
            this.YCursor.SetValue(Canvas.TopProperty, position.Y);
            int index = (int)(position.X / this.barWidth);

            if (index == this.currentCandles.Count)
            {
                --index;
            }
            if (index == this.preIndex)
            {
                return;
            }
            this.preIndex = index;
            Candle candle = this.currentCandles[index];
            double x      = (index + 0.5) * this.barWidth;

            this.XLine.X1     = x;
            this.XCursor.Text = candle.CandleTime.ToString();
            this.XCursor.SetValue(Canvas.LeftProperty, x);
            this.InfoBlock.Text = candle.ToString();
        }
示例#2
0
        private void Candles_NewCandle(Candle candle) // было раньше (по новой свечке открываем позицию)
        {
            if (candle.SecCode == secCode)
            {
                _candlesList.Insert(0, candle);
                if (_candlesList.Count > 2)
                {
                    if (_candlesList[0].Close > _candlesList[1].Close)
                    {
                        //  что-то делаем
                    }
                }

                var ttt = TimeToString(candle.Datetime);
                Log(ttt + " " + candle.SecCode + " " + candle.ToString());

                if (candle.Open == candle.Close && candle.High == candle.Close && candle.Low != candle.Close)
                {
                    Log("Пришла свеча Висельник");
                }

                if ((candle.Close - candle.Open) > 0 && (candle.Close - candle.Open) < 2 * _tool.Step && candle.High == candle.Close && candle.Low != candle.Close)
                {
                    Log("Пришла свеча ... Эскимо");
                }

                //Тег для которого будем считать количество линий
                string tag = "IND";
                // Получаем количество линий (свечек ??)
                var N = _quik.Candles.GetNumCandles(tag).Result;

                Up    = _quik.Candles.GetCandles("IND", 0, N - 2, 2).Result[0].Close; // -2 : предыдущ свеча
                Centr = _quik.Candles.GetCandles("IND", 1, N - 2, 2).Result[0].Close;
                Low   = _quik.Candles.GetCandles("IND", 2, N - 2, 2).Result[0].Close;
                // Выводим в окно сообщений
                Log(tag + " " + N + " " + Up + " " + Centr + " " + Low);

                if (_flagRobot && InMarket())
                {
                    // запуск робота
                    ShortStopLimit(Low);
                    LongStopLimit(Up);
                }
            }
        }
示例#3
0
        private void ProcessTimerTick(ElapsedEventArgs e, CandleType candleType)
        {
            //Parallel.ForEach(ticks, (instrumentTicks) =>
            //{
            //    var allTicks = instrumentTicks.Value;
            //    int backTrackMinutes = GetMinutesToTrack(candleType);
            //    var signalTime = e.SignalTime;
            //    //var signalTime = TimeZoneInfo.ConvertTimeFromUtc(new DateTime(e.SignalTime.Ticks, DateTimeKind.Utc), TimeZoneInfo.FindSystemTimeZoneById("India Standard Time"));
            //    var lastTicks = allTicks.Where(tick => tick.Timestamp >= signalTime.AddMinutes(backTrackMinutes) && tick.Timestamp < signalTime);

            //    if (lastTicks.Any() == false)
            //        return;

            //    var open = lastTicks.First().LastPrice;
            //    var close = lastTicks.Last().LastPrice;
            //    var high = lastTicks.Max(tick => tick.LastPrice);
            //    var low = lastTicks.Min(tick => tick.LastPrice);
            //    var volume = lastTicks.Last().Volume;

            //    var candle = new Candle()
            //    {
            //        Open = open,
            //        Close = close,
            //        High = high,
            //        Low = low,
            //        Volume = volume,
            //        TimeStamp = signalTime.AddMinutes(backTrackMinutes),
            //        Instrument = lastTicks.Last().InstrumentToken,
            //    };

            //    ulong netVolume = volume;
            //    if (lastVolume > -1)
            //    {
            //        netVolume = (ulong)(volume - lastVolume);
            //    }
            //    candle.CandleVolume = netVolume;
            //    lastVolume = (long)volume;

            //    OnCandleReceived(candle, CandleType.Minute);
            //    Logger.Log(candle.ToString());
            //});
            try
            {
                foreach (var instrument in ticks.Keys)
                {
                    var allTicks         = ticks[instrument];
                    int backTrackMinutes = GetMinutesToTrack(candleType);
                    //var signalTime = e.SignalTime;
                    var signalTime = TimeZoneInfo.ConvertTimeFromUtc(new DateTime(e.SignalTime.Ticks, DateTimeKind.Utc), TimeZoneInfo.FindSystemTimeZoneById("India Standard Time"));
                    var lastTicks  = allTicks.Where(tick => tick.Timestamp >= signalTime.AddMinutes(backTrackMinutes) && tick.Timestamp < signalTime);

                    if (lastTicks.Any() == false)
                    {
                        return;
                    }

                    var open   = lastTicks.First().LastPrice;
                    var close  = lastTicks.Last().LastPrice;
                    var high   = lastTicks.Max(tick => tick.LastPrice);
                    var low    = lastTicks.Min(tick => tick.LastPrice);
                    var volume = lastTicks.Last().Volume;

                    var candle = new Candle()
                    {
                        Open       = open,
                        Close      = close,
                        High       = high,
                        Low        = low,
                        Volume     = volume,
                        TimeStamp  = signalTime.AddMinutes(backTrackMinutes),
                        Instrument = lastTicks.Last().InstrumentToken,
                    };

                    ulong netVolume = volume;
                    if (lastVolume > -1)
                    {
                        netVolume = (ulong)(volume - lastVolume);
                    }
                    candle.CandleVolume = netVolume;
                    lastVolume          = (long)volume;

                    OnCandleReceived(candle, CandleType.Minute);
                    Logger.Log(candle.ToString());
                }
            }catch (Exception ex)
            {
                Logger.Log($"Error in processing Tick {ex}");
            }
        }