GaiaExGaiaEx
API

Kurumsal FIX API (4.2 / 4.4 / 5.0 / 5.2)

Kurumsal FIX 4.2, 4.4, 5.0 ve 5.2 bağlantısı: Emir Girişi (:9878), Gerçek Zamanlı Drop Copy (797=Y / 9406=Y), Piyasa Verisi (:9879) ve QuickFIX XML şeması.

YAPAY ZEKA AJANI HAZIRClaude Code, OpenAI Codex ve Antigravity (`agy`) Araçlarını Resmi GaiaEx Becerileri ile Donatın
CLAUDE CODESKILL.md
Claude SKILL.md

HMAC-SHA256 imzalama, /fapi/v1 ve /fapi/v2 şemaları ile gizli anahtar gizleme güvenlik önlemlerine sahip kullanıma hazır Claude Code becerisi.

Ham ↗
OPENAI CODEXAGENTS.md
Codex AGENTS.md

OpenAI Codex CLI için doğrudan eklenebilir depo AGENTS.md — kademe boyutu kuralları, hız sınırı bütçeleri ve bireysel saklama sınırları.

Ham ↗
ANTIGRAVITYAGY.md
Antigravity AGY.md

Doğrulanmış asenkron Python WebSocket + REST yürütme şablonlarına sahip Google Antigravity (agy) ve Gemini ajan belirtimi.

Ham ↗
UNIVERSAL LLMllms.txt
/llms.txt Index

Tüm GaiaEx dokümantasyon sayfalarının, OpenAPI 3.0 şemasının ve Postman koleksiyonunun tek URL'li makine tarafından okunabilir dizini.

Ham ↗

1. Mimari ve Çoklu Sürüm Genel Bakışı

GaiaEx Yerel C++26 Kurumsal FIX Ağ Geçidi; kalıcı TCP/TLS oturumları üzerinden deterministik, ultra düşük gecikmeli Emir Girişi, Gerçek Zamanlı Drop Copy, Pozisyon ve Emir Sorgulama ile L1/L2 Piyasa Verisi akışı sağlar.

QuickFIX / OnixS XML Şemasını İndirin: /fix-dictionary.xml — QuickFIX (C++/Python/Go), QuickFIX/J, OnixS, OneZero ve kurumsal OMS platformları ile uyumludur. İleriye dönük uyumluluk için istemci motorunuzu ValidateUserDefinedFields=N ve ValidateFieldsOutOfOrder=N ile yapılandırın.

Ağ Geçidi Oturum TürüBağlantı NoktasıDesteklenen SürümlerYeteneklerErişim Politikası
Emir Yönetimi (OE)9878FIX.4.2, FIX.4.4, FIX.5.0, FIX.5.2Emir girişi (35=D), İptal (35=F), Değiştirme (35=G), Toplu İptal (35=q), Emir Durumu (35=H), Pozisyonlar (35=AN), Hız Limitleri (35=XLQ), Enstrümanlar (35=x)Okuma + İşlem API Anahtarı
Drop Copy (DC)9878FIX.4.2, FIX.4.4, FIX.5.0, FIX.5.2Tüm FIX ve REST/HTTP emirlerinde 797=Y ve 9406=Y ile etiketlenmiş gerçek zamanlı konsolide ExecutionReport (35=8) akışıYalnızca Okuma Zorunlu (35=j emirleri reddeder)
Piyasa Verisi (MD)9879FIX.4.2, FIX.4.4, FIX.5.0, FIX.5.2Gerçek zamanlı L1/L2 Snapshot (35=W), IncrementalRefresh (35=X) ve MarketDataRequestReject (35=Y)Yalnızca Okuma Zorunlu (35=j emirleri reddeder)

Sürüm Müzakeresi ve Hat Kuralları

FIX SürümüBeginString (8)Oturum Açma Etiketi (35=A)Uygulama Başlık Etiketiİşlem ExecType (150)ExecTransType (20) Kuralı
FIX 4.28=FIX.4.2YokYok150=1 (Kısmi), 150=2 (Gerçekleşme)Zorunlu (20=0 Yeni, 20=3 Durum)
FIX 4.48=FIX.4.4YokYok39=1/2 ile 150=F (İşlem)Yasak (35=3, 371=20, 373=2 aracılığıyla reddedilir)
FIX 5.08=FIXT.1.11137=71128=739=1/2 ile 150=F (İşlem)Yasak (35=3, 371=20, 373=2 aracılığıyla reddedilir)
FIX 5.2 (5.0 SP2)8=FIXT.1.11137=91128=939=1/2 ile 150=F (İşlem)Yasak (35=3, 371=20, 373=2 aracılığıyla reddedilir)

2. Oturum Yönetimi ve HMAC-SHA256 ile Oturum Açma (35=A)

Her FIX oturumu, GaiaEx API Anahtarınız (Tag 553), API Gizli Anahtarınız (Tag 554) ve RawData (Tag 96) içindeki küçük harfli onaltılık HMAC-SHA256 imzası ile doğrulanmış bir Logon (35=A) çerçevesiyle başlar.

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()
EtiketAlan AdıZorunluAçıklama
98EncryptMethodE0 = Yok / TLS iletim şifrelemesi
108HeartBtIntESaniye cinsinden sinyal (heartbeat) aralığı (önerilen: 30)
141ResetSeqNumFlagHY = Sıra numaralarını 1'e sıfırla; N = Gün içi sıra durumunu sürdür
553UsernameEGaiaEx API Anahtarı
554PasswordEGaiaEx API Gizli Anahtarı
96RawDataE52|A|34|49|56 üzerinde 64 karakterli onaltılık HMAC-SHA256 imzası
797 / 9406CopyMsgIndicator / DropCopyFlagHYalnızca okunabilir bir Drop Copy oturumu kaydetmek için 797=Y, 9406=Y veya 50=DROPCOPY olarak ayarlayın
1409SessionStatusÇıktı35=A / 35=5 içinde döndürülür: 0=Aktif, 4=Oturum Kapatma Tamamlandı, 5=Hatalı Kimlik Doğrulama, 6=Sıra Çok Düşük, 101=100M Sıra Sınırı

Boşluk Kurtarma (35=2 & 35=4) ve Bağlantı Kesildiğinde İptal Et (CoD)

  • Gelen Mesaj Boşluk Tespiti: Gelen bir mesaj MsgSeqNum (34) > ExpectedSeqNum taşıyorsa, ağ geçidi derhal ResendRequest (35=2, 7=ExpectedSeqNum, 16=0) yayınlar. Eğer PossDupFlag (43=Y) olmadan MsgSeqNum (34) < ExpectedSeqNum tespit edilirse, ağ geçidi Logout (35=5, 1409=6) yayınlar ve soketi kapatır.
  • Giden Mesaj Yeniden Oynatma: İstemci ResendRequest (35=2) gönderdiğinde, ağ geçidi tüm uygulama mesajlarını (Drop Copy 35=8 raporları dahil) 43=Y ve 122=OrigSendingTime ile yeniden oynatır ve yönetimsel çerçeveleri SequenceReset-GapFill (35=4, 123=Y) içinde birleştirir.
  • Otomatik Bağlantı Kesildiğinde İptal Et (CoD): Bir Emir Yönetimi oturumunun bağlantısı kesildiğinde, o oturumda verilen tüm açık bekleyen emirler (OrdStatus 39=0) otomatik olarak iptal edilir (150=4, 39=4, 103=3020) ve aktif durumdaki herhangi bir Drop Copy oturumuna gerçek zamanlı olarak yayınlanır.

3. Emir Girişi, Değişikliği, İptali ve Sorgulaması (35=D, G, F, q, H, AN, XLQ)

NewOrderSingle (35=D)

EtiketAlan AdıZorunluDesteklenen Değerler ve Notlar
11ClOrdIDEİstemci tarafından atanan benzersiz emir tanımlayıcısı (31 karaktere kadar)
1AccountHBireysel saklama cüzdanı adresi (0x...) veya alt hesap tanımlayıcısı
50SenderSubIDHİşlemci veya strateji kimliği; 35=8 üzerindeki TargetSubID (57) içinde geri yansıtılır
55SymbolEUSDC Sürekli Vadeli (BTCUSDC, ETHUSDC, SOLUSDC), USDT Sürekli Vadeli (BTCUSDT, ETHUSDT), RWA Sürekli Vadeli (xyz:GOLD / GOLDUSDC, xyz:NVDA, xyz:TSLA)
54SideE1 = Alış, 2 = Satış
38OrderQtyEBaz varlık cinsinden emir miktarı (4 ondalık basamaklı kesirli hassasiyeti destekler, örn. 0.0050)
40OrdTypeE1 = Piyasa, 2 = Limit, 4 = Stop Limit (99=StopPx gerektirir), p = Yalnızca Pasif (veya 18=6)
44PriceKLimit fiyatı (40=2, 40=4, 40=p için zorunludur)
59TimeInForceH1 = GTC (varsayılan), 3 = IOC, 4 = FOK, 5 = GTX
544CashMarginH1 = Nakit (varsayılan), 2 = Teminat Açılışı, 3 = Teminat Kapanışı

Değiştirme (35=G), İptal (35=F), Toplu İptal (35=q), Durum (35=H), Pozisyonlar (35=AN) ve Limitler (35=XLQ)

MsgTypeMesaj AdıAnahtar İstek EtiketleriAğ Geçidi Yanıtı
35=GOrderCancelReplaceRequest11=ClOrdID, 41=OrigClOrdID, 55=Symbol, 54=Side, 38=OrderQty, 44=Price150=5, 39=5 (Değiştirildi) içeren 35=8 veya 35=9 (434=2)
35=FOrderCancelRequest11=ClOrdID, 41=OrigClOrdID, 55=Symbol, 54=Sideİki adımlı 35=8: 150=6, 39=6 (İptal Beklemede) → 150=4, 39=4 (İptal Edildi) veya 35=9 (434=1)
35=qOrderMassCancelRequest11=ClOrdID, 530=7 (Tüm emirleri iptal et)35=r (1369=MassActionReportID, 531=7) + iptal edilen emir başına bir adet 35=8 (150=4, 39=4)
35=HOrderStatusRequest11=ClOrdID (veya 37=OrderID), 790=OrdStatusReqID150=I (Emir Durumu) içeren 35=8 veya 150=8, 103=5 (Bilinmeyen emir)
35=ANRequestForPositions710=PosReqID, 724=0 (Pozisyonlar), 1=Account, 55=Symbol721=PosMaintRptID, 728=0, 704=LongQty, 705=ShortQty, 730=SettlePrice içeren PositionReport (35=AP)
35=XLQLimitQuery25003=ReqID25005=ORDERS (500/sn) ve 25005=CONNECTIONS (20/hesap) içeren LimitResponse (35=XLR)

4. Gerçek Zamanlı Drop Copy ve Mutabakat (797=Y / 9406=Y)

Drop Copy; ana aracı kurumlara (prime brokers), risk motorlarına ve arka ofis mutabakat sistemlerine hem FIX Emir Girişi oturumları hem de REST/HTTP API emirleri genelindeki tüm ExecutionReport (35=8) olaylarının gerçek zamanlı, yalnızca okunabilir bir akışını sunar.

  • Evrensel Abonelik Bayrakları: 9878 numaralı bağlantı noktasına bağlanın ve 797=Y (CopyMsgIndicator), 9406=Y (DropCopyFlag) veya 50=DROPCOPY (SenderSubID) ile birlikte Logon (35=A) gönderin.
  • Çift Etiketli Giden Damgalama: Her Drop Copy 35=8 çerçevesi, eksiksiz komisyon/iade dökümünün (381=GrossTradeAmt, 1057=AggressorIndicator, 136=1|137=MiscFeeAmt|138=MiscFeeCurr|139=4, 20000=TradeFeeRebateAmt) yanı sıra 57=DROPCOPY, 797=Y ve 9406=Y taşır.
  • Katı Yalnızca Okunabilir Koruma: Drop Copy oturumunda 35=D, 35=F, 35=G veya 35=q gönderme girişimleri derhal BusinessMessageReject (35=j, 380=4) aracılığıyla reddedilir.
  • Sıra Boşluğu Kurtarma: Giden Drop Copy raporları, oturum sıra deposunda kalıcı olarak saklanır ve PossDupFlag (43=Y) ile birlikte ResendRequest (35=2) aracılığıyla yeniden oynatılabilir.

5. Piyasa Verisi (35=V, W, X, Y) ve Referans Verisi (35=x, y, h)

Özel Piyasa Verisi akışı için 9879 numaralı bağlantı noktasına bağlanın veya SecurityListRequest (35=x) aracılığıyla enstrüman özelliklerini sorgulayın.

  • MarketDataRequest (35=V): 262=MDReqID, 263=1 (Anlık Görüntü + Güncellemeler) veya 0 (Anlık Görüntü), 264=1 (Emir Defteri Tepesi) veya 20 (Tam Derinlik) ve 55=Symbol gönderin. MarketDataSnapshotFullRefresh (35=W) ve ardından gelen MarketDataIncrementalRefresh (35=X) döner. Bilinmeyen semboller MarketDataRequestReject (35=Y, 281=0) döndürür.
  • SecurityListRequest (35=x): 320=SecurityReqID ve 559=0 (55 içinde tek sembol) veya 559=4 (tüm enstrümanlar) gönderin. Fiyat adımı (969=MinPriceIncrement), min/maks emir miktarı (8000/8001) ve ondalık basamak hassasiyeti (8002/8003) içeren SecurityList (35=y) döner.
  • TradingSessionStatus (35=h): 340=2 (7/24/365 Açık) veya 340=1 (Durduruldu) döndürür.

QuickFIX İstemci Yapılandırma Şablonu (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