GaiaExGaiaEx
API

機構級 FIX API (4.2 / 4.4 / 5.0 / 5.2)

機構級 FIX 4.2、4.4、5.0 與 5.2 連線:報單介面 (:9878)、即時 Drop Copy (797=Y / 9406=Y)、市場數據 (:9879) 及 QuickFIX XML 規範架構。

已就緒 AI AGENT為 Claude Code、OpenAI Codex 與 Antigravity (`agy`) 配備官方 GaiaEx 技能
CLAUDE CODESKILL.md
Claude SKILL.md

隨插即用的 Claude Code 技能,具備 HMAC-SHA256 簽名、/fapi/v1 與 /fapi/v2 模式,以及機密遮蔽防護機制。

原始資料 ↗
OPENAI CODEXAGENTS.md
Codex AGENTS.md

適用於 OpenAI Codex CLI 的隨插即用儲存庫 AGENTS.md — 包含報價精度跳動規則、速率限制配額與自託管邊界設定。

原始資料 ↗
ANTIGRAVITYAGY.md
Antigravity AGY.md

Google Antigravity (agy) 與 Gemini 代理規範,內含經認證的非同步 Python WebSocket + REST 執行範本。

原始資料 ↗
UNIVERSAL LLMllms.txt
/llms.txt Index

單一 URL 機器可讀索引,包含所有 GaiaEx 文檔頁面、OpenAPI 3.0 規範架構與 Postman 集合。

原始資料 ↗

1. 架構與多版本概覽

GaiaEx 原生 C++26 機構級 FIX 閘道透過持久 TCP/TLS 連線提供確定性、超低延遲的訂單輸入 (Order Entry)、即時 Drop Copy、部位與訂單查詢以及 L1/L2 市場數據串流。

下載 QuickFIX / OnixS XML 架構: /fix-dictionary.xml — 相容於 QuickFIX (C++/Python/Go)、QuickFIX/J、OnixS、OneZero 及機構級 OMS 平台。請為您的客戶端引擎配置 ValidateUserDefinedFields=N 與 ValidateFieldsOutOfOrder=N 以確保向前相容性。

閘道連線類型連接埠支援版本功能存取政策
訂單管理 (OE)9878FIX.4.2, FIX.4.4, FIX.5.0, FIX.5.2訂單輸入 (35=D)、取消 (35=F)、改單 (35=G)、批次取消 (35=q)、訂單狀態 (35=H)、部位 (35=AN)、速率限制 (35=XLQ)、交易標的 (35=x)讀取 + 交易 API 金鑰
Drop Copy (DC)9878FIX.4.2, FIX.4.4, FIX.5.0, FIX.5.2跨所有 FIX 與 REST/HTTP 訂單即時匯總 ExecutionReport (35=8) 串流,並標記 797=Y 與 9406=Y強制唯讀 (35=j 拒絕訂單)
市場數據 (MD)9879FIX.4.2, FIX.4.4, FIX.5.0, FIX.5.2即時 L1/L2 Snapshot (35=W)、IncrementalRefresh (35=X) 及 MarketDataRequestReject (35=Y)強制唯讀 (35=j 拒絕訂單)

版本協商與傳輸規則

FIX 版本BeginString (8)登入標籤 (35=A)應用標頭標籤交易 ExecType (150)ExecTransType (20) 規則
FIX 4.28=FIX.4.2無無150=1 (部分成交), 150=2 (完全成交)強制 (20=0 新增, 20=3 狀態)
FIX 4.48=FIX.4.4無無150=F (交易) 附帶 39=1/2禁止 (透過 35=3, 371=20, 373=2 拒絕)
FIX 5.08=FIXT.1.11137=71128=7150=F (交易) 附帶 39=1/2禁止 (透過 35=3, 371=20, 373=2 拒絕)
FIX 5.2 (5.0 SP2)8=FIXT.1.11137=91128=9150=F (交易) 附帶 39=1/2禁止 (透過 35=3, 371=20, 373=2 拒絕)

2. 連線管理與 HMAC-SHA256 登入 (35=A)

每個 FIX 連線均以 Logon (35=A) 訊框開始,透過您的 GaiaEx API 金鑰 (Tag 553)、API 密鑰 (Tag 554) 以及位於 RawData (Tag 96) 的小寫十六進位 HMAC-SHA256 簽名進行驗證。

import hmac, hashlib

def sign_fix_logon(api_secret: str, sending_time: str, seq_num: int, sender_comp_id: str, target_comp_id: str) -> str:
    # Canonical prehash string: SendingTime(52) | MsgType(35) | MsgSeqNum(34) | SenderCompID(49) | TargetCompID(56)
    payload = f"{sending_time}|A|{seq_num}|{sender_comp_id}|{target_comp_id}"
    return hmac.new(api_secret.encode("utf-8"), payload.encode("utf-8"), hashlib.sha256).hexdigest()
標籤欄位名稱必填說明
98EncryptMethod是0 = 無 / TLS 傳輸加密
108HeartBtInt是心跳間隔 (秒) (建議:30)
141ResetSeqNumFlag否Y = 重設序號為 1;N = 恢復日內序號狀態
553Username是GaiaEx API 金鑰
554Password是GaiaEx API 密鑰
96RawData是針對 52|A|34|49|56 計算的 64 位元十六進位 HMAC-SHA256 簽名
797 / 9406CopyMsgIndicator / DropCopyFlag否設定 797=Y、9406=Y 或 50=DROPCOPY 以註冊唯讀 Drop Copy 連線
1409SessionStatus輸出於 35=A / 35=5 中返回:0=活躍, 4=登出完成, 5=認證失敗, 6=序號過低, 101=100M 序號上限

序號缺口恢復 (35=2 & 35=4) 與中斷自動撤單 (CoD)

  • 傳入缺口檢測:若傳入訊息帶有 MsgSeqNum (34) > ExpectedSeqNum,閘道將立即發出 ResendRequest (35=2, 7=ExpectedSeqNum, 16=0)。若 MsgSeqNum (34) < ExpectedSeqNum 且未帶有 PossDupFlag (43=Y),閘道將發出 Logout (35=5, 1409=6) 並關閉通訊端。
  • 傳出重播:當客戶端發送 ResendRequest (35=2) 時,閘道會以 43=Y 與 122=OrigSendingTime 重播所有應用訊息(包括 Drop Copy 35=8 回報),並將管理訊框合併為 SequenceReset-GapFill (35=4, 123=Y)。
  • 中斷自動撤單 (CoD):當訂單管理連線中斷時,該連線建立的所有未成交掛單 (OrdStatus 39=0) 都會自動撤銷 (150=4, 39=4, 103=3020),並即時廣播至任何活躍的 Drop Copy 連線。

3. 訂單輸入、改單、撤單與查詢 (35=D, G, F, q, H, AN, XLQ)

NewOrderSingle (35=D)

標籤欄位名稱必填支援值與備註
11ClOrdID是客戶端指定的唯一訂單識別碼 (最多 31 個字元)
1Account否自主保管金庫地址 (0x...) 或子帳戶識別碼
50SenderSubID否交易員或策略 ID;會在 35=8 的 TargetSubID (57) 中回顯
55Symbol是USDC 永續合約 (BTCUSDC, ETHUSDC, SOLUSDC)、USDT 永續合約 (BTCUSDT, ETHUSDT)、RWA 永續合約 (xyz:GOLD / GOLDUSDC, xyz:NVDA, xyz:TSLA)
54Side是1 = 買入, 2 = 賣出
38OrderQty是以基礎資產計價的訂單數量 (支援 4 位小數精準度,例如 0.0050)
40OrdType是1 = 市價單, 2 = 限價單, 4 = 停損限價單 (需填寫 99=StopPx), p = 只做 Maker (Post-Only) (或 18=6)
44Price條件限價 (對 40=2、40=4、40=p 為必填)
59TimeInForce否1 = GTC (預設), 3 = IOC, 4 = FOK, 5 = GTX
544CashMargin否1 = 現貨 (預設), 2 = 保證金開倉, 3 = 保證金平倉

改單 (35=G)、撤單 (35=F)、批次撤單 (35=q)、狀態 (35=H)、部位 (35=AN) 與限制 (35=XLQ)

MsgType訊息名稱關鍵請求標籤閘道回應
35=GOrderCancelReplaceRequest11=ClOrdID, 41=OrigClOrdID, 55=Symbol, 54=Side, 38=OrderQty, 44=Price35=8 帶有 150=5, 39=5 (已替換) 或 35=9 (434=2)
35=FOrderCancelRequest11=ClOrdID, 41=OrigClOrdID, 55=Symbol, 54=Side兩步驟 35=8:150=6, 39=6 (待撤銷) → 150=4, 39=4 (已撤銷),或 35=9 (434=1)
35=qOrderMassCancelRequest11=ClOrdID, 530=7 (撤銷所有訂單)35=r (1369=MassActionReportID, 531=7) + 每個撤銷訂單對應一筆 35=8 (150=4, 39=4)
35=HOrderStatusRequest11=ClOrdID (或 37=OrderID), 790=OrdStatusReqID35=8 帶有 150=I (訂單狀態) 或 150=8, 103=5 (未知訂單)
35=ANRequestForPositions710=PosReqID, 724=0 (部位), 1=Account, 55=SymbolPositionReport (35=AP) 帶有 721=PosMaintRptID, 728=0, 704=LongQty, 705=ShortQty, 730=SettlePrice
35=XLQLimitQuery25003=ReqIDLimitResponse (35=XLR) 帶有 25005=ORDERS (500/秒) 與 25005=CONNECTIONS (20/帳戶)

4. 即時 Drop Copy 與對帳 (797=Y / 9406=Y)

Drop Copy 為主經紀商、風控引擎和後台對帳系統提供跨 FIX 訂單輸入連線及 REST/HTTP API 訂單的所有 ExecutionReport (35=8) 事件的即時唯讀串流。

  • 通用訂閱標誌:連線至連接埠 9878 並發送帶有 797=Y (CopyMsgIndicator)、9406=Y (DropCopyFlag) 或 50=DROPCOPY (SenderSubID) 的 Logon (35=A)。
  • 雙標籤傳出戳記:每個 Drop Copy 35=8 訊框均攜帶 57=DROPCOPY、797=Y 和 9406=Y,以及完整的費用/返還明細 (381=GrossTradeAmt, 1057=AggressorIndicator, 136=1|137=MiscFeeAmt|138=MiscFeeCurr|139=4, 20000=TradeFeeRebateAmt)。
  • 嚴格唯讀保護:在 Drop Copy 連線上提交 35=D、35=F、35=G 或 35=q 的任何嘗試都將立即透過 BusinessMessageReject (35=j, 380=4) 拒絕。
  • 序號缺口恢復:傳出的 Drop Copy 回報會持久儲存在連線序號庫中,並可透過帶有 PossDupFlag (43=Y) 的 ResendRequest (35=2) 進行重播。

5. 市場數據 (35=V, W, X, Y) 與參考數據 (35=x, y, h)

連線至連接埠 9879 以獲取專屬市場數據串流,或透過 SecurityListRequest (35=x) 查詢交易標的規格。

  • MarketDataRequest (35=V):發送 262=MDReqID、263=1 (快照 + 更新) 或 0 (快照)、264=1 (最優報價) 或 20 (完整深度),以及 55=Symbol。返回 MarketDataSnapshotFullRefresh (35=W) 及後續的 MarketDataIncrementalRefresh (35=X)。未知交易對將返回 MarketDataRequestReject (35=Y, 281=0)。
  • SecurityListRequest (35=x):發送 320=SecurityReqID 與 559=0 (在 55 中指定單一交易對) 或 559=4 (所有交易標的)。返回帶有跳動點 (969=MinPriceIncrement)、最小/最大委託數量 (8000/8001) 及小數精準度 (8002/8003) 的 SecurityList (35=y)。
  • TradingSessionStatus (35=h):返回 340=2 (全年無休開市 24x7x365) 或 340=1 (暫停交易)。

QuickFIX 客戶端配置範本 (gaiaex_fix.cfg)

[DEFAULT]
ConnectionType=initiator
ReconnectInterval=5
FileStorePath=./store
FileLogPath=./log
StartTime=00:00:00
EndTime=00:00:00
UseDataDictionary=Y
DataDictionary=./fix-dictionary.xml
ValidateUserDefinedFields=N
ValidateFieldsOutOfOrder=N
HeartBtInt=30

[SESSION]
BeginString=FIX.4.4
SenderCompID=INST_CLIENT_OE
TargetCompID=GAIAEX_PROD
SocketConnectHost=10.10.0.51
SocketConnectPort=9878
ResetOnLogon=N

[SESSION]
BeginString=FIX.4.4
SenderCompID=INST_CLIENT_DC
TargetCompID=GAIAEX_PROD
SenderSubID=DROPCOPY
SocketConnectHost=10.10.0.51
SocketConnectPort=9878
ResetOnLogon=N