Ejemplo n.º 1
0
        public IEnumerable <decimal> GetLastNumericData(int n, string refDate, MarketNumericInfo infoToRetrieve)
        {
            //last market data, from which retrieve the numeric data
            IEnumerable <MarketData> lastMData =
                from d in Dates
                where Dates.IndexOf(refDate) - Dates.IndexOf(d) < n
                orderby d
                select this[d];
            IEnumerable <decimal> results = null;

            switch (infoToRetrieve)
            {
            case MarketNumericInfo.AVGPRICE:
                results =
                    from m in lastMData
                    select m.avgPrice;
                break;

            case MarketNumericInfo.CLOSEPRICE:
                results =
                    from m in lastMData
                    select m.closePrice;
                break;

            case MarketNumericInfo.MARKETTYPE:
                results =
                    from m in lastMData
                    select m.marketType;
                break;

            case MarketNumericInfo.MAXPRICE:
                results =
                    from m in lastMData
                    select m.maxPrice;
                break;

            case MarketNumericInfo.MINPRICE:
                results =
                    from m in lastMData
                    select m.minPrice;
                break;

            case MarketNumericInfo.NEGOTIATIONSNUMBER:
                results =
                    from m in lastMData
                    select m.nOfNegotiations;
                break;

            case MarketNumericInfo.OPENPRICE:
                results =
                    from m in lastMData
                    select m.openPrice;
                break;

            case MarketNumericInfo.PAPERSNUMBER:
                results =
                    from m in lastMData
                    select m.nOfPapersTraded;
                break;

            case MarketNumericInfo.VOLUME:
                results =
                    from m in lastMData
                    select m.volume;
                break;
            }

            return(results);
        }
Ejemplo n.º 2
0
        public static decimal GetNumericInfo(string line, MarketNumericInfo infoToRetrieve)
        {
            int startPos = 0, finalPos = 0;

            switch (infoToRetrieve)
            {
            case MarketNumericInfo.AVGPRICE:
                startPos = 96;
                finalPos = 108;
                break;

            case MarketNumericInfo.CLOSEPRICE:
                startPos = 109;
                finalPos = 121;
                break;

            case MarketNumericInfo.MAXPRICE:
                startPos = 70;
                finalPos = 82;
                break;

            case MarketNumericInfo.MINPRICE:
                startPos = 83;
                finalPos = 95;
                break;

            case MarketNumericInfo.OPENPRICE:
                startPos = 57;
                finalPos = 69;
                break;

            case MarketNumericInfo.NEGOTIATIONSNUMBER:
                startPos = 148;
                finalPos = 152;
                break;

            case MarketNumericInfo.PAPERSNUMBER:
                startPos = 153;
                finalPos = 170;
                break;

            case MarketNumericInfo.VOLUME:
                startPos = 171;
                finalPos = 188;
                break;

            case MarketNumericInfo.MARKETTYPE:
                startPos = 25;
                finalPos = 27;
                break;
            }

            string  str   = ReadSubstring(line, startPos, finalPos).Trim();
            decimal value = 0;

            switch (infoToRetrieve)
            {
            case MarketNumericInfo.NEGOTIATIONSNUMBER:
            case MarketNumericInfo.PAPERSNUMBER:
            case MarketNumericInfo.MARKETTYPE:
                value = decimal.Parse(str, new CultureInfo("pt-BR"));
                break;

            case MarketNumericInfo.VOLUME:
                value = decimal.Parse(str.Substring(0, str.Length - 2) + "," + str.Substring(str.Length - 2), new CultureInfo("pt-BR"));
                break;

            default:
                value = decimal.Parse(str.Substring(0, str.Length - 2) + "," + str.Substring(str.Length - 2), new CultureInfo("pt-BR"));
                break;
            }

            return(value);
        }