コード例 #1
0
        /// <summary>
        /// 获取对冲信息
        /// </summary>
        /// <param name="sqlCondition">查询条件</param>
        /// <param name="hedgingInfo"></param>
        /// <returns>对冲信息</returns>
        public static void GetHedgingList(string sqlCondition, ref HedgingInfo hedgingInfo)
        {
            System.Data.Common.DbDataReader dbreader = null;
            try
            {

                Dictionary<string, ProPrice> prodic = GetProPrice();
                if (!(prodic != null && prodic.Count > 0))
                {
                    return ;
                }
                string data = string.Empty;
                foreach (var item in prodic)
                {
                    data += string.Format("{0},{1}|",item.Key,item.Value.realprice);
                }
                if (data.Length > 1)
                {
                    data = data.Substring(0, data.Length - 1);
                }
                else
                {
                    return ;
                }
                dbreader = DbHelper.RunProcedureGetDataReader("proc_GetHedgingEx",
                      new System.Data.Common.DbParameter[]{
                         DbHelper.CreateDbParameter(JinTong.Jyrj.Data.DataBase.Type,
                    "@data",DbParameterType.String,data,ParameterDirection.Input),
                         DbHelper.CreateDbParameter(JinTong.Jyrj.Data.DataBase.Type,
                    "@SearchCondition",DbParameterType.String,sqlCondition,ParameterDirection.Input)});
                while (dbreader.Read())
                {
                    Hedging hedging = new Hedging();
                    hedging.AvgOrderPrice = Convert.ToDouble(dbreader["avg_orderprice"]);
                    hedging.HedgingProfitLoss = Convert.ToDouble(dbreader["hd_yingkui"]);
                    hedging.HedgingQuantity = Convert.ToDouble(dbreader["hd_quantity"]);
                    hedging.HedgingStorageFee = Convert.ToDouble(dbreader["hd_storagefee"]);
                    hedging.HedgingTradeFee = Convert.ToDouble(dbreader["hd_tradefee"]);
                    hedging.OrderType = dbreader["ordertype"].ToString();
                    hedging.ProductName = dbreader["productname"].ToString();
                    hedging.ProfitLoss = Convert.ToDouble(dbreader["yingkui"]);
                    hedging.Quantity = Convert.ToDouble(dbreader["S_quantity"]);
                    hedging.RealPrice = Convert.ToDouble(dbreader["realprice"]);
                    hedging.StorageFee = Convert.ToDouble(dbreader["S_storagefee"]);
                    hedging.TradeFee = Convert.ToDouble(dbreader["S_tradefee"]);
                    hedgingInfo.HedgingList.Add(hedging);
                }
                if (dbreader.NextResult())//前进到下一结果集
                {
                    if (dbreader.Read()) //获取汇总数据
                    {
                        hedgingInfo.Quantity = System.DBNull.Value != dbreader["S_quantity"] ? Convert.ToDouble(dbreader["S_quantity"]) : 0;
                        hedgingInfo.ProfitValue = System.DBNull.Value != dbreader["yingkui"] ? Convert.ToDouble(dbreader["yingkui"]) : 0;
                        hedgingInfo.StorageFee = System.DBNull.Value != dbreader["S_storagefee"] ? Convert.ToDouble(dbreader["S_storagefee"]) : 0;
                        hedgingInfo.TradeFee = System.DBNull.Value != dbreader["S_tradefee"] ? Convert.ToDouble(dbreader["S_tradefee"]) : 0;
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message, ex);
            }
            finally
            {
                if (null != dbreader)
                {
                    dbreader.Close(); dbreader.Dispose();
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// 获取交易对冲信息
        /// </summary>
        /// <param name="LoginId">登陆标识</param>
        /// <param name="Starttime">开始时间</param>
        /// <param name="Endtime">结束时间</param>
        /// <returns>交易对冲信息</returns>
        public HedgingInfo GetHedgingInfo(string LoginId, DateTime Starttime, DateTime Endtime)
        {
            HedgingInfo hedgingInfo = new HedgingInfo();
            try
            {
                TradeUser TdUser = new TradeUser();
                #region 判断登陆标识是否过期

                if (!ComFunction.ExistUserLoginID(LoginId, ref TdUser))
                {
                    hedgingInfo.Result = false;
                    hedgingInfo.Desc = ResCode.UL003Desc;
                    return hedgingInfo;
                }
                if (UserType.NormalType == TdUser.UType)
                {
                    hedgingInfo.Result = false;
                    hedgingInfo.Desc = ComFunction.NotRightUser;
                    return hedgingInfo;
                }

                #endregion

                hedgingInfo.HedgingList = new List<Hedging>();
                ComFunction.GetHedgingList(string.Format("where ordertime>='{0}' and ordertime<='{1}'",
                                            Starttime.ToString("yyyy-MM-dd HH:mm:ss"), Endtime.ToString("yyyy-MM-dd HH:mm:ss")), ref hedgingInfo);
                hedgingInfo.Result = true;
                hedgingInfo.Desc = "查询成功";
            }
            catch (Exception ex)
            {
                ComFunction.WriteErr(ex);
                hedgingInfo.Result = false;
                hedgingInfo.Desc = "查询交易对冲信息失败";
            }
            return hedgingInfo;
        }