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 エージェント対応公式 GaiaEx スキルを Claude Code、OpenAI Codex、Antigravity(`agy`)に組み込む
CLAUDE CODESKILL.md
Claude SKILL.md

HMAC-SHA256 署名、/fapi/v1 & /fapi/v2 スキーマ、秘密情報マスキングのガードレールを備えた Claude Code 向けドロップインスキル。

生データ ↗
OPENAI CODEXAGENTS.md
Codex AGENTS.md

OpenAI Codex CLI 向けのドロップインリポジトリ AGENTS.md — ティックサイズルール、レート制限バジェット、セルフカストディ境界を定義。

生データ ↗
ANTIGRAVITYAGY.md
Antigravity AGY.md

検証済み非同期 Python WebSocket + REST 実行テンプレートを備えた Google Antigravity (agy) & Gemini エージェント仕様。

生データ ↗
UNIVERSAL LLMllms.txt
/llms.txt Index

全 GaiaEx ドキュメントページ、OpenAPI 3.0 スキーマ、Postman コレクションの機械可読な単一 URL インデックス。

生データ ↗

1. アーキテクチャと複数バージョンの概要

GaiaEx ネイティブ C++26 機関投資家向け FIX ゲートウェイは、永続的な TCP/TLS セッションを介して、決定論的かつ超低レイテンシの注文発注(Order Entry)、リアルタイムドロップコピー、ポジションおよび注文照会、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)Read + Trade API キー
ドロップコピー (DC)9878FIX.4.2、FIX.4.4、FIX.5.0、FIX.5.2すべての FIX および REST/HTTP 注文を対象とし、797=Y および 9406=Y がタグ付けされたリアルタイム統合 ExecutionReport (35=8) ストリーム読み取り専用の強制 (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)App ヘッダータグ約定 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 (約定) w/ 39=1/2禁止 (35=3, 371=20, 373=2 により拒否)
FIX 5.08=FIXT.1.11137=71128=7150=F (約定) w/ 39=1/2禁止 (35=3, 371=20, 373=2 により拒否)
FIX 5.2 (5.0 SP2)8=FIXT.1.11137=91128=9150=F (約定) w/ 39=1/2禁止 (35=3, 371=20, 373=2 により拒否)

2. セッション管理と HMAC-SHA256 ログオン (35=A)

すべての FIX セッションは、GaiaEx API キー (Tag 553)、API シークレット (Tag 554)、および RawData (Tag 96) 内の小文字の 16 進数 HMAC-SHA256 署名によって認証された Logon (35=A) フレームから始まります。

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()
タグフィールド名必須説明
98EncryptMethodY0 = なし / TLS トランスポート暗号化
108HeartBtIntYハートビート間隔(秒単位、推奨: 30)
141ResetSeqNumFlagNY = シーケンス番号を 1 にリセット、N = 日中のシーケンス状態を再開
553UsernameYGaiaEx API キー
554PasswordYGaiaEx API シークレット
96RawDataY52|A|34|49|56 に対する 64 文字の 16 進数 HMAC-SHA256 署名
797 / 9406CopyMsgIndicator / DropCopyFlagN読み取り専用ドロップコピーセッションを登録するには 797=Y、9406=Y、または 50=DROPCOPY を設定
1409SessionStatus出力35=A / 35=5 で返却: 0=アクティブ、4=ログアウト完了、5=認証失敗、6=シーケンスが低すぎる、101=1 億シーケンス上限

ギャップリカバリ (35=2 & 35=4) と切断時キャンセル (CoD)

  • インバウンドギャップ検出: 受信メッセージに MsgSeqNum (34) > ExpectedSeqNum が含まれている場合、ゲートウェイは直ちに ResendRequest (35=2, 7=ExpectedSeqNum, 16=0) を送信します。PossDupFlag (43=Y) なしで MsgSeqNum (34) < ExpectedSeqNum が発生した場合、ゲートウェイは Logout (35=5, 1409=6) を送信してソケットを切断します。
  • アウトバウンド再生: クライアントが ResendRequest (35=2) を送信すると、ゲートウェイはすべてのアナウンスメッセージ(ドロップコピーの 35=8 レポートを含む)を 43=Y および 122=OrigSendingTime と共に再生し、管理フレームを SequenceReset-GapFill (35=4, 123=Y) に統合します。
  • 自動切断時キャンセル (CoD): 注文管理セッションが切断されると、そのセッションで発注されたすべてのオープン中の未約定注文 (OrdStatus 39=0) は自動的にキャンセルされ (150=4, 39=4, 103=3020)、アクティブなドロップコピーセッションにリアルタイムでブロードキャストされます。

3. 注文発注、訂正、キャンセルおよび照会 (35=D, G, F, q, H, AN, XLQ)

NewOrderSingle (35=D)

タグフィールド名必須対応値と注意事項
11ClOrdIDYクライアントが割り当てた一意の注文識別子(最大 31 文字)
1AccountNセルフカストディ Vault アドレス (0x...) またはサブアカウント識別子
50SenderSubIDNトレーダーまたは戦略 ID。35=8 の TargetSubID (57) でそのままエコー返却
55SymbolYUSDC パーペチュアル (BTCUSDC、ETHUSDC、SOLUSDC)、USDT パーペチュアル (BTCUSDT、ETHUSDT)、RWA パーペチュアル (xyz:GOLD / GOLDUSDC、xyz:NVDA、xyz:TSLA)
54SideY1 = 買い、2 = 売り
38OrderQtyY原資産単位の注文数量(小数点以下 4 桁の端数精度に対応、例: 0.0050)
40OrdTypeY1 = 成行、2 = 指値、4 = ストップ指値 (99=StopPx が必要)、p = ポストオンリー (または 18=6)
44PriceC指値価格 (40=2、40=4、40=p で必須)
59TimeInForceN1 = GTC (デフォルト)、3 = IOC、4 = FOK、5 = GTX
544CashMarginN1 = 現物 (デフォルト)、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=Price150=5, 39=5 (訂正完了) または 35=9 (434=2) を含む 35=8
35=FOrderCancelRequest11=ClOrdID、41=OrigClOrdID、55=Symbol、54=Side2 段階の 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) + キャンセルされた注文ごとに 1 つの 35=8 (150=4, 39=4)
35=HOrderStatusRequest11=ClOrdID (または 37=OrderID)、790=OrdStatusReqID150=I (注文ステータス) または 150=8, 103=5 (不明な注文) を含む 35=8
35=ANRequestForPositions710=PosReqID、724=0 (ポジション)、1=Account、55=Symbol721=PosMaintRptID、728=0、704=LongQty、705=ShortQty、730=SettlePrice を含む PositionReport (35=AP)
35=XLQLimitQuery25003=ReqID25005=ORDERS (500/秒) および 25005=CONNECTIONS (20/アカウント) を含む LimitResponse (35=XLR)

4. リアルタイムドロップコピーとリコンサイル (797=Y / 9406=Y)

ドロップコピーは、プライムブローカー、リスク管理エンジン、およびバックオフィスのリコンサイルシステムに対して、FIX 注文発注セッションおよび REST/HTTP API 注文の双方にわたるすべての ExecutionReport (35=8) イベントのリアルタイム読み取り専用ストリームを提供します。

  • ユニバーサル購読フラグ: ポート 9878 に接続し、797=Y (CopyMsgIndicator)、9406=Y (DropCopyFlag)、または 50=DROPCOPY (SenderSubID) を指定して Logon (35=A) を送信します。
  • デュアルタグアウトバウンドスタンプ: すべてのドロップコピー 35=8 フレームには、完全な手数料/リベートの内訳 (381=GrossTradeAmt、1057=AggressorIndicator、136=1|137=MiscFeeAmt|138=MiscFeeCurr|139=4、20000=TradeFeeRebateAmt) に加えて、57=DROPCOPY、797=Y、および 9406=Y が付与されます。
  • 厳格な読み取り専用保護: ドロップコピーセッションで 35=D、35=F、35=G、または 35=q を送信しようとする試みは、直ちに BusinessMessageReject (35=j, 380=4) によって拒否されます。
  • シーケンスギャップリカバリ: 送信ドロップコピーレポートはセッションシーケンスストアに保持され、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 (24時間365日オープン) または 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