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;
}
}