gitee.com/haifengat/gotap_dipper@v0.0.4-0.20231212021028-041a6fa876e5/trade/datatype.go (about)

     1  package trade
     2  
     3  import (
     4  	"encoding/binary"
     5  	"fmt"
     6  	"math"
     7  	"strings"
     8  )
     9  import "C"
    10  
    11  // 长度为10的字符串
    12  type TAPISTR_10 [11]byte
    13  
    14  func (e TAPISTR_10) String() string {
    15  	return toGBK(e[:])
    16  }
    17  
    18  // 长度为20的字符串
    19  type TAPISTR_20 [21]byte
    20  
    21  func (e TAPISTR_20) String() string {
    22  	return toGBK(e[:])
    23  }
    24  
    25  // 长度为30的字符串
    26  type TAPISTR_30 [31]byte
    27  
    28  func (e TAPISTR_30) String() string {
    29  	return toGBK(e[:])
    30  }
    31  
    32  // 长度为40的字符串
    33  type TAPISTR_40 [41]byte
    34  
    35  func (e TAPISTR_40) String() string {
    36  	return toGBK(e[:])
    37  }
    38  
    39  // 长度为50的字符串
    40  type TAPISTR_50 [51]byte
    41  
    42  func (e TAPISTR_50) String() string {
    43  	return toGBK(e[:])
    44  }
    45  
    46  // 长度为70的字符串
    47  type TAPISTR_70 [71]byte
    48  
    49  func (e TAPISTR_70) String() string {
    50  	return toGBK(e[:])
    51  }
    52  
    53  // 长度为100的字符串
    54  type TAPISTR_100 [101]byte
    55  
    56  func (e TAPISTR_100) String() string {
    57  	return toGBK(e[:])
    58  }
    59  
    60  type TapAPIContactContentType [201]byte
    61  
    62  func (e TapAPIContactContentType) String() string {
    63  	return toGBK(e[:])
    64  }
    65  
    66  // 长度为300的字符串
    67  type TAPISTR_300 [301]byte
    68  
    69  func (e TAPISTR_300) String() string {
    70  	return toGBK(e[:])
    71  }
    72  
    73  // 长度为500的字符串
    74  type TAPISTR_500 [501]byte
    75  
    76  func (e TAPISTR_500) String() string {
    77  	return toGBK(e[:])
    78  }
    79  
    80  // 长度为2000的字符串
    81  type TAPISTR_2000 [2001]byte
    82  
    83  func (e TAPISTR_2000) String() string {
    84  	return toGBK(e[:])
    85  }
    86  
    87  // Authorization Code
    88  type TAPIAUTHCODE [513]byte
    89  
    90  func (e TAPIAUTHCODE) String() string {
    91  	return toGBK(e[:])
    92  }
    93  
    94  // MAC地址类型.
    95  type TAPIMACTYPE [13]byte
    96  
    97  func (e TAPIMACTYPE) String() string {
    98  	return toGBK(e[:])
    99  }
   100  
   101  // 二次认证序号
   102  type TAPISecondSerialIDType [5]byte
   103  
   104  func (e TAPISecondSerialIDType) String() string {
   105  	return toGBK(e[:])
   106  }
   107  
   108  // 单字符定义,可用于定义其他类型
   109  type TAPICHAR byte
   110  
   111  // 子账户类型
   112  type TAPIClientIDType [16]byte
   113  
   114  func (e TAPIClientIDType) String() string {
   115  	return toGBK(e[:])
   116  }
   117  
   118  // 下单人地址
   119  type TAPIClientLocationIDType [6]byte
   120  
   121  func (e TAPIClientLocationIDType) String() string {
   122  	return toGBK(e[:])
   123  }
   124  
   125  // int 32
   126  type TAPIINT32 [4]byte // int32
   127  
   128  func (u TAPIINT32) String() string {
   129  	return fmt.Sprintf("%d", u.Int32())
   130  }
   131  func (u TAPIINT32) Int32() int32 {
   132  	return int32(binary.LittleEndian.Uint32(u[:]))
   133  }
   134  func FromCint32(value C.int) TAPIINT32 {
   135  	var u TAPIINT32
   136  	binary.LittleEndian.PutUint32(u[:], uint32(value))
   137  	return u
   138  }
   139  func FromInt32(value int32) TAPIINT32 {
   140  	var u TAPIINT32
   141  	binary.LittleEndian.PutUint32(u[:], uint32(value))
   142  	return u
   143  }
   144  
   145  // unsigned 32
   146  type TAPIUINT32 [4]byte // uint32
   147  
   148  func (u TAPIUINT32) String() string {
   149  	return fmt.Sprintf("%d", u.Uint32())
   150  }
   151  func (u TAPIUINT32) Uint32() uint32 {
   152  	return binary.LittleEndian.Uint32(u[:])
   153  }
   154  
   155  // 会生成新的 u, 原来的 u 仍是 \x00
   156  //
   157  //	func (u TAPIUINT32) FromUint32(value uint32) {
   158  //		bs := make([]byte, 4)
   159  //		binary.LittleEndian.PutUint32(bs, value)
   160  //		copy(u[:], bs)
   161  //	}
   162  func FromCuint32(value C.uint) TAPIUINT32 {
   163  	var u TAPIUINT32
   164  	binary.LittleEndian.PutUint32(u[:], uint32(value))
   165  	return u
   166  }
   167  func FromUint32(value uint32) TAPIUINT32 {
   168  	var u TAPIUINT32
   169  	binary.LittleEndian.PutUint32(u[:], value)
   170  	return u
   171  }
   172  
   173  // int 64
   174  type TAPIINT64 int64
   175  
   176  // unsigned 64
   177  type long uint64
   178  
   179  // unsigned 16
   180  type TAPIUINT16 uint16
   181  
   182  // unsigned 8
   183  type TAPIUINT8 uint8
   184  
   185  // real 64
   186  type TAPIREAL64 [8]byte //float64
   187  
   188  func (f TAPIREAL64) String() string {
   189  	return fmt.Sprintf("%f", f.Float64())
   190  }
   191  func (f TAPIREAL64) Float64() float64 {
   192  	bits := binary.LittleEndian.Uint64(f[:])
   193  	return math.Float64frombits(bits)
   194  }
   195  func FromFloat64(value float64) TAPIREAL64 {
   196  	var bs TAPIREAL64
   197  	binary.LittleEndian.PutUint64(bs[:], math.Float64bits(value))
   198  	return bs
   199  }
   200  
   201  // 是否标示
   202  type TAPIYNFLAG TAPICHAR
   203  
   204  const APIYNFLAG_YES TAPIYNFLAG = 'Y' // 是
   205  const APIYNFLAG_NO TAPIYNFLAG = 'N'  // 否
   206  var mpTAPIYNFLAG = map[TAPIYNFLAG]string{APIYNFLAG_YES: "Y", APIYNFLAG_NO: "N"}
   207  
   208  func (e TAPIYNFLAG) String() string {
   209  	if s, ok := mpTAPIYNFLAG[e]; ok {
   210  		return s[strings.LastIndex(s, "_")+1:]
   211  	}
   212  	return string(e) + "值未定义"
   213  }
   214  
   215  // 密码类型
   216  type TAPIPasswordType TAPICHAR
   217  
   218  const APIPASSWORD_TRADE TAPIPasswordType = 'T' // 交易密码
   219  const APIPASSWORD_PHONE TAPIPasswordType = 'P' // 电话密码
   220  
   221  // 时间戳类型(格式 yyyy-MM-dd hh:nn:ss.xxx)
   222  type TAPIDTSTAMP [24]byte
   223  
   224  func (e TAPIDTSTAMP) String() string {
   225  	return toGBK(e[:])
   226  }
   227  
   228  // 日期和时间类型(格式 yyyy-MM-dd hh:nn:ss)
   229  type TAPIDATETIME [20]byte
   230  
   231  func (e TAPIDATETIME) String() string {
   232  	return toGBK(e[:])
   233  }
   234  
   235  // 日期类型(格式 yyyy-MM-dd)
   236  type TAPIDATE [11]byte
   237  
   238  func (e TAPIDATE) String() string {
   239  	return toGBK(e[:])
   240  }
   241  
   242  // 时间类型(格式 hh:nn:ss)
   243  type TAPITIME [9]byte
   244  
   245  func (e TAPITIME) String() string {
   246  	return toGBK(e[:])
   247  }
   248  
   249  // 日志级别
   250  type TAPILOGLEVEL TAPICHAR
   251  
   252  const APILOGLEVEL_NONE TAPILOGLEVEL = 'N'    // Normal
   253  const APILOGLEVEL_ERROR TAPILOGLEVEL = 'E'   // Error
   254  const APILOGLEVEL_WARNING TAPILOGLEVEL = 'W' // Warning
   255  const APILOGLEVEL_DEBUG TAPILOGLEVEL = 'D'   // Debug
   256  
   257  // =============================================================================
   258  type TAPIOptionType TAPICHAR
   259  
   260  // 品种类型
   261  type TAPICommodityType TAPICHAR
   262  
   263  const TAPI_COMMODITY_TYPE_NONE TAPICommodityType = 'N'             // 无
   264  const TAPI_COMMODITY_TYPE_FUTURES TAPICommodityType = 'F'          // 期货
   265  const TAPI_COMMODITY_TYPE_OPTION TAPICommodityType = 'O'           // 期权
   266  const TAPI_COMMODITY_TYPE_SPREAD_MONTH TAPICommodityType = 'S'     // 跨期套利
   267  const TAPI_COMMODITY_TYPE_SPREAD_COMMODITY TAPICommodityType = 'M' // 跨品种套利
   268  const TAPI_COMMODITY_TYPE_BUL TAPICommodityType = 'U'              // 看涨垂直套利
   269  const TAPI_COMMODITY_TYPE_BER TAPICommodityType = 'E'              // 看跌垂直套利
   270  const TAPI_COMMODITY_TYPE_STD TAPICommodityType = 'D'              // 跨式套利
   271  const TAPI_COMMODITY_TYPE_STG TAPICommodityType = 'G'              // 宽跨式套利
   272  const TAPI_COMMODITY_TYPE_PRT TAPICommodityType = 'R'              // 备兑组合
   273  const TAPI_COMMODITY_TYPE_DIRECTFOREX TAPICommodityType = 'X'      // 外汇——直接汇率
   274  const TAPI_COMMODITY_TYPE_INDIRECTFOREX TAPICommodityType = 'I'    // 外汇——间接汇率
   275  const TAPI_COMMODITY_TYPE_CROSSFOREX TAPICommodityType = 'C'       // 外汇——交叉汇率
   276  const TAPI_COMMODITY_TYPE_INDEX TAPICommodityType = 'Z'            // 指数
   277  const TAPI_COMMODITY_TYPE_STOCK TAPICommodityType = 'T'            // 股票/基金
   278  const TAPI_COMMODITY_TYPE_TAS TAPICommodityType = 'B'              // TAS
   279  const TAPI_COMMODITY_TYPE_DERIVATIVE TAPICommodityType = '0'       // 港股--窝轮
   280  const TAPI_COMMODITY_TYPE_BULLBEAR TAPICommodityType = '1'         // 港股--牛熊证
   281  const TAPI_COMMODITY_TYPE_INLINE TAPICommodityType = '2'           // 港股--界内证
   282  const TAPI_COMMODITY_TYPE_DBET TAPICommodityType = '3'             // 港股--债券
   283  const TAPI_COMMODITY_TYPE_FUND TAPICommodityType = '4'             // 港股--基金
   284  
   285  // 看涨看跌标示
   286  type TAPICallOrPutFlagType TAPICHAR
   287  
   288  const TAPI_CALLPUT_FLAG_CALL TAPICallOrPutFlagType = 'C' // 买权
   289  const TAPI_CALLPUT_FLAG_PUT TAPICallOrPutFlagType = 'P'  // 卖权
   290  const TAPI_CALLPUT_FLAG_NONE TAPICallOrPutFlagType = 'N' // 无
   291  
   292  // 账号类型
   293  type TAPIAccountType TAPICHAR
   294  
   295  const TAPI_ACCOUNT_TYPE_PERSON TAPIAccountType = 'P'       // 个人客户
   296  const TAPI_ACCOUNT_TYPE_ORGANIZATION TAPIAccountType = 'O' // 机构客户
   297  const TAPI_ACCOUNT_TYPE_AGENT TAPIAccountType = 'A'        // 代理人
   298  const TAPI_ACCOUNT_TYPE_HOUSE TAPIAccountType = 'H'        // Internal
   299  const TAPI_ACCOUNT_TYPE_STOCK TAPIAccountType = 'S'        // 股票账户
   300  
   301  // 权限编码类型
   302  type TAPIRightIDType TAPIINT32
   303  
   304  func (u TAPIRightIDType) String() string {
   305  	return fmt.Sprintf("%d", u.Int32())
   306  }
   307  func (u TAPIRightIDType) Int32() int32 {
   308  	return int32(binary.LittleEndian.Uint32(u[:]))
   309  }
   310  
   311  // 登录用户身份类型
   312  type TAPIUserTypeType TAPIINT32
   313  
   314  func (u TAPIUserTypeType) String() string {
   315  	return fmt.Sprintf("%d", u.Int32())
   316  }
   317  func (u TAPIUserTypeType) Int32() int32 {
   318  	return int32(binary.LittleEndian.Uint32(u[:]))
   319  }
   320  
   321  // 账号状态
   322  type TAPIAccountState TAPICHAR
   323  
   324  const TAPI_ACCOUNT_STATE_NORMAL TAPIAccountState = 'N' // 正常
   325  const TAPI_ACCOUNT_STATE_CANCEL TAPIAccountState = 'C' // 销户
   326  const TAPI_ACCOUNT_STATE_SLEEP TAPIAccountState = 'S'  // 休眠
   327  
   328  // 客户交易状态类型
   329  type TAPIAccountRightType TAPICHAR
   330  
   331  const TAPI_ACCOUNT_TRADING_RIGHT_NORMAL TAPIAccountRightType = '0'  // 正常交易
   332  const TAPI_ACCOUNT_TRADING_RIGHT_NOTRADE TAPIAccountRightType = '1' // 禁止交易
   333  const TAPI_ACCOUNT_TRADING_RIGHT_CLOSE TAPIAccountRightType = '2'   // 只可平仓
   334  
   335  // 委托类型
   336  type TAPIOrderTypeType TAPICHAR
   337  
   338  const TAPI_ORDER_TYPE_MARKET TAPIOrderTypeType = '1'       // 市价
   339  const TAPI_ORDER_TYPE_LIMIT TAPIOrderTypeType = '2'        // 限价
   340  const TAPI_ORDER_TYPE_STOP_MARKET TAPIOrderTypeType = '3'  // 市价止损
   341  const TAPI_ORDER_TYPE_STOP_LIMIT TAPIOrderTypeType = '4'   // 限价止损
   342  const TAPI_ORDER_TYPE_OPT_EXEC TAPIOrderTypeType = '5'     // 期权行权
   343  const TAPI_ORDER_TYPE_OPT_ABANDON TAPIOrderTypeType = '6'  // 期权弃权
   344  const TAPI_ORDER_TYPE_REQQUOT TAPIOrderTypeType = '7'      // 询价
   345  const TAPI_ORDER_TYPE_RSPQUOT TAPIOrderTypeType = '8'      // 应价
   346  const TAPI_ORDER_TYPE_ICEBERG TAPIOrderTypeType = '9'      // 冰山单
   347  const TAPI_ORDER_TYPE_GHOST TAPIOrderTypeType = 'A'        // 影子单
   348  const TAPI_ORDER_TYPE_HKEX_AUCTION TAPIOrderTypeType = 'B' // 港交所竞价单
   349  const TAPI_ORDER_TYPE_SWAP TAPIOrderTypeType = 'C'         // 互换
   350  const TAPI_ORDER_TYPE_LOCK TAPIOrderTypeType = 'D'         // 证券锁定
   351  const TAPI_ORDER_TYPE_UNLOCK TAPIOrderTypeType = 'E'       // 证券解锁
   352  const TAPI_ORDER_TYPE_ENHANCE TAPIOrderTypeType = 'F'      // 增强限价单
   353  const TAPI_ORDER_TYPE_SPECIAL TAPIOrderTypeType = 'G'      // 特别限价单
   354  const TAPI_ORDER_TYPE_LIMITAUCTION TAPIOrderTypeType = 'H' // 竞价限价单
   355  
   356  // 委托来源
   357  type TAPIOrderSourceType TAPICHAR
   358  
   359  const TAPI_ORDER_SOURCE_SELF_ETRADER TAPIOrderSourceType = '1'  // 自助电子单
   360  const TAPI_ORDER_SOURCE_PROXY_ETRADER TAPIOrderSourceType = '2' // 代理电子单
   361  const TAPI_ORDER_SOURCE_JTRADER TAPIOrderSourceType = '3'       // 外部电子单(外部电子系统下单,本系统录入)
   362  const TAPI_ORDER_SOURCE_MANUAL TAPIOrderSourceType = '4'        // 人工录入单(外部其他方式下单,本系统录入)
   363  const TAPI_ORDER_SOURCE_CARRY TAPIOrderSourceType = '5'         // carry单
   364  const TAPI_ORDER_SOURCE_PROGRAM TAPIOrderSourceType = '6'       // 程式化报单
   365  const TAPI_ORDER_SOURCE_DELIVERY TAPIOrderSourceType = '7'      // 交割行权
   366  const TAPI_ORDER_SOURCE_ABANDON TAPIOrderSourceType = '8'       // 期权放弃
   367  const TAPI_ORDER_SOURCE_CHANNEL TAPIOrderSourceType = '9'       // 通道费
   368  const TAPI_ORDER_SOURCE_TEMPORARY TAPIOrderSourceType = 'J'     // 临时成交
   369  const TAPI_ORDER_SOURCE_PROGRAMMANUAL TAPIOrderSourceType = 'K' // 程序化手工单
   370  
   371  // 委托有效类型
   372  type TAPITimeInForceType TAPICHAR
   373  
   374  const TAPI_ORDER_TIMEINFORCE_GFD TAPITimeInForceType = '0' // 当日有效
   375  const TAPI_ORDER_TIMEINFORCE_GTC TAPITimeInForceType = '1' // 取消前有效
   376  const TAPI_ORDER_TIMEINFORCE_GTD TAPITimeInForceType = '2' // 指定日期前有效
   377  const TAPI_ORDER_TIMEINFORCE_FAK TAPITimeInForceType = '3' // FAK或IOC
   378  const TAPI_ORDER_TIMEINFORCE_FOK TAPITimeInForceType = '4' // FOK
   379  
   380  // 买卖类型
   381  type TAPISideType TAPICHAR
   382  
   383  const TAPI_SIDE_NONE TAPISideType = 'N' // 无
   384  const TAPI_SIDE_BUY TAPISideType = 'B'  // 买入
   385  const TAPI_SIDE_SELL TAPISideType = 'S' // 卖出
   386  
   387  // 开平类型
   388  type TAPIPositionEffectType TAPICHAR
   389  
   390  const TAPI_PositionEffect_NONE TAPIPositionEffectType = 'N'        // 不分开平
   391  const TAPI_PositionEffect_OPEN TAPIPositionEffectType = 'O'        // 开仓
   392  const TAPI_PositionEffect_COVER TAPIPositionEffectType = 'C'       // 平仓
   393  const TAPI_PositionEffect_COVER_TODAY TAPIPositionEffectType = 'T' // 平当日
   394  
   395  // 投机保值类型
   396  type TAPIHedgeFlagType TAPICHAR
   397  
   398  const TAPI_HEDGEFLAG_NONE TAPIHedgeFlagType = 'N' // 无
   399  const TAPI_HEDGEFLAG_T TAPIHedgeFlagType = 'T'    // 投机
   400  const TAPI_HEDGEFLAG_B TAPIHedgeFlagType = 'B'    // 保值
   401  const TAPI_HEDGEFLAG_R TAPIHedgeFlagType = 'R'    // 备兑
   402  
   403  // !未结束的委托类型:01234578D
   404  type TAPIOrderStateType TAPICHAR
   405  
   406  const TAPI_ORDER_STATE_SUBMIT TAPIOrderStateType = '0'           // 终端提交
   407  const TAPI_ORDER_STATE_ACCEPT TAPIOrderStateType = '1'           // 已受理
   408  const TAPI_ORDER_STATE_TRIGGERING TAPIOrderStateType = '2'       // 策略待触发
   409  const TAPI_ORDER_STATE_EXCTRIGGERING TAPIOrderStateType = '3'    // 交易所待触发
   410  const TAPI_ORDER_STATE_QUEUED TAPIOrderStateType = '4'           // 已排队
   411  const TAPI_ORDER_STATE_PARTFINISHED TAPIOrderStateType = '5'     // 部分成交
   412  const TAPI_ORDER_STATE_FINISHED TAPIOrderStateType = '6'         // 完全成交
   413  const TAPI_ORDER_STATE_CANCELING TAPIOrderStateType = '7'        // 待撤消(排队临时状态)
   414  const TAPI_ORDER_STATE_MODIFYING TAPIOrderStateType = '8'        // 待修改(排队临时状态)
   415  const TAPI_ORDER_STATE_CANCELED TAPIOrderStateType = '9'         // 完全撤单
   416  const TAPI_ORDER_STATE_LEFTDELETED TAPIOrderStateType = 'A'      // 已撤余单
   417  const TAPI_ORDER_STATE_FAIL TAPIOrderStateType = 'B'             // 指令失败
   418  const TAPI_ORDER_STATE_DELETED TAPIOrderStateType = 'C'          // 策略删除
   419  const TAPI_ORDER_STATE_SUPPENDED TAPIOrderStateType = 'D'        // 已挂起
   420  const TAPI_ORDER_STATE_DELETEDFOREXPIRE TAPIOrderStateType = 'E' // 到期删除
   421  const TAPI_ORDER_STATE_EFFECT TAPIOrderStateType = 'F'           // 已生效——询价成功
   422  const TAPI_ORDER_STATE_APPLY TAPIOrderStateType = 'G'            // 已申请——行权、弃权、套利等申请成功
   423  
   424  // 计算方式
   425  type TAPICalculateModeType TAPICHAR
   426  
   427  const TAPI_CALCULATE_MODE_PERCENTAGE TAPICalculateModeType = '1'    // 比例
   428  const TAPI_CALCULATE_MODE_QUOTA TAPICalculateModeType = '2'         // 定额
   429  const TAPI_CALCULATE_MODE_CHAPERCENTAGE TAPICalculateModeType = '3' // 差值比例
   430  const TAPI_CALCULATE_MODE_CHAQUOTA TAPICalculateModeType = '4'      // 差值定额
   431  const TAPI_CALCULATE_MODE_DISCOUNT TAPICalculateModeType = '5'      // 折扣
   432  
   433  // 成交来源
   434  type TAPIMatchSourceType TAPICHAR
   435  
   436  const TAPI_MATCH_SOURCE_ALL TAPIMatchSourceType = '0'           // 全部
   437  const TAPI_MATCH_SOURCE_SELF_ETRADER TAPIMatchSourceType = '1'  // 自助电子单
   438  const TAPI_MATCH_SOURCE_PROXY_ETRADER TAPIMatchSourceType = '2' // 代理电子单
   439  const TAPI_MATCH_SOURCE_JTRADER TAPIMatchSourceType = '3'       // 外部电子单
   440  const TAPI_MATCH_SOURCE_MANUAL TAPIMatchSourceType = '4'        // 人工录入单
   441  const TAPI_MATCH_SOURCE_CARRY TAPIMatchSourceType = '5'         // carry单
   442  const TAPI_MATCH_SOURCE_PROGRAM TAPIMatchSourceType = '6'       // 程式化单
   443  const TAPI_MATCH_SOURCE_DELIVERY TAPIMatchSourceType = '7'      // 交割行权
   444  const TAPI_MATCH_SOURCE_ABANDON TAPIMatchSourceType = '8'       // 期权放弃
   445  const TAPI_MATCH_SOURCE_CHANNEL TAPIMatchSourceType = '9'       // 通道费
   446  const TAPI_MATCH_SOURCE_TEMPORARY TAPIMatchSourceType = 'J'     // 临时成交
   447  const TAPI_MATCH_SOURCE_PROGRAMMANUAL TAPIMatchSourceType = 'K' // 程序化手工单
   448  
   449  // 开平方式
   450  type TAPIOpenCloseModeType TAPICHAR
   451  
   452  const TAPI_CLOSE_MODE_NONE TAPIOpenCloseModeType = 'N'       // 不区分开平
   453  const TAPI_CLOSE_MODE_UNFINISHED TAPIOpenCloseModeType = 'U' // 平仓未了结
   454  const TAPI_CLOSE_MODE_OPENCOVER TAPIOpenCloseModeType = 'C'  // 区分开仓和平仓
   455  const TAPI_CLOSE_MODE_CLOSETODAY TAPIOpenCloseModeType = 'T' // 区分开仓、平仓和平今
   456  
   457  // 币种组资金是否共享
   458  type TAPIFutureAlgType TAPICHAR
   459  
   460  const TAPI_FUTURES_ALG_ZHUBI TAPIFutureAlgType = 'Y'   // 独立
   461  const TAPI_FUTURES_ALG_DINGSHI TAPIFutureAlgType = 'N' // 不独立
   462  
   463  // 是否是基币
   464  type TAPIOptionAlgType TAPICHAR
   465  
   466  const TAPI_OPTION_ALG_FUTURES TAPIOptionAlgType = '1' // 是基币
   467  const TAPI_OPTION_ALG_OPTION TAPIOptionAlgType = '2'  // 不是基币
   468  
   469  // 本外币标识
   470  type TAPIBankAccountLWFlagType TAPICHAR
   471  
   472  const TAPI_LWFlag_L TAPIBankAccountLWFlagType = 'L' // 境内人民币账户
   473  const TAPI_LWFlag_W TAPIBankAccountLWFlagType = 'W' // 客户境内外币账户
   474  
   475  // 资金调整类型
   476  type TAPICashAdjustTypeType TAPICHAR
   477  
   478  const TAPI_CASHINOUT_MODE_FEEADJUST TAPICashAdjustTypeType = '0'       // 手续费调整
   479  const TAPI_CASHINOUT_MODE_YKADJUST TAPICashAdjustTypeType = '1'        // 盈亏调整
   480  const TAPI_CASHINOUT_MODE_PLEDGE TAPICashAdjustTypeType = '2'          // 质押资金
   481  const TAPI_CASHINOUT_MODE_INTERESTREVENUE TAPICashAdjustTypeType = '3' // 利息收入
   482  const TAPI_CASHINOUT_MODE_COLLECTIONCOST TAPICashAdjustTypeType = '4'  // 代扣费用
   483  const TAPI_CASHINOUT_MODE_OTHER TAPICashAdjustTypeType = '5'           // 其它
   484  const TAPI_CASHINOUT_MODE_COMPANY TAPICashAdjustTypeType = '6'         // 公司间拨账
   485  
   486  // 期货保证金方式
   487  type TAPIMarginCalculateModeType TAPICHAR
   488  
   489  const TAPI_DEPOSITCALCULATE_MODE_FEN TAPIMarginCalculateModeType = '1' // 分笔
   490  const TAPI_DEPOSITCALCULATE_MODE_SUO TAPIMarginCalculateModeType = '2' // 锁仓
   491  
   492  // 期权保证金公式,据此判断该品种期权采用何种内置计算公式计算保证金
   493  type TAPIOptionMarginCalculateModeType TAPICHAR
   494  
   495  // 组合方向,品种两腿组合合约的买卖方向和第几腿相同
   496  type TAPICmbDirectType TAPICHAR
   497  
   498  const TAPI_CMB_DIRECT_FIRST TAPICmbDirectType = '1'  // 和第一腿一致
   499  const TAPI_CMB_DIRECT_SECOND TAPICmbDirectType = '2' // 和第二腿一致
   500  
   501  // 交割行权方式,期货和期权了结的方式
   502  type TAPIDeliveryModeType TAPICHAR
   503  
   504  const TAPI_DELIVERY_MODE_GOODS TAPIDeliveryModeType = 'G'   // 实物交割
   505  const TAPI_DELIVERY_MODE_CASH TAPIDeliveryModeType = 'C'    // 现金交割
   506  const TAPI_DELIVERY_MODE_EXECUTE TAPIDeliveryModeType = 'E' // 期权行权
   507  const TAPI_DELIVERY_MODE_ABANDON TAPIDeliveryModeType = 'A' // 期权放弃
   508  const TAPI_DELIVERY_MODE_HKF TAPIDeliveryModeType = 'H'     // 港交所行权
   509  
   510  // 合约类型
   511  type TAPIContractTypeType TAPICHAR
   512  
   513  const TAPI_CONTRACT_TYPE_TRADEQUOTE TAPIContractTypeType = '1' // 交易行情合约
   514  const TAPI_CONTRACT_TYPE_QUOTE TAPIContractTypeType = '2'      // 行情合约
   515  
   516  // 策略单类型
   517  type TAPITacticsTypeType TAPICHAR
   518  
   519  const TAPI_TACTICS_TYPE_NONE TAPITacticsTypeType = 'N'      // 无
   520  const TAPI_TACTICS_TYPE_READY TAPITacticsTypeType = 'M'     // 预备单(埋单)
   521  const TAPI_TACTICS_TYPE_ATUO TAPITacticsTypeType = 'A'      // 自动单
   522  const TAPI_TACTICS_TYPE_CONDITION TAPITacticsTypeType = 'C' // 条件单
   523  
   524  // 订单操作类型
   525  type TAPIORDERACT TAPICHAR
   526  
   527  const APIORDER_INSERT TAPIORDERACT = '1'        // 报单
   528  const APIORDER_MODIFY TAPIORDERACT = '2'        // 改单
   529  const APIORDER_DELETE TAPIORDERACT = '3'        // 撤单
   530  const APIORDER_SUSPEND TAPIORDERACT = '4'       // 挂起
   531  const APIORDER_ACTIVATE TAPIORDERACT = '5'      // 激活
   532  const APIORDER_SYSTEM_DELETE TAPIORDERACT = '6' // 删除
   533  
   534  // 触发条件类型
   535  type TAPITriggerConditionType TAPICHAR
   536  
   537  const TAPI_TRIGGER_CONDITION_NONE TAPITriggerConditionType = 'N'   // 无
   538  const TAPI_TRIGGER_CONDITION_GREAT TAPITriggerConditionType = 'G'  // 大于等于
   539  const TAPI_TRIGGER_CONDITION_LITTLE TAPITriggerConditionType = 'L' // 小于等于
   540  
   541  // 触发价格类型
   542  type TAPITriggerPriceTypeType TAPICHAR
   543  
   544  const TAPI_TRIGGER_PRICE_NONE TAPITriggerPriceTypeType = 'N' // 无
   545  const TAPI_TRIGGER_PRICE_BUY TAPITriggerPriceTypeType = 'B'  // 买价
   546  const TAPI_TRIGGER_PRICE_SELL TAPITriggerPriceTypeType = 'S' // 卖价
   547  const TAPI_TRIGGER_PRICE_LAST TAPITriggerPriceTypeType = 'L' // 最新价
   548  
   549  // 交易状态
   550  type TAPITradingStateType TAPICHAR
   551  
   552  const TAPI_TRADE_STATE_BID TAPITradingStateType = '1'          // 集合竞价
   553  const TAPI_TRADE_STATE_MATCH TAPITradingStateType = '2'        // 集合竞价撮合
   554  const TAPI_TRADE_STATE_CONTINUOUS TAPITradingStateType = '3'   // 连续交易
   555  const TAPI_TRADE_STATE_PAUSED TAPITradingStateType = '4'       // 交易暂停
   556  const TAPI_TRADE_STATE_CLOSE TAPITradingStateType = '5'        // 闭市
   557  const TAPI_TRADE_STATE_DEALLAST TAPITradingStateType = '6'     // 闭市处理时间
   558  const TAPI_TRADE_STATE_GWDISCONNECT TAPITradingStateType = '0' // 网关未连
   559  const TAPI_TRADE_STATE_UNKNOWN TAPITradingStateType = 'N'      // 未知状态
   560  const TAPI_TRADE_STATE_INITIALIZE TAPITradingStateType = 'I'   // 正初始化
   561  const TAPI_TRADE_STATE_READY TAPITradingStateType = 'R'        // 准备就绪
   562  
   563  // 忽略后台推送通知标记
   564  type TAPINoticeIgnoreFlagType TAPIUINT32
   565  
   566  // 委托查询类型
   567  type TAPIOrderQryTypeType TAPICHAR
   568  
   569  const TAPI_ORDER_QRY_TYPE_ALL TAPIOrderQryTypeType = 'A'     // 返回所有委托
   570  const TAPI_ORDER_QRY_TYPE_UNENDED TAPIOrderQryTypeType = 'U' // 只返回未结束的委托
   571  
   572  // 二次认证登录类型
   573  type TAPILoginTypeType TAPICHAR
   574  
   575  const TAPI_LOGINTYPE_NORMAL TAPILoginTypeType = 'N'    // 正常登录(信任该设备)
   576  const TAPI_LOGINTYPE_TEMPORARY TAPILoginTypeType = 'T' // 临时登录
   577  
   578  // 挂起委托请求结构
   579  type TapAPIOrderDeactivateReq TapAPIOrderCancelReq
   580  
   581  // 激活委托请求结构
   582  type TapAPIOrderActivateReq TapAPIOrderCancelReq
   583  
   584  // 删除委托请求结构
   585  type TapAPIOrderDeleteReq TapAPIOrderCancelReq
   586  
   587  // 消息接收者类型
   588  type TAPIMsgReceiverType TAPICHAR
   589  
   590  const TAPI_MSG_RECEIVER_ACCOUNTNO TAPIMsgReceiverType = '1'      // 单资金账号客户
   591  const TAPI_MSG_RECEIVER_ACCOUNTGROUPNO TAPIMsgReceiverType = '2' // 资金账号分组
   592  const TAPI_MSG_RECEIVER_ATTRIBUTE TAPIMsgReceiverType = '3'      // 符合属性的资金账号
   593  const TAPI_MSG_RECEIVER_USERNO TAPIMsgReceiverType = '4'         // 指定登录用户
   594  
   595  // 消息级别
   596  type TAPIMsgLevelType TAPICHAR
   597  
   598  const TAPI_MSG_LEVEL_NORMAL TAPIMsgLevelType = '1'    // 普通
   599  const TAPI_MSG_LEVEL_IMPORTANT TAPIMsgLevelType = '2' // 重要
   600  const TAPI_MSG_LEVEL_IMERGENCY TAPIMsgLevelType = '3' // 紧急
   601  
   602  // 消息类型
   603  type TAPIMsgTypeType TAPICHAR
   604  
   605  const TAPI_Msg_TYPE_MANAGER TAPIMsgTypeType = '1'     // 管理
   606  const TAPI_Msg_TYPE_RISKCONTROL TAPIMsgTypeType = '2' // 风险
   607  
   608  // 账单类型
   609  type TAPIBillTypeType TAPICHAR
   610  
   611  const TAPI_BILL_DATE TAPIBillTypeType = 'D'  // 日账单
   612  const TAPI_BILL_MONTH TAPIBillTypeType = 'M' // 月账单
   613  
   614  // 帐单文件类型
   615  type TAPIBillFileTypeType TAPICHAR
   616  
   617  const TAPI_BILL_FILE_TXT TAPIBillFileTypeType = 'T' // txt格式文件
   618  const TAPI_BILL_FILE_PDF TAPIBillFileTypeType = 'F' // pdf格式文件
   619  
   620  // 历史委托流程查询应答数据结构
   621  type TapAPIHisOrderProcessQryRsp TapAPIHisOrderQryRsp
   622  
   623  // 结算类型
   624  type TAPISettleFlagType TAPICHAR
   625  
   626  const SettleFlag_AutoSettle TAPISettleFlagType = '0' // 自动结算
   627  
   628  // 客户录单成交删除应答结构
   629  type TapAPIFillLocalRemoveRsp TapAPIFillLocalRemoveReq
   630  
   631  // 客户现货锁定量查询应答结构
   632  type TapAPISpotLockQryRsp TapAPISpotLockQryReq
   633  
   634  // 客户现货锁定量变更通知
   635  type TapAPISpotLockDataNotice TapAPISpotLockDataRsp
   636  
   637  // =============================================================================
   638  type TapAPIAbnormalFalgType TAPICHAR
   639  
   640  // =============================================================================
   641  type TapAPICombineStrategyType [10]byte
   642  
   643  // =============================================================================
   644  type TapAPISpecialOrderTypeType TAPICHAR
   645  
   646  // 申购方式
   647  type TapAPIApplyTypeType TAPICHAR
   648  
   649  // 申购状态
   650  type TapAPIApplyStatusType TAPICHAR
   651  
   652  // 客户IPO增加应答
   653  type TapAPIAccountIPOAddRsp TapAPIAccountIPOQryRsp
   654  
   655  // 客户IPO撤销应答
   656  type TapAPIAccountIPOCancelRsp TapAPIAccountIPOQryRsp
   657  
   658  // 客户IPO增加通知
   659  type TapAPIAccountIPOAddNotice TapAPIAccountIPOQryRsp
   660  
   661  // 客户IPO撤销通知
   662  type TapAPIAccountIPOCancelNotice TapAPIAccountIPOQryRsp
   663  
   664  // 证件类型
   665  type TapAPICertificateTypeType string