private void DrawRsiTableBody(AISTOCK_STOCK_INDEX_V_DATA dataRSI, AISTOCK_STOCK_STATS_DATA stockData) { if (dataRSI == null) { return; } if (dataRSI.AISTOCK_STOCK_INDEX_V.Count <= 0) { return; } TableRow bodyRow; for (int i = 0; i < stockData.AISTOCK_STOCK_INFORMATION.Rows.Count; i++) { decimal sumA = 0; decimal sumB = 0; decimal index = 0; AISTOCK_STOCK_STATS_DATA.AISTOCK_STOCK_INFORMATIONRow stockRow = ((AISTOCK_STOCK_STATS_DATA.AISTOCK_STOCK_INFORMATIONRow)stockData.AISTOCK_STOCK_INFORMATION.Rows[i]); string stockCode = stockRow.STOCK_CODE.ToString(); DataRow[] rows = dataRSI.AISTOCK_STOCK_INDEX_V.Select("STOCK_CODE = '" + stockCode + "'"); if (rows.Length <= 0) { continue; } for (int j = 0; j < rows.Length; j++) { AISTOCK_STOCK_INDEX_V_DATA.AISTOCK_STOCK_INDEX_VRow row = (AISTOCK_STOCK_INDEX_V_DATA.AISTOCK_STOCK_INDEX_VRow)rows[j]; if (row.DIFF > 0) { sumA += row.DIFF; } else { sumB += row.DIFF; } } if (sumA - sumB != 0) { index = sumA / (sumA - sumB) * 100; } if (index < 75 || index > 80) { continue; } bodyRow = this.BmBlafTable.AddBodyRow(); bodyRow.BorderColor = Color.Black; bodyRow.BorderWidth = Unit.Point(1); this.BmBlafTable.AddCell(bodyRow, stockRow.STOCK_CODE, HorizontalAlign.Left); this.BmBlafTable.AddCell(bodyRow, stockRow.STOCK_NAME, HorizontalAlign.Left); this.BmBlafTable.AddCell(bodyRow, index.ToString(), HorizontalAlign.Left); this.BmBlafTable.AddCell(bodyRow, stockRow.IsTODAY_BEGINNull() ? string.Empty : stockRow.TODAY_BEGIN.ToString(), HorizontalAlign.Left); this.BmBlafTable.AddCell(bodyRow, stockRow.IsYESTERDAY_ENDNull() ? string.Empty : stockRow.YESTERDAY_END.ToString(), HorizontalAlign.Left); this.BmBlafTable.AddCell(bodyRow, stockRow.IsTODAY_ENDNull() ? string.Empty : stockRow.TODAY_END.ToString(), HorizontalAlign.Left); this.BmBlafTable.AddCell(bodyRow, stockRow.IsINCREASE_PERCENTNull() ? string.Empty : stockRow.INCREASE_PERCENT.ToString(), HorizontalAlign.Left); this.BmBlafTable.AddCell(bodyRow, stockRow.IsCHARTNull() ? string.Empty : stockRow.CHART.ToString(), HorizontalAlign.Left); } }
public AISTOCK_STOCK_INDEX_V_DATA GetStockDataIndex(string dateFrom, string dateTo, string code) { AISTOCK_STOCK_INDEX_V_DATA data = new AISTOCK_STOCK_INDEX_V_DATA(); using (DaStock da = new DaStock()) { da.LoadStockDataIndex(data.AISTOCK_STOCK_INDEX_V, dateFrom, dateTo, code); } return(data); }
private void Refresh() { StockQueryCondition qc = new StockQueryCondition(); qc.DeserializeFromString(this.ViewState["_StockQueryCondition"].ToString()); this.labPrompt.Text = ""; //查询日前两天 string dateTo2 = new StockSystem().GetIndexDay(qc.DatePickerFrom, 2); dateTo2 = DateTimeFunction.ConvertDate(DateTime.Parse(dateTo2).ToShortDateString()); string date2RSI6 = new StockSystem().GetIndexDay(qc.DatePickerFrom, 8); date2RSI6 = DateTimeFunction.ConvertDate(DateTime.Parse(date2RSI6).ToShortDateString()); string date2RSI12 = new StockSystem().GetIndexDay(qc.DatePickerFrom, 14); date2RSI12 = DateTimeFunction.ConvertDate(DateTime.Parse(date2RSI12).ToShortDateString()); //string date2RSI24 = new StockSystem().GetIndexDay(qc.DatePickerFrom, 26); //date2RSI24 = DateTimeFunction.ConvertDate(DateTime.Parse(date2RSI24).ToShortDateString()); //查询日 string dateTo = DateTimeFunction.ConvertDate(qc.DatePickerFrom); string dateRSI6 = new StockSystem().GetIndexDay(qc.DatePickerFrom, 6); dateRSI6 = DateTimeFunction.ConvertDate(DateTime.Parse(dateRSI6).ToShortDateString()); string dateRSI12 = new StockSystem().GetIndexDay(qc.DatePickerFrom, 12); dateRSI12 = DateTimeFunction.ConvertDate(DateTime.Parse(dateRSI12).ToShortDateString()); //string dateRSI24 = new StockSystem().GetIndexDay(qc.DatePickerFrom, 24); //dateRSI24 = DateTimeFunction.ConvertDate(DateTime.Parse(dateRSI24).ToShortDateString()); AISTOCK_STOCK_STATS_DATA stockData = new StockSystem().GetStockData(dateTo2, txtStockCode.Text.Trim()); string today = DateTimeFunction.ConvertDate(DateTime.Now.ToShortDateString()); today = new StockSystem().GetToday(today); bool flag = false; if (int.Parse(dateTo) < int.Parse(today)) { flag = true; } AISTOCK_STOCK_INDEX_V_DATA data2RSI6 = new AISTOCK_STOCK_INDEX_V_DATA(); data2RSI6 = new StockSystem().GetStockDataIndex(date2RSI6, dateTo2, txtStockCode.Text.Trim()); this.BmBlafTable.Clear(); DrawRsiTableHeader(); DrawRsiTableBody(data2RSI6, stockData, txtStockCode.Text.Trim(), flag, today, dateTo2, date2RSI12, dateTo, dateRSI6, dateRSI12); }
private void DrawRsiTableBody(AISTOCK_STOCK_INDEX_V_DATA dataRSI, AISTOCK_STOCK_STATS_DATA stockData, string code, bool isToday, string today, string date, int indexDay) { int sh = 0, sz = 0, zx = 0, bj = 0; if (dataRSI == null) { return; } if (dataRSI.AISTOCK_STOCK_INDEX_V.Count <= 0) { return; } TableRow bodyRow; for (int i = 0; i < stockData.AISTOCK_STOCK_INFORMATION.Rows.Count; i++) { decimal sumA = 0; decimal sumB = 0; decimal index = 0; decimal sumAB = 0; decimal sumBB = 0; decimal indexB = 0; AISTOCK_STOCK_STATS_DATA.AISTOCK_STOCK_INFORMATIONRow stockRow = ((AISTOCK_STOCK_STATS_DATA.AISTOCK_STOCK_INFORMATIONRow)stockData.AISTOCK_STOCK_INFORMATION.Rows[i]); string stockCode = stockRow.STOCK_CODE.ToString(); if (stockCode.ToLower().StartsWith("sz300") && string.IsNullOrEmpty(txtStockCode.Text)) { continue; } DataRow[] rows = dataRSI.AISTOCK_STOCK_INDEX_V.Select("STOCK_CODE = '" + stockCode + "'"); if (rows.Length <= 0) { continue; } for (int j = 0; j < rows.Length; j++) { AISTOCK_STOCK_INDEX_V_DATA.AISTOCK_STOCK_INDEX_VRow row = (AISTOCK_STOCK_INDEX_V_DATA.AISTOCK_STOCK_INDEX_VRow)rows[j]; if (row.DIFF > 0) { sumA += row.DIFF; } else { sumB += row.DIFF; } } if (sumA - sumB != 0) { index = sumA / (sumA - sumB) * 100; } if ((index > 80 || index < 75) && string.IsNullOrEmpty(txtStockCode.Text)) { continue; } //计算昨天的指标是否也在75-80之间,不是则抛弃 #region [开始计算] string dateTo = new StockSystem().GetIndexDay(date, 1); dateTo = DateTimeFunction.ConvertDate(DateTime.Parse(dateTo).ToShortDateString()); string dateFrom = new StockSystem().GetIndexDay(date, indexDay + 1); dateFrom = DateTimeFunction.ConvertDate(DateTime.Parse(dateFrom).ToShortDateString()); AISTOCK_STOCK_INDEX_V_DATA dataRSIB = new StockSystem().GetStockDataIndex(dateFrom, dateTo, stockCode); DataRow[] rowRSIB = dataRSIB.AISTOCK_STOCK_INDEX_V.Select("STOCK_CODE = '" + stockCode + "'"); if (rowRSIB.Length <= 0) { continue; } for (int j = 0; j < rowRSIB.Length; j++) { AISTOCK_STOCK_INDEX_V_DATA.AISTOCK_STOCK_INDEX_VRow row = (AISTOCK_STOCK_INDEX_V_DATA.AISTOCK_STOCK_INDEX_VRow)rowRSIB[j]; if (row.DIFF > 0) { sumAB += row.DIFF; } else { sumBB += row.DIFF; } } if (sumAB - sumBB != 0) { indexB = sumAB / (sumAB - sumBB) * 100; } if ((indexB > 80 || indexB < 75) && string.IsNullOrEmpty(txtStockCode.Text)) { continue; } #endregion [结束计算] bodyRow = this.BmBlafTable.AddBodyRow(); if (stockRow.STOCK_CODE.Contains("sh600")) { sh++; } else if (stockRow.STOCK_CODE.Contains("sz000")) { sz++; } else if (stockRow.STOCK_CODE.Contains("sz002")) { zx++; } else if (stockRow.STOCK_CODE.Contains("sh601") || stockRow.STOCK_CODE.Contains("sh603")) { bj++; } this.BmBlafTable.AddCell(bodyRow, url.Replace("stockcode", stockRow.STOCK_CODE), HorizontalAlign.Left); this.BmBlafTable.AddCell(bodyRow, stockRow.STOCK_NAME, HorizontalAlign.Left); this.BmBlafTable.AddCell(bodyRow, index.ToString("0.00"), HorizontalAlign.Left); this.BmBlafTable.AddCell(bodyRow, indexB.ToString("0.00"), HorizontalAlign.Left); this.BmBlafTable.AddCell(bodyRow, stockRow.IsTODAY_BEGINNull() ? string.Empty : stockRow.TODAY_BEGIN.ToString(), HorizontalAlign.Left); this.BmBlafTable.AddCell(bodyRow, stockRow.IsYESTERDAY_ENDNull() ? string.Empty : stockRow.YESTERDAY_END.ToString(), HorizontalAlign.Left); this.BmBlafTable.AddCell(bodyRow, stockRow.IsTODAY_ENDNull() ? string.Empty : stockRow.TODAY_END.ToString(), HorizontalAlign.Left); this.BmBlafTable.AddCell(bodyRow, stockRow.IsINCREASE_PERCENTNull() ? string.Empty : stockRow.INCREASE_PERCENT.ToString(), HorizontalAlign.Left); this.BmBlafTable.AddCell(bodyRow, stockRow.IsCHARTNull() ? string.Empty : stockRow.CHART.ToString(), HorizontalAlign.Left); #region [取当天数据] if (isToday) { AISTOCK_STOCK_STATS_DATA todayData = new StockSystem().GetStockDataJingQue(today, stockCode); AISTOCK_STOCK_STATS_DATA.AISTOCK_STOCK_INFORMATIONRow todayRow = ((AISTOCK_STOCK_STATS_DATA.AISTOCK_STOCK_INFORMATIONRow)todayData.AISTOCK_STOCK_INFORMATION.Rows[0]); this.BmBlafTable.AddCell(bodyRow, todayRow.IsTODAY_BEGINNull() ? string.Empty : todayRow.TODAY_BEGIN.ToString(), HorizontalAlign.Left); this.BmBlafTable.AddCell(bodyRow, todayRow.IsTODAY_ENDNull() ? string.Empty : todayRow.TODAY_END.ToString(), HorizontalAlign.Left); this.BmBlafTable.AddCell(bodyRow, todayRow.IsINCREASE_PERCENTNull() ? string.Empty : todayRow.INCREASE_PERCENT.ToString(), HorizontalAlign.Left); decimal relativePercent = 0; if (stockRow.TODAY_END > 0) { relativePercent = (todayRow.TODAY_END - stockRow.TODAY_END) / stockRow.TODAY_END * 100; } this.BmBlafTable.AddCell(bodyRow, relativePercent.ToString("0.0000"), HorizontalAlign.Left); } else { this.BmBlafTable.AddCell(bodyRow, "", HorizontalAlign.Left); this.BmBlafTable.AddCell(bodyRow, "", HorizontalAlign.Left); this.BmBlafTable.AddCell(bodyRow, "", HorizontalAlign.Left); this.BmBlafTable.AddCell(bodyRow, "", HorizontalAlign.Left); } #endregion } int sum = sh + sz + zx + bj; this.labPrompt.Text = "渐强状态:共" + sum + "支,其中上市" + sh + "支,深市" + sz + "支,中小板" + zx + ",北京" + bj + "支<br/>"; }
private void Refresh() { StockQueryCondition qc = new StockQueryCondition(); qc.DeserializeFromString(this.ViewState["_StockQueryCondition"].ToString()); this.labPrompt.Text = ""; int indexDay = 14; if (qc.Index.Equals("RSI(5)")) { indexDay = 5; } else if (qc.Index.Equals("RSI(9)")) { indexDay = 9; } else if (qc.Index.Equals("RSI(14)") || qc.Index.Equals("ADR(14)")) { indexDay = 11; } else if (qc.Index.Equals("WMS(10)") || qc.Index.Equals("ADR(10)")) { indexDay = 10; } else if (qc.Index.Equals("WMS(20)")) { indexDay = 20; } string dateTo = DateTimeFunction.ConvertDate(qc.DatePickerFrom); string date = new StockSystem().GetIndexDay(qc.DatePickerFrom, indexDay); date = DateTimeFunction.ConvertDate(DateTime.Parse(date).ToShortDateString()); AISTOCK_STOCK_STATS_DATA stockData = new StockSystem().GetStockData(dateTo, txtStockCode.Text.Trim()); if (qc.Index.Equals("RSI(5)") || qc.Index.Equals("RSI(9)") || qc.Index.Equals("RSI(14)")) { string today = DateTimeFunction.ConvertDate(DateTime.Now.ToShortDateString()); today = new StockSystem().GetToday(today); bool flag = false; if (int.Parse(dateTo) < int.Parse(today)) { flag = true; } AISTOCK_STOCK_INDEX_V_DATA dataRSI = new AISTOCK_STOCK_INDEX_V_DATA(); dataRSI = new StockSystem().GetStockDataIndex(date, dateTo, txtStockCode.Text.Trim()); this.BmBlafTable.Clear(); DrawRsiTableHeader(); DrawRsiTableBody(dataRSI, stockData, txtStockCode.Text.Trim(), flag, today, qc.DatePickerFrom, indexDay); } else if (qc.Index.Equals("WMS(10)") || qc.Index.Equals("WMS(20)")) { AISTOCK_STOCK_WMS_V_DATA dataWms = new AISTOCK_STOCK_WMS_V_DATA(); dataWms = new StockSystem().GetStockWmsData(date, dateTo, txtStockCode.Text.Trim()); this.BmBlafTable.Clear(); DrawWmsTableHeader(); DrawWmsTableBody(stockData, dataWms); } else if (qc.Index.Equals("ADR(10)") || qc.Index.Equals("ADR(14)")) { AISTOCK_STOCK_ADR_INDEX_V_DATA dataAdr = new AISTOCK_STOCK_ADR_INDEX_V_DATA(); dataAdr = new StockSystem().GetStockAdrData(date, dateTo, txtStockCode.Text.Trim()); this.BmBlafTable.Clear(); DrawAdrTableHeader(); DrawAdrTableBody(dataAdr); } }
private void DrawRsiTableBody(AISTOCK_STOCK_INDEX_V_DATA data2RSI, AISTOCK_STOCK_STATS_DATA stockData, string code, bool isToday, string today, string dateTo2, string date2RSI12, string dateTo, string dateRSI6, string dateRSI12) { if (data2RSI == null || data2RSI.AISTOCK_STOCK_INDEX_V.Count <= 0) { return; } TableRow bodyRow; for (int i = 0; i < stockData.AISTOCK_STOCK_INFORMATION.Rows.Count; i++) { decimal sumA = 0; decimal sumB = 0; decimal index = 0; AISTOCK_STOCK_STATS_DATA.AISTOCK_STOCK_INFORMATIONRow stockRow = ((AISTOCK_STOCK_STATS_DATA.AISTOCK_STOCK_INFORMATIONRow)stockData.AISTOCK_STOCK_INFORMATION.Rows[i]); string stockCode = stockRow.STOCK_CODE.ToString(); DataRow[] rows = data2RSI.AISTOCK_STOCK_INDEX_V.Select("STOCK_CODE = '" + stockCode + "'"); if (rows.Length <= 0) { continue; } for (int j = 0; j < rows.Length; j++) { AISTOCK_STOCK_INDEX_V_DATA.AISTOCK_STOCK_INDEX_VRow row = (AISTOCK_STOCK_INDEX_V_DATA.AISTOCK_STOCK_INDEX_VRow)rows[j]; if (row.DIFF > 0) { sumA += row.DIFF; } else { sumB += row.DIFF; } } if (sumA - sumB != 0) { index = sumA / (sumA - sumB) * 100; } if (index > 40) { continue; } else { //符合条件,计算12日RSI decimal sumA12 = 0; decimal sumB12 = 0; decimal index12 = 0; AISTOCK_STOCK_INDEX_V_DATA data2RSI12 = new AISTOCK_STOCK_INDEX_V_DATA(); data2RSI12 = new StockSystem().GetStockDataIndex(date2RSI12, dateTo2, stockCode); foreach (var row2RSI12 in data2RSI12.AISTOCK_STOCK_INDEX_V) { if (row2RSI12.DIFF > 0) { sumA12 += row2RSI12.DIFF; } else { sumB12 += row2RSI12.DIFF; } } if (sumA12 - sumB12 != 0) { index12 = sumA12 / (sumA12 - sumB12) * 100; if (index12 > index) { //符合条件,计算查询日RSI6 decimal sumARSI6 = 0, sumBRSI6 = 0, indexRSI6 = 0; AISTOCK_STOCK_INDEX_V_DATA dataRSI6 = new AISTOCK_STOCK_INDEX_V_DATA(); dataRSI6 = new StockSystem().GetStockDataIndex(dateRSI6, dateTo, stockCode); foreach (var rowRSI6 in dataRSI6.AISTOCK_STOCK_INDEX_V) { if (rowRSI6.DIFF > 0) { sumARSI6 += rowRSI6.DIFF; } else { sumBRSI6 += rowRSI6.DIFF; } } if (sumARSI6 - sumBRSI6 != 0) { indexRSI6 = sumARSI6 / (sumARSI6 - sumBRSI6) * 100; decimal sumARSI12 = 0, sumBRSI12 = 0, indexRSI12 = 0; AISTOCK_STOCK_INDEX_V_DATA dataRSI12 = new AISTOCK_STOCK_INDEX_V_DATA(); dataRSI12 = new StockSystem().GetStockDataIndex(dateRSI12, dateTo, stockCode); foreach (var rowRSI12 in dataRSI12.AISTOCK_STOCK_INDEX_V) { if (rowRSI12.DIFF > 0) { sumARSI12 += rowRSI12.DIFF; } else { sumBRSI12 += rowRSI12.DIFF; } } if (sumARSI12 - sumBRSI12 != 0) { indexRSI12 = sumARSI12 / (sumARSI12 - sumBRSI12) * 100; if (indexRSI6 > indexRSI12) { //符合条件,输出 //成交量指标 int quantity = new StockSystem().GetQuantity(stockCode); decimal ratio; if (quantity == 0) { ratio = -1; } ratio = (decimal)stockRow.QUANTITY / (decimal)quantity; if (ratio < 2) { continue; } if (index == 0) { continue; } bodyRow = this.BmBlafTable.AddBodyRow(); this.BmBlafTable.AddCell(bodyRow, url.Replace("stockcode", stockRow.STOCK_CODE), HorizontalAlign.Left); this.BmBlafTable.AddCell(bodyRow, stockRow.STOCK_NAME, HorizontalAlign.Left); this.BmBlafTable.AddCell(bodyRow, index.ToString("0.00"), HorizontalAlign.Left); this.BmBlafTable.AddCell(bodyRow, ratio.ToString("0.00"), HorizontalAlign.Left); this.BmBlafTable.AddCell(bodyRow, stockRow.IsTODAY_BEGINNull() ? string.Empty : stockRow.TODAY_BEGIN.ToString(), HorizontalAlign.Left); this.BmBlafTable.AddCell(bodyRow, stockRow.IsYESTERDAY_ENDNull() ? string.Empty : stockRow.YESTERDAY_END.ToString(), HorizontalAlign.Left); this.BmBlafTable.AddCell(bodyRow, stockRow.IsTODAY_ENDNull() ? string.Empty : stockRow.TODAY_END.ToString(), HorizontalAlign.Left); this.BmBlafTable.AddCell(bodyRow, stockRow.IsINCREASE_PERCENTNull() ? string.Empty : stockRow.INCREASE_PERCENT.ToString(), HorizontalAlign.Left); this.BmBlafTable.AddCell(bodyRow, stockRow.IsCHARTNull() ? string.Empty : stockRow.CHART.ToString(), HorizontalAlign.Left); #region [取当天数据] if (isToday) { AISTOCK_STOCK_STATS_DATA todayData = new StockSystem().GetStockDataJingQue(today, stockCode); AISTOCK_STOCK_STATS_DATA.AISTOCK_STOCK_INFORMATIONRow todayRow = ((AISTOCK_STOCK_STATS_DATA.AISTOCK_STOCK_INFORMATIONRow)todayData.AISTOCK_STOCK_INFORMATION.Rows[0]); this.BmBlafTable.AddCell(bodyRow, todayRow.IsTODAY_BEGINNull() ? string.Empty : todayRow.TODAY_BEGIN.ToString(), HorizontalAlign.Left); this.BmBlafTable.AddCell(bodyRow, todayRow.IsTODAY_ENDNull() ? string.Empty : todayRow.TODAY_END.ToString(), HorizontalAlign.Left); this.BmBlafTable.AddCell(bodyRow, todayRow.IsINCREASE_PERCENTNull() ? string.Empty : todayRow.INCREASE_PERCENT.ToString(), HorizontalAlign.Left); decimal relativePercent = 0; if (stockRow.TODAY_END > 0) { relativePercent = (todayRow.TODAY_END - stockRow.TODAY_END) / stockRow.TODAY_END * 100; } this.BmBlafTable.AddCell(bodyRow, relativePercent.ToString("0.0000"), HorizontalAlign.Left); } else { this.BmBlafTable.AddCell(bodyRow, "", HorizontalAlign.Left); this.BmBlafTable.AddCell(bodyRow, "", HorizontalAlign.Left); this.BmBlafTable.AddCell(bodyRow, "", HorizontalAlign.Left); this.BmBlafTable.AddCell(bodyRow, "", HorizontalAlign.Left); } #endregion } } } else { continue; } } else { continue; } } } } }
private void RSIData(string dateTo, string date1) { int indexDay = 14; string date = new StockSystem().GetIndexDay(date1, indexDay); date = DateTimeFunction.ConvertDate(DateTime.Parse(date).ToShortDateString()); AISTOCK_STOCK_INDEX_V_DATA dataRSI = new AISTOCK_STOCK_INDEX_V_DATA(); dataRSI = new StockSystem().GetStockDataIndex(date, dateTo, ""); AISTOCK_STOCK_STATS_DATA stockData = new StockSystem().GetStockData(dateTo, ""); AISTOCK_STOCK_WMS_V_DATA dataWms = new AISTOCK_STOCK_WMS_V_DATA(); dataWms = new StockSystem().GetStockWmsData(date, dateTo, ""); if (dataRSI == null) { return; } if (dataRSI.AISTOCK_STOCK_INDEX_V.Count <= 0) { return; } int count = 0; StringBuilder sb = new StringBuilder(); AISTOCK_STOCK_COMMAND_DATA saveData = new AISTOCK_STOCK_COMMAND_DATA(); for (int i = 0; i < stockData.AISTOCK_STOCK_INFORMATION.Rows.Count; i++) { decimal sumA = 0; decimal sumB = 0; decimal index = 0; AISTOCK_STOCK_STATS_DATA.AISTOCK_STOCK_INFORMATIONRow stockRow = ((AISTOCK_STOCK_STATS_DATA.AISTOCK_STOCK_INFORMATIONRow)stockData.AISTOCK_STOCK_INFORMATION.Rows[i]); string stockCode = stockRow.STOCK_CODE.ToString(); DataRow[] rows = dataRSI.AISTOCK_STOCK_INDEX_V.Select("STOCK_CODE = '" + stockCode + "'"); if (!stockCode.ToLower().StartsWith("sz002")) { continue; } if (rows.Length <= 0) { continue; } for (int j = 0; j < rows.Length; j++) { AISTOCK_STOCK_INDEX_V_DATA.AISTOCK_STOCK_INDEX_VRow row = (AISTOCK_STOCK_INDEX_V_DATA.AISTOCK_STOCK_INDEX_VRow)rows[j]; if (row.DIFF > 0) { sumA += row.DIFF; } else { sumB += row.DIFF; } } if (sumA - sumB != 0) { index = sumA / (sumA - sumB) * 100; } if (index == 0 || index > 10) { continue; } //WM Index DataRow[] wmrow = dataWms.AISTOCK_STOCK_WMS_V.Select("STOCK_CODE = '" + stockCode + "'"); decimal max_price = 0; decimal min_price = 0; decimal end_price = 0; decimal wmindex = 0; max_price = ((AISTOCK_STOCK_WMS_V_DATA.AISTOCK_STOCK_WMS_VRow)wmrow[0]).MAX_PRICE; min_price = ((AISTOCK_STOCK_WMS_V_DATA.AISTOCK_STOCK_WMS_VRow)wmrow[0]).MIN_PRICE; end_price = stockRow.TODAY_END; if (max_price - min_price != 0) { wmindex = (max_price - end_price) / (max_price - min_price) * 100; } if (wmindex > 0) { continue; } int quantity = new StockSystem().GetQuantity(stockCode); decimal ratio; if (quantity == 0) { ratio = -1; } else { ratio = (decimal)stockRow.QUANTITY / (decimal)quantity; } count++; AISTOCK_STOCK_COMMAND_DATA.AISTOCK_STOCK_COMMANDRow saveRow = saveData.AISTOCK_STOCK_COMMAND.NewAISTOCK_STOCK_COMMANDRow(); saveRow.STOCK_ID = Guid.NewGuid().ToString(); saveRow.STOCK_CODE = stockCode; saveRow.STOCK_NAME = stockRow.STOCK_NAME; saveRow.STOCK_DAY = stockRow.STOCK_DAY; saveRow.TODAY_BEGIN = stockRow.TODAY_BEGIN; saveRow.TODAY_END = stockRow.TODAY_END; saveRow.MAX_PRICE = stockRow.MAX_PRICE; saveRow.MIN_PRICE = stockRow.MIN_PRICE; saveRow.RSI = index; saveRow.WM = wmindex; saveRow.RATIO = ratio; saveData.AISTOCK_STOCK_COMMAND.AddAISTOCK_STOCK_COMMANDRow(saveRow); sb.Append("@" + stockCode + "@" + index.ToString("0.00") + "\n"); } if (count > 0) { new StockSystem().SaveRSIData(saveData); SendEmail("敌情资讯", sb.ToString()); } }
private void Refresh() { string dateFrom = Request.QueryString["datefrom"] == null ? string.Empty : Request.QueryString["datefrom"]; string market = Request.QueryString["market"] == null ? string.Empty : Request.QueryString["market"]; string field = Request.QueryString["field"] == null ? string.Empty : Request.QueryString["field"]; string index = Request.QueryString["index"] == null ? string.Empty : Request.QueryString["index"]; string province = Request.QueryString["province"] == null ? string.Empty : Request.QueryString["province"]; string stockName = Request.QueryString["stockName"] == null ? string.Empty : Request.QueryString["stockName"].ToString().Trim(); string stockcode = Request.QueryString["stockcode"] == null ? string.Empty : Request.QueryString["stockcode"]; string MarketName = Request.QueryString["MarketName"] == "--请选择--" ? string.Empty : Request.QueryString["MarketName"]; string FieldName = Request.QueryString["FieldName"] == "--请选择--" ? string.Empty : Request.QueryString["FieldName"].Trim(); string IndexName = Request.QueryString["IndexName"].Trim(); string ProvinceName = Request.QueryString["ProvinceName"] == "--请选择--" ? string.Empty : Request.QueryString["ProvinceName"].Trim(); StockQueryCondition qc = new StockQueryCondition(); qc.DatePickerFrom = dateFrom; qc.StockCode = stockcode; qc.StockName = stockName; qc.Market = MarketName; qc.Field = FieldName; qc.Index = IndexName; qc.Province = ProvinceName; this.ViewState["_StockQueryCondition"] = qc.SerializeToString(); int indexDay = 14; if (qc.Index.Equals("RSI(5)")) { indexDay = 5; } else if (qc.Index.Equals("RSI(9)")) { indexDay = 9; } else if (qc.Index.Equals("RSI(14)")) { indexDay = 14; } else if (qc.Index.Equals("WMS(10)")) { indexDay = 10; } else if (qc.Index.Equals("WMS(20)")) { indexDay = 20; } string dateTo = DateTimeFunction.ConvertDate(qc.DatePickerFrom); string date = new StockSystem().GetIndexDay(qc.DatePickerFrom, indexDay); date = DateTimeFunction.ConvertDate(DateTime.Parse(date).ToShortDateString()); AISTOCK_STOCK_STATS_DATA stockData = new StockSystem().GetStockData(dateTo, stockcode); if (qc.Index.Equals("RSI(5)") || qc.Index.Equals("RSI(9)") || qc.Index.Equals("RSI(14)")) { AISTOCK_STOCK_INDEX_V_DATA dataRSI = new AISTOCK_STOCK_INDEX_V_DATA(); dataRSI = new StockSystem().GetStockDataIndex(date, dateTo, stockcode); this.BmBlafTable.Clear(); this.BmBlafTable.BorderColor = Color.Black; this.BmBlafTable.BorderWidth = Unit.Point(1); DrawRsiTableHeader(); DrawRsiTableBody(dataRSI, stockData); } else if (qc.Index.Equals("WMS(10)") || qc.Index.Equals("WMS(20)")) { AISTOCK_STOCK_WMS_V_DATA dataWms = new AISTOCK_STOCK_WMS_V_DATA(); dataWms = new StockSystem().GetStockWmsData(date, dateTo, stockcode); this.BmBlafTable.Clear(); this.BmBlafTable.BorderColor = Color.Black; this.BmBlafTable.BorderWidth = Unit.Point(1); DrawWmsTableHeader(); DrawWmsTableBody(stockData, dataWms); } this.LabelTitle.Text = "名称:股票指标分析<br>" + "创建时间:" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "<br>" + "时间:" + qc.DatePickerFrom + "<br>" + "所属证券市场:" + (qc.Market == string.Empty ? "ALL" : qc.Market) + "<br>" + "所属证监会行业:" + (qc.Field == string.Empty ? "ALL" : qc.Field) + "<br>" + "所属省份:" + (qc.Province == string.Empty ? "ALL" : qc.Province) + "<br>" + "指标类型:" + (qc.Index == string.Empty ? "ALL" : qc.Index) + "<br>" + "股票代码:" + (qc.StockCode == string.Empty ? "ALL" : qc.StockCode) + "股票名称:" + (qc.StockName == string.Empty ? "ALL" : qc.StockName); }