Пример #1
0
        private void OnRspQryOrder_callback(object sender, ref OrderField order, int size1, bool bIsLast)
        {
            if (null == OnRspQryOrder)
                return;

            OrderClass cls = null;

            if (size1 > 0)
            {
                OrderField field = order;

                cls = new OrderClass();

                cls.InstrumentName = field.InstrumentName();
                cls.Symbol = field.Symbol;
                cls.InstrumentID = field.InstrumentID;
                cls.ExchangeID = field.ExchangeID;
                cls.ClientID = field.ClientID;
                cls.AccountID = field.AccountID;
                cls.Side = (int) field.Side;
                cls.Side_String = Enum<XAPI.OrderSide>.ToString(field.Side);
                cls.Qty = field.Qty;
                cls.Price = field.Price;
                cls.OpenClose = (int) field.OpenClose;
                cls.OpenClose_String = Enum<XAPI.OpenCloseType>.ToString(field.OpenClose);
                cls.HedgeFlag = (int) field.HedgeFlag;
                cls.HedgeFlag_String = Enum<XAPI.HedgeFlagType>.ToString(field.HedgeFlag);
                cls.Date = field.Date;
                cls.Time = field.Time;
                cls.ID = field.ID;
                cls.OrderID = field.OrderID;
                cls.LocalID = field.LocalID;
                cls.Type = (int) field.Type;
                cls.Type_String = Enum<XAPI.OrderType>.ToString(field.Type);
                cls.StopPx = field.StopPx;
                cls.TimeInForce = (int) field.TimeInForce;
                cls.TimeInForce_String = Enum<XAPI.TimeInForce>.ToString(field.TimeInForce);
                cls.Status = (int) field.Status;
                cls.Status_String = Enum<XAPI.OrderStatus>.ToString(field.Status);
                cls.ExecType = (int) field.ExecType;
                cls.ExecType_String = Enum<XAPI.ExecType>.ToString(field.ExecType);
                cls.LeavesQty = field.LeavesQty;
                cls.CumQty = field.CumQty;
                cls.AvgPx = field.AvgPx;
                cls.XErrorID = field.XErrorID;
                cls.RawErrorID = field.RawErrorID;
                cls.Text = field.Text();
                cls.ReserveInt32 = field.ReserveInt32;
                cls.ReserveChar64 = field.ReserveChar64;
            }

            if (null == OnRspQryOrder)
            {
                QueueData qd = new QueueData();
                qd.Type = (int)ResponeType.OnRspQryOrder;
                qd.Type_String = Enum<XAPI.ResponeType>.ToString(ResponeType.OnRspQryOrder);
                qd.Sender = this;
                qd.Data1 = cls;
                qd.Data2 = size1;
                qd.Data3 = bIsLast;

                MessageQueue.Enqueue(qd);
            }
            else
            {
                OnRspQryOrder(this, ref cls, size1, bIsLast);
            }
        }
Пример #2
0
        private void OnRspQryTrade_callback(object sender, ref TradeField trade, int size1, bool bIsLast)
        {
            if (null == OnRspQryTrade)
                return;

            TradeClass cls = null;

            if (size1 > 0)
            {
                TradeField field = trade;

                cls = new TradeClass();

                cls.InstrumentName = field.InstrumentName();
                cls.Symbol = field.Symbol;
                cls.InstrumentID = field.InstrumentID;
                cls.ExchangeID = field.ExchangeID;
                cls.ClientID = field.ClientID;
                cls.AccountID = field.AccountID;
                cls.Side = (int)field.Side;
                cls.Side_String = Enum<XAPI.OrderSide>.ToString(field.Side);
                cls.Qty = field.Qty;
                cls.Price = field.Price;
                cls.OpenClose = (int)field.OpenClose;
                cls.OpenClose_String = Enum<XAPI.OpenCloseType>.ToString(field.OpenClose);
                cls.HedgeFlag = (int)field.HedgeFlag;
                cls.HedgeFlag_String = Enum<XAPI.HedgeFlagType>.ToString(field.HedgeFlag);
                cls.Date = field.Date;
                cls.Time = field.Time;
                cls.ID = field.ID;
                cls.TradeID = field.TradeID;
                cls.ReserveInt32 = field.ReserveInt32;
                cls.ReserveChar64 = field.ReserveChar64;
            }

            if (null == OnRspQryTrade)
            {
                QueueData qd = new QueueData();
                qd.Type = (int)ResponeType.OnRspQryTrade;
                qd.Type_String = Enum<XAPI.ResponeType>.ToString(ResponeType.OnRspQryTrade);
                qd.Sender = this;
                qd.Data1 = cls;
                qd.Data2 = size1;
                qd.Data3 = bIsLast;

                MessageQueue.Enqueue(qd);
            }
            else
            {
                OnRspQryTrade(this, ref cls, size1, bIsLast);
            }
        }
Пример #3
0
        private void OnRspQryInvestorPosition_callback(object sender, ref PositionField position, int size1, bool bIsLast)
        {
            if (null == OnRspQryInvestorPosition)
                return;

            PositionField field = position;

            PositionClass cls = new PositionClass();

            cls.InstrumentName = field.InstrumentName();
            cls.Symbol = field.Symbol;
            cls.InstrumentID = field.InstrumentID;
            cls.ExchangeID = field.ExchangeID;
            cls.ClientID = field.ClientID;
            cls.AccountID = field.AccountID;

            cls.Side = (int)field.Side;
            cls.Side_String = Enum<XAPI.PositionSide>.ToString(field.Side);
            cls.HedgeFlag = (int)field.HedgeFlag;
            cls.HedgeFlag_String = Enum<XAPI.HedgeFlagType>.ToString(field.HedgeFlag);

            cls.Date = field.Date;
            cls.PositionCost = field.PositionCost;
            cls.Position = field.Position;
            cls.TodayPosition = field.TodayPosition;
            cls.HistoryPosition = field.HistoryPosition;
            cls.HistoryFrozen = field.HistoryFrozen;
            cls.TodayBSPosition = field.TodayBSPosition;
            cls.TodayBSFrozen = field.TodayBSFrozen;
            cls.TodayPRPosition = field.TodayPRPosition;
            cls.TodayPRFrozen = field.TodayPRFrozen;

            if (null == OnRspQryInvestorPosition)
            {
                QueueData qd = new QueueData();
                qd.Type = (int)ResponeType.OnRspQryInvestorPosition;
                qd.Type_String = Enum<XAPI.ResponeType>.ToString(ResponeType.OnRspQryInvestorPosition);
                qd.Sender = this;
                qd.Data1 = cls;
                qd.Data2 = size1;
                qd.Data3 = bIsLast;

                MessageQueue.Enqueue(qd);
            }
            else
            {
                OnRspQryInvestorPosition(this, ref cls, size1, bIsLast);
            }
        }
Пример #4
0
        private void OnRspQryTradingAccount_callback(object sender, ref AccountField account, int size1, bool bIsLast)
        {
            if (null == OnRspQryTradingAccount)
                return;

            AccountField field = account;

            AccountClass cls = new AccountClass();

            cls.ClientID = field.ClientID;
            cls.AccountID = field.AccountID;
            cls.CurrencyID = field.CurrencyID;

            cls.PreBalance = field.PreBalance;
            cls.CurrMargin = field.CurrMargin;
            cls.CloseProfit = field.CloseProfit;
            cls.PositionProfit = field.PositionProfit;
            cls.Balance = field.Balance;
            cls.Available = field.Available;
            cls.Deposit = field.Deposit;
            cls.Withdraw = field.Withdraw;
            cls.WithdrawQuota = field.WithdrawQuota;
            cls.FrozenTransferFee = field.FrozenTransferFee;
            cls.FrozenStampTax = field.FrozenStampTax;
            cls.FrozenCommission = field.FrozenCommission;
            cls.FrozenCash = field.FrozenCash;
            cls.StampTax = field.StampTax;
            cls.Commission = field.Commission;
            cls.CashIn = field.CashIn;

            if (null == OnRspQryTradingAccount)
            {
                QueueData qd = new QueueData();
                qd.Type = (int)ResponeType.OnRspQryTradingAccount;
                qd.Type_String = Enum<XAPI.ResponeType>.ToString(ResponeType.OnRspQryTradingAccount);
                qd.Sender = this;
                qd.Data1 = cls;
                qd.Data2 = size1;
                qd.Data3 = bIsLast;

                MessageQueue.Enqueue(qd);
            }
            else
            {
                OnRspQryTradingAccount(this, ref cls, size1, bIsLast);
            }
        }
Пример #5
0
        private void OnRtnDepthMarketData_callback(object sender, ref XAPI.DepthMarketDataNClass marketData)
        {
            DepthMarketDataNClass cls = new DepthMarketDataNClass();
            XAPI.DepthMarketDataNClass field = marketData;

            cls.TradingDay = field.TradingDay;
            cls.ActionDay = field.ActionDay;
            cls.UpdateTime = field.UpdateTime;
            cls.UpdateMillisec = field.UpdateMillisec;
            cls.Exchange = (int)field.Exchange;
            cls.Symbol = field.Symbol;
            cls.InstrumentID = field.InstrumentID;
            cls.ExchangeID = field.ExchangeID;
            cls.LastPrice = field.LastPrice;
            cls.Volume = field.Volume;
            cls.Turnover = field.Turnover;
            cls.OpenInterest = field.OpenInterest;
            cls.AveragePrice = field.AveragePrice;
            cls.OpenPrice = field.OpenPrice;
            cls.HighestPrice = field.HighestPrice;
            cls.LowestPrice = field.LowestPrice;
            cls.ClosePrice = field.ClosePrice;
            cls.SettlementPrice = field.SettlementPrice;
            cls.UpperLimitPrice = field.UpperLimitPrice;
            cls.LowerLimitPrice = field.LowerLimitPrice;
            cls.PreClosePrice = field.PreClosePrice;
            cls.PreSettlementPrice = field.PreSettlementPrice;
            cls.PreOpenInterest = field.PreOpenInterest;
            cls.TradingPhase = (int)field.TradingPhase;
            cls.TradingPhase_String = Enum<XAPI.TradingPhaseType>.ToString(field.TradingPhase);
            //cls.Bids = marketData.TradingDay;
            //cls.TradingDay = marketData.TradingDay;

            if (null == OnRtnDepthMarketData)
            {
                QueueData qd = new QueueData();
                qd.Type = (int)ResponeType.OnRtnDepthMarketData;
                qd.Type_String = Enum<XAPI.ResponeType>.ToString(ResponeType.OnRtnDepthMarketData);
                qd.Sender = this;
                qd.Data1 = cls;

                MessageQueue.Enqueue(qd);
            }
            else
            {
                OnRtnDepthMarketData(this, ref cls);
            }
        }
Пример #6
0
        private void OnRspQryInstrument_callback(object sender, ref InstrumentField instrument, int size1, bool bIsLast)
        {
            if (null == OnRspQryInstrument)
                return;

            InstrumentField field = instrument;

            InstrumentClass cls = new InstrumentClass();

            cls.InstrumentName = field.InstrumentName();
            cls.Symbol = field.Symbol;
            cls.InstrumentID = field.InstrumentID;
            cls.ExchangeID = field.ExchangeID;
            cls.ClientID = field.ClientID;
            cls.AccountID = field.AccountID;

            cls.ExchangeInstID = field.ExchangeInstID;

            cls.Type = (int)field.Type;
            cls.Type_String = Enum<XAPI.InstrumentType>.ToString(field.Type);

            cls.VolumeMultiple = field.VolumeMultiple;
            cls.PriceTick = field.PriceTick;
            cls.ExpireDate = field.ExpireDate;
            cls.StrikePrice = field.StrikePrice;

            cls.OptionsType = (int)field.OptionsType;
            cls.OptionsType_String = Enum<XAPI.PutCall>.ToString(field.OptionsType);

            cls.ProductID = field.ProductID;
            cls.UnderlyingInstrID = field.UnderlyingInstrID;

            cls.InstLifePhase = (int)field.InstLifePhase;
            cls.InstLifePhase_String = Enum<XAPI.InstLifePhaseType>.ToString(field.InstLifePhase);

            if (null == OnRspQryInstrument)
            {
                QueueData qd = new QueueData();
                qd.Type = (int)ResponeType.OnRspQryInstrument;
                qd.Type_String = Enum<XAPI.ResponeType>.ToString(ResponeType.OnRspQryInstrument);
                qd.Sender = this;
                qd.Data1 = cls;
                qd.Data2 = size1;
                qd.Data3 = bIsLast;

                MessageQueue.Enqueue(qd);
            }
            else
            {
                OnRspQryInstrument(this, ref cls, size1, bIsLast);
            }
        }
Пример #7
0
        private void OnRtnError_callback(object sender, [In] ref ErrorField error)
        {
            ErrorClass cls = null;

            cls = new ErrorClass();
            ErrorField field = error;

            cls.XErrorID = field.XErrorID;
            cls.RawErrorID = field.RawErrorID;
            cls.Text = field.Text();
            cls.Source = field.Source;

            if (null == OnRtnError)
            {
                QueueData qd = new QueueData();
                qd.Type = (int)ResponeType.OnRtnError;
                qd.Type_String = Enum<XAPI.ResponeType>.ToString(ResponeType.OnRtnError);
                qd.Sender = this;
                qd.Data1 = cls;

                MessageQueue.Enqueue(qd);
            }
            else
            {
                OnRtnError(this, ref cls);
            }
        }
Пример #8
0
        private void OnLog_callback(object sender, [In] ref LogField log)
        {
            LogClass cls = null;

            cls = new LogClass();
            LogField field = log;

            cls.Level = (int)field.Level;
            cls.Level_String = Enum<XAPI.LogLevel>.ToString(field.Level);
            cls.Message = field.Message();

            if (null == OnLog)
            {
                QueueData qd = new QueueData();
                qd.Type = (int)ResponeType.OnLog;
                qd.Type_String = Enum<XAPI.ResponeType>.ToString(ResponeType.OnLog);
                qd.Sender = this;
                qd.Data1 = cls;

                MessageQueue.Enqueue(qd);
            }
            else
            {
                OnLog(this, ref cls);
            }
        }
Пример #9
0
        private void OnRspQrySettlementInfo_callback(object sender, [In] ref XAPI.SettlementInfoClass settlementInfo, int size1, bool bIsLast)
        {
            if (null == OnRspQrySettlementInfo)
                return;

            XAPI.SettlementInfoClass field = settlementInfo;

            XAPI.COM.SettlementInfoClass cls = new XAPI.COM.SettlementInfoClass();
            cls.TradingDay = field.TradingDay;
            cls.Content = field.Content;

            if (null == OnRspQrySettlementInfo)
            {
                QueueData qd = new QueueData();
                qd.Type = (int)ResponseType.OnRspQrySettlementInfo;
                qd.Type_String = Enum<XAPI.ResponseType>.ToString(ResponseType.OnRspQrySettlementInfo);
                qd.Sender = this;
                qd.Data1 = cls;
                qd.Data2 = size1;
                qd.Data3 = bIsLast;

                MessageQueue.Enqueue(qd);
            }
            else
            {
                OnRspQrySettlementInfo(this, cls, size1, bIsLast);
            }
        }
Пример #10
0
        private void OnConnectionStatus_callback(object sender, XAPI.ConnectionStatus status, ref RspUserLoginField userLogin, int size1)
        {
            RspUserLoginClass cls = null;

            if (size1 > 0)
            {
                cls = new RspUserLoginClass();
                RspUserLoginField field = userLogin;

                cls.TradingDay = field.TradingDay;
                cls.LoginTime = field.LoginTime;
                cls.SessionID = field.SessionID;
                cls.UserID = field.UserID;
                cls.AccountID = field.AccountID;
                cls.InvestorName = field.InvestorName();
                cls.XErrorID = field.XErrorID;
                cls.RawErrorID = field.RawErrorID;
                cls.Text = field.Text();
            }

            if (null == OnConnectionStatus)
            {
                QueueData qd = new QueueData();
                qd.Type = (int)ResponeType.OnConnectionStatus;
                qd.Type_String = Enum<XAPI.ResponeType>.ToString(ResponeType.OnConnectionStatus);
                qd.Sender = this;
                qd.Data1 = status;
                qd.Data2 = Enum<XAPI.ConnectionStatus>.ToString(status);
                qd.Data3 = cls;
                qd.Data4 = size1;

                MessageQueue.Enqueue(qd);
            }
            else
            {
                OnConnectionStatus(this, (int)status, Enum<XAPI.ConnectionStatus>.ToString(status), ref cls, size1);
            }
        }
Пример #11
0
        private void OnRtnTrade_callback(object sender, [In] ref TradeField trade)
        {
            if (null == OnRtnTrade)
                return;

            TradeField field = trade;

            TradeClass cls = new TradeClass();

            cls.InstrumentName = field.InstrumentName();
            cls.Symbol = field.Symbol;
            cls.InstrumentID = field.InstrumentID;
            cls.ExchangeID = field.ExchangeID;
            cls.ClientID = field.ClientID;
            cls.AccountID = field.AccountID;
            cls.Side = (int)field.Side;
            cls.Side_String = Enum<XAPI.OrderSide>.ToString(field.Side);
            cls.Qty = field.Qty;
            cls.Price = field.Price;
            cls.OpenClose = (int)field.OpenClose;
            cls.OpenClose_String = Enum<XAPI.OpenCloseType>.ToString(field.OpenClose);
            cls.HedgeFlag = (int)field.HedgeFlag;
            cls.HedgeFlag_String = Enum<XAPI.HedgeFlagType>.ToString(field.HedgeFlag);
            cls.Date = field.Date;
            cls.Time = field.Time;
            cls.ID = field.ID;
            cls.TradeID = field.TradeID;
            cls.ReserveInt32 = field.ReserveInt32;
            cls.ReserveChar64 = field.ReserveChar64;

            cls.PortfolioID1 = field.PortfolioID1;
            cls.PortfolioID2 = field.PortfolioID2;
            cls.PortfolioID3 = field.PortfolioID3;
            cls.Business = (int)field.Business;
            cls.Business_String = Enum<XAPI.BusinessType>.ToString(field.Business);

            if (null == OnRtnTrade)
            {
                QueueData qd = new QueueData();
                qd.Type = (int)ResponseType.OnRtnTrade;
                qd.Type_String = Enum<XAPI.ResponseType>.ToString(ResponseType.OnRtnTrade);
                qd.Sender = this;
                qd.Data1 = cls;

                MessageQueue.Enqueue(qd);
            }
            else
            {
                OnRtnTrade(this, cls);
            }
        }
Пример #12
0
        private void OnRtnOrder_callback(object sender, [In] ref OrderField order)
        {
            OrderField field = order;

            OrderClass cls = new OrderClass();

            cls.InstrumentName = field.InstrumentName();
            cls.Symbol = field.Symbol;
            cls.InstrumentID = field.InstrumentID;
            cls.ExchangeID = field.ExchangeID;
            cls.ClientID = field.ClientID;
            cls.AccountID = field.AccountID;
            cls.Side = (int)field.Side;
            cls.Side_String = Enum<XAPI.OrderSide>.ToString(field.Side);
            cls.Qty = field.Qty;
            cls.Price = field.Price;
            cls.OpenClose = (int)field.OpenClose;
            cls.OpenClose_String = Enum<XAPI.OpenCloseType>.ToString(field.OpenClose);
            cls.HedgeFlag = (int)field.HedgeFlag;
            cls.HedgeFlag_String = Enum<XAPI.HedgeFlagType>.ToString(field.HedgeFlag);
            cls.Date = field.Date;
            cls.Time = field.Time;
            cls.ID = field.ID;
            cls.OrderID = field.OrderID;
            cls.LocalID = field.LocalID;
            cls.Type = (int)field.Type;
            cls.Type_String = Enum<XAPI.OrderType>.ToString(field.Type);
            cls.StopPx = field.StopPx;
            cls.TimeInForce = (int)field.TimeInForce;
            cls.TimeInForce_String = Enum<XAPI.TimeInForce>.ToString(field.TimeInForce);
            cls.Status = (int)field.Status;
            cls.Status_String = Enum<XAPI.OrderStatus>.ToString(field.Status);
            cls.ExecType = (int)field.ExecType;
            cls.ExecType_String = Enum<XAPI.ExecType>.ToString(field.ExecType);
            cls.LeavesQty = field.LeavesQty;
            cls.CumQty = field.CumQty;
            cls.AvgPx = field.AvgPx;
            cls.XErrorID = field.XErrorID;
            cls.RawErrorID = field.RawErrorID;
            cls.Text = field.Text();
            cls.ReserveInt32 = field.ReserveInt32;
            cls.ReserveChar64 = field.ReserveChar64;

            cls.PortfolioID1 = field.PortfolioID1;
            cls.PortfolioID2 = field.PortfolioID2;
            cls.PortfolioID3 = field.PortfolioID3;
            cls.Business = (int)field.Business;
            cls.Business_String = Enum<XAPI.BusinessType>.ToString(field.Business);

            if (null == OnRtnOrder)
            {
                QueueData qd = new QueueData();
                qd.Type = (int)ResponseType.OnRtnOrder;
                qd.Type_String = Enum<XAPI.ResponseType>.ToString(ResponseType.OnRtnOrder);
                qd.Sender = this;
                qd.Data1 = cls;

                MessageQueue.Enqueue(qd);
            }
            else
            {
                OnRtnOrder(this, cls);
            }
        }
Пример #13
0
        private void OnRspQryTrade_callback(object sender, [In] ref TradeField trade, int size1, bool bIsLast)
        {
            if (null == OnRspQryTrade)
            {
                return;
            }

            TradeClass cls = new TradeClass();

            if (size1 > 0)
            {
                TradeField field = trade;

                cls.InstrumentName = field.InstrumentName();
                cls.Symbol         = field.Symbol;
                cls.InstrumentID   = field.InstrumentID;
                cls.ExchangeID     = field.ExchangeID;
                cls.ClientID       = field.ClientID;
                cls.AccountID      = field.AccountID;
                cls.Side           = (int)field.Side;
                cls.Side_String    = Enum <XAPI.OrderSide> .ToString(field.Side);

                cls.Qty              = field.Qty;
                cls.Price            = field.Price;
                cls.OpenClose        = (int)field.OpenClose;
                cls.OpenClose_String = Enum <XAPI.OpenCloseType> .ToString(field.OpenClose);

                cls.HedgeFlag        = (int)field.HedgeFlag;
                cls.HedgeFlag_String = Enum <XAPI.HedgeFlagType> .ToString(field.HedgeFlag);

                cls.Date          = field.Date;
                cls.Time          = field.Time;
                cls.ID            = field.ID;
                cls.TradeID       = field.TradeID;
                cls.ReserveInt32  = field.ReserveInt32;
                cls.ReserveChar64 = field.ReserveChar64;

                cls.PortfolioID1    = field.PortfolioID1;
                cls.PortfolioID2    = field.PortfolioID2;
                cls.PortfolioID3    = field.PortfolioID3;
                cls.Business        = (int)field.Business;
                cls.Business_String = Enum <XAPI.BusinessType> .ToString(field.Business);
            }

            if (null == OnRspQryTrade)
            {
                QueueData qd = new QueueData();
                qd.Type        = (int)ResponseType.OnRspQryTrade;
                qd.Type_String = Enum <XAPI.ResponseType> .ToString(ResponseType.OnRspQryTrade);

                qd.Sender = this;
                qd.Data1  = cls;
                qd.Data2  = size1;
                qd.Data3  = bIsLast;

                MessageQueue.Enqueue(qd);
            }
            else
            {
                OnRspQryTrade(this, cls, size1, bIsLast);
            }
        }
Пример #14
0
        private void OnRspQryOrder_callback(object sender, [In] ref OrderField order, int size1, bool bIsLast)
        {
            if (null == OnRspQryOrder)
            {
                return;
            }

            OrderClass cls = new OrderClass();

            if (size1 > 0)
            {
                OrderField field = order;

                cls.InstrumentName = field.InstrumentName();
                cls.Symbol         = field.Symbol;
                cls.InstrumentID   = field.InstrumentID;
                cls.ExchangeID     = field.ExchangeID;
                cls.ClientID       = field.ClientID;
                cls.AccountID      = field.AccountID;
                cls.Side           = (int)field.Side;
                cls.Side_String    = Enum <XAPI.OrderSide> .ToString(field.Side);

                cls.Qty              = field.Qty;
                cls.Price            = field.Price;
                cls.OpenClose        = (int)field.OpenClose;
                cls.OpenClose_String = Enum <XAPI.OpenCloseType> .ToString(field.OpenClose);

                cls.HedgeFlag        = (int)field.HedgeFlag;
                cls.HedgeFlag_String = Enum <XAPI.HedgeFlagType> .ToString(field.HedgeFlag);

                cls.Date        = field.Date;
                cls.Time        = field.Time;
                cls.ID          = field.ID;
                cls.OrderID     = field.OrderID;
                cls.LocalID     = field.LocalID;
                cls.Type        = (int)field.Type;
                cls.Type_String = Enum <XAPI.OrderType> .ToString(field.Type);

                cls.StopPx             = field.StopPx;
                cls.TimeInForce        = (int)field.TimeInForce;
                cls.TimeInForce_String = Enum <XAPI.TimeInForce> .ToString(field.TimeInForce);

                cls.Status        = (int)field.Status;
                cls.Status_String = Enum <XAPI.OrderStatus> .ToString(field.Status);

                cls.ExecType        = (int)field.ExecType;
                cls.ExecType_String = Enum <XAPI.ExecType> .ToString(field.ExecType);

                cls.LeavesQty     = field.LeavesQty;
                cls.CumQty        = field.CumQty;
                cls.AvgPx         = field.AvgPx;
                cls.XErrorID      = field.XErrorID;
                cls.RawErrorID    = field.RawErrorID;
                cls.Text          = field.Text();
                cls.ReserveInt32  = field.ReserveInt32;
                cls.ReserveChar64 = field.ReserveChar64;

                cls.PortfolioID1    = field.PortfolioID1;
                cls.PortfolioID2    = field.PortfolioID2;
                cls.PortfolioID3    = field.PortfolioID3;
                cls.Business        = (int)field.Business;
                cls.Business_String = Enum <XAPI.BusinessType> .ToString(field.Business);
            }

            if (null == OnRspQryOrder)
            {
                QueueData qd = new QueueData();
                qd.Type        = (int)ResponseType.OnRspQryOrder;
                qd.Type_String = Enum <XAPI.ResponseType> .ToString(ResponseType.OnRspQryOrder);

                qd.Sender = this;
                qd.Data1  = cls;
                qd.Data2  = size1;
                qd.Data3  = bIsLast;

                MessageQueue.Enqueue(qd);
            }
            else
            {
                OnRspQryOrder(this, cls, size1, bIsLast);
            }
        }
Пример #15
0
        private void OnRspQryInvestorPosition_callback(object sender, [In] ref PositionField position, int size1, bool bIsLast)
        {
            if (null == OnRspQryInvestorPosition)
            {
                return;
            }

            PositionField field = position;

            PositionClass cls = new PositionClass();

            cls.InstrumentName = field.InstrumentName();
            cls.Symbol         = field.Symbol;
            cls.InstrumentID   = field.InstrumentID;
            cls.ExchangeID     = field.ExchangeID;
            cls.ClientID       = field.ClientID;
            cls.AccountID      = field.AccountID;

            cls.Side        = (int)field.Side;
            cls.Side_String = Enum <XAPI.PositionSide> .ToString(field.Side);

            cls.HedgeFlag        = (int)field.HedgeFlag;
            cls.HedgeFlag_String = Enum <XAPI.HedgeFlagType> .ToString(field.HedgeFlag);

            cls.Date            = field.Date;
            cls.PositionCost    = field.PositionCost;
            cls.Position        = field.Position;
            cls.TodayPosition   = field.TodayPosition;
            cls.HistoryPosition = field.HistoryPosition;
            cls.HistoryFrozen   = field.HistoryFrozen;
            cls.TodayBSPosition = field.TodayBSPosition;
            cls.TodayBSFrozen   = field.TodayBSFrozen;
            cls.TodayPRPosition = field.TodayPRPosition;
            cls.TodayPRFrozen   = field.TodayPRFrozen;
            cls.ID = field.ID;

            cls.PortfolioID1    = field.PortfolioID1;
            cls.PortfolioID2    = field.PortfolioID2;
            cls.PortfolioID3    = field.PortfolioID3;
            cls.Business        = (int)field.Business;
            cls.Business_String = Enum <XAPI.BusinessType> .ToString(field.Business);


            if (null == OnRspQryInvestorPosition)
            {
                QueueData qd = new QueueData();
                qd.Type        = (int)ResponseType.OnRspQryInvestorPosition;
                qd.Type_String = Enum <XAPI.ResponseType> .ToString(ResponseType.OnRspQryInvestorPosition);

                qd.Sender = this;
                qd.Data1  = cls;
                qd.Data2  = size1;
                qd.Data3  = bIsLast;

                MessageQueue.Enqueue(qd);
            }
            else
            {
                OnRspQryInvestorPosition(this, cls, size1, bIsLast);
            }
        }