我使用 QuickFIX/J 庫構建了一個 FIX Initiator 應用程序來向我的經紀人發送訂單。如果您不知道什么是 FIX 應用程序,請考慮我的程序是一個通過 TCP 連接向服務器發送消息的應用程序。為了獲取和發送由多種算法創建的訂單,我有一個目錄觀察器 (WatchService),它使用 AWS Cli 監視與 S3 存儲桶同步的本地目錄上的修改。這種方法效果很好,除了我必須等待大約 6-8 秒才能將文件放入我的本地目錄,這樣我可以解析它以修復訂單并發送到經紀人的 FIX 應用程序。我真的很想減少訂單創建和訂單發送給經紀人之間的延遲。我認為有哪些可能的解決方案:1) 不使用 AWS CLI 直接從 S3 存儲桶讀取2) 針對每個不同的算法開啟不同的FIX會話3) 不是從桶中讀取數據,而是為新訂單訪問數據庫 (MySQL)。算法將生成表格行而不是文件4) 在我的 FIX 應用程序和算法之間有一個 API,所以算法可以直接連接到我的應用程序。解決方案 (1) 沒有改進訂單接收時間,因為列出 S3 對象、獲取摘要和過濾所需文件所花費的時間大致相同。解決方案(2)我沒有嘗試過,但我認為這不是最好的。例如,如果我有 100 種不同的策略,我將不得不打開 100 個不同的連接,而且我不確定我的代理應用程序是否可以處理。但我可能錯了。解決方案(3)我也沒試過。解決方案(4)是我認為理想的,但我不知道如何實施。我試圖創建一個 REST API,但我不知道它在概念上是否正確。假設我的 FIX 應用程序當前連接到經紀人的服務器,我的想法是 (i) 創建一個新的 webapp 來創建一個 REST API (ii) 通過 API 接收訂單信息,(iii) 找到當前活動會話和 (iv ) 使用當前會話向代理服務器發送訂單。不幸的是,我無法通過 ID 在運行 FIX 應用程序的不同類上使用以下內容找到當前會話:SessionID sessionID = new SessionID("FIX.4.4", "CLIENT1", "FixServer");
Session session = Session.lookupSession(sessionID);我想聽聽您的意見:您認為發送由多個來源創建的 FIX 訂單的最佳解決方案是什么?如果我想創建一個 API 來連接 2 個不同的應用程序,我可以遵循哪些步驟?如果我有點困惑,我很抱歉。如果您需要進一步說明,請告訴我。
1 回答

慕蓋茨4494581
TA貢獻1850條經驗 獲得超11個贊
問:您認為發送由多個來源創建的 FIX 訂單的最佳解決方案是什么?
絕對是4)?- 即 - 整合您的多個決策來源,并從一個點連接代理方 FIX 協議網關。
原因:
- 隔離設計/實施/操作中的關注點
- FIX 協議通道的單點身份驗證/延遲驅動的托管
- 最小化 FIX 協議網關驗收測試的成本(沒有這個,一級市場參與者不會讓你經營業務有,因此 FIX 協議 E2E 相互合作合規性測試的費用很重要 - 無論是成本方面還是時間方面)
問:我可以遵循哪些步驟?
遵循您自己的用例,它定義了所有需要準備好進行測試的 MVP 功能。
不要試圖將您的需求概括為任何“新的下一代 API”,您的交易完全是關于延遲+交易,所以更專注于 MVP 定義并且不要設計/實現任何超出最小延遲的 MVP(開銷)在點對點的基礎上。使用穩定的專業框架,如nanomsg或ZeroMQ,可以避免花費一些時間重新發明任何已經發明的低延遲交易消息/信號工具的輪子。在第三個千年的低延遲驅動的高性能分布式交易計算生態系統中,使用 REST 是一種反模式。
添加回答
舉報
0/150
提交
取消