程式

有哪些方法可以使本地和遠端訂單簿保持同步?

  • May 29, 2016

場景:開發一個自定義應用程序,該應用程序定義了一個結構化的工作流程,用於向 Bloomberg EMSX 手動送出訂單;它應該盡量減少自己的持久化狀態,並儘可能依賴遠端訂單簿;它應該能夠抵禦故障和停機,並防止重複送出訂單;它應該只關心目前一天內發生的事情。

有沒有處理這個的標準模式?理想情況下不是彭博特定的。

我目前的想法是有三個列表:

  • 提議的訂單 - 未送出,未執行;
  • 已送出訂單 - 已送出執行,但尚未收到確認;
  • 已執行的訂單 - 收到送出確認,正在接收填充。

然後會有一些過程會“努力”保持三個列表同步:

  • 使用者送出訂單:從建議訂單列表中刪除並添加到送出訂單列表;
  • 收到確認/填寫:從送出的訂單列表中刪除並添加到已執行的訂單列表中。

更實際地,它將反應性地作用於三組相應的事件流並管理相應的訂單列表。

訂單將有一個唯一的 ID。還將使用特定於執行平台的重複預防,例如 EMSX_REQUEST_SEQ,但這並不意味著不應該進行更早的檢查。

你怎麼看?

我給你的3點:

  1. 通常會執行較早的檢查,例如訂單的預合規檢查。
  2. 三種不同類型的訂單被正確辨識 - 即建議的訂單但未路由,送出的訂單和等待確認。當訂單添加到送出隊列時,它應該通過合規檢查,然後添加將被路由的訂單。
  3. 理想情況下,訂單 ID 和執行 ID 應該分開,因為有時訂單會部分執行。

引用自:https://quant.stackexchange.com/questions/26288