# 交易定義

# 賬戶風控狀態

CltRiskLevel

  • NONE

    未知

  • SAFE

    安全

  • WARNING

    預警

  • DANGER

    危險

  • ABSOLUTE_SAFE

    絕對安全

  • OPT_DANGER

    危險

提示

  • 查詢期貨賬戶的風險狀態,建議使用 risk_status 欄位, 返回結果詳見 CltRiskStatus

# 貨幣類型

Currency

  • NONE

    未知貨幣

  • HKD

    港元

  • USD

    美元

  • CNH

    離岸人民幣

  • JPY

    日元

  • SGD

    新元

  • AUD

    澳元

  • CAD

    加拿大元

  • MYR

    馬幣

# 追蹤類型

TrailType

  • NONE

    未知

  • RATIO

    比例

  • AMOUNT

    金額

# 修改訂單操作

ModifyOrderOp

  • NONE

    未知操作

  • NORMAL

    修改訂單

  • CANCEL

    撤單

  • DISABLE

    使失效

  • ENABLE

    使生效

  • DELETE

    刪除

# 成交狀態

DealStatus

  • OK

    正常

  • CANCELLED

    成交被取消

  • CHANGED

    成交被更改

# 訂單狀態

OrderStatus

  • NONE

    未知狀態

  • WAITING_SUBMIT

    待提交

  • SUBMITTING

    提交中

  • SUBMITTED

    已提交,等待成交

  • FILLED_PART

    部分成交

  • FILLED_ALL

    全部已成交

  • CANCELLED_PART

    部分成交,剩餘部分已撤單

  • CANCELLED_ALL

    全部已撤單,無成交

  • FAILED

    下單失敗,服務拒絕

  • DISABLED

    已失效

  • DELETED

    已刪除,無成交的訂單才能刪除

# 訂單類型

提示

OrderType

  • NONE

    未知類型

  • NORMAL

    限價單

  • MARKET

    市價單

  • ABSOLUTE_LIMIT

    絕對限價訂單

  • AUCTION

    競價市價單

  • AUCTION_LIMIT

    競價限價單

  • SPECIAL_LIMIT

    特別限價單

  • SPECIAL_LIMIT_ALL

    特別限價且要求全部成交訂單

  • STOP

    止損市價單

  • STOP_LIMIT

    止損限價單

  • MARKET_IF_TOUCHED

    觸及市價單(止盈)

  • LIMIT_IF_TOUCHED

    觸及限價單(止盈)

  • TRAILING_STOP

    追蹤止損市價單

  • TRAILING_STOP_LIMIT

    追蹤止損限價單

  • TWAP_LIMIT

    時間加權限價算法單(港股和美股)

  • TWAP

    時間加權市價算法單(僅美股)

  • VWAP_LIMIT

    成交量加權限價算法單(港股和美股)

  • VWAP

    成交量加權市價算法單(僅美股)

# 持倉方向

PositionSide

  • NONE

    未知方向

  • LONG

    長倉

  • SHORT

    短倉

# 賬戶類型

TrdAccType

  • NONE

    未知類型

  • CASH

    現金賬戶

  • MARGIN

    保證金賬戶

  • TFSA

    加拿大免税賬戶

  • RRSP

    加拿大註冊退休賬戶

  • SRRSP

    加拿大配偶退休賬戶

  • DERIVATIVE

    日本衍生品賬戶

# 交易環境

TrdEnv

  • SIMULATE

    模擬環境

  • REAL

    真實環境

# 交易市場

TrdMarket

  • NONE

    未知市場

  • HK

    香港市場

  • US

    美國市場

  • CN

    A 股市場

  • HKCC

    香港 A 股通市場

  • FUTURES

    期貨市場

  • FUTURES_SIMULATE_US

    美國期貨模擬市場

  • FUTURES_SIMULATE_HK

    香港期貨模擬市場

  • FUTURES_SIMULATE_SG

    新加坡期貨模擬市場

  • FUTURES_SIMULATE_JP

    日本期貨模擬市場

  • HKFUND

    香港基金市場

  • USFUND

    美國基金市場

  • SG

    新加坡市場

  • JP

    日本市場

  • AU

    澳大利亞市場

  • MY

    馬來西亞市場

  • CA

    加拿大市場

# 賬戶狀態

TrdAccStatus

  • ACTIVE

    生效賬戶

  • DISABLED

    失效賬戶

# 賬戶結構

TrdAccRole

  • NONE

    未知

  • MASTER

    主賬戶

  • NORMAL

    普通賬戶

  • IPO

    馬來西亞IPO賬戶

# 交易證券市場

# 交易方向

TrdSide

  • NONE

    未知方向

  • BUY

    買入

  • SELL

    賣出

  • SELL_SHORT

    賣空

  • BUY_BACK

    買回

提示

下單 接口的交易方向 ,建議僅使用 買入賣出 兩個方向作為入參。
賣空買回 僅適用於日本券商,其他券商僅用於 查詢今日訂單查詢歷史訂單響應訂單推送回調查詢當日成交查詢歷史成交響應成交推送回調 接口的返回欄位展示。

# 訂單有效期

TimeInForce

  • DAY

    當日有效

  • GTC

    撤單前有效

# 賬戶所屬券商

SecurityFirm

  • NONE

    未知

  • FUTUSECURITIES

    富途證券(香港)

  • FUTUINC

    moomoo證券(美國)

  • FUTUSG
    moomoo證券(新加坡)

  • FUTUAU
    moomoo證券(澳大利亞)

  • FUTUCA
    moomoo證券(加拿大)

  • FUTUMY
    moomoo證券(馬來西亞)

  • FUTUJP
    moomoo證券(日本)

# 模擬交易賬戶類型

SimAccType

  • NONE

    未知

  • STOCK

    股票模擬賬戶

  • OPTION

    期權模擬賬戶

  • FUTURES

    期貨模擬賬戶

# 風險狀態

CltRiskStatus

  • NONE

    未知

  • LEVEL1

    非常安全

  • LEVEL2

    安全

  • LEVEL3

    較安全

  • LEVEL4

    較低風險

  • LEVEL5

    中等風險

  • LEVEL6

    偏高風險

  • LEVEL7

    預警

  • LEVEL8

    危險

  • LEVEL9

    危險

# 日內交易限制情況

DtStatus

  • NONE

    未知

  • Unlimited

    無限次

  • EM_Call

    EM-Call

  • DT_Call

    DT-Call

# 現金流方向

CashFlowDirection

  • NONE

    未知

  • IN

    現金流入

  • OUT

    現金流出

# 日本子賬戶類型

SubAccType

  • NONE

    未知

  • JP_GENERAL

    一般-Long

  • JP_TOKUTEI

    特定-Long

  • JP_NISA_GENERAL

    一般NISA

  • JP_NISA_TSUMITATE

    累計NISA

  • JP_GENERAL_SHORT

    一般-short

  • JP_TOKUTEI_SHORT

    特定-short

  • JP_HONPO_GENERAL

    本國信用交易抵押品-一般

  • JP_GAIKOKU_GENERAL

    外國信用交易抵押品-一般

  • JP_HONPO_TOKUTEI

    本國信用交易抵押品-特定

  • JP_GAIKOKU_TOKUTEI

    外國信用交易抵押品-特定

  • JP_DERIVATIVE_LONG

    衍生品子賬戶-Long

  • JP_DERIVATIVE_SHORT

    衍生品子賬戶-Short

  • JP_HONPO_DERIVATIVE_GENERAL

    本國衍生品證據金子賬戶-一般

  • JP_GAIKOKU_DERIVATIVE_GENERAL

    外國衍生品證據金子賬戶-一般

  • JP_HONPO_DERIVATIVE_TOKUTEI

    本國衍生品證據金子賬戶-特定

  • JP_GAIKOKU_DERIVATIVE_TOKUTEI

    外國衍生品證據金子賬戶-特定

# 資產類別

AssetCategory

  • NONE

    未知

  • JP

    本國

  • US

    外國

# 交易品類

TrdCategory

enum TrdCategory
{
    TrdCategory_Unknown = 0; //未知品類
    TrdCategory_Security = 1; //證券
    TrdCategory_Future = 2; //期貨
}
1
2
3
4
5
6

# 賬戶現金資訊

AccCashInfo

message AccCashInfo
{
    optional int32 currency = 1;        // 貨幣類型,取值參考 Currency
    optional double cash = 2;           // 現金結餘
    optional double availableBalance = 3;   // 現金可提金額
    optional double netCashPower = 4;		// 現金購買力
}
1
2
3
4
5
6
7

# 分市場資產資訊

AccMarketInfo

message AccCashInfo
{
    optional int32 trdMarket = 1;        // 交易市場, 參見TrdMarket的枚舉定義
    optional double assets = 2;          // 分市場資產資訊
}
1
2
3
4
5

# 交易協議公共參數頭

TrdHeader

message TrdHeader
{
  required int32 trdEnv = 1; //交易環境, 參見 TrdEnv 的枚舉定義
  required uint64 accID = 2; //業務賬號, 業務賬號與交易環境、市場權限需要匹配,否則會返回錯誤
  required int32 trdMarket = 3; //交易市場, 參見 TrdMarket 的枚舉定義
  optional int32 jpAccType = 4; //JP子賬戶類型,取值見 TrdSubAccType
}
1
2
3
4
5
6
7

# 交易業務賬戶

TrdAcc

message TrdAcc
{
  required int32 trdEnv = 1; //交易環境,參見 TrdEnv 的枚舉定義
  required uint64 accID = 2; //業務賬號
  repeated int32 trdMarketAuthList = 3; //業務賬戶支援的交易市場權限,即此賬戶能交易那些市場, 可擁有多個交易市場權限,目前僅單個,取值參見 TrdMarket 的枚舉定義
  optional int32 accType = 4;   //賬戶類型,取值見 TrdAccType
  optional string cardNum = 5;  //卡號
  optional int32 securityFirm = 6; //所屬券商,取值見SecurityFirm
  optional int32 simAccType = 7; //模擬交易賬號類型,取值見SimAccType
  optional string uniCardNum = 8;  //所屬綜合賬戶卡號
  optional int32 accStatus = 9; //賬號狀態,取值見TrdAccStatus
  optional int32 accRole = 10; //賬號分類,是不是主賬號,取值見TrdAccRole
  repeated int32 jpAccType = 11; //JP子賬戶類型,取值見 TrdSubAccType
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 賬戶資金

Funds

message Funds
{
  required double power = 1; //最大購買力(此欄位是按照 50% 的融資初始保證金率計算得到的 近似值。但事實上,每個標的的融資初始保證金率並不相同。我們建議您使用 查詢最大可買可賣 接口返回的 最大可買 欄位,來判斷實際可買入的最大數量)
  required double totalAssets = 2; //資產淨值
  required double cash = 3; //現金(僅單幣種賬戶使用此欄位,綜合賬戶請使用 cashInfoList 獲取分幣種現金)
  required double marketVal = 4; //證券市值, 僅證券賬戶適用
  required double frozenCash = 5; //凍結資金
  required double debtCash = 6; //計息金額
  required double avlWithdrawalCash = 7; //現金可提(僅單幣種賬戶使用此欄位,綜合賬戶請使用 cashInfoList 獲取分幣種現金可提)

  optional int32 currency = 8;            //幣種,本結構體資金相關的貨幣類型,取值參見 Currency,期貨和綜合證券賬戶適用
  optional double availableFunds = 9;     //可用資金,期貨適用
  optional double unrealizedPL = 10;      //未實現盈虧,期貨適用
  optional double realizedPL = 11;        //已實現盈虧,期貨適用
  optional int32 riskLevel = 12;           //風控狀態,參見 CltRiskLevel, 期貨適用。建議統一使用 riskStatus 欄位獲取證券、期貨賬戶的風險狀態
  optional double initialMargin = 13;      //初始保證金
  optional double maintenanceMargin = 14;  //維持保證金
  repeated AccCashInfo cashInfoList = 15;  //分幣種的現金、現金可提和現金購買力(僅綜合賬戶適用)
  optional double maxPowerShort = 16; //賣空購買力(此欄位是按照 60% 的融券保證金率計算得到的近似值。但事實上,每個標的的融券保證金率並不相同。我們建議您使用 查詢最大可買可賣 接口返回的 可賣空 欄位,來判斷實際可賣空的最大數量。)
  optional double netCashPower = 17;  //現金購買力(僅單幣種賬戶使用此欄位,綜合賬戶請使用 cashInfoList 獲取分幣種現金購買力)
  optional double longMv = 18;        //多頭市值
  optional double shortMv = 19;       //空頭市值
  optional double pendingAsset = 20;  //在途資產
  optional double maxWithdrawal = 21;          //融資可提,僅證券賬戶適用
  optional int32 riskStatus = 22;              //風險狀態,參見 CltRiskStatus,共分 9 個等級,LEVEL1是最安全,LEVEL9是最危險
  optional double marginCallMargin = 23;       //	Margin Call 保證金

  optional bool isPdt = 24;				//是否PDT賬戶,僅moomoo證券(美國)賬戶適用
  optional string pdtSeq = 25;			//剩餘日內交易次數,僅被標記為 PDT 的moomoo證券(美國)賬戶適用
  optional double beginningDTBP = 26;		//初始日內交易購買力,僅被標記為 PDT 的moomoo證券(美國)賬戶適用
  optional double remainingDTBP = 27;		//剩餘日內交易購買力,僅被標記為 PDT 的moomoo證券(美國)賬戶適用
  optional double dtCallAmount = 28;		//日內交易待繳金額,僅被標記為 PDT 的moomoo證券(美國)賬戶適用
  optional int32 dtStatus = 29;				//日內交易限制情況,取值見 DTStatus。僅被標記為 PDT 的moomoo證券(美國)賬戶適用
  
  optional double securitiesAssets = 30; // 證券資產淨值
  optional double fundAssets = 31; // 基金資產淨值
  optional double bondAssets = 32; // 債券資產淨值

  repeated AccMarketInfo marketInfoList = 33; //分市場資產資訊
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

# 賬戶持倉

Position

message Position
{
    required uint64 positionID = 1;     //持倉 ID,一條持倉的唯一標識
    required int32 positionSide = 2;    //持倉方向,參見 PositionSide 的枚舉定義
    required string code = 3;           //代碼
    required string name = 4;           //名稱
    required double qty = 5;            //持有數量,2位精度,期權單位是"張",下同
    required double canSellQty = 6;     //可用數量,是指持有的可平倉的數量。可用數量=持有數量-凍結數量。期權和期貨的單位是“張”。
    required double price = 7;          //市價,3位精度,期貨為2位精度
    optional double costPrice = 8;      //攤薄成本價(證券賬戶),平均開倉價(期貨賬戶)。證券無精度限制,期貨為2位精度,如果沒傳,代表此時此值無效
    required double val = 9;            //市值,3位精度, 期貨此欄位值為0
    required double plVal = 10;         //盈虧金額,3位精度,期貨為2位精度
    optional double plRatio = 11;       //盈虧百分比(平均成本價模式),無精度限制,如果沒傳,代表此時此值無效
    optional int32 secMarket = 12;      //證券所屬市場,參見 TrdSecMarket 的枚舉定義
    
	//以下是此持倉今日統計
    optional double td_plVal = 21;      //今日盈虧金額,3位精度,下同, 期貨為2位精度
    optional double td_trdVal = 22;     //今日交易額,期貨不適用
    optional double td_buyVal = 23;     //今日買入總額,期貨不適用
    optional double td_buyQty = 24;     //今日買入總量,期貨不適用
    optional double td_sellVal = 25;    //今日賣出總額,期貨不適用
    optional double td_sellQty = 26;    //今日賣出總量,期貨不適用

    optional double unrealizedPL = 28;       //未實現盈虧(僅期貨賬戶適用)
    optional double realizedPL = 29;         //已實現盈虧(僅期貨賬戶適用)	
    optional int32 currency = 30;        // 貨幣類型,取值參考 Currency
    optional int32 trdMarket = 31;  //交易市場, 參見 TrdMarket 的枚舉定義

    optional double dilutedCostPrice = 32;      //攤薄成本價,僅支援證券賬戶使用
    optional double averageCostPrice = 33;      //平均成本價,模擬交易證券賬戶不適用
    optional double averagePlRatio = 34;        //盈虧百分比(平均成本價模式),無精度限制,如果沒傳,代表此時此值無效
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

# 訂單

Order

message Order
{
    required int32 trdSide = 1; //交易方向, 參見 TrdSide 的枚舉定義
    required int32 orderType = 2; //訂單類型, 參見 OrderType 的枚舉定義
    required int32 orderStatus = 3; //訂單狀態, 參見 OrderStatus 的枚舉定義
    required uint64 orderID = 4; //訂單號
    required string orderIDEx = 5; //擴展訂單號(僅查問題時備用)
    required string code = 6; //代碼
    required string name = 7; //名稱
    required double qty = 8; //訂單數量,2位精度,期權單位是"張"
    optional double price = 9; //訂單價格,3位精度
    required string createTime = 10; //建立時間,嚴格按 YYYY-MM-DD HH:MM:SS 或 YYYY-MM-DD HH:MM:SS.MS 格式傳
    required string updateTime = 11; //最後更新時間,嚴格按 YYYY-MM-DD HH:MM:SS 或 YYYY-MM-DD HH:MM:SS.MS 格式傳
    optional double fillQty = 12; //成交數量,2位精度,期權單位是"張"
    optional double fillAvgPrice = 13; //成交均價,無精度限制
    optional string lastErrMsg = 14; //最後的錯誤描述,如果有錯誤,會有此描述最後一次錯誤的原因,無錯誤為空
    optional int32 secMarket = 15; //證券所屬市場,參見 TrdSecMarket 的枚舉定義
    optional double createTimestamp = 16; //建立時間戳
    optional double updateTimestamp = 17; //最後更新時間戳
    optional string remark = 18; //用戶備註字串,最大長度64字節
    optional double auxPrice = 21; //觸發價格
    optional int32 trailType = 22; //追蹤類型, 參見Trd_Common.TrailType的枚舉定義
    optional double trailValue = 23; //追蹤金額/百分比
    optional double trailSpread = 24; //指定價差
    optional int32 currency = 25;        // 貨幣類型,取值參考 Currency
    optional int32 trdMarket = 26;  //交易市場, 參見TrdMarket的枚舉定義
    optional int32 session = 27; //美股訂單時段, 參見Common.Session的枚舉定義
    optional int32 jpAccType = 28; //JP子賬戶類型,取值見 TrdSubAccType
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

# 訂單費用條目

OrderFeeItem

message OrderFeeItem
{
    optional string title = 1; //費用名字
    optional double value = 2; //費用金額
}
1
2
3
4
5

# 訂單費用

OrderFee

message OrderFee
{
    required string orderIDEx = 1; //擴展訂單號
    optional double feeAmount = 2; //費用總額
    repeated OrderFeeItem feeList = 3; //費用明細
}
1
2
3
4
5
6

# 成交

OrderFill

message OrderFill
{
	required int32 trdSide = 1; //交易方向, 參見 TrdSide 的枚舉定義
    required uint64 fillID = 2; //成交號
    required string fillIDEx = 3; //擴展成交號(僅查問題時備用)
    optional uint64 orderID = 4; //訂單號
    optional string orderIDEx = 5; //擴展訂單號(僅查問題時備用)
    required string code = 6; //代碼
    required string name = 7; //名稱
    required double qty = 8; //成交數量,2位精度,期權單位是"張"
    required double price = 9; //成交價格,3位精度
    required string createTime = 10; //建立時間(成交時間),嚴格按 YYYY-MM-DD HH:MM:SS 或 YYYY-MM-DD HH:MM:SS.MS 格式傳
    optional int32 counterBrokerID = 11; //對手經紀號,港股有效
    optional string counterBrokerName = 12; //對手經紀名稱,港股有效
    optional int32 secMarket = 13; //證券所屬市場,參見 TrdSecMarket 的枚舉定義
    optional double createTimestamp = 14; //建立時間戳
    optional double updateTimestamp = 15; //最後更新時間戳
    optional int32 status = 16; //成交狀態, 參見 OrderFillStatus 的枚舉定義
    optional int32 trdMarket = 17;  //交易市場, 參見TrdMarket的枚舉定義
    optional int32 jpAccType = 18; //JP子賬戶類型,取值見 TrdSubAccType
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

# 最大可交易數量

MaxTrdQtys

message MaxTrdQtys
{
	//因目前伺服器實現的問題,賣空需要先賣掉多頭持倉才能再賣空,是分開兩步賣的,買回來同樣是逆向兩步;而看多的買是可以現金加融資一起一步買的,請注意這個差異
	required double maxCashBuy = 1;             //現金可買(期權的單位是“張”,期貨賬戶不適用)
    optional double maxCashAndMarginBuy = 2;    //最大可買(期權的單位是“張”,期貨賬戶不適用)
    required double maxPositionSell = 3;        //持倉可賣(期權的單位是“張”)
    optional double maxSellShort = 4;           //可賣空(期權的單位是“張”,期貨賬戶不適用)
    optional double maxBuyBack = 5;             //平倉需買入(當持有淨短倉時,必須先買回空頭持倉的股數,才能再繼續買多。期貨、期權的單位是“張”)
    optional double longRequiredIM = 6;         //買 1 張合約所帶來的初始保證金變動。僅期貨和期權適用。無持倉時,返回 買入 1 張的初始保證金佔用(正數)。有長倉時,返回 買入1 張的初始保證金佔用(正數)。有短倉時,返回 買回 1 張的初始保證金釋放(負數)。
    optional double shortRequiredIM = 7;        //賣 1 張合約所帶來的初始保證金變動。僅期貨和期權適用。無持倉時,返回 賣空 1 張的初始保證金佔用(正數)。 有長倉時,返回賣出1 張的初始保證金佔用(正數)。有短倉時,返回 賣空1 張的初始保證金釋放(正數)。
}
1
2
3
4
5
6
7
8
9
10
11

# 現金流水數據

FlowSummaryInfo

message FlowSummaryInfo
{
	optional string clearingDate = 1; //清算日期
	optional string settlementDate = 2; //結算日期
	optional int32 currency = 3; //幣種
	optional string cashFlowType = 4; //現金流類型
	optional int32 cashFlowDirection = 5; //現金流方向 TrdCashFlowDirection
	optional double cashFlowAmount = 6; //金額
	optional string cashFlowRemark = 7; //備註
	optional uint64 cashFlowID = 8; //現金流 ID
}
1
2
3
4
5
6
7
8
9
10
11

# 過濾條件

TrdFilterConditions

message TrdFilterConditions
{
  repeated string codeList = 1; //代碼過濾,只返回包含這些代碼的數據,沒傳不過濾
  repeated uint64 idList = 2; //ID 主鍵過濾,只返回包含這些 ID 的數據,沒傳不過濾,訂單是 orderID、成交是 fillID、持倉是 positionID
  optional string beginTime = 3; //開始時間,嚴格按 YYYY-MM-DD HH:MM:SS 或 YYYY-MM-DD HH:MM:SS.MS 格式傳,對持倉無效,拉歷史數據必須填
  optional string endTime = 4; //結束時間,嚴格按 YYYY-MM-DD HH:MM:SS 或 YYYY-MM-DD HH:MM:SS.MS 格式傳,對持倉無效,拉歷史數據必須填
  repeated string orderIDExList = 5; // 伺服器訂單ID列表,可以用來替代orderID列表,二選一
  optional int32 filterMarket = 6; //指定交易市場, 參見TrdMarket的枚舉定義
}
1
2
3
4
5
6
7
8
9