Esempio n. 1
0
 // 得到某一天的股票属性
 public IStockData GetStock(DateTime dt)
 {
     if (DailyStocks_.ContainsKey(dt))
     {
         return(DailyStocks_[dt]);
     }
     return(null);
 }
Esempio n. 2
0
        public void Clear()
        {
            DailyStocks_.Clear();

            MaxDate_ = new DateTime(1900, 1, 1);
            MinDate_ = new DateTime(2100, 1, 1);

            StockId = -1;
        }
Esempio n. 3
0
        public void AddStock(DateTime dt, IStockData stock)
        {
            if (!DailyStocks_.ContainsKey(dt))
            {
                DailyStocks_.Add(dt, stock);
            }
            else
            {
                // ???
                // 2009-08-25
            }

            MinDate = (MinDate > dt) ? dt : MinDate;
            MaxDate = (MaxDate < dt) ? dt : MaxDate;
        }
Esempio n. 4
0
        private void InitSTocks2()
        {
            DateTime startTime = new DateTime(2009, 10, 12);

            DailyStocks_.Add(startTime,
                             FakeStockDataCreator.Create(startTime, 100, 103, 99, 99, 1000));
            DailyStocks_.Add(new DateTime(2009, 10, 13),
                             FakeStockDataCreator.Create(new DateTime(2009, 10, 13), 102, 106, 101, 105, 1500));
            DailyStocks_.Add(new DateTime(2009, 10, 14),
                             FakeStockDataCreator.Create(new DateTime(2009, 10, 14), 101, 108, 100, 102, 800));
            DailyStocks_.Add(new DateTime(2009, 10, 15),
                             FakeStockDataCreator.Create(new DateTime(2009, 10, 15), 104, 109, 102, 105, 1100));
            DailyStocks_.Add(new DateTime(2009, 10, 16),
                             FakeStockDataCreator.Create(new DateTime(2009, 10, 16), 103, 106, 100, 104, 900));

            DailyStocks_.Add(new DateTime(2009, 10, 17),
                             FakeStockDataCreator.Create(new DateTime(2009, 10, 17), 102, 106, 101, 105, 2000));
            DailyStocks_.Add(new DateTime(2009, 10, 18),
                             FakeStockDataCreator.Create(new DateTime(2009, 10, 18), 101, 108, 100, 102, 1000));
            DailyStocks_.Add(new DateTime(2009, 10, 19),
                             FakeStockDataCreator.Create(new DateTime(2009, 10, 19), 104, 109, 102, 105, 1000));
            DailyStocks_.Add(new DateTime(2009, 10, 20),
                             FakeStockDataCreator.Create(new DateTime(2009, 10, 20), 103, 106, 100, 104, 1000));

            DailyStocks_.Add(new DateTime(2009, 10, 21),
                             FakeStockDataCreator.Create(new DateTime(2009, 10, 21), 102, 106, 101, 105, 1300));
            DailyStocks_.Add(new DateTime(2009, 10, 22),
                             FakeStockDataCreator.Create(new DateTime(2009, 10, 22), 101, 108, 100, 102, 1000));
            DailyStocks_.Add(new DateTime(2009, 10, 23),
                             FakeStockDataCreator.Create(new DateTime(2009, 10, 23), 104, 109, 102, 105, 1600));
            DailyStocks_.Add(new DateTime(2009, 10, 24),
                             FakeStockDataCreator.Create(new DateTime(2009, 10, 24), 103, 106, 100, 104, 1000));

            DailyStocks_.Add(new DateTime(2009, 10, 25),
                             FakeStockDataCreator.Create(new DateTime(2009, 10, 25), 102, 106, 101, 105, 600));
            DailyStocks_.Add(new DateTime(2009, 10, 26),
                             FakeStockDataCreator.Create(new DateTime(2009, 10, 26), 101, 108, 100, 102, 1000));

            AllDates_.Clear();
            AllDates_.AddRange(DailyStocks_.Keys);
            AllDates_.Sort();
        }
Esempio n. 5
0
        public bool IsOperSuccess(DateTime dt, StockOper oper)
        {
            if (oper == null)
            {
                return(false);
            }

            if (oper.Type == OperType.NoOper)
            {
                return(true);
            }

            if (!DailyStocks_.ContainsKey(dt))
            {
                return(false);
            }

            IStockData stock = DailyStocks_[dt];

            return(IsValidOperation(stock, oper));
        }
Esempio n. 6
0
        public bool IsOperSuccess(DateTime dt, StockOper oper)
        {
            if (!DailyStocks_.ContainsKey(dt))
            {
                return(false);
            }
            if (oper == null)
            {
                return(false);
            }

            if (oper.Type == OperType.NoOper)
            {
                return(true);
            }

            StockData stock = DailyStocks_[dt];

            switch (oper.Type)
            {
            case OperType.Buy:
                if (oper.UnitPrice >= stock.MinPrice)
                {
                    return(true);
                }
                break;

            case OperType.Sell:
                if (oper.UnitPrice <= stock.MaxPrice)
                {
                    return(true);
                }
                break;

            default:
                break;
            }

            return(false);
        }
Esempio n. 7
0
        private void AddDateStock(int date, double startPrice, double endPrice, double maxPrice, double minPrice, int volumehand)
        {
            DateTime dt = new DateTime(2009, 10, date);

            DailyStocks_.Add(dt, FakeStockDataCreator.Create(dt, startPrice, maxPrice, minPrice, endPrice, volumehand));
        }