Example #1
0
 public bool ReqQuoteAction(ThostFtdcQuoteField quoteField, out string errMsg)
 {
Example #2
0
        /// <summary>
        /// 报价通知
        /// </summary>
        /// <param name="pQuote"></param>
        void OnRtnQuote(ThostFtdcQuoteField pQuote)
        {
            if (IsMyQuote(pQuote))
            {
                if (pQuote.QuoteStatus == EnumOrderStatusType.Unknown)
                {
                    if (pQuote.ExchangeID != null && pQuote.ExchangeID != "" && pQuote.QuoteSysID != null && pQuote.QuoteSysID != "")
                    {

                    }
                }
                else if (pQuote.QuoteStatus == EnumOrderStatusType.NoTradeQueueing)
                {
                    QuoteRef2QuoteFieldMap.Add(pQuote.QuoteRef, pQuote);
                    if (pQuote.AskOrderSysID != null || pQuote.AskOrderSysID != "")
                    {
                        OrderSysID2QuoteRefMap.Add(pQuote.AskOrderSysID, pQuote.QuoteRef);
                    }
                    if (pQuote.BidOrderSysID != null || pQuote.BidOrderSysID != "")
                    {
                        OrderSysID2QuoteRefMap.Add(pQuote.BidOrderSysID, pQuote.QuoteRef);
                    }
                }
                else if (pQuote.QuoteStatus == EnumOrderStatusType.Touched)
                {

                }
                else if (pQuote.QuoteStatus == EnumOrderStatusType.Canceled)
                {
                    //全部成交自动撤单
                    if (OrderSysID2QuoteRefMap.ContainsKey(pQuote.AskOrderSysID))
                    {
                        OrderSysID2QuoteRefMap.Remove(pQuote.AskOrderSysID);
                    }
                    if (OrderSysID2QuoteRefMap.ContainsKey(pQuote.BidOrderSysID))
                    {
                        OrderSysID2QuoteRefMap.Remove(pQuote.BidOrderSysID);
                    }
                    QuoteRef2QuoteFieldMap.Remove(pQuote.QuoteRef);
                }
            }
        }
Example #3
0
 /// <summary>
 /// 判断是否是我的做市单
 /// </summary>
 /// <param name="pQuote"></param>
 /// <returns></returns>
 private bool IsMyQuote(ThostFtdcQuoteField pQuote)
 {
     return true;
     //return ((pQuote.FrontID == trader.FrontID) && (pQuote.SessionID == trader.SessionID));
 }
Example #4
0
 /// <summary>
 /// 请求查询报价响应
 /// </summary>
 /// <param name="pQuote"></param>
 /// <param name="pRspInfo"></param>
 /// <param name="nRequestID"></param>
 /// <param name="bIsLast"></param>
 void OnRspQryQuote(ThostFtdcQuoteField pQuote, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast)
 {
 }
Example #5
0
 /// <summary>
 /// 报价操作请求
 /// </summary>
 /// <param name="pQuote"></param>
 /// <returns></returns>
 public int ReqQuoteAction(ThostFtdcQuoteField pQuote)
 {
     lock (ReqLock)
     {
         ThostFtdcInputQuoteActionField req = new ThostFtdcInputQuoteActionField();
         req.ActionFlag = EnumActionFlagType.Delete;
         req.BrokerID = trader.BrokerID;
         req.FrontID = trader.FrontID;
         req.ExchangeID = pQuote.ExchangeID;
         req.InstrumentID = pQuote.InstrumentID;
         req.InvestorID = pQuote.InvestorID;
         req.QuoteRef = pQuote.QuoteRef;
         req.SessionID = pQuote.SessionID;
         req.UserID = pQuote.UserID;
         int iRet = trader.ReqQuoteAction(req, ++RequestID);
         if (QuoteRef2QuoteStategyMap.ContainsKey(pQuote.QuoteRef))
         {
             QuoteRef2QuoteStategyMap.Remove(pQuote.QuoteRef);
         }
         return iRet;
     }
 }