private void SendStateNotification() { //检查MACD趋势,如果趋势是下跌,提示大盘较弱 //检查动能指标,如果出现红柱,红柱别昨天大,大盘渐强 //看短线指标见底和见顶指标,kdj和rsi,在底部和顶部提示风险,如果大盘弱,提示轻仓操作,大盘强,提示增加仓位。 string msg = "您的自选股状态和推荐已更新"; using (StockManDBEntities entity = new StockManDBEntities()) { string sql = "select ga from tech_object_ga_day where f_code='0000001' order by date desc limit 5"; IList <double> gas = entity.Database.SqlQuery <double>(sql).ToList(); if (gas[0] > 0) { if (gas[0] > gas[1]) { msg = "中线较强"; } else { msg = "中线渐弱"; } } else { if (gas[0] > gas[1]) { msg = "中线渐强"; } else { msg = "中线较弱"; } } sql = "select j from tech_object_kdj_day where f_code='0000001' order by date desc limit 5"; IList <double> kdjs = entity.Database.SqlQuery <double>(sql).ToList(); sql = "select r1 from tech_object_rsi_day where f_code='0000001' order by date desc limit 5"; IList <double> rsis = entity.Database.SqlQuery <double>(sql).ToList(); if (kdjs[0] > 80 && rsis[0] > 80) { msg += ",短线见顶"; } else if (kdjs[0] < 20 && rsis[0] < 20) { msg += ",短线见底"; } else { if (rsis[0] > rsis[1] && kdjs[0] > kdjs[1]) { msg += ",短线渐强"; } else if (rsis[0] < rsis[1] && kdjs[0] < kdjs[1]) { msg += ",短线渐弱"; } } if ((msg.Contains("中线渐弱") || msg.Contains("中线较弱")) && msg.Contains("短线见顶")) { msg += ",轻仓,注意风险。"; } else if ((msg.Contains("中线渐弱") || msg.Contains("中线较弱")) && msg.Contains("短线见底")) { msg += ",轻仓,谨慎抢反弹。"; } else if ((msg.Contains("中线渐弱") || msg.Contains("中线较弱")) && msg.Contains("短线渐强")) { msg += ",逐步减仓,降低成本。"; } else if ((msg.Contains("中线渐弱") || msg.Contains("中线较弱")) && msg.Contains("短线渐弱")) { msg += ",考虑空仓。"; } else if ((msg.Contains("中线渐强") || msg.Contains("中线较强")) && msg.Contains("短线见底")) { msg += ",注意回调机会。"; } else if ((msg.Contains("中线渐强") || msg.Contains("中线较强")) && msg.Contains("短线渐弱")) { msg += ",控制仓位,注意风险。"; } else if ((msg.Contains("中线渐强") || msg.Contains("中线较强")) && msg.Contains("短线渐强")) { msg += "乐观,逢高减持。"; } else { msg += ",注意风险!"; } } try { PushHelper.Push("慢牛分析,仅供参考", msg); } catch (Exception ex) { this.Log().Info("推送消息异常:" + ex.Message); } }