交易所系统设计 exchange trading system design

exchange trading system design 交易所系统设计

model关系

model设计关键

钱包账户-- 可用理解成总账户,与对外的流水入口。譬如充值、提现关联.
参考 okex 账户体系

每次的流水都记录当前的balance

holding:持仓,指数量(股数),跟market price不挂钩

portfolio

product & instrument

rest api 设计

  • version control v1 v2 v3 in url
    2018-09-12T07:46:19.435ZGET/api/spot/v3/accounts/btc/ledger?limit=1&from=2&to=4 check

注意所有的数字在传输的时候都是 string,防止数据在加密过程中容易出错,并保留固定位数。(防止 2.00 与 2.000 有差别)

performance metric

  • return
  • exposure
  • unrealized return

错误码

安全

交易撮合

关于时间 UTC String(Thu, 14 Mar 2019 08:06:39 GMT) vs timestamp (1552550799091) vs ISODate (2019-03-14T08:06:39.091Z)
建议 ISODate

  • 优点:比较直观的是ISODate , 通用,便于时区识别
  • 缺点:排序稍差于 timestamp

币币交易

期货/合约交易

数据

数据存储:

  • 区分热数据、冷数据
    • 热数据:最近的、要实时快的
    • 冷数据:稍久的,允许稍长一点的时延

kline 的数据存储

  • 按频率区分开表格存
  • 不用筛选,快速

数据真的太多了怎么办

  • 某日清算正确后,可以将balance 等关键信息汇总至某日,作为snapshot。以后基于这个数据去计算
  • 某日清算正确前的数据,把数据存到冷存储,如磁带机(多份)

架构

Kong 分发不同的交易币种种,不同的交易产品(期货合约/币币交易/法币/其他API)

`
$ curl -I https://www.okex.com
HTTP/1.1 200 Tunnel established

HTTP/1.1 200
Content-Type: text/html;charset=UTF-8
Content-Length: 45825
Connection: keep-alive
Vary: Accept-Encoding
X-RateLimit-Limit-second: 50
X-RateLimit-Remaining-second: 49
X-RateLimit-Limit-minute: 100
X-RateLimit-Remaining-minute: 99
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Set-Cookie: locale=en_US; Max-Age=604800; Expires=Thu, 28-Mar-2019 03:39:44 GMT; Path=/
Content-Language: en-US
Date: Thu, 21 Mar 2019 03:39:44 GMT
X-Kong-Upstream-Latency: 13
X-Kong-Proxy-Latency: 0
Via: kong/0.12.3

`

容量估计:

  • 带宽
  • 数据
  • 系统压力

关键子系统概述:

  • 行情系统
  • 交易系统
  • 风控系统
  • 营销系统

量化策略系统

  • 行情系统
  • 交易系统
  • 风控系统
  • 策略系统

ref :

okex api

huobi api

posted @ 2020-09-07 20:08  邓维  阅读(550)  评论(0编辑  收藏  举报