संस्थागत FIX API (4.2 / 4.4 / 5.0 / 5.2)
संस्थागत FIX 4.2, 4.4, 5.0, और 5.2 कनेक्टिविटी: ऑर्डर एंट्री (:9878), रीयल-टाइम ड्रॉप कॉपी (797=Y / 9406=Y), मार्केट डेटा (:9879), और QuickFIX XML स्कीमा।
SKILL.mdHMAC-SHA256 हस्ताक्षर, /fapi/v1 और /fapi/v2 स्कीमा, और गुप्त-संपादन सुरक्षा रेल के साथ ड्रॉप-इन Claude Code स्किल।
AGENTS.mdOpenAI Codex CLI के लिए ड्रॉप-इन रिपॉजिटरी AGENTS.md — टिक-साइज़ नियम, दर-सीमा बजट, और सेल्फ-कस्टडी सीमाएं।
AGY.mdसत्यापित अतुल्यकालिक Python WebSocket + REST निष्पादन टेम्प्लेट के साथ Google Antigravity (agy) और Gemini एजेंट विनिर्देश।
llms.txtसभी GaiaEx दस्तावेज़ीकरण पृष्ठों, OpenAPI 3.0 स्कीमा, और Postman संग्रह का एकल-URL मशीन-पठनीय सूचकांक।
1. आर्किटेक्चर और मल्टी-वर्जन अवलोकन
GaiaEx नेटिव C++26 इंस्टीट्यूशनल FIX गेटवे परसिस्टेंट TCP/TLS सेशन्स पर डिटर्मिनिस्टिक, अल्ट्रा-लो-लेटेंसी ऑर्डर एंट्री, रियल-टाइम ड्रॉप कॉपी, पोज़ीशन और ऑर्डर इन्क्वायरी, और L1/L2 मार्केट डेटा स्ट्रीमिंग प्रदान करता है।
QuickFIX / OnixS XML स्कीमा डाउनलोड करें: /fix-dictionary.xml — QuickFIX (C++/Python/Go), QuickFIX/J, OnixS, OneZero, और इंस्टीट्यूशनल OMS प्लेटफॉर्म्स के साथ संगत। भविष्य की संगतता (फॉरवर्ड कम्पैटिबिलिटी) के लिए अपने क्लाइंट इंजन को ValidateUserDefinedFields=N और ValidateFieldsOutOfOrder=N के साथ कॉन्फ़िगर करें।
| गेटवे सेशन का प्रकार | पोर्ट | समर्थित वर्जन्स | क्षमताएं | एक्सेस नीति |
|---|---|---|---|---|
| ऑर्डर मैनेजमेंट (OE) | 9878 | FIX.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 Key |
| ड्रॉप कॉपी (DC) | 9878 | FIX.4.2, FIX.4.4, FIX.5.0, FIX.5.2 | सभी FIX और REST/HTTP ऑर्डर्स पर 797=Y और 9406=Y के साथ टैग की गई रियल-टाइम समेकित ExecutionReport (35=8) स्ट्रीम | रीड-ओनली अनिवार्य (35=j ऑर्डर्स को अस्वीकार करता है) |
| मार्केट डेटा (MD) | 9879 | FIX.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.2 | 8=FIX.4.2 | कोई नहीं | कोई नहीं | 150=1 (आंशिक), 150=2 (पूर्ण भरण) | अनिवार्य (20=0 नया, 20=3 स्टेटस) |
| FIX 4.4 | 8=FIX.4.4 | कोई नहीं | कोई नहीं | 150=F (ट्रेड) साथ में 39=1/2 | प्रतिबंधित (35=3, 371=20, 373=2 के माध्यम से अस्वीकृत) |
| FIX 5.0 | 8=FIXT.1.1 | 1137=7 | 1128=7 | 150=F (ट्रेड) साथ में 39=1/2 | प्रतिबंधित (35=3, 371=20, 373=2 के माध्यम से अस्वीकृत) |
| FIX 5.2 (5.0 SP2) | 8=FIXT.1.1 | 1137=9 | 1128=9 | 150=F (ट्रेड) साथ में 39=1/2 | प्रतिबंधित (35=3, 371=20, 373=2 के माध्यम से अस्वीकृत) |
2. सेशन मैनेजमेंट और HMAC-SHA256 लॉगऑन (35=A)
प्रत्येक FIX सेशन आपकी GaiaEx API Key (Tag 553), API Secret (Tag 554), और RawData (Tag 96) में लोअरकेस हेक्स 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()| टैग | फ़ील्ड नाम | आवश्यक | विवरण |
|---|---|---|---|
98 | EncryptMethod | Y | 0 = कोई नहीं / TLS ट्रांसपोर्ट एन्क्रिप्शन |
108 | HeartBtInt | Y | हार्टबीट अंतराल सेकंड में (अनुशंसित: 30) |
141 | ResetSeqNumFlag | N | Y = सीक्वेंस नंबर्स को 1 पर रीसेट करें; N = इंट्राडे सीक्वेंस स्थिति को फिर से शुरू करें |
553 | Username | Y | GaiaEx API Key |
554 | Password | Y | GaiaEx API Secret |
96 | RawData | Y | 52|A|34|49|56 पर 64-वर्ण हेक्स HMAC-SHA256 सिग्नेचर |
797 / 9406 | CopyMsgIndicator / DropCopyFlag | N | रीड-ओनली ड्रॉप कॉपी सेशन पंजीकृत करने के लिए 797=Y, 9406=Y, या 50=DROPCOPY सेट करें |
1409 | SessionStatus | Out | 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)उत्सर्जित करता है। यदि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)
| टैग | फ़ील्ड नाम | आवश्यक | समर्थित मान और नोट्स |
|---|---|---|---|
11 | ClOrdID | Y | क्लाइंट द्वारा असाइन किया गया विशिष्ट ऑर्डर पहचानकर्ता (31 वर्णों तक) |
1 | Account | N | सेल्फ-कस्टडी वॉल्ट एड्रेस (0x...) या सब-अकाउंट पहचानकर्ता |
50 | SenderSubID | N | ट्रेडर या रणनीति आईडी; 35=8 पर TargetSubID (57) में वापस प्रतिध्वनित (echoed) |
55 | Symbol | Y | USDC पर्प्स (BTCUSDC, ETHUSDC, SOLUSDC), USDT पर्प्स (BTCUSDT, ETHUSDT), RWA पर्प्स (xyz:GOLD / GOLDUSDC, xyz:NVDA, xyz:TSLA) |
54 | Side | Y | 1 = खरीदें, 2 = बेचें |
38 | OrderQty | Y | बेस एसेट में ऑर्डर की मात्रा (4-दशमलव भिन्नात्मक परिशुद्धता का समर्थन करता है, जैसे 0.0050) |
40 | OrdType | Y | 1 = मार्केट, 2 = लिमिट, 4 = स्टॉप लिमिट (99=StopPx की आवश्यकता है), p = पोस्ट-ओनली (या 18=6) |
44 | Price | C | लिमिट मूल्य (40=2, 40=4, 40=p के लिए आवश्यक) |
59 | TimeInForce | N | 1 = GTC (डिफ़ॉल्ट), 3 = IOC, 4 = FOK, 5 = GTX |
544 | CashMargin | N | 1 = कैश (डिफ़ॉल्ट), 2 = मार्जिन ओपन, 3 = मार्जिन क्लोज़ |
संशोधन (35=G), कैंसल (35=F), मास कैंसल (35=q), स्टेटस (35=H), पोज़ीशन्स (35=AN) और लिमिट्स (35=XLQ)
| MsgType | संदेश का नाम | मुख्य अनुरोध टैग | गेटवे प्रतिक्रिया |
|---|---|---|---|
35=G | OrderCancelReplaceRequest | 11=ClOrdID, 41=OrigClOrdID, 55=Symbol, 54=Side, 38=OrderQty, 44=Price | 150=5, 39=5 (प्रतिस्थापित) के साथ 35=8 या 35=9 (434=2) |
35=F | OrderCancelRequest | 11=ClOrdID, 41=OrigClOrdID, 55=Symbol, 54=Side | दो-चरणीय 35=8: 150=6, 39=6 (लंबित रद्दीकरण) → 150=4, 39=4 (रद्द किया गया), या 35=9 (434=1) |
35=q | OrderMassCancelRequest | 11=ClOrdID, 530=7 (सभी ऑर्डर रद्द करें) | 35=r (1369=MassActionReportID, 531=7) + प्रति रद्द किए गए ऑर्डर पर एक 35=8 (150=4, 39=4) |
35=H | OrderStatusRequest | 11=ClOrdID (या 37=OrderID), 790=OrdStatusReqID | 150=I (ऑर्डर स्थिति) के साथ 35=8 या 150=8, 103=5 (अज्ञात ऑर्डर) |
35=AN | RequestForPositions | 710=PosReqID, 724=0 (पोज़ीशन्स), 1=Account, 55=Symbol | 721=PosMaintRptID, 728=0, 704=LongQty, 705=ShortQty, 730=SettlePrice के साथ PositionReport (35=AP) |
35=XLQ | LimitQuery | 25003=ReqID | 25005=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फ्रेम में57=DROPCOPY,797=Y, और9406=Y, साथ ही पूर्ण शुल्क/छूट का विवरण (381=GrossTradeAmt,1057=AggressorIndicator,136=1|137=MiscFeeAmt|138=MiscFeeCurr|139=4,20000=TradeFeeRebateAmt) शामिल होता है। - सख्त रीड-ओनली सुरक्षा: ड्रॉप कॉपी सेशन पर
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(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