using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServices; using System.Text; namespace QuantBox.XAPI { /// /// 用户信息 /// [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] public struct UserInfoField { /// /// 用户代码 /// [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)] public string UserID; /// /// 密码 /// [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 41)] public string Password; } /// /// 用户信息 /// [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] public struct ServerInfoField { /// /// 订阅主题 /// [MarshalAs(UnmanagedType.U1)] public bool IsUsingUdp; /// /// 订阅主题 /// [MarshalAs(UnmanagedType.U1)] public bool IsMulticast; /// /// 订阅主题 /// public int TopicId; /// /// 端口号 /// public int Port; /// /// 流恢复 /// public ResumeType MarketDataTopicResumeType; public ResumeType PrivateTopicResumeType; public ResumeType PublicTopicResumeType; public ResumeType UserTopicResumeType; /// /// 经纪公司代码 /// [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 11)] public string BrokerID; /// /// 用户端产品信息 /// [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 11)] public string UserProductInfo; /// /// 认证码 /// [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 17)] public string AuthCode; /// /// 地址 /// [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 512)] public string Address; /// /// 扩展信息 /// [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)] public string ExtendInformation; } /// /// 深度行情 /// [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] public struct ErrorField { /// /// 错误代码 /// public int ErrorID; /// /// 错误信息 /// [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)] public byte[] ErrorMsg; } /// /// 登录回报 /// [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] public struct RspUserLoginField { /// /// 交易日 /// public int TradingDay; /// /// 时间 /// public int LoginTime; /// /// 错误代码 /// public int ErrorID; /// /// 错误信息 /// [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)] public string SessionID; /// /// 错误信息 /// [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)] public byte[] ErrorMsg; /// /// 投资者名称 /// [MarshalAs(UnmanagedType.ByValArray, SizeConst = 81)] public byte[] InvestorName; } ///// ///// 深度行情 ///// //[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] //public struct DepthMarketDataField //{ // public int TradingDay; // public int ActionDay; // public int UpdateTime; // public int UpdateMillisec; // /// // /// 最新价 // /// // public double LastPrice; // /// // /// 数量 // /// // public double Volume; // /// // /// 成交金额 // /// // public double Turnover; // /// // /// 持仓量 // /// // public double OpenInterest; // /// // /// 当日均价 // /// // public double AveragePrice; // /// // /// 今开盘 // /// // public double OpenPrice; // /// // /// 最高价 // /// // public double HighestPrice; // /// // /// 最低价 // /// // public double LowestPrice; // /// // /// 今收盘 // /// // public double ClosePrice; // /// // /// 本次结算价 // /// // public double SettlementPrice; // /// // /// 涨停板价 // /// // public double UpperLimitPrice; // /// // /// 跌停板价 // /// // public double LowerLimitPrice; // /// // /// 昨收盘 // /// // public double PreClosePrice; // /// // /// 上次结算价 // /// // public double PreSettlementPrice; // /// // /// 昨持仓量 // /// // public double PreOpenInterest; // /// // /// 申买价一 // /// // public double BidPrice1; // /// // /// 申买量一 // /// // public int BidVolume1; // /// // /// 申卖价一 // /// // public double AskPrice1; // /// // /// 申卖量一 // /// // public int AskVolume1; // /// // /// 申买价二 // /// // public double BidPrice2; // /// // /// 申买量二 // /// // public int BidVolume2; // /// // /// 申卖价二 // /// // public double AskPrice2; // /// // /// 申卖量二 // /// // public int AskVolume2; // /// // /// 申买价三 // /// // public double BidPrice3; // /// // /// 申买量三 // /// // public int BidVolume3; // /// // /// 申卖价三 // /// // public double AskPrice3; // /// // /// 申卖量三 // /// // public int AskVolume3; // /// // /// 申买价四 // /// // public double BidPrice4; // /// // /// 申买量四 // /// // public int BidVolume4; // /// // /// 申卖价四 // /// // public double AskPrice4; // /// // /// 申卖量四 // /// // public int AskVolume4; // /// // /// 申买价五 // /// // public double BidPrice5; // /// // /// 申买量五 // /// // public int BidVolume5; // /// // /// 申卖价五 // /// // public double AskPrice5; // /// // /// 申卖量五 // /// // public int AskVolume5; // /// // /// 交易所代码 // /// // public ExchangeType Exchange; // /// // /// 合约代码 // /// // [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] // public string Symbol; // /// // /// 合约代码 // /// // [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 31)] // public string InstrumentID; //} /// /// 深度行情N档 /// [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] public struct DepthMarketDataNField { ///占用总字节大小 public int Size; public int TradingDay; public int ActionDay; public int UpdateTime; public int UpdateMillisec; /// /// 交易所代码 /// public ExchangeType Exchange; /// /// 合约代码 /// [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] public string Symbol; /// /// 合约代码 /// [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 31)] public string InstrumentID; /// /// 最新价 /// public double LastPrice; /// /// 数量 /// public double Volume; /// /// 成交金额 /// public double Turnover; /// /// 持仓量 /// public double OpenInterest; /// /// 当日均价 /// public double AveragePrice; /// /// 今开盘 /// public double OpenPrice; /// /// 最高价 /// public double HighestPrice; /// /// 最低价 /// public double LowestPrice; /// /// 今收盘 /// public double ClosePrice; /// /// 本次结算价 /// public double SettlementPrice; /// /// 涨停板价 /// public double UpperLimitPrice; /// /// 跌停板价 /// public double LowerLimitPrice; /// /// 昨收盘 /// public double PreClosePrice; /// /// 上次结算价 /// public double PreSettlementPrice; /// /// 昨持仓量 /// public double PreOpenInterest; ///买档个数 public int BidCount; } /// /// DepthField行情 /// [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] public struct DepthField { public double Price; public int Size; public int Count; } /// /// Tick行情 /// [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] public struct TickField { public int Date; public int Time; public int Millisecond; public double LastPrice; public double Volume; public double OpenInterest; public double BidPrice1; public double AskPrice1; public int BidSize1; public int AskSize1; } /// /// Bar行情 /// [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] public struct BarField { public int Date; public int Time; public double Open; public double High; public double Low; public double Close; public double Volume; public double OpenInterest; public double Turnover; } /// /// 发给做市商的询价请求 /// [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] public struct QuoteRequestField { /// /// 交易日 /// public int TradingDay; /// /// 询价时间 /// public int QuoteTime; /// /// 合约代码 /// [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] public string Symbol; /// /// 合约代码 /// [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 31)] public string InstrumentID; /// /// 交易所代码 /// [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 9)] public string ExchangeID; /// /// 询价编号 /// [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] public string QuoteID; } /// /// 合约信息 /// [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] public struct InstrumentField { /// /// 类型 /// public InstrumentType Type; /// /// 合约数量乘数 /// public int VolumeMultiple; /// /// 最小变动价位 /// public double PriceTick; /// /// 到期日 /// public int ExpireDate; /// /// 执行价 /// public double StrikePrice; /// /// 期权类型 /// public PutCall OptionsType; /// /// 合约代码 /// [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] public string Symbol; /// /// 合约代码 /// [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 31)] public string InstrumentID; /// /// 交易所代码 /// [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 9)] public string ExchangeID; /// /// 产品代码 /// [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 31)] public string ProductID; /// /// 合约名称 /// [MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)] public byte[] InstrumentName; /// /// 基础商品代码 /// [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 31)] public string UnderlyingInstrID; } /// /// 账号 /// [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] public struct AccountField { [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)] public string Account; /// /// 上次结算准备金 /// public double PreBalance; /// /// 当前保证金总额 /// public double CurrMargin; /// /// 平仓盈亏 /// public double CloseProfit; /// /// 持仓盈亏 /// public double PositionProfit; /// /// 期货结算准备金 /// public double Balance; /// /// 可用资金 /// public double Available; /// /// 入金金额 /// public double Deposit; /// /// 出金金额 /// public double Withdraw; /// /// 冻结的过户费 /// public double FrozenTransferFee; /// /// 冻结的印花税 /// public double FrozenStampTax; /// /// 冻结的手续费 /// public double FrozenCommission; /// /// 冻结的资金 /// public double FrozenCash; /// /// 过户费 /// public double TransferFee; /// /// 印花税 /// public double StampTax; /// /// 手续费 /// public double Commission; /// /// 资金差额 /// public double CashIn; } /// /// 账号 /// [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] public struct SettlementInfoField { /// /// 交易日 /// public int TradingDay; /// /// 消息正文 /// [MarshalAs(UnmanagedType.ByValArray, SizeConst = 501)] public byte[] Content; } /// /// 订单信息 /// [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] public struct QuoteField { public double AskQty; public double AskPrice; public OpenCloseType AskOpenClose; public HedgeFlagType AskHedgeFlag; public double BidQty; public double BidPrice; public OpenCloseType BidOpenClose; public HedgeFlagType BidHedgeFlag; public OrderStatus Status; public ExecType ExecType; /// /// 错误代码 /// public int ErrorID; /// /// 合约代码 /// [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 31)] public string InstrumentID; /// /// 合约代码 /// [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 9)] public string ExchangeID; /// /// 询价编号 /// [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] public string QuoteReqID; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] public string ID; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] public string AskID; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] public string BidID; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] public string AskOrderID; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] public string BidOrderID; /// /// 消息正文 /// [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)] public byte[] Text; } /// /// 订单信息 /// [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] public struct OrderField { /// /// 订单类型 /// public OrderType Type; /// /// 合约代码 /// public OrderSide Side; public double Qty; public double Price; public OpenCloseType OpenClose; public HedgeFlagType HedgeFlag; public double StopPx; public TimeInForce TimeInForce; public OrderStatus Status; public ExecType ExecType; public double LeavesQty; public double CumQty; public double AvgPx; /// /// 错误代码 /// public int ErrorID; public int Time; /// /// 合约代码 /// [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 31)] public string InstrumentID; /// /// 合约代码 /// [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 9)] public string ExchangeID; /// /// 消息正文 /// [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)] public byte[] Text; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] public string ID; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] public string OrderID; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)] public string ClientID; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)] public string Account; } [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] public struct OrderIDType { [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] public string ID; } /// /// 订单信息 /// [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] public struct TradeField { /// /// 合约代码 /// public OrderSide Side; public double Qty; public double Price; public OpenCloseType OpenClose; public HedgeFlagType HedgeFlag; public double Commission; public int Time; /// /// 合约代码 /// [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 31)] public string InstrumentID; /// /// 合约代码 /// [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 9)] public string ExchangeID; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] public string ID; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] public string TradeID; } [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] public struct PositionField { /// /// 合约代码 /// public PositionSide Side; public double Position; public double TdPosition; public double YdPosition; public HedgeFlagType HedgeFlag; /// /// 合约代码 /// [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] public string Symbol; /// /// 合约代码 /// [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 31)] public string InstrumentID; /// /// 交易所代码 /// [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 9)] public string ExchangeID; } /// /// 投资者 /// [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] public struct InvestorField { public IdCardType IdentifiedCardType; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)] public string InvestorID; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 11)] public string BrokerID; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 51)] public string IdentifiedCardNo; [MarshalAs(UnmanagedType.ByValArray, SizeConst = 81)] public byte[] InvestorName; } /// /// 合约信息 /// [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] public struct HistoricalDataRequestField { public int Date1; public int Date2; public int Time1; public int Time2; public DataObjetType DataType; public BarType BarType; public int BarSize; public int RequestId; public int CurrentDate; public int lRequest; /// /// 合约代码 /// [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] public string Symbol; /// /// 合约代码 /// [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 31)] public string InstrumentID; /// /// 交易所代码 /// [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 9)] public string ExchangeID; } public class DepthMarketDataNClass { public int TradingDay; public int ActionDay; public int UpdateTime; public int UpdateMillisec; /// /// 交易所代码 /// public ExchangeType Exchange; /// /// 合约代码 /// [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] public string Symbol; /// /// 合约代码 /// [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 31)] public string InstrumentID; /// /// 最新价 /// public double LastPrice; /// /// 数量 /// public double Volume; /// /// 成交金额 /// public double Turnover; /// /// 持仓量 /// public double OpenInterest; /// /// 当日均价 /// public double AveragePrice; /// /// 今开盘 /// public double OpenPrice; /// /// 最高价 /// public double HighestPrice; /// /// 最低价 /// public double LowestPrice; /// /// 今收盘 /// public double ClosePrice; /// /// 本次结算价 /// public double SettlementPrice; /// /// 涨停板价 /// public double UpperLimitPrice; /// /// 跌停板价 /// public double LowerLimitPrice; /// /// 昨收盘 /// public double PreClosePrice; /// /// 上次结算价 /// public double PreSettlementPrice; /// /// 昨持仓量 /// public double PreOpenInterest; ///买档个数 public DepthField[] Bids; public DepthField[] Asks; } }