order.go 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376
  1. package models
  2. import (
  3. "mtp2_if/db"
  4. "time"
  5. )
  6. // Tradeposition 持仓头寸表 - 导历史
  7. type Tradeposition struct {
  8. Accountid int64 `json:"accountid" xorm:"'ACCOUNTID'" binding:"required"` // 账号Id
  9. Goodsid int32 `json:"goodsid" xorm:"'GOODSID'" binding:"required"` // 商品Id
  10. Holdertype int32 `json:"holdertype" xorm:"'HOLDERTYPE'" binding:"required"` // 持仓类别 - 1:单边持仓 2:双边持仓
  11. Buypositionqty int64 `json:"buypositionqty" xorm:"'BUYPOSITIONQTY'"` // 买期初持仓数量
  12. Buyholderamount float64 `json:"buyholderamount" xorm:"'BUYHOLDERAMOUNT'"` // 买期初持仓总金额[商品币种]
  13. Buycurpositionqty int64 `json:"buycurpositionqty" xorm:"'BUYCURPOSITIONQTY'"` // 买当前持仓总数量
  14. Buycurholderamount float64 `json:"buycurholderamount" xorm:"'BUYCURHOLDERAMOUNT'"` // 买当前持仓总金额[商品币种]
  15. Buyfrozenqty int64 `json:"buyfrozenqty" xorm:"'BUYFROZENQTY'"` // 买持仓冻结数量
  16. Buyotherfrozenqty int64 `json:"buyotherfrozenqty" xorm:"'BUYOTHERFROZENQTY'"` // 买持仓其他冻结数量(交割冻结)
  17. Buyopenreqqty int64 `json:"buyopenreqqty" xorm:"'BUYOPENREQQTY'"` // 买开仓申请数量(用于比较最大持仓数量)
  18. Buyopentotalqty int64 `json:"buyopentotalqty" xorm:"'BUYOPENTOTALQTY'"` // 买开仓总数量
  19. Buyclosetotalqty int64 `json:"buyclosetotalqty" xorm:"'BUYCLOSETOTALQTY'"` // 买平仓总数量
  20. Sellpositionqty int64 `json:"sellpositionqty" xorm:"'SELLPOSITIONQTY'"` // 卖期初持仓数量
  21. Sellholderamount float64 `json:"sellholderamount" xorm:"'SELLHOLDERAMOUNT'"` // 卖期初持仓总金额[商品币种]
  22. Sellcurpositionqty int64 `json:"sellcurpositionqty" xorm:"'SELLCURPOSITIONQTY'"` // 卖当前持仓数量
  23. Sellcurholderamount float64 `json:"sellcurholderamount" xorm:"'SELLCURHOLDERAMOUNT'"` // 卖当前持仓总金额[商品币种]
  24. Sellfrozenqty int64 `json:"sellfrozenqty" xorm:"'SELLFROZENQTY'"` // 卖持仓冻结
  25. Sellotherfrozenqty int64 `json:"sellotherfrozenqty" xorm:"'SELLOTHERFROZENQTY'"` // 卖持仓其他冻结(交割冻结)
  26. Sellopenreqqty int64 `json:"sellopenreqqty" xorm:"'SELLOPENREQQTY'"` // 卖开仓申请数量(用于比较最大持仓数量)
  27. Sellopentotalqty int64 `json:"sellopentotalqty" xorm:"'SELLOPENTOTALQTY'"` // 卖开仓总数量
  28. Sellclosetotalqty int64 `json:"sellclosetotalqty" xorm:"'SELLCLOSETOTALQTY'"` // 卖平仓总数量
  29. Usedmargin float64 `json:"usedmargin" xorm:"'USEDMARGIN'"` // 占用保证金[商品币种]
  30. Tradeproperty int32 `json:"tradeproperty" xorm:"'TRADEPROPERTY'"` // 交易属性
  31. Buytnqty int64 `json:"buytnqty" xorm:"'BUYTNQTY'"` // 买T+N冻结总量
  32. Buytnusedqty int64 `json:"buytnusedqty" xorm:"'BUYTNUSEDQTY'"` // 买T+N使用量(可以使用T+N的冻结数量)
  33. Selltnqty int64 `json:"selltnqty" xorm:"'SELLTNQTY'"` // 卖T+N冻结总量
  34. Selltnusedqty int64 `json:"selltnusedqty" xorm:"'SELLTNUSEDQTY'"` // 卖T+N使用量(可以使用T+N的冻结数量)
  35. Buycurtdposition int64 `json:"buycurtdposition" xorm:"'BUYCURTDPOSITION'"` // 买期末今日头寸
  36. Buyfretdposition int64 `json:"buyfretdposition" xorm:"'BUYFRETDPOSITION'"` // 买冻结今日头寸
  37. Sellcurtdposition int64 `json:"sellcurtdposition" xorm:"'SELLCURTDPOSITION'"` // 卖期末今日头寸
  38. Sellfretdposition int64 `json:"sellfretdposition" xorm:"'SELLFRETDPOSITION'"` // 卖冻结今日头寸
  39. }
  40. // TableName is TRADEPOSITION
  41. func (Tradeposition) TableName() string {
  42. return "TRADEPOSITION"
  43. }
  44. // Tradeorderdetail 交易委托单表 - 导历史
  45. type Tradeorderdetail struct {
  46. Orderid int64 `json:"orderid" xorm:"'ORDERID'" binding:"required"` // 委托单号(100+Unix秒时间戳(10位)+2位(MarketServiceID)+xxxx)
  47. Tradedate string `json:"tradedate" xorm:"'TRADEDATE'" binding:"required"` // 交易日(yyyyMMdd)
  48. Buildtype int32 `json:"buildtype" xorm:"'BUILDTYPE'" binding:"required"` // 委托单据类型 - 1:建仓 2:平仓 3:先平后建
  49. Preorderid int64 `json:"preorderid" xorm:"'PREORDERID'"` // 关联预埋单号(止盈止损单时填写)
  50. Cancelorderid int64 `json:"cancelorderid" xorm:"'CANCELORDERID'"` // 撤单单号(撤单时填写)
  51. Relatedid int64 `json:"relatedid" xorm:"'RELATEDID'"` // 关联单号(交割单)
  52. Marketid int32 `json:"marketid" xorm:"'MARKETID'" binding:"required"` // 市场ID
  53. Goodsid int32 `json:"goodsid" xorm:"'GOODSID'" binding:"required"` // 商品ID
  54. Accountid int64 `json:"accountid" xorm:"'ACCOUNTID'" binding:"required"` // 账户ID[报价币种]
  55. Memberuserid int64 `json:"memberuserid" xorm:"'MEMBERUSERID'" binding:"required"` // 所属会员UserID
  56. Buyorsell int32 `json:"buyorsell" xorm:"'BUYORSELL'" binding:"required"` // 买卖 - 0:买 1:卖
  57. Pricemode int32 `json:"pricemode" xorm:"'PRICEMODE'" binding:"required"` // 取价方式 - 1:市价 2: 限价
  58. Orderprice float64 `json:"orderprice" xorm:"'ORDERPRICE'"` // 委托价格
  59. Marketmaxsub float64 `json:"marketmaxsub" xorm:"'MARKETMAXSUB'"` // 市价最大偏移范围
  60. Orderqty int64 `json:"orderqty" xorm:"'ORDERQTY'" binding:"required"` // 委托数量
  61. Tradeqty int64 `json:"tradeqty" xorm:"'TRADEQTY'"` // 成交数量
  62. Cancelqty int64 `json:"cancelqty" xorm:"'CANCELQTY'"` // 撤单数量
  63. Openqty int64 `json:"openqty" xorm:"'OPENQTY'"` // 开仓数量(先建后平操作,需要记录)
  64. Closeqty int64 `json:"closeqty" xorm:"'CLOSEQTY'"` // 平仓数量(先建后平操作 需要记录)
  65. Opentradeqty int64 `json:"opentradeqty" xorm:"'OPENTRADEQTY'"` // 开仓成交数量(先建后平操作,需要记录)
  66. Closetradeqty int64 `json:"closetradeqty" xorm:"'CLOSETRADEQTY'"` // 平仓成交数量(先建后平操作,需要记录)
  67. Freezemargin float64 `json:"freezemargin" xorm:"'FREEZEMARGIN'"` // 冻结保证金(冻结交易金额)
  68. Unfreezemargin float64 `json:"unfreezemargin" xorm:"'UNFREEZEMARGIN'"` // 解冻保证金
  69. Freezecharge float64 `json:"freezecharge" xorm:"'FREEZECHARGE'"` // 冻结手续费
  70. Unfreezecharge float64 `json:"unfreezecharge" xorm:"'UNFREEZECHARGE'"` // 解冻手续费
  71. Openfreezecharge float64 `json:"openfreezecharge" xorm:"'OPENFREEZECHARGE'"` // 开仓冻结手续费(先建后平操作,需要记录)
  72. Closefreezecharge float64 `json:"closefreezecharge" xorm:"'CLOSEFREEZECHARGE'"` // 平仓冻结手续费(先建后平操作,需要记录)
  73. Openunfreezecharge float64 `json:"openunfreezecharge" xorm:"'OPENUNFREEZECHARGE'"` // 开仓解冻手续费(先建后平操作,需要记录)
  74. Closeunfreezecharge float64 `json:"closeunfreezecharge" xorm:"'CLOSEUNFREEZECHARGE'"` // 平仓解冻手续费(先建后平操作,需要记录)
  75. Validtype int32 `json:"validtype" xorm:"'VALIDTYPE'" binding:"required"` // 有效类型 - 1当日有效 2本周有效 3指定日期有效 4一直有效 5指定时间有效
  76. Validtime time.Time `json:"validtime" xorm:"'VALIDTIME'"` // 有效期限
  77. Volumetype int32 `json:"volumetype" xorm:"'VOLUMETYPE'"` // 当时间有效类型为 “立即执行否则取消 IOC” 时,需要此项 - 0:任意量 1:最小量(暂时不支持) 2:全部量
  78. Operatetype int32 `json:"operatetype" xorm:"'OPERATETYPE'" binding:"required"` // 操作类型 - 1:正常下单 2:斩仓 3:转单 4:结算撤单 5:系统卖出(适用于先平后建的卖出) 6:行情源报价 7:(结算)到期强平 8:(结算)协议转让 9:系统对冲单 10:(结算)到期无效 11:交割协议转让 12:交割协议平仓 13:交割成交(所有权) 14:管理端强行平仓 15:管理端协议转让
  79. Ordertime time.Time `json:"ordertime" xorm:"'ORDERTIME'" binding:"required"` // 委托时间
  80. Ordersrc int32 `json:"ordersrc" xorm:"'ORDERSRC'"` // 委托来源 - 1:客户端 2:管理端 3:风控服务 4:交割服务 5:交易服务 6:交易日结 7:商品强平 8:管理端商品退市强平 9:交易接口 10:交割服务商被动(受托竞价) 11:预埋触发
  81. Orderstatus int32 `json:"orderstatus" xorm:"'ORDERSTATUS'"` // 委托状态 - 1: 委托请求 2:待冻结 3:委托成功 4: 委托失败 5:配对成功 6: 已撤销 7:部分成交 8:已成交 9:部成部撤 10:成交失败 11:已拒绝 12:经过摘牌(先摘后挂专用-先摘后挂已摘过) 13:冻结成功(通道交易专用) 14:通道已撤 15:通道部成部撤 16:成交失败违约(荷兰式竞拍专用)
  82. Operatorid int64 `json:"operatorid" xorm:"'OPERATORID'"` // 登录账号(LoginID)
  83. Updatetime time.Time `json:"updatetime" xorm:"'UPDATETIME'"` // 更新时间
  84. Clientordertime time.Time `json:"clientordertime" xorm:"'CLIENTORDERTIME'"` // 客户端委托时间
  85. Clientticket string `json:"clientticket" xorm:"'CLIENTTICKET'"` // 客户端流水号
  86. UUID string `json:"uuid" xorm:"'UUID'"` // 发起端唯一id
  87. Clienttype int32 `json:"clienttype" xorm:"'CLIENTTYPE'"` // 客户端类型 - 0:保留为未填终端类型 1:PC管理端 2:PC交易端 3:手机客户端_安卓 4:网页客户端 5:微信客户端 6:手机客户端_苹果 7:网上开户客户端 8:无效终端编号 9:报价终端(中江)
  88. Retcode int32 `json:"retcode" xorm:"'RETCODE'"` // 错误代码
  89. Tradeproperty int32 `json:"tradeproperty" xorm:"'TRADEPROPERTY'"` // 交易属性
  90. Listingselecttype int32 `json:"listingselecttype" xorm:"'LISTINGSELECTTYPE'"` // 挂牌点选类型 - 1:挂牌 2:摘牌 3:先摘后挂
  91. Delistingtype int32 `json:"delistingtype" xorm:"'DELISTINGTYPE'"` // 摘牌类型 - 1:价格最优 2:点选成交
  92. Marginalgorithm int32 `json:"marginalgorithm" xorm:"'MARGINALGORITHM'"` // 保证金收取方式 1:比率 2:固定
  93. Marginvalue float64 `json:"marginvalue" xorm:"'MARGINVALUE'"` // 即市保证金设置值
  94. Openfeealgorithm int32 `json:"openfeealgorithm" xorm:"'OPENFEEALGORITHM'"` // 建仓手续费收取方式 1:比率 2:固定
  95. Openmemberchargevalue float64 `json:"openmemberchargevalue" xorm:"'OPENMEMBERCHARGEVALUE'"` // 建仓会员手续费设置值
  96. Openexchagechargevalue float64 `json:"openexchagechargevalue" xorm:"'OPENEXCHAGECHARGEVALUE'"` // 建仓交易所手续费设置值
  97. Closefeealgorithm int32 `json:"closefeealgorithm" xorm:"'CLOSEFEEALGORITHM'"` // 平仓手续费收取方式 1:比率 2:固定
  98. Closememberchargevalue float64 `json:"closememberchargevalue" xorm:"'CLOSEMEMBERCHARGEVALUE'"` // 平仓会员手续费设置值
  99. Closeexchagechargevalue float64 `json:"closeexchagechargevalue" xorm:"'CLOSEEXCHAGECHARGEVALUE'"` // 平仓交易所手续费设置值
  100. Optiontype int32 `json:"optiontype" xorm:"'OPTIONTYPE'"` // 期权类型 - 1:认购(看涨) 2:认沽(看跌)
  101. Premium float64 `json:"premium" xorm:"'PREMIUM'"` // 权利金
  102. Ispreexercise int32 `json:"ispreexercise" xorm:"'ISPREEXERCISE'"` // 是否预申报- 0:否 1:是
  103. Preexerciseprice float64 `json:"preexerciseprice" xorm:"'PREEXERCISEPRICE'"` // 预申报价格
  104. Isconfirmexercise int32 `json:"isconfirmexercise" xorm:"'ISCONFIRMEXERCISE'"` // 是否确认行权- 0:否 1:是
  105. Quoteid int64 `json:"quoteid" xorm:"'QUOTEID'"` // 报价单ID
  106. Gcaccountid int64 `json:"gcaccountid" xorm:"'GCACCOUNTID'"` // 账户ID[合约币种]
  107. Sessionid int64 `json:"sessionid" xorm:"'SESSIONID'"` // 会话ID
  108. }
  109. // TableName is TRADE_ORDERDETAIL
  110. func (Tradeorderdetail) TableName() string {
  111. return "TRADE_ORDERDETAIL"
  112. }
  113. // Histradeorderdetail 历史交易委托单表
  114. type Histradeorderdetail struct {
  115. Orderid string `json:"orderid" xorm:"'ORDERID'" binding:"required"` // 委托单号(100+Unix秒时间戳(10位)+2位(MarketServiceID)+xxxx)
  116. Tradedate string `json:"tradedate" xorm:"'TRADEDATE'" binding:"required"` // 交易日(yyyyMMdd)
  117. Buildtype int32 `json:"buildtype" xorm:"'BUILDTYPE'" binding:"required"` // 委托单据类型 - 1:建仓 2:平仓 3:先平后建
  118. Preorderid string `json:"preorderid" xorm:"'PREORDERID'"` // 关联预埋单号(止盈止损单时填写)
  119. Cancelorderid string `json:"cancelorderid" xorm:"'CANCELORDERID'"` // 撤单单号(撤单时填写)
  120. Relatedid string `json:"relatedid" xorm:"'RELATEDID'"` // 关联单号(交割单)
  121. Marketid int32 `json:"marketid" xorm:"'MARKETID'" binding:"required"` // 市场ID
  122. Goodsid int32 `json:"goodsid" xorm:"'GOODSID'" binding:"required"` // 商品ID
  123. Accountid int64 `json:"accountid" xorm:"'ACCOUNTID'" binding:"required"` // 账户ID[报价币种]
  124. Memberuserid int64 `json:"memberuserid" xorm:"'MEMBERUSERID'" binding:"required"` // 所属会员UserID
  125. Buyorsell int32 `json:"buyorsell" xorm:"'BUYORSELL'" binding:"required"` // 买卖 - 0:买 1:卖
  126. Pricemode int32 `json:"pricemode" xorm:"'PRICEMODE'" binding:"required"` // 取价方式 - 1:市价 2: 限价
  127. Orderprice float64 `json:"orderprice" xorm:"'ORDERPRICE'"` // 委托价格
  128. Marketmaxsub float64 `json:"marketmaxsub" xorm:"'MARKETMAXSUB'"` // 市价最大偏移范围
  129. Orderqty float64 `json:"orderqty" xorm:"'ORDERQTY'" binding:"required"` // 委托数量
  130. Tradeqty float64 `json:"tradeqty" xorm:"'TRADEQTY'"` // 成交数量
  131. Cancelqty float64 `json:"cancelqty" xorm:"'CANCELQTY'"` // 撤单数量
  132. Openqty float64 `json:"openqty" xorm:"'OPENQTY'"` // 开仓数量(先建后平操作,需要记录)
  133. Closeqty float64 `json:"closeqty" xorm:"'CLOSEQTY'"` // 平仓数量(先建后平操作 需要记录)
  134. Opentradeqty float64 `json:"opentradeqty" xorm:"'OPENTRADEQTY'"` // 开仓成交数量(先建后平操作,需要记录)
  135. Closetradeqty float64 `json:"closetradeqty" xorm:"'CLOSETRADEQTY'"` // 平仓成交数量(先建后平操作,需要记录)
  136. Freezemargin float64 `json:"freezemargin" xorm:"'FREEZEMARGIN'"` // 冻结保证金(冻结交易金额)
  137. Unfreezemargin float64 `json:"unfreezemargin" xorm:"'UNFREEZEMARGIN'"` // 解冻保证金
  138. Freezecharge float64 `json:"freezecharge" xorm:"'FREEZECHARGE'"` // 冻结手续费
  139. Unfreezecharge float64 `json:"unfreezecharge" xorm:"'UNFREEZECHARGE'"` // 解冻手续费
  140. Openfreezecharge float64 `json:"openfreezecharge" xorm:"'OPENFREEZECHARGE'"` // 开仓冻结手续费(先建后平操作,需要记录)
  141. Closefreezecharge float64 `json:"closefreezecharge" xorm:"'CLOSEFREEZECHARGE'"` // 平仓冻结手续费(先建后平操作,需要记录)
  142. Openunfreezecharge float64 `json:"openunfreezecharge" xorm:"'OPENUNFREEZECHARGE'"` // 开仓解冻手续费(先建后平操作,需要记录)
  143. Closeunfreezecharge float64 `json:"closeunfreezecharge" xorm:"'CLOSEUNFREEZECHARGE'"` // 平仓解冻手续费(先建后平操作,需要记录)
  144. Validtype int32 `json:"validtype" xorm:"'VALIDTYPE'" binding:"required"` // 有效类型 - 1当日有效 2本周有效 3指定日期有效 4一直有效 5指定时间有效
  145. Validtime time.Time `json:"validtime" xorm:"'VALIDTIME'"` // 有效期限
  146. Volumetype int32 `json:"volumetype" xorm:"'VOLUMETYPE'"` // 当时间有效类型为 “立即执行否则取消 IOC” 时,需要此项 - 0:任意量 1:最小量(暂时不支持) 2:全部量
  147. Operatetype int32 `json:"operatetype" xorm:"'OPERATETYPE'" binding:"required"` // 操作类型 - 1:正常下单 2:斩仓 3:转单 4:结算撤单 5:系统卖出(适用于先平后建的卖出) 6:行情源报价 7:(结算)到期强平 8:(结算)协议转让 9:系统对冲单 10:(结算)到期无效 11:交割协议转让 12:交割协议平仓 13:交割成交(所有权) 14:管理端强行平仓 15:管理端协议转让
  148. Ordertime time.Time `json:"ordertime" xorm:"'ORDERTIME'" binding:"required"` // 委托时间
  149. Ordersrc int32 `json:"ordersrc" xorm:"'ORDERSRC'"` // 委托来源 - 1:客户端 2:管理端 3:风控服务 4:交割服务 5:交易服务 6:交易日结 7:商品强平 8:管理端商品退市强平 9:交易接口 10:交割服务商被动(受托竞价) 11:预埋触发
  150. Orderstatus int32 `json:"orderstatus" xorm:"'ORDERSTATUS'"` // 委托状态 - 1: 委托请求 2:待冻结 3:委托成功 4: 委托失败 5:配对成功 6: 已撤销 7:部分成交 8:已成交 9:部成部撤 10:成交失败 11:已拒绝 12:经过摘牌(先摘后挂专用-先摘后挂已摘过) 13:冻结成功(通道交易专用) 14:通道已撤 15:通道部成部撤 16:成交失败违约(荷兰式竞拍专用)
  151. Operatorid int64 `json:"operatorid" xorm:"'OPERATORID'"` // 登录账号(LoginID)
  152. Updatetime time.Time `json:"updatetime" xorm:"'UPDATETIME'"` // 更新时间
  153. Clientordertime time.Time `json:"clientordertime" xorm:"'CLIENTORDERTIME'"` // 客户端委托时间
  154. Clientticket string `json:"clientticket" xorm:"'CLIENTTICKET'"` // 客户端流水号
  155. UUID string `json:"uuid" xorm:"'UUID'"` // 发起端唯一id
  156. Clienttype int32 `json:"clienttype" xorm:"'CLIENTTYPE'"` // 客户端类型 - 0:保留为未填终端类型 1:PC管理端 2:PC交易端 3:手机客户端_安卓 4:网页客户端 5:微信客户端 6:手机客户端_苹果 7:网上开户客户端 8:无效终端编号 9:报价终端(中江)
  157. Retcode int32 `json:"retcode" xorm:"'RETCODE'"` // 错误代码
  158. Tradeproperty int32 `json:"tradeproperty" xorm:"'TRADEPROPERTY'"` // 交易属性
  159. Listingselecttype int32 `json:"listingselecttype" xorm:"'LISTINGSELECTTYPE'"` // 挂牌点选类型 - 1:挂牌 2:摘牌 3:先摘后挂
  160. Delistingtype int32 `json:"delistingtype" xorm:"'DELISTINGTYPE'"` // 摘牌类型 - 1:价格最优 2:点选成交
  161. Marginalgorithm int32 `json:"marginalgorithm" xorm:"'MARGINALGORITHM'"` // 保证金收取方式 1:比率 2:固定
  162. Marginvalue float64 `json:"marginvalue" xorm:"'MARGINVALUE'"` // 即市保证金设置值
  163. Openfeealgorithm int32 `json:"openfeealgorithm" xorm:"'OPENFEEALGORITHM'"` // 建仓手续费收取方式 1:比率 2:固定
  164. Openmemberchargevalue float64 `json:"openmemberchargevalue" xorm:"'OPENMEMBERCHARGEVALUE'"` // 建仓会员手续费设置值
  165. Openexchagechargevalue float64 `json:"openexchagechargevalue" xorm:"'OPENEXCHAGECHARGEVALUE'"` // 建仓交易所手续费设置值
  166. Closefeealgorithm int32 `json:"closefeealgorithm" xorm:"'CLOSEFEEALGORITHM'"` // 平仓手续费收取方式 1:比率 2:固定
  167. Closememberchargevalue float64 `json:"closememberchargevalue" xorm:"'CLOSEMEMBERCHARGEVALUE'"` // 平仓会员手续费设置值
  168. Closeexchagechargevalue float64 `json:"closeexchagechargevalue" xorm:"'CLOSEEXCHAGECHARGEVALUE'"` // 平仓交易所手续费设置值
  169. Optiontype int32 `json:"optiontype" xorm:"'OPTIONTYPE'"` // 期权类型 - 1:认购(看涨) 2:认沽(看跌)
  170. Premium float64 `json:"premium" xorm:"'PREMIUM'"` // 权利金
  171. Ispreexercise int32 `json:"ispreexercise" xorm:"'ISPREEXERCISE'"` // 是否预申报- 0:否 1:是
  172. Preexerciseprice float64 `json:"preexerciseprice" xorm:"'PREEXERCISEPRICE'"` // 预申报价格
  173. Isconfirmexercise int32 `json:"isconfirmexercise" xorm:"'ISCONFIRMEXERCISE'"` // 是否确认行权- 0:否 1:是
  174. Quoteid int64 `json:"quoteid" xorm:"'QUOTEID'"` // 报价单ID
  175. Gcaccountid int64 `json:"gcaccountid" xorm:"'GCACCOUNTID'"` // 账户ID[合约币种]
  176. Sessionid int64 `json:"sessionid" xorm:"'SESSIONID'"` // 会话ID
  177. Histradedate string `json:"histradedate" xorm:"'HISTRADEDATE'" binding:"required"` // 历史交易日
  178. Isvaliddata int32 `json:"isvaliddata" xorm:"'ISVALIDDATA'"` // 是否有效 - 0:无效 1:有效
  179. }
  180. // TableName is HIS_TRADE_ORDERDETAIL
  181. func (Histradeorderdetail) TableName() string {
  182. return "HIS_TRADE_ORDERDETAIL"
  183. }
  184. // Tradequotedetailnew 报价商报价表 - 导历史
  185. type Tradequotedetailnew struct {
  186. Quoterid int64 `json:"quoterid" xorm:"'QUOTERID'" binding:"required"` // 报价商ID
  187. Goodsid int32 `json:"goodsid" xorm:"'GOODSID'" binding:"required"` // 商品ID
  188. Buyorsell int32 `json:"buyorsell" xorm:"'BUYORSELL'" binding:"required"` // 买卖方向 - 0:买 1:卖
  189. Tradedate string `json:"tradedate" xorm:"'TRADEDATE'"` // 交易日(yyyyMMdd)
  190. Quotetime time.Time `json:"quotetime" xorm:"'QUOTETIME'"` // 报价时间
  191. Orderid int64 `json:"orderid" xorm:"'ORDERID'"` // 委托单ID(使用委托单规则生成)
  192. Quoteid int64 `json:"quoteid" xorm:"'QUOTEID'"` // 报价单ID(自动报价)
  193. Price float64 `json:"price" xorm:"'PRICE'"` // 价格
  194. Qty int64 `json:"qty" xorm:"'QTY'"` // 数量
  195. Curqty int64 `json:"curqty" xorm:"'CURQTY'"` // 当前量
  196. Move float64 `json:"move" xorm:"'MOVE'"` // 点差 整数 可零正负
  197. Limitprice float64 `json:"limitprice" xorm:"'LIMITPRICE'"` // 最高买价/最低卖价
  198. Quotesource int32 `json:"quotesource" xorm:"'QUOTESOURCE'"` // 报价来源 - 0:外部行情 1:管理端手动报价2:自动报价服务报价 3:交易接口
  199. Quoteeffectivesecond int64 `json:"quoteeffectivesecond" xorm:"'QUOTEEFFECTIVESECOND'"` // 行情有效时间(秒)
  200. Expireddate time.Time `json:"expireddate" xorm:"'EXPIREDDATE'"` // 有效时间(根据秒算出实际时间)
  201. Freezeamount float64 `json:"freezeamount" xorm:"'FREEZEAMOUNT'"` // 剩余冻结资金(所有权)
  202. Freezestatus int32 `json:"freezestatus" xorm:"'FREEZESTATUS'"` // 冻结状态(所有权) - 1:无冻结 2:已冻结 3:已解冻
  203. Pricetype int32 `json:"pricetype" xorm:"'PRICETYPE'"` // 报价类型 - 1:不报价 2:手工报价
  204. Qtytype int32 `json:"qtytype" xorm:"'QTYTYPE'"` // 报量类型 - 1:随机量 2:手工报量 3:延用量
  205. Isvalid int32 `json:"isvalid" xorm:"'ISVALID'"` // 是否撤销 - 0:未撤销 1:已撤销
  206. Marketid int32 `json:"marketid" xorm:"'MARKETID'"` // 市场ID
  207. Tradeproperty int32 `json:"tradeproperty" xorm:"'TRADEPROPERTY'"` // 交易属性 - 1:收益权(可做空) 2:所有权(不可做空) 3:期权 4:现货 5:参考行情
  208. Freezeprice float64 `json:"freezeprice" xorm:"'FREEZEPRICE'"` // 冻结资金价格
  209. Serialnumber string `json:"serialnumber" xorm:"'SERIALNUMBER'"` // 外部流水号
  210. Accountid int64 `json:"accountid" xorm:"'ACCOUNTID'"` // 报价资金账号
  211. }
  212. // TableName is TRADE_QUOTEDETAILNEW
  213. func (Tradequotedetailnew) TableName() string {
  214. return "TRADE_QUOTEDETAILNEW"
  215. }
  216. // Tradetradedetail 交易成交单表 - 导历史
  217. type Tradetradedetail struct {
  218. Tradeid string `json:"tradeid" xorm:"'TRADEID'" binding:"required"` // 成交单号(101+Unix秒时间戳(10位)+2位(MarketServiceID)+xxxx)
  219. Buyorsell int32 `json:"buyorsell" xorm:"'BUYORSELL'" binding:"required"` // 方向 - 0:买 1:卖
  220. Orderid string `json:"orderid" xorm:"'ORDERID'" binding:"required"` // 委托单号
  221. Tradedate string `json:"tradedate" xorm:"'TRADEDATE'" binding:"required"` // 交易日(yyyyMMdd)
  222. Accountid int64 `json:"accountid" xorm:"'ACCOUNTID'" binding:"required"` // 账户ID[报价币种]
  223. Goodsid int32 `json:"goodsid" xorm:"'GOODSID'" binding:"required"` // 商品ID
  224. Marketid int32 `json:"marketid" xorm:"'MARKETID'" binding:"required"` // 市场ID
  225. Memberuserid int64 `json:"memberuserid" xorm:"'MEMBERUSERID'" binding:"required"` // 会员id 个人投资者 需要填写
  226. Matchaccountid int64 `json:"matchaccountid" xorm:"'MATCHACCOUNTID'"` // 对手账号id
  227. Tradetime time.Time `json:"tradetime" xorm:"'TRADETIME'" binding:"required"` // 成交时间
  228. Tradeprice float64 `json:"tradeprice" xorm:"'TRADEPRICE'" binding:"required"` // 成交价格
  229. Tradeamount float64 `json:"tradeamount" xorm:"'TRADEAMOUNT'" binding:"required"` // 成交金额[账户币种,用于所有权]
  230. Closepl float64 `json:"closepl" xorm:"'CLOSEPL'"` // 平仓盈亏
  231. Intclosepl int64 `json:"intclosepl" xorm:"'INTCLOSEPL'"` // 整型盈亏(用于交易结算试算平衡-收益权)
  232. Opencharge float64 `json:"opencharge" xorm:"'OPENCHARGE'"` // 建仓手续费(支付总手续费=(交易所比率+会员比率)*成交金额)
  233. Closecharge float64 `json:"closecharge" xorm:"'CLOSECHARGE'"` // 平仓手续费(支付总手续费=(交易所比率+会员比率)*成交金额)
  234. Tradetype int32 `json:"tradetype" xorm:"'TRADETYPE'"` // 成交类别 - 1:正常委托成交 2:定向做市成交(接单) 3:交割协议平仓成交 4:交割减仓成交 5:到期强平成交 6:风控斩仓成交 7:协议平仓(管理端)成交 8:仓单转持仓成交 9: 交割协议转让成交 10:受托竞价成交(接单) 11:协议转让成交 12:系统强行平仓 13:期权违约平仓
  235. Buildtype int32 `json:"buildtype" xorm:"'BUILDTYPE'"` // 委托单据类型 1:建仓 2:平仓 3:先平后建
  236. Tradeqty float64 `json:"tradeqty" xorm:"'TRADEQTY'" binding:"required"` // 成交数量
  237. Openqty float64 `json:"openqty" xorm:"'OPENQTY'"` // 开仓数量(先建后平操作 需要记录)
  238. Closeqty float64 `json:"closeqty" xorm:"'CLOSEQTY'"` // 平仓数量(先建后平操作 需要记录)
  239. Status int32 `json:"status" xorm:"'STATUS'"` // 处理状态 - 1:待处理 2:已处理 3:处理失败
  240. Isreckoned int32 `json:"isreckoned" xorm:"'ISRECKONED'"` // 是否结算 - 0:未结算 1:已结算
  241. Tradeproperty int32 `json:"tradeproperty" xorm:"'TRADEPROPERTY'"` // 交易属性
  242. Openfeealgorithm int32 `json:"openfeealgorithm" xorm:"'OPENFEEALGORITHM'"` // 建仓手续费收取方式 1:比率 2:固定
  243. Openmemberchargevalue float64 `json:"openmemberchargevalue" xorm:"'OPENMEMBERCHARGEVALUE'"` // 建仓会员手续费设置值
  244. Openexchagechargevalue float64 `json:"openexchagechargevalue" xorm:"'OPENEXCHAGECHARGEVALUE'"` // 建仓交易所手续费设置值
  245. Closefeealgorithm int32 `json:"closefeealgorithm" xorm:"'CLOSEFEEALGORITHM'"` // 平仓手续费收取方式 1:比率 2:固定
  246. Closememberchargevalue float64 `json:"closememberchargevalue" xorm:"'CLOSEMEMBERCHARGEVALUE'"` // 平仓会员手续费设置值
  247. Closeexchagechargevalue float64 `json:"closeexchagechargevalue" xorm:"'CLOSEEXCHAGECHARGEVALUE'"` // 平仓交易所手续费设置值
  248. Optiontype int32 `json:"optiontype" xorm:"'OPTIONTYPE'"` // 期权类型 - 1:认购(看涨) 2:认沽(看跌)
  249. Premium float64 `json:"premium" xorm:"'PREMIUM'"` // 权利金 - [持仓单的权利金]
  250. Ispreexercise int32 `json:"ispreexercise" xorm:"'ISPREEXERCISE'"` // 是否预申报- 0:否 1:是
  251. Preexerciseprice float64 `json:"preexerciseprice" xorm:"'PREEXERCISEPRICE'"` // 预申报价格
  252. Isconfirmexercise int32 `json:"isconfirmexercise" xorm:"'ISCONFIRMEXERCISE'"` // 是否确认行权- 0:否 1:是
  253. Ismain int32 `json:"ismain" xorm:"'ISMAIN'"` // 是否主单 - 0:不是 1:是
  254. Performanceplanid int64 `json:"performanceplanid" xorm:"'PERFORMANCEPLANID'"` // 履约计划ID[期权]
  255. Performancestatus int32 `json:"performancestatus" xorm:"'PERFORMANCESTATUS'"` // 履约状态[期权] - 0:无履约 1:未履约 2:履约中 3:履约完成
  256. Creditamount float64 `json:"creditamount" xorm:"'CREDITAMOUNT'"` // 授信金额
  257. Gcaccountid int64 `json:"gcaccountid" xorm:"'GCACCOUNTID'"` // 账户ID[合约币种]
  258. Closepl2 float64 `json:"closepl2" xorm:"'CLOSEPL2'"` // 平仓盈亏[逐笔]
  259. Relatedouttradeid int64 `json:"relatedouttradeid" xorm:"'RELATEDOUTTRADEID'"` // 关联外部成交单ID
  260. }
  261. // TableName is TRADE_TRADEDETAIL
  262. func (Tradetradedetail) TableName() string {
  263. return "TRADE_TRADEDETAIL"
  264. }
  265. // Histradetradedetail 历史交易成交单表
  266. type Histradetradedetail struct {
  267. Tradeid string `json:"tradeid" xorm:"'TRADEID'" binding:"required"` // 成交单号(101+Unix秒时间戳(10位)+2位(MarketServiceID)+xxxx)
  268. Buyorsell int32 `json:"buyorsell" xorm:"'BUYORSELL'" binding:"required"` // 方向 - 0:买 1:卖
  269. Orderid string `json:"orderid" xorm:"'ORDERID'" binding:"required"` // 委托单号
  270. Tradedate string `json:"tradedate" xorm:"'TRADEDATE'" binding:"required"` // 交易日(yyyyMMdd)
  271. Accountid int64 `json:"accountid" xorm:"'ACCOUNTID'" binding:"required"` // 账户ID[报价币种]
  272. Goodsid int32 `json:"goodsid" xorm:"'GOODSID'" binding:"required"` // 商品ID
  273. Marketid int32 `json:"marketid" xorm:"'MARKETID'" binding:"required"` // 市场ID
  274. Memberuserid int64 `json:"memberuserid" xorm:"'MEMBERUSERID'" binding:"required"` // 会员id 个人投资者 需要填写
  275. Matchaccountid int64 `json:"matchaccountid" xorm:"'MATCHACCOUNTID'"` // 对手账号id
  276. Tradetime time.Time `json:"tradetime" xorm:"'TRADETIME'" binding:"required"` // 成交时间
  277. Tradeprice float64 `json:"tradeprice" xorm:"'TRADEPRICE'" binding:"required"` // 成交价格
  278. Tradeamount float64 `json:"tradeamount" xorm:"'TRADEAMOUNT'" binding:"required"` // 成交金额[账户币种,用于所有权]
  279. Closepl float64 `json:"closepl" xorm:"'CLOSEPL'"` // 平仓盈亏
  280. Intclosepl int64 `json:"intclosepl" xorm:"'INTCLOSEPL'"` // 整型盈亏(用于交易结算试算平衡-收益权)
  281. Opencharge float64 `json:"opencharge" xorm:"'OPENCHARGE'"` // 建仓手续费(支付总手续费=(交易所比率+会员比率)*成交金额)
  282. Closecharge float64 `json:"closecharge" xorm:"'CLOSECHARGE'"` // 平仓手续费(支付总手续费=(交易所比率+会员比率)*成交金额)
  283. Tradetype int32 `json:"tradetype" xorm:"'TRADETYPE'"` // 成交类别 - 1:正常委托成交 2:定向做市成交(接单) 3:交割协议平仓成交 4:交割减仓成交 5:到期强平成交 6:风控斩仓成交 7:协议平仓(管理端)成交 8:仓单转持仓成交 9: 交割协议转让成交 10:受托竞价成交(接单) 11:协议转让成交 12:系统强行平仓 13:期权违约平仓
  284. Buildtype int32 `json:"buildtype" xorm:"'BUILDTYPE'"` // 委托单据类型 1:建仓 2:平仓 3:先平后建
  285. Tradeqty float64 `json:"tradeqty" xorm:"'TRADEQTY'" binding:"required"` // 成交数量
  286. Openqty float64 `json:"openqty" xorm:"'OPENQTY'"` // 开仓数量(先建后平操作 需要记录)
  287. Closeqty float64 `json:"closeqty" xorm:"'CLOSEQTY'"` // 平仓数量(先建后平操作 需要记录)
  288. Status int32 `json:"status" xorm:"'STATUS'"` // 处理状态 - 1:待处理 2:已处理 3:处理失败
  289. Isreckoned int32 `json:"isreckoned" xorm:"'ISRECKONED'"` // 是否结算 - 0:未结算 1:已结算
  290. Tradeproperty int32 `json:"tradeproperty" xorm:"'TRADEPROPERTY'"` // 交易属性
  291. Openfeealgorithm int32 `json:"openfeealgorithm" xorm:"'OPENFEEALGORITHM'"` // 建仓手续费收取方式 1:比率 2:固定
  292. Openmemberchargevalue float64 `json:"openmemberchargevalue" xorm:"'OPENMEMBERCHARGEVALUE'"` // 建仓会员手续费设置值
  293. Openexchagechargevalue float64 `json:"openexchagechargevalue" xorm:"'OPENEXCHAGECHARGEVALUE'"` // 建仓交易所手续费设置值
  294. Closefeealgorithm int32 `json:"closefeealgorithm" xorm:"'CLOSEFEEALGORITHM'"` // 平仓手续费收取方式 1:比率 2:固定
  295. Closememberchargevalue float64 `json:"closememberchargevalue" xorm:"'CLOSEMEMBERCHARGEVALUE'"` // 平仓会员手续费设置值
  296. Closeexchagechargevalue float64 `json:"closeexchagechargevalue" xorm:"'CLOSEEXCHAGECHARGEVALUE'"` // 平仓交易所手续费设置值
  297. Optiontype int32 `json:"optiontype" xorm:"'OPTIONTYPE'"` // 期权类型 - 1:认购(看涨) 2:认沽(看跌)
  298. Premium float64 `json:"premium" xorm:"'PREMIUM'"` // 权利金 - [持仓单的权利金]
  299. Ispreexercise int32 `json:"ispreexercise" xorm:"'ISPREEXERCISE'"` // 是否预申报- 0:否 1:是
  300. Preexerciseprice float64 `json:"preexerciseprice" xorm:"'PREEXERCISEPRICE'"` // 预申报价格
  301. Isconfirmexercise int32 `json:"isconfirmexercise" xorm:"'ISCONFIRMEXERCISE'"` // 是否确认行权- 0:否 1:是
  302. Ismain int32 `json:"ismain" xorm:"'ISMAIN'"` // 是否主单 - 0:不是 1:是
  303. Performanceplanid int64 `json:"performanceplanid" xorm:"'PERFORMANCEPLANID'"` // 履约计划ID[期权]
  304. Performancestatus int32 `json:"performancestatus" xorm:"'PERFORMANCESTATUS'"` // 履约状态[期权] - 0:无履约 1:未履约 2:履约中 3:履约完成
  305. Creditamount float64 `json:"creditamount" xorm:"'CREDITAMOUNT'"` // 授信金额
  306. Gcaccountid int64 `json:"gcaccountid" xorm:"'GCACCOUNTID'"` // 账户ID[合约币种]
  307. Closepl2 float64 `json:"closepl2" xorm:"'CLOSEPL2'"` // 平仓盈亏[逐笔]
  308. Relatedouttradeid int64 `json:"relatedouttradeid" xorm:"'RELATEDOUTTRADEID'"` // 关联外部成交单ID
  309. Histradedate string `json:"histradedate" xorm:"'HISTRADEDATE'" binding:"required"` // 历史交易日
  310. Isvaliddata int32 `json:"isvaliddata" xorm:"'ISVALIDDATA'"` // 是否有效 - 0:无效 1:有效
  311. }
  312. // TableName is HIS_TRADE_TRADEDETAIL
  313. func (Histradetradedetail) TableName() string {
  314. return "HIS_TRADE_TRADEDETAIL"
  315. }
  316. // Tradegoodspickup 交易合约提货单表
  317. type Tradegoodspickup struct {
  318. Takeorderid int64 `json:"takeorderid" xorm:"'TAKEORDERID'" binding:"required"` // 提货单号(905+Unix秒时间戳(10位)+xxxxxx)
  319. Accountid int64 `json:"accountid" xorm:"'ACCOUNTID'"` // 账户ID
  320. Goodsid int64 `json:"goodsid" xorm:"'GOODSID'"` // 商品ID
  321. Userid int64 `json:"userid" xorm:"'USERID'"` // 用户ID
  322. Qty float64 `json:"qty" xorm:"'QTY'"` // 提货数量
  323. Reqtime time.Time `json:"reqtime" xorm:"'REQTIME'"` // 更新时间
  324. Recivername string `json:"recivername" xorm:"'RECIVERNAME'"` // 提货人姓名
  325. Cardtypeid int32 `json:"cardtypeid" xorm:"'CARDTYPEID'"` // 提货人证件类型
  326. Cardnum string `json:"cardnum" xorm:"'CARDNUM'"` // 提货人证件号码
  327. Phonenum string `json:"phonenum" xorm:"'PHONENUM'"` // 提货人联系方式
  328. Takemode int32 `json:"takemode" xorm:"'TAKEMODE'"` // 提货方式 - 2:自提 3:配送
  329. Address string `json:"address" xorm:"'ADDRESS'"` // 提货人详细地址
  330. Takeremark string `json:"takeremark" xorm:"'TAKEREMARK'"` // 提货备注
  331. Takeorderstatus int32 `json:"takeorderstatus" xorm:"'TAKEORDERSTATUS'"` // 提货状态 - 1:待发货 2:已发货 3:已收货
  332. Auditer int32 `json:"auditer" xorm:"'AUDITER'"` // 审核人
  333. Audittime time.Time `json:"audittime" xorm:"'AUDITTIME'"` // 审核时间
  334. Checkremark string `json:"checkremark" xorm:"'CHECKREMARK'"` // 审核备注
  335. Tradedate string `json:"tradedate" xorm:"'TRADEDATE'"` // 交易日(yyyyMMdd)
  336. Marketid int32 `json:"marketid" xorm:"'MARKETID'"` // 市场ID
  337. Handlestatus int32 `json:"handlestatus" xorm:"'HANDLESTATUS'"` // 处理状态
  338. Amount float64 `json:"amount" xorm:"'AMOUNT'"` // 提货金额
  339. Countryid int32 `json:"countryid" xorm:"'COUNTRYID'"` // 国家
  340. Provinceid int32 `json:"provinceid" xorm:"'PROVINCEID'"` // 省
  341. Cityid int32 `json:"cityid" xorm:"'CITYID'"` // 市
  342. Districtid int32 `json:"districtid" xorm:"'DISTRICTID'"` // 地区
  343. }
  344. // TableName is TRADE_GOODSPICKUP
  345. func (Tradegoodspickup) TableName() string {
  346. return "TRADE_GOODSPICKUP"
  347. }
  348. // GetTradePositions 获取指定资金账户的持仓信息
  349. func GetTradePositions(accountID int, marketID int) ([]Tradeposition, error) {
  350. tradePositions := make([]Tradeposition, 0)
  351. session := db.GetEngine().Table("TRADEPOSITION T").Where("T.ACCOUNTID = ?", accountID)
  352. if marketID != 0 {
  353. session = session.And("T.GOODSID in (SELECT G.GOODSID FROM GOODS G WHERE G.MARKETID = ?)", marketID)
  354. }
  355. if err := session.Find(&tradePositions); err != nil {
  356. return nil, err
  357. }
  358. return tradePositions, nil
  359. }