訂單管理/匹配系統如何匹配/分配訂單(和成交價格)?
我正在改進我公司的訂單分配系統。我們執行一個中央訂單管理系統 (OMS),但目前來自已完成訂單的績效歸因仍有改進空間。
我希望了解其他系統如何處理訂單和交易分配。
範例:資產“A”
Fill1; buy A 500 shares; avg px x1 Fill2; buy A 300 shares; avg px x2 Fill3; sell A 700 shares; avg px x3 Fill4; sell A 100 shares; avg px x4
如何定義交易的一個範例如下:
Trade1, avg entry px=x1; 平均退出 px=x3 Trade2,平均進入 px=x2;平均退出 px=(2*x3+x4)/3
要計算單個交易的表現(不是總表現,因為那是微不足道的),您會採用類似 FIFO 的方法還是以不同的方式分配填充股票及其填充價格?我嘗試對其進行分解的原因有多種,其中包括 TCA 和更好地詳細分析算法預測能力。
您能否分享一下您將如何解決這個問題,以及您是否知道您認為行業標準是什麼?在開發人員對所有規范進行規範和實施之前,我想有一個更好的理解。
編輯:
為避免混淆,我的問題與交易所/ecn端的訂單匹配完全無關,而是流動性接收端的填充分配和交易業績歸因。
FIFO 和 LIFO 等方法對稅務會計最有用。如果您沒有稅務會計理由這樣做,我建議您避免使用它們,因為它們不能反映實際實現的收益(頭寸會計系統很少會根據先進先出或後進先出)。
我將在這里以費用總額的形式討論所有內容,因為費用淨額使討論變得有點複雜。
大多數職位會計系統使用平均成本會計。因此,當您持平(您沒有頭寸)時,您頭寸的平均成本為零,並且隨著您的頭寸遠離零而變化。
當您的頭寸接近零/持平時,您將獲得收益。該職位的平均成本不會改變。您實現的收益或損失是此“結束”交易價值與平均成本之間的差額。
現在,如何討論交易?我認為在這個領域有兩種合理且廣泛使用的做法。
一種方法是“平到平”。如果您的頭寸通常以整批開倉和平倉,那麼從平到平可能很有意義。即使您傾向於在部分填充的情況下開倉或平倉,平盤對平盤的測量也很有意義,並且很容易做到,因為在第一次開倉交易和最後一次平倉交易之間的所有交易的累計實現盈虧。
另一種方法是將減少頭寸(使其更接近零/持平)的每筆交易計為“交易”。這使您可以報告從該“交易”中實現的損益,並跟踪其他統計數據,例如在市時間、波動、回撤等。
我將討論的第三種方法是非常特定於算法的,並且被廣泛使用,但並不完全通用。如果您的算法可以將交易標記為開倉或平倉,那麼您可以進行平均成本核算,並在“邏輯”而非“物理”頭寸和“交易”上使用上述平倉到平倉或減倉方法。我認為這是 LIFO 和 FIFO 等事物背後的一些基本原理:試圖將交易邏輯分組為“交易”。我認為實際上讓算法標記填充並聲明交易是否應被視為打開或關閉交易避免了 FIFO 和 LIFO 提供的主觀和任意方法,讓算法的意圖控制定義。