限價訂單簿
訂單簿與錢包更新
早上好,
我正在開發自己的證券交易所繫統,並已實施限價單(基本)匹配。該系統只是我自己的DIY解決方案,主要是為了好玩。整個系統使用我自己的文本協議,讓交易者能夠登錄/下訂單/接收通知。這是為 BTC 交換完成的。
然而,當談到交易者錢包的計算時,我被困住了。
我不認為我確切地知道幕後發生了什麼,因此如果有人能為我提供一些啟示,我將不勝感激。
我相信錢包只在 3 個地方更新:
- 新訂單下達:交易者下訂單時錢包會發生什麼(買/賣)
- 取消訂單下達:當他下達取消訂單(買/賣)時,交易者錢包會發生什麼
- 匹配並生成交易(全部/部分) - 兩個交易者的錢包會發生什麼?
我想了解的是,當訂單下達/取消/匹配時,交易者錢包中的 BTC 和美元會發生什麼情況,以及如何處理。
非常感謝您對此的投入。
只有交易會影響帳戶。請參閱下面的範例實現。
position
andmoney
應該在一開始就被初始化。請注意,它們都quantity
可以是正數和負數。public static class PNL { private double position = 0; // number of BTC private double money = 0.0; // USD public double get_position() { return position; } public void on_execution(double price, double quantity) { position += quantity; money -= quantity * price; } public double get_pnl(double current_price){ return money + position * current_price; } }
下新訂單或修改現有訂單時,會影響賬戶的風險和敞口。風險經理必須驗證,在最壞的情況下,暴露不會違反暴露限制。此外,它需要考慮訂單的 In-Flight 狀態。這是CME 如何管理它的範例。同樣,訂單取消也只影響風險管理。