Пример #1
0
 public static void InitData(databases.baseDS.priceDataSumRow row)
 {
     row.type       = "";
     row.stockCode  = "";
     row.onDate     = DateTime.Today;
     row.openPrice  = 0;
     row.closePrice = 0;
     row.volume     = 0;
     row.highPrice  = decimal.MinValue;
     row.lowPrice   = decimal.MaxValue;
 }
Пример #2
0
 public static databases.baseDS.priceDataSumRow FindAndCache(databases.baseDS.priceDataSumDataTable tbl, string stockCode, string timeScale, DateTime onDate)
 {
     databases.baseDS.priceDataSumRow row = tbl.FindBytypestockCodeonDate(timeScale, stockCode, onDate);
     if (row != null)
     {
         return(row);
     }
     databases.baseDSTableAdapters.priceDataSumTA dataTA = new databases.baseDSTableAdapters.priceDataSumTA();
     dataTA.ClearBeforeFill = false;
     dataTA.Fill(tbl, stockCode, timeScale, onDate, onDate);
     row = tbl.FindBytypestockCodeonDate(timeScale, stockCode, onDate);
     if (row != null)
     {
         return(row);
     }
     return(null);
 }
Пример #3
0
        public static void GenPriceData(string stockCode)
        {
            DateTime dt = DateTime.Now;
            decimal  lastHighPrice = 0, lastLowPrice = 0, lastClosePrice = 0, lastOpenPrice = 0, lastVolume = 0;

            databases.baseDS.priceDataSumRow dayPriceRow = myDailyPrice.GetData(stockCode, dt);
            if (dayPriceRow == null)
            {
                databases.baseDS.priceDataRow priceRow = databases.DbAccess.GetLastPriceData(stockCode);
                lastHighPrice  = priceRow.highPrice;
                lastLowPrice   = priceRow.lowPrice;
                lastClosePrice = priceRow.closePrice;
                lastOpenPrice  = priceRow.openPrice;
                lastVolume     = 0;
            }
            else
            {
                lastHighPrice  = dayPriceRow.highPrice;
                lastLowPrice   = dayPriceRow.lowPrice;
                lastClosePrice = dayPriceRow.closePrice;
                lastOpenPrice  = dayPriceRow.openPrice;
                lastVolume     = dayPriceRow.volume;
            }
            priceDataTbl.Clear();
            importPriceTbl.Clear();

            databases.importDS.importPriceRow importRow = importPriceTbl.NewimportPriceRow();
            databases.AppLibs.InitData(importRow);

            decimal highPrice  = lastHighPrice + lastHighPrice * (decimal)common.system.Random(-4, 5) / 100;
            decimal lowPrice   = lastLowPrice + lastLowPrice * (decimal)common.system.Random(-4, 5) / 100;
            decimal closePrice = lastClosePrice + lastClosePrice * (decimal)common.system.Random(-5, 5) / 100;

            importRow.volume    = lastVolume + common.system.Random(0, 100);
            importRow.onDate    = dt;
            importRow.stockCode = stockCode;
            importPriceTbl.AddimportPriceRow(importRow);

            Imports.Libs.AddImportPrice(importPriceTbl, priceDataTbl);
            databases.DbAccess.UpdateData(priceDataTbl);
            // In VN culture : start of week is Monday (not Sunday)
            databases.AppLibs.AggregatePriceData(priceDataTbl, vnCulture, null);

            myDailyPrice.UpdateData(importRow);
        }
Пример #4
0
 public void UpdateData(databases.importDS.importPriceRow row)
 {
     if (lastTime != row.onDate.Date)
     {
         Reset();
         lastTime = row.onDate.Date;
     }
     databases.baseDS.priceDataSumRow priceRow = GetData(row);
     if (priceRow == null)
     {
         priceRow = priceSumTbl.NewpriceDataSumRow();
         databases.AppLibs.InitData(priceRow);
         priceRow.type      = timeType;
         priceRow.stockCode = row.stockCode;
         priceRow.onDate    = row.onDate.Date;
         priceSumTbl.AddpriceDataSumRow(priceRow);
     }
     //Now only volume need to be processed
     priceRow.volume     = row.volume;
     priceRow.closePrice = row.closePrice;
 }