ഇൻസ്റ്റിറ്റ്യൂഷണൽ 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 ഓർഡറുകളിലുടനീളമുള്ള തത്സമയ ഏകീകൃത ExecutionReport (35=8) സ്ട്രീം, 797=Y, 9406=Y എന്നിവ ഉപയോഗിച്ച് ടാഗ് ചെയ്തിരിക്കുന്നു | റീഡ്-ഒൺലി നിർബന്ധിതം (ഓർഡറുകളെ 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 New, 20=3 Status) |
| FIX 4.4 | 8=FIX.4.4 | ഒന്നുമില്ല | ഒന്നുമില്ല | 150=F (Trade) w/ 39=1/2 | വിലക്കിയിരിക്കുന്നു (35=3, 371=20, 373=2 വഴി നിരസിക്കപ്പെട്ടു) |
| FIX 5.0 | 8=FIXT.1.1 | 1137=7 | 1128=7 | 150=F (Trade) w/ 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) w/ 39=1/2 | വിലക്കിയിരിക്കുന്നു (35=3, 371=20, 373=2 വഴി നിരസിക്കപ്പെട്ടു) |
2. സെഷൻ മാനേജ്മെന്റും HMAC-SHA256 ലോഗോണും (35=A)
നിങ്ങളുടെ GaiaEx API Key (Tag 553), API Secret (Tag 554), കൂടാതെ RawData (Tag 96)-ലെ ചെറിയ അക്ഷരങ്ങളിലുള്ള ഹെക്സ് HMAC-SHA256 ഒപ്പ് എന്നിവ ഉപയോഗിച്ച് ആധികാരികത പരിശോധിക്കുന്ന ഒരു Logon (35=A) ഫ്രെയിമോടെയാണ് ഓരോ FIX സെഷനും ആരംഭിക്കുന്നത്.
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 = None / 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) ആയി തിരിച്ചയക്കുന്നു |
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=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/സെക്കൻഡ്), 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