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