public static void InitData(data.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; row.openTimeOffset = int.MaxValue; row.closeTimeOffset = int.MinValue; }
public static data.baseDS.priceDataSumRow FindAndCache(data.baseDS.priceDataSumDataTable tbl, string stockCode, string timeScale, DateTime onDate) { data.baseDS.priceDataSumRow row = tbl.FindBytypestockCodeonDate(timeScale, stockCode, onDate); if (row != null) { return(row); } data.baseDSTableAdapters.priceDataSumTA dataTA = new data.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); }
public void UpdateData(data.importDS.importPriceRow row) { if (lastTime != row.onDate.Date) { Reset(); lastTime = row.onDate.Date; } data.baseDS.priceDataSumRow priceRow = GetData(row); if (priceRow == null) { priceRow = priceSumTbl.NewpriceDataSumRow(); commonClass.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.highPrice = row.highPrice; priceRow.lowPrice = row.lowPrice; priceRow.openPrice = row.openPrice; priceRow.closePrice = row.closePrice; }
public static void GenPriceData(string stockCode) { DateTime dt = DateTime.Now; decimal lastHighPrice = 0, lastLowPrice = 0, lastClosePrice = 0, lastOpenPrice = 0, lastVolume = 0; data.baseDS.priceDataSumRow dayPriceRow = myDailyPrice.GetData(stockCode, dt); if (dayPriceRow == null) { data.baseDS.priceDataRow priceRow = application.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(); data.importDS.importPriceRow importRow = importPriceTbl.NewimportPriceRow(); application.DbAccess.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.openPrice = lastOpenPrice; importRow.highPrice = Math.Max(lastHighPrice, highPrice); if (lowPrice < importRow.highPrice) { importRow.lowPrice = lowPrice; } else { importRow.lowPrice = importRow.highPrice; } if (closePrice >= importRow.lowPrice && closePrice <= importRow.highPrice) { importRow.closePrice = closePrice; } else { importRow.closePrice = (importRow.lowPrice + importRow.highPrice) / 2; } importRow.volume = lastVolume + common.system.Random(0, 100); importRow.onDate = dt; importRow.stockCode = stockCode; importPriceTbl.AddimportPriceRow(importRow); imports.libs.AddImportPrice(importPriceTbl, priceDataTbl); application.DbAccess.UpdateData(priceDataTbl); // In VN culture : start of week is Monday (not Sunday) imports.libs.AggregatePriceData(priceDataTbl, vnCulture, null); myDailyPrice.UpdateData(importRow); }
public static void UpdateData(data.baseDS.priceDataSumRow row) { priceDataSumTA.Update(row); row.AcceptChanges(); }