gitee.com/haifengat/gotap_dipper@v0.0.4-0.20231212021028-041a6fa876e5/v9.3.8.7_20230117/iTapAPICommDef.h (about)

     1  #ifndef ITAP_API_COMM_DEF_H
     2  #define ITAP_API_COMM_DEF_H
     3  
     4  #pragma pack(push, 1)
     5  
     6  //=============================================================================
     7  /**
     8   *	\addtogroup G_DATATYPE_CHARS	基本字符串类型定义
     9   *	@{
    10   */
    11  //=============================================================================
    12  namespace ITapTrade {
    13  //! 长度为10的字符串
    14  typedef char TAPISTR_10[11];
    15  //! 长度为20的字符串
    16  typedef char TAPISTR_20[21];
    17  //! 长度为30的字符串
    18  typedef char TAPISTR_30[31];
    19  //! 长度为40的字符串
    20  typedef char TAPISTR_40[41];
    21  //! 长度为50的字符串
    22  typedef char TAPISTR_50[51];
    23  //! 长度为70的字符串
    24  typedef char TAPISTR_70[71];
    25  //! 长度为100的字符串
    26  typedef char TAPISTR_100[101];
    27  //! 长度为300的字符串
    28  typedef char TAPISTR_300[301];
    29  //! 长度为500的字符串
    30  typedef char TAPISTR_500[501];
    31  //! 长度为2000的字符串
    32  typedef char TAPISTR_2000[2001];
    33  //! Authorization Code
    34  typedef char TAPIAUTHCODE[513];
    35  //! MAC地址类型.
    36  typedef char TAPIMACTYPE[13];
    37  //! 二次认证序号
    38  typedef char TAPISecondSerialIDType[5];
    39  //! 单字符定义,可用于定义其他类型
    40  typedef char TAPICHAR;
    41  // 子账户类型
    42  typedef char TAPIClientIDType[16];
    43  // 下单人地址
    44  typedef char TAPIClientLocationIDType[6];
    45  /** @}*/
    46  
    47  //=============================================================================
    48  /**
    49   *	\addtogroup G_DATATYPE_NUMBER	基本数值类型定义
    50   *	@{
    51   */
    52  //=============================================================================
    53  
    54  //! int 32
    55  typedef int TAPIINT32;
    56  //! unsigned 32
    57  typedef unsigned int TAPIUINT32;
    58  //! int 64
    59  typedef long long TAPIINT64;
    60  //! unsigned 64
    61  typedef unsigned long long TAPIUINT64;
    62  //! unsigned 16
    63  typedef unsigned short TAPIUINT16;
    64  //! unsigned 8
    65  typedef unsigned char TAPIUINT8;
    66  //! real 64
    67  typedef double TAPIREAL64;
    68  
    69  /** @}*/
    70  
    71  //=============================================================================
    72  /**
    73   *	\addtogroup G_DATATYPE_YNFLAG	是否标示
    74   *	@{
    75   */
    76  //=============================================================================
    77  //! 是否标示
    78  typedef TAPICHAR TAPIYNFLAG;
    79  //! 是
    80  const TAPIYNFLAG APIYNFLAG_YES = 'Y';
    81  //! 否
    82  const TAPIYNFLAG APIYNFLAG_NO = 'N';
    83  
    84  /** @}*/
    85  
    86  //=============================================================================
    87  /**
    88   *	\addtogroup G_DATATYPE_PASSWORDTYEP	密码类型标识
    89   *	@{
    90   */
    91  //=============================================================================
    92  //! 密码类型
    93  typedef TAPICHAR TAPIPasswordType;
    94  //! 交易密码
    95  const TAPIPasswordType APIPASSWORD_TRADE = 'T';
    96  //! 电话密码
    97  const TAPIPasswordType APIPASSWORD_PHONE = 'P';
    98  
    99  /** @}*/
   100  
   101  //=============================================================================
   102  /**
   103   *	\addtogroup G_DATATYPE_DATETIME	日期时间类型定义
   104   *	@{
   105   */
   106  //=============================================================================
   107  
   108  //! 时间戳类型(格式 yyyy-MM-dd hh:nn:ss.xxx)
   109  typedef char TAPIDTSTAMP[24];
   110  //! 日期和时间类型(格式 yyyy-MM-dd hh:nn:ss)
   111  typedef char TAPIDATETIME[20];
   112  //! 日期类型(格式 yyyy-MM-dd)
   113  typedef char TAPIDATE[11];
   114  //! 时间类型(格式 hh:nn:ss)
   115  typedef char TAPITIME[9];
   116  /** @}*/
   117  
   118  //=============================================================================
   119  /**
   120   *	\addtogroup G_DATATYPE_LOG_LEVEL	日志级别
   121   *	@{
   122   */
   123  //=============================================================================
   124  //! 日志级别
   125  typedef TAPICHAR TAPILOGLEVEL;
   126  //! Normal
   127  const TAPILOGLEVEL APILOGLEVEL_NONE = 'N';
   128  //! Error
   129  const TAPILOGLEVEL APILOGLEVEL_ERROR = 'E';
   130  //! Warning
   131  const TAPILOGLEVEL APILOGLEVEL_WARNING = 'W';
   132  //! Debug
   133  const TAPILOGLEVEL APILOGLEVEL_DEBUG = 'D';
   134  /** @}*/
   135  
   136  //=============================================================================
   137  /**
   138   *	\addtogroup G_DATATYPE_OPTION_TYPE	期权类型
   139   *	@{
   140   */
   141  //=============================================================================
   142  
   143  typedef TAPICHAR TAPIOptionType;
   144  //! 美式期权 + 权利金方式
   145  const TAPIOptionType TAPI_OPTION_TYPE_AMERICAN = 'A';
   146  //! 美式期权 + 期货方式
   147  const TAPIOptionType TAPI_OPTION_TYPE_AMERICAN2 = 'B';
   148  //! 欧式期权 + 权利金方式
   149  const TAPIOptionType TAPI_OPTION_TYPE_EUROPEAN = 'E';
   150  //! 欧式期权 + 期货方式
   151  const TAPIOptionType TAPI_OPTION_TYPE_EUROPEAN2 = 'F';
   152  /** @}*/
   153  
   154  //=============================================================================
   155  /**
   156   *	\addtogroup G_DATATYPE_COMMODITY_TYPE	品种类型
   157   *	@{
   158   */
   159  //=============================================================================
   160  
   161  //! 品种类型
   162  typedef TAPICHAR TAPICommodityType;
   163  //! 无
   164  const TAPICommodityType TAPI_COMMODITY_TYPE_NONE = 'N';
   165  //! 期货
   166  const TAPICommodityType TAPI_COMMODITY_TYPE_FUTURES = 'F';
   167  //! 期权
   168  const TAPICommodityType TAPI_COMMODITY_TYPE_OPTION = 'O';
   169  //! 跨期套利
   170  const TAPICommodityType TAPI_COMMODITY_TYPE_SPREAD_MONTH = 'S';
   171  //! 跨品种套利
   172  const TAPICommodityType TAPI_COMMODITY_TYPE_SPREAD_COMMODITY = 'M';
   173  //! 看涨垂直套利
   174  const TAPICommodityType TAPI_COMMODITY_TYPE_BUL = 'U';
   175  //! 看跌垂直套利
   176  const TAPICommodityType TAPI_COMMODITY_TYPE_BER = 'E';
   177  //! 跨式套利
   178  const TAPICommodityType TAPI_COMMODITY_TYPE_STD = 'D';
   179  //! 宽跨式套利
   180  const TAPICommodityType TAPI_COMMODITY_TYPE_STG = 'G';
   181  //! 备兑组合
   182  const TAPICommodityType TAPI_COMMODITY_TYPE_PRT = 'R';
   183  //! 外汇——直接汇率
   184  const TAPICommodityType TAPI_COMMODITY_TYPE_DIRECTFOREX = 'X';
   185  //! 外汇——间接汇率
   186  const TAPICommodityType TAPI_COMMODITY_TYPE_INDIRECTFOREX = 'I';
   187  //! 外汇——交叉汇率
   188  const TAPICommodityType TAPI_COMMODITY_TYPE_CROSSFOREX = 'C';
   189  //! 指数
   190  const TAPICommodityType TAPI_COMMODITY_TYPE_INDEX = 'Z';
   191  //! 股票/基金
   192  const TAPICommodityType TAPI_COMMODITY_TYPE_STOCK = 'T';
   193  //! TAS
   194  const TAPICommodityType TAPI_COMMODITY_TYPE_TAS = 'B';
   195  //! 港股--窝轮
   196  const TAPICommodityType TAPI_COMMODITY_TYPE_DERIVATIVE = '0';
   197  //! 港股--牛熊证
   198  const TAPICommodityType TAPI_COMMODITY_TYPE_BULLBEAR = '1';
   199  //! 港股--界内证
   200  const TAPICommodityType TAPI_COMMODITY_TYPE_INLINE = '2';
   201  //! 港股--债券
   202  const TAPICommodityType TAPI_COMMODITY_TYPE_DBET = '3';
   203  //! 港股--基金
   204  const TAPICommodityType TAPI_COMMODITY_TYPE_FUND = '4';
   205  //! 多腿套利
   206  const TAPICommodityType TAPI_COMMODITY_TYPE_MULTI_LEG = '5';
   207  
   208  /** @}*/
   209  
   210  //=============================================================================
   211  /**
   212   *	\addtogroup G_DATATYPE_CALL_OR_PUT	看涨看跌标示
   213   *	@{
   214   */
   215  //=============================================================================
   216  
   217  //! 看涨看跌标示
   218  typedef TAPICHAR TAPICallOrPutFlagType;
   219  //! 买权
   220  const TAPICallOrPutFlagType TAPI_CALLPUT_FLAG_CALL = 'C';
   221  //! 卖权
   222  const TAPICallOrPutFlagType TAPI_CALLPUT_FLAG_PUT = 'P';
   223  //! 无
   224  const TAPICallOrPutFlagType TAPI_CALLPUT_FLAG_NONE = 'N';
   225  
   226  /** @}*/
   227  
   228  //! Application信息
   229  struct TapAPIApplicationInfo {
   230      TAPIAUTHCODE AuthCode;            ///< 授权码
   231      TAPISTR_300 KeyOperationLogPath;  ///< 关键操作日志路径 APIRun日志
   232      TAPILOGLEVEL LogLevel;            ///< 日志级别
   233      TAPISTR_30 APPID;                 ///< 看穿式监管使用,北斗星系统不使用该字段
   234      TAPIINT32 ReConnectCount;         ///< 重连次数
   235      TAPIINT32 ReConnectSeconds;       ///< 重连时间间隔(秒)
   236  };
   237  /*
   238   * 关于自动重连的说明:
   239   * 1、开启重连条件:重连次数和重连时间间隔均大于0。
   240   * 2、重连次数:若只设置一个地址,该设置无实际含义。如果设置了多个地址,则一个地址重连次数到达设置次数时,自动切换下一个地址继续重连。
   241   * 3、重连时间间隔:尝试重连失败后,间隔设置秒数发起下一次重连。
   242   * 4、断开后立刻重连一次。重连次数是无限的,直到连接成功为止。
   243   * 5、可以在重连进行时主动调用Disconnect终止重连,否则重连时请勿进行其它操作。
   244   * 5、重连成功后自动进行登录和初始化等操作。
   245   */
   246  
   247  //! 品种编码结构
   248  struct TapAPICommodity {
   249      TAPISTR_10 ExchangeNo;            ///< 交易所编码
   250      TAPICommodityType CommodityType;  ///< 品种类型
   251      TAPISTR_10 CommodityNo;           ///< 品种编号
   252  };
   253  
   254  //! 合约编码结构
   255  struct TapAPIContract {
   256      TapAPICommodity Commodity;             ///< 品种
   257      TAPISTR_10 ContractNo1;                ///< 合约代码1
   258      TAPISTR_10 StrikePrice1;               ///< 执行价1
   259      TAPICallOrPutFlagType CallOrPutFlag1;  ///< 看涨看跌标示1
   260      TAPISTR_10 ContractNo2;                ///< 合约代码2
   261      TAPISTR_10 StrikePrice2;               ///< 执行价2
   262      TAPICallOrPutFlagType CallOrPutFlag2;  ///< 看涨看跌标示2
   263  };
   264  
   265  //! 交易所信息
   266  struct TapAPIExchangeInfo {
   267      TAPISTR_10 ExchangeNo;    ///< 交易所编码
   268      TAPISTR_20 ExchangeName;  ///< 交易所名称
   269  };
   270  
   271  //! 修改密码请求
   272  struct TapAPIChangePasswordReq {
   273      TAPISTR_20 AccountNo;
   274      TAPIPasswordType PasswordType;  ///< 密码类型
   275      TAPISTR_20 OldPassword;         ///< 旧密码
   276      TAPISTR_20 NewPassword;         ///< 新密码
   277  };
   278  //!	认证密码请求
   279  struct TapAPIAuthPasswordReq {
   280      TAPISTR_20 AccountNo;           ///< 客户账号
   281      TAPIPasswordType PasswordType;  ///< 密码类型
   282      TAPISTR_20 Password;            ///< 账户密码
   283  };
   284  
   285  #pragma pack(pop)
   286  }  // namespace ITapTrade
   287  #endif