↓ 跳过正文
  1. Posts/

1993–1997:股东卡、证券账户、资金账号、客户号、席位号——中国证券市场为什么需要这么多 ID?

1993–1997:股东卡、证券账户、资金账号、客户号、席位号
#

——中国证券市场为什么需要这么多 ID?
#

今天,一个投资者登录证券 App,可能只看到一个账号。

但在1990年代的中国证券市场里,一个投资者可能同时拥有:

客户号
证券账户
股东代码
股东卡
资金账号
营业部号
席位号

这些东西看起来非常混乱。

但如果把它们放回1993—1997年的历史环境,就会发现:

它们并不是重复设计。

每一个 ID 都对应证券市场中的一个不同对象。

更准确地说:

人
↓
客户
↓
券商
↓
资金账户
↓
证券账户
↓
交易席位
↓
交易所

这套 ID 体系,实际上就是后来证券柜台数据库的骨架。


一、先看今天的一笔交易
#

假设:

张三

通过证券公司买入:

600000
1000股

今天的用户感觉非常简单:

张三
 ↓
证券 App
 ↓
买入 600000
 ↓
1000股
 ↓
成交

但后台实际上必须回答很多问题:

这个人是谁?

他是哪家券商的客户?

他的证券账户是什么?

他的资金账户是什么?

这笔订单属于谁?

订单从哪个交易通道出去?

使用哪个交易席位?

成交以后股票记到哪个证券账户?

资金从哪个资金账户扣除?

所以真正的数据链条是:

CUSTOMER
    ↓
ACCOUNT
    ↓
ORDER
    ↓
TRADE
    ↓
POSITION

而1990年代,这些对象还没有被今天的软件统一抽象出来。

它们是在实践中一点一点形成的。


二、为什么“一个人一个账号”根本不够?
#

这是理解早期证券账户体系的第一步。

假设:

张三

只有一个 ID:

100001

那么这个 ID 需要同时表示:

张三是谁

以及:

张三有多少钱

以及:

张三有多少股票

以及:

张三通过哪个营业部交易

以及:

张三的订单从哪个交易席位进入交易所

这是不合理的。

因为这些其实是不同的业务对象。


三、证券市场至少有三个不同的“身份”
#

可以先把它们拆成:

人
账户
交易通道

第一层:人
#

例如:

张三

身份证号:
XXXXXXXX

这是:

CUSTOMER

第二层:账户
#

张三可以有:

资金账户

和:

证券账户

第三层:交易通道
#

张三的订单需要通过:

证券公司

↓

交易席位

↓

交易所

进入市场。

所以:

客户 ID

和:

席位 ID

完全不是一个东西。


四、最容易混淆的概念:股东卡 ≠ 证券账户
#

这是很多早期证券史资料最容易混在一起的地方。

“股东卡”更接近:

投资者拥有某个证券市场股东身份的凭证。

而:

证券账户

更接近:

登记结算体系中的证券持有账户。


可以粗略理解:

股东卡
    ↓
你是谁
你具有哪个市场的股东身份

而:

证券账户
    ↓
你的证券资产记在哪里

在纸质时代:

股票凭证

本身承担了一部分权利证明功能。

无纸化以后:

股东身份
+
证券持仓

越来越依赖:

证券账户
+
登记系统

五、为什么投资者会拿到“股东卡”?
#

因为证券市场必须给投资者一种可以理解、可以携带的身份凭证。

尤其是在1990年代:

电子数据库

对于普通投资者来说非常抽象。

于是:

证券登记系统

可以给投资者:

股东卡

作为:

你已经在证券登记体系中登记的外部凭证。


所以股东卡可以看作:

电子登记身份
        ↓
纸面身份凭证

它并不是证券交易撮合系统本身。


六、证券账户真正解决什么问题?
#

证券账户回答的是:

这些证券到底记在谁名下?

例如:

证券账户:

A123456789

持仓:

600000 → 1000股
600001 → 500股

这就是:

POSITION

的来源。


七、一个非常重要的历史变化
#

1986年:

股票

↓

纸质凭证

1991年以后:

股票

↓

证券账户

因此:

股票编号

逐渐不再等同于:

所有权身份

而变成:

证券代码
+
证券账户
+
持仓数量

共同表达证券关系。


八、那么“资金账号”又是什么?
#

如果:

证券账户

回答:

你有多少股票?

那么:

资金账号

回答:

你在证券公司这里有多少钱?

例如:

资金账号:

F00123456

可用资金:

50,000 RMB

于是:

证券账户
    ↓
股票

资金账号
    ↓
钱

这两个账户必须分开。


九、为什么资金账户不能直接等于证券账户?
#

因为股票和钱属于不同的基础设施。

证券:

交易所
 ↓
登记结算系统

资金:

券商
 ↓
银行

因此:

证券账户

和:

资金账户

背后连接的是不同系统。


十、1990年代证券柜台的核心关系
#

可以画成:

                 客户
                  │
                  ▼
            ┌───────────┐
            │  客户号    │
            └─────┬─────┘
                  │
          ┌───────┴────────┐
          │                │
          ▼                ▼
      资金账号          证券账户
          │                │
          ▼                ▼
       资金余额          证券持仓

这已经非常接近现代柜台系统的数据模型。


十一、但是订单怎么办?
#

张三提交:

买入:

600000

1000股

系统必须知道:

是谁下的单?

答案:

客户号

还要知道:

从哪个账户扣钱?

答案:

资金账号

还要知道:

股票最后记到哪里?

答案:

证券账户

还要知道:

订单通过什么渠道进入交易所?

答案:

席位 / 交易单元

于是一个订单实际上需要关联:

ORDER
 │
 ├── CUSTOMER
 │
 ├── CASH_ACCOUNT
 │
 ├── SECURITIES_ACCOUNT
 │
 ├── SECURITY
 │
 └── TRADING_CHANNEL

十二、这就是为什么早期柜台系统越来越复杂
#

刚开始可能只有:

客户
股票
数量

后来变成:

客户
 ↓
客户号
 ↓
资金账号
 ↓
证券账户
 ↓
股东代码
 ↓
营业部
 ↓
席位
 ↓
证券
 ↓
委托
 ↓
成交
 ↓
清算
 ↓
持仓

这不是程序员故意把系统做复杂。

而是证券市场本身越来越复杂。


十三、营业部又是什么?
#

1990年代中国证券市场仍然高度依赖营业部。

营业部是投资者和证券公司之间的重要接触点。

投资者:

来到营业部

办理:

开户

股东账户登记

资金开户

委托交易

查询

交割

资金存取

因此营业部也需要自己的编号。

例如:

Broker = 某证券公司

Branch = 上海某营业部

十四、为什么必须有“营业部号”?
#

因为同一个证券公司可以有:

上海营业部
北京营业部
深圳营业部
广州营业部

所以:

证券公司

和:

营业部

不是同一个对象。

数据库上可能形成:

BROKER
   │
   ├── BRANCH 001
   ├── BRANCH 002
   ├── BRANCH 003
   └── BRANCH 004

十五、然后就是最重要的“席位号”
#

证券公司有营业部。

营业部有客户。

客户有订单。

但是:

订单怎么进入交易所?

答案:

交易席位

十六、席位最初到底是什么?
#

不要把90年代的席位直接理解成:

一个数据库字段

最初它是非常物理化的。

交易所大厅里有:

交易员

电话

终端

席位

证券公司需要通过自己的交易席位进入交易所。

因此:

证券公司

↓

交易席位

↓

交易所

十七、席位不是客户身份
#

例如:

张三

可能是:

客户号:

C001

他的订单可能通过:

席位:

S027

进入交易所。

所以:

C001

是:

客户身份。

而:

S027

是:

交易通道 / 市场参与资格。

两者完全不同。


十八、一个营业部可以服务很多客户
#

例如:

营业部 001

客户:
C0001
C0002
C0003
...
C9999

但是:

这些客户

可能共享:

一个或多个交易席位

于是:

Branch 001
     │
     ├── Customer A
     ├── Customer B
     ├── Customer C
     │
     └── Trading Seat S027

十九、这就是“多客户 → 一个交易通道”
#

从技术架构看:

Customer A ─┐
Customer B ─┤
Customer C ─┼──→ Trading Gateway ──→ Exchange
Customer D ─┘

这实际上就是后来:

集中交易系统

的雏形。


二十、于是一个订单的完整生命周期出现了
#

例如:

张三

买入:

600000

1000股

完整链条:

客户
 ↓
客户号
 ↓
资金账号
 ↓
证券账户
 ↓
营业部
 ↓
交易席位
 ↓
交易所
 ↓
订单
 ↓
成交
 ↓
清算
 ↓
持仓

二十一、如果把它转换成数据库
#

可以想象早期证券柜台已经需要:

CUSTOMER
ACCOUNT
SECURITY_ACCOUNT
CASH_ACCOUNT
BRANCH
SEAT
ORDER
TRADE
POSITION

关系可能类似:

CUSTOMER
   │
   ├───────────────┐
   │               │
   ▼               ▼
CASH_ACCOUNT   SEC_ACCOUNT
   │               │
   │               ▼
   │           POSITION
   │               ▲
   │               │
   └──────→ ORDER → TRADE
               │
               ▼
             SEAT
               │
               ▼
            EXCHANGE

二十二、这就是90年代证券软件真正的“数据骨架”
#

很多后来非常复杂的证券柜台系统,本质上都围绕这些对象运转:

客户
账户
证券
委托
成交
持仓
资金
席位
清算

区别只是:

后来的系统把它们从纸和人工流程变成了计算机对象。


二十三、为什么“客户号”后来又越来越重要?
#

因为:

证券账户

只能表示证券登记关系。

资金账号

只能表示资金关系。

但券商需要管理:

这个人和券商之间的整体业务关系。

所以需要一个更高层的对象:

CUSTOMER

例如:

客户号:

C100001

下面挂:

资金账号 F001

证券账户 A001

多个交易权限

多个业务关系

二十四、这就是现代“客户主数据”的雏形
#

现代系统通常会区分:

Customer

Account

Position

Order

原因就是:

一个客户

不一定只有:

一个账户

例如:

CUSTOMER C001

   ├── CASH_ACCOUNT F001
   │
   ├── SEC_ACCOUNT A001
   │
   ├── SEC_ACCOUNT A002
   │
   └── OTHER_ACCOUNT ...

二十五、为什么中国证券市场后来会出现“一个客户多个账户”?
#

因为不同市场、不同交易所、不同业务权限可能需要不同的登记关系。

例如早期市场存在:

上海证券账户

和:

深圳证券账户

等不同市场体系。

因此:

一个自然人

不一定只对应:

一个证券账户

二十六、于是“股东代码”和“证券账户”也开始出现历史差异
#

在实际业务中,投资者经常会看到:

股东代码

这个概念。

它强调的是:

投资者在某一证券市场 / 登记体系中的股东身份。

而:

证券账户

更强调:

登记结算系统中的证券账户对象。

随着中国证券登记结算体系不断统一,二者的关系越来越规范化。

但是在早期历史资料里,名称并不总是完全一致。

因此研究90年代系统时:

不要看到“股东号”“股东代码”“证券账号”就默认它们一定是同一个字段。

必须看具体年代和具体机构。


二十七、这对研究老证券软件非常重要
#

因为老系统里可能出现:

CUSTOMER_NO
CLIENT_NO
FUND_ACCOUNT
SEC_ACCOUNT
SH_ACCOUNT
SZ_ACCOUNT
SEAT_NO
BRANCH_NO

这些字段看起来都像:

“一个号码”

实际上代表的是不同对象。


二十八、一个订单可能同时带着很多 ID
#

假设:

客户号:

C001234

他的:

资金账号:

F009876

上海证券账户:

SH123456

营业部:

BR001

席位:

S027

然后下单:

ORDER-1995-000123

买:

600000

1000股

交易所成交后:

TRADE-1995-000789

清算完成后:

POSITION

最终:

SH123456
    ↓
600000
    ↓
1000 shares

资金:

F009876
    ↓
-10,000 RMB

二十九、这就是证券系统最核心的“关联关系”
#

一笔交易必须能够被完整追踪:

谁下的单?
      ↓
哪个客户?

用什么资金?
      ↓
哪个资金账户?

买什么?
      ↓
哪个证券?

股票记到哪里?
      ↓
哪个证券账户?

从哪里出去?
      ↓
哪个席位?

什么时候成交?
      ↓
哪个 Trade?

最终持仓多少?
      ↓
哪个 Position?

三十、这就是后来“可追溯性”的基础
#

现代金融系统特别强调:

Audit Trail

也就是:

每一笔业务都能追溯。

例如:

Customer
   ↓
Order
   ↓
Execution
   ↓
Trade
   ↓
Clearing
   ↓
Settlement
   ↓
Position

1990年代虽然没有今天这么成熟的软件体系,

但业务上已经必须解决这个问题。


三十一、如果没有这些 ID,会发生什么?
#

假设系统只记录:

600000

1000股

问题来了:

谁买的?

哪个营业部?

哪个账户?

哪个资金来源?

哪个席位?

哪笔成交?

全部无法回答。

因此:

证券 IT 的本质之一,就是把“人、账户、证券、交易、资金、市场通道”建立稳定的身份关系。


三十二、从这个角度看,“股东卡”其实只是整个体系最外层的一张纸
#

可以把整个结构画成:

                 投资者
                    │
                    ▼
              ┌───────────┐
              │  股东卡    │
              └─────┬─────┘
                    │
                    ▼
              证券账户 / 股东代码
                    │
                    ▼
                 持仓

而另一边:

                 投资者
                    │
                    ▼
                客户号
                    │
                    ▼
                资金账号
                    │
                    ▼
                 资金

然后交易把两边连接起来:

资金账户
    │
    │
    ▼
   ORDER
    │
    ▼
   TRADE
    │
    ▼
证券账户
    │
    ▼
 POSITION

三十三、再加上交易席位
#

于是完整模型变成:

                         INVESTOR
                            │
                            ▼
                        CUSTOMER
                       /        \
                      /          \
                     ▼            ▼
             CASH_ACCOUNT    SEC_ACCOUNT
                  │               │
                  │               ▼
                  │            POSITION
                  │               ▲
                  │               │
                  └──────→ ORDER → TRADE
                              │
                              ▼
                             SEAT
                              │
                              ▼
                           EXCHANGE

这张图非常重要。

因为它实际上已经非常接近后来证券柜台系统的核心架构。


三十四、这时候才能理解“集中柜台”为什么必然出现
#

早期:

营业部 A
    ↓
自己的客户数据

营业部 B
    ↓
自己的客户数据

营业部 C
    ↓
自己的客户数据

如果每个营业部独立运行:

客户
账户
委托
成交
持仓

都会分散。


但是总部希望看到:

整个证券公司

↓

所有客户

↓

所有账户

↓

所有交易

↓

所有持仓

↓

所有风险

于是出现:

集中化
#


三十五、集中柜台的核心思想
#

从:

Branch A → Local System

Branch B → Local System

Branch C → Local System

变成:

Branch A ─┐
Branch B ─┼──→ Central Brokerage System
Branch C ─┘

于是:

Customer
Account
Order
Trade
Position

开始进入一个统一的数据库体系。


三十六、但是交易所仍然在另一边
#

于是系统出现两个世界:

券商内部世界
#

客户

资金账户

证券账户

订单

持仓

风险

交易所世界
#

席位

订单

成交

行情

交易状态

两边必须连接。

这就是:

交易接口
#


三十七、交易接口最终演化成证券中间件
#

最早可能只是:

电话

然后:

终端

再后来:

专线

通信协议

交易网关

消息队列

交易中间件

最终形成:

Brokerage Core
        │
        ▼
Transaction Middleware
        │
        ▼
Exchange Gateway
        │
        ▼
Exchange

三十八、所以“席位”其实是后来中间件架构的历史前身之一
#

可以这样理解:

早期:

营业部
   ↓
交易员
   ↓
席位
   ↓
交易所

后来:

营业部
   ↓
柜台系统
   ↓
交易中间件
   ↓
交易网关
   ↓
席位 / 交易单元
   ↓
交易所

这就是:

从人工交易员到软件交易网关的演化。


三十九、1993~1997年的真正技术变化
#

这几年真正发生的,不只是:

电脑更多了

而是证券市场开始形成稳定的:

身份体系
+
账户体系
+
交易体系
+
清算体系

可以总结成:

1986

Paper Certificate


1990

Exchange + Seat


1991

Securities Account + Paperless Trading


1993

Central Registration & Settlement


1993–1997

Customer / Account / Seat / Order /
Trade / Position
开始形成软件化的数据结构

四十、为什么这一时期对金证、恒生特别重要?
#

因为到了90年代中后期,证券公司已经不只是需要:

一个营业部软件

而是需要:

总部
 ↓
多个营业部
 ↓
多个客户
 ↓
多个账户
 ↓
多个席位
 ↓
多个交易市场
 ↓
交易所
 ↓
登记结算
 ↓
银行

这时候单纯的:

“柜台程序”

已经不够。

市场需要:

集中式交易处理

消息路由

交易接口

账户同步

清算处理

异常恢复

多营业部连接

这就是后来:

KCBP
KCXP
AS
AR

这类系统出现的历史技术背景。


四十一、从历史上看,证券软件其实是在不断“拆对象”
#

最开始:

股票凭证

后来拆成:

证券
+
股东

然后:

股东
+
证券账户

再然后:

客户
+
资金账户
+
证券账户

再然后:

客户
+
账户
+
订单
+
成交
+
持仓
+
席位

最终:

Customer
Account
Order
Trade
Position
Settlement
Channel

成为现代证券系统的基本对象。


四十二、所以不要把90年代证券柜台理解成“一个大程序”
#

它更应该理解成:

一组围绕金融对象建立起来的数据处理系统。

核心对象:

Customer

Account

Security

Order

Trade

Position

Cash

Seat

Settlement

核心关系:

Customer
   ↓
Account
   ↓
Order
   ↓
Trade
   ↓
Position

核心外部接口:

Bank

Exchange

Registration & Settlement

四十三、最终形成一张完整的90年代证券 IT 图
#

                         INVESTOR
                            │
                            ▼
                       ┌─────────┐
                       │CUSTOMER │
                       └────┬────┘
                            │
              ┌─────────────┴─────────────┐
              │                           │
              ▼                           ▼
       ┌─────────────┐             ┌─────────────┐
       │ CASH ACCOUNT│             │ SEC ACCOUNT │
       └──────┬──────┘             └──────┬──────┘
              │                           │
              ▼                           ▼
           CASH                       POSITION
              │                           ▲
              │                           │
              └──────────┐     ┌──────────┘
                         ▼     ▲
                        ORDER
                          │
                          ▼
                        TRADE
                          │
                          ▼
                        CLEAR
                          │
                          ▼
                      SETTLEMENT
                          │
                          ▼
                  CENTRAL REGISTRY
                          
Order Path:
                         
CUSTOMER
   ↓
BRANCH
   ↓
BROKERAGE SYSTEM
   ↓
TRADING GATEWAY
   ↓
SEAT / TRADING UNIT
   ↓
EXCHANGE

四十四、最重要的结论
#

1990年代证券市场里的:

股东卡
证券账户
资金账号
客户号
营业部号
席位号

看起来像一堆重复的数字。

其实它们分别解决的是不同的问题:

ID / 对象主要回答的问题
身份证 / 客户身份你是谁?
客户号你在券商体系里是谁?
证券账户证券登记在哪里?
股东代码你在特定市场中的股东身份是什么?
股东卡如何向投资者体现这种股东身份?
资金账号钱记在哪里?
营业部号哪个服务机构管理这个客户?
席位号交易从哪个市场通道进入?
委托号客户下了哪一笔订单?
成交号哪一笔交易真正成交?

四十五、而这正是证券 IT 与普通 ERP 最大的区别之一
#

ERP 主要管理:

客户
商品
订单
库存
财务

证券系统管理:

客户
账户
证券
资金
委托
成交
持仓
席位
清算
登记

而且这些对象必须满足:

高并发

强一致性

可追溯

可清算

不可随意丢失

严格审计

所以证券柜台系统天然比普通业务系统复杂。


四十六、从股东卡到 KCBP,中间其实只差了一条“数字化链条”
#

整个历史可以压缩成:

股票凭证
    ↓
股东名册
    ↓
股东卡
    ↓
证券账户
    ↓
资金账户
    ↓
客户号
    ↓
订单号
    ↓
成交号
    ↓
席位号
    ↓
交易接口
    ↓
集中柜台
    ↓
交易中间件

这条线一旦看懂:

90年代中国证券软件为什么会出现各种“柜台、接口、转码、路由、席位、主站、前置、中心”的概念,就全部串起来了。


四十七、下一步真正应该研究什么?
#

到这里,我们已经知道:

客户是谁
股票记在哪里
钱记在哪里
订单从哪里出去

但是还有一个最关键的问题:

券商总部到底是怎么把几十个、几百个营业部连接起来的?

例如:

营业部 001
营业部 002
营业部 003
...
营业部 100

每个营业部都有:

客户
资金
证券账户
订单

但是交易所只有:

席位 / 交易通道

于是总部必须建立一个巨大的:

营业部
   ↓
集中柜台
   ↓
交易主站
   ↓
交易席位
   ↓
交易所

而且还必须解决:

消息怎么路由?

订单怎么编号?

客户怎么映射?

席位怎么映射?

成交怎么回来?

清算数据怎么回来?

断线怎么办?

重复报单怎么办?

交易所和柜台的数据怎么对账?

这就进入了真正的证券中间件时代。

下一篇:
#

《1997~2001:证券公司为什么必须“集中交易”?从营业部电脑到总部集中柜台,KCBP/KCXP到底解决了什么问题?》
#

这一篇开始,就可以正式进入:

营业部 Local System
        ↓
集中柜台
        ↓
交易主站
        ↓
KCBP / KCXP
        ↓
席位
        ↓
交易所

相关文章