ادارہ جاتی 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تصدیق شدہ غیر مطابقت پذیر (async) Python WebSocket + REST ایگزیکیوشن ٹیمپلیٹس کے ساتھ Google Antigravity (agy) اور Gemini ایجنٹ کی تفصیلات۔
llms.txtتمام GaiaEx دستاویزاتی صفحات، OpenAPI 3.0 اسکیمہ، اور Postman مجموعہ کا سنگل-URL مشین ریڈ ایبل انڈیکس۔
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 کے ساتھ کنفیگر کریں۔
| گیٹ وے سیشن کی قسم | پورٹ | معاونت یافتہ ورژنز | صلاحیتیں | رسائی کی پالیسی |
|---|---|---|---|---|
| Order Management (OE) | 9878 | FIX.4.2, FIX.4.4, FIX.5.0, FIX.5.2 | Order entry (35=D), Cancel (35=F), Amend (35=G), Mass Cancel (35=q), Order Status (35=H), Positions (35=AN), Rate Limits (35=XLQ), Instruments (35=x) | Read + Trade API Key |
| Drop Copy (DC) | 9878 | FIX.4.2, FIX.4.4, FIX.5.0, FIX.5.2 | تمام FIX اور REST/HTTP آرڈرز پر 797=Y اور 9406=Y کے ساتھ ٹیگ شدہ ریئل ٹائم یکجا شدہ ExecutionReport (35=8) اسٹریم | Read-Only لاگو ہے (35=j آرڈرز مسترد کرتا ہے) |
| Market Data (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) | Read-Only لاگو ہے (35=j آرڈرز مسترد کرتا ہے) |
ورژن نیگوشیئشن اور وائر رولز
| FIX ورژن | BeginString (8) | لاگ آن ٹیگ (35=A) | ایپ ہیڈر ٹیگ | ٹریڈ ExecType (150) | ExecTransType (20) قاعدہ |
|---|---|---|---|---|---|
| FIX 4.2 | 8=FIX.4.2 | کوئی نہیں | کوئی نہیں | 150=1 (جزوی), 150=2 (Fill) | لازمی (20=0 نیا, 20=3 اسٹیٹس) |
| FIX 4.4 | 8=FIX.4.4 | کوئی نہیں | کوئی نہیں | 150=F (Trade) بمع 39=1/2 | ممنوع (35=3, 371=20, 373=2 کے ذریعے مسترد) |
| FIX 5.0 | 8=FIXT.1.1 | 1137=7 | 1128=7 | 150=F (Trade) بمع 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 (Trade) بمع 39=1/2 | ممنوع (35=3, 371=20, 373=2 کے ذریعے مسترد) |
2. سیشن مینجمنٹ اور HMAC-SHA256 لاگ آن (35=A)
ہر FIX سیشن کا آغاز ایک Logon (35=A) فریم سے ہوتا ہے جس کی تصدیق آپ کی GaiaEx API Key (Tag 553)، API Secret (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()| ٹیگ | فیلڈ کا نام | ضروری | تفصیل |
|---|---|---|---|
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 | صرف پڑھنے کے لیے (read-only) Drop Copy سیشن رجسٹر کرنے کے لیے 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)بھیجتا ہے، تو گیٹ وے تمام ایپلیکیشن پیغامات (بشمول Drop Copy35=8رپورٹس) کو43=Yاور122=OrigSendingTimeکے ساتھ دوبارہ چلاتا ہے، اور ایڈمنسٹریٹو فریمز کوSequenceReset-GapFill (35=4, 123=Y)میں یکجا کر دیتا ہے۔ - منقطع ہونے پر خودکار منسوخی (CoD): جب کوئی Order Management سیشن منقطع ہوتا ہے، تو اس سیشن پر لگائے گئے تمام اوپن ریسٹنگ آرڈرز (
OrdStatus 39=0) خود بخود منسوخ (150=4, 39=4, 103=3020) ہو جاتے ہیں اور کسی بھی فعال Drop Copy سیشن پر ریئل ٹائم میں براڈکاسٹ کر دیے جاتے ہیں۔
3. آرڈر انٹری، ترمیم، منسوخی اور انکوائری (35=D, G, F, q, H, AN, XLQ)
NewOrderSingle (35=D)
| ٹیگ | فیلڈ کا نام | ضروری | معاونت یافتہ اقدار اور نوٹس |
|---|---|---|---|
11 | ClOrdID | Y | کلائنٹ کی طرف سے تفویض کردہ منفرد آرڈر شناخت کنندہ (زیادہ سے زیادہ 31 حروف) |
1 | Account | N | سیلف کسٹڈی والٹ ایڈریس (0x...) یا ذیلی اکاؤنٹ شناخت کنندہ |
50 | SenderSubID | N | ٹریڈر یا اسٹریٹجی ID؛ 35=8 پر TargetSubID (57) میں واپس بھیجی جاتی ہے |
55 | Symbol | Y | USDC پرپس (BTCUSDC, ETHUSDC, SOLUSDC), USDT پرپس (BTCUSDT, ETHUSDT), RWA پرپس (xyz:GOLD / GOLDUSDC, xyz:NVDA, xyz:TSLA) |
54 | Side | Y | 1 = خریدیں (Buy), 2 = فروخت کریں (Sell) |
38 | OrderQty | Y | بنیادی اثاثے میں آرڈر کی مقدار (4 اعشاریائی فریکشنل درستگی کو سپورٹ کرتا ہے، جیسے 0.0050) |
40 | OrdType | Y | 1 = Market, 2 = Limit, 4 = Stop Limit (99=StopPx درکار ہے), p = Post-Only (یا 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=9 (434=2) کے ساتھ 35=8 |
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 (آرڈر اسٹیٹس) یا 150=8, 103=5 (نامعلوم آرڈر) کے ساتھ 35=8 |
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/s) اور 25005=CONNECTIONS (20/اکاؤنٹ) کے ساتھ LimitResponse (35=XLR) |
4. ریئل ٹائم ڈراپ کاپی اور مطابقت پذیری (797=Y / 9406=Y)
Drop Copy پرائم بروکرز، رسک انجنوں، اور بیک آفس مفاہمتی نظاموں کو FIX Order Entry سیشنز اور REST/HTTP API آرڈرز دونوں کے تمام ExecutionReport (35=8) ایونٹس کی ایک ریئل ٹائم، صرف پڑھنے کے لیے (read-only) اسٹریم فراہم کرتا ہے۔
- عالمگیر سبسکرپشن فلیگز: پورٹ
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) درج ہوتا ہے۔ - سخت Read-Only تحفظ: 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