예제 #1
0
        private static Dictionary <TradeInstrument.Issuer, double> GetInstruments(string text)
        {
            Dictionary <TradeInstrument.Issuer, double> dictionary = new Dictionary <TradeInstrument.Issuer, double>();

            string[] lineSplit = text.Split('\n', '\r');
            bool     isFutures = true;

            foreach (string line in lineSplit)
            {
                if (!String.IsNullOrEmpty(line))
                {
                    string lineWoCommas = line.Trim(':', ';');
                    if (lineWoCommas == SLSettings.FuturesName)
                    {
                        isFutures = true;
                        continue;
                    }
                    if (lineWoCommas == SLSettings.StocksName)
                    {
                        isFutures = false;
                        continue;
                    }
                    string[] issuerAndStop        = lineWoCommas.Split(' ');
                    TradeInstrument.Issuer issuer = TradeInstrument.GetIssuerRa(issuerAndStop[0], isFutures);
                    dictionary.Add(issuer, StringFunctions.ParseDouble(issuerAndStop[1]));
                }
            }
            return(dictionary);
        }
예제 #2
0
        public static void ReadCurrentDeals()
        {
            _currentDeals = new List <Deal>();
            StreamReader streamReader = new StreamReader
                                            (Path.Combine(Application.StartupPath, Config.MiscFolderName, Folder, CurrentDealsFileName),
                                            Encoding.UTF8);

            try
            {
                while (!streamReader.EndOfStream)
                {
                    string line = streamReader.ReadLine();
                    if (string.IsNullOrEmpty(line))
                    {
                        break;
                    }
                    string[] split = line.Split(';');
                    DateTime date  = DateTime.ParseExact(split[0], "dd.MM.yyyy HH:mm:ss", CultureInfo.InvariantCulture);
                    TradeInstrument.Issuer issuer = TradeInstrument.GetIssuer(split[1]);
                    decimal  openVal  = StringFunctions.ParseDecimal(split[2]);
                    string   dir      = split[3];
                    int      vol      = int.Parse(split[4]);
                    decimal  stopVal  = StringFunctions.ParseDecimal(split[5]);
                    DateTime stopDate = DateTime.ParseExact(split[6], "dd.MM.yyyy HH:mm:ss", CultureInfo.InvariantCulture);

                    Deal deal = new Deal(issuer, dir, date, openVal, vol, stopVal, stopDate);
                    _currentDeals.Add(deal);
                }
            }
            finally
            {
                streamReader.Close();
            }
        }
예제 #3
0
 /// <summary>
 /// Конструктор для создания сделки
 /// </summary>
 /// <param name="direction">Направление сделки</param>
 /// <param name="openDate">Дата открытия сделки</param>
 /// <param name="openValue">Цена открытия</param>
 public Deal(TradeInstrument.Issuer issure, string direction, DateTime openDate, decimal?openValue, int volume, decimal lastStopValue, DateTime lastStopDate)
     : this(openDate, openValue)
 {
     SetDirection(direction);
     Issuer        = issure;
     Volume        = volume;
     LastStopValue = lastStopValue;
     LastStopDate  = lastStopDate;
 }
예제 #4
0
        private static decimal GetTodeyStopValue(TradeInstrument.Issuer issuer)
        {
            if (!_littleDeals.ContainsKey(DateTime.Today))
            {
                return(-1m);
            }

            List <LittleTableViewer> list = _littleDeals[DateTime.Today];

            foreach (LittleTableViewer littleTableViewer in list)
            {
                if (littleTableViewer.Instrument != issuer)
                {
                    continue;
                }
                return(littleTableViewer.StopValue);
            }
            return(-1m);
        }