---
# System prepended metadata

title: Matching Service

---

# Matching Service

Overview
---
- [Architecture](#Architecture)
- [Tick](#Tick)
- [Market Order](#Market-Order)
- [Limit Order](#Limit-Order)
- [MIT Order](#MIT-Order)

Architecture
---
![](https://i.imgur.com/llhuhoH.png)


Tick
---
1. 市場成交紀錄(報價)，包含
> 成交id(由polygon提供，可用此跟polygon確認此tick相關資訊)
> 成交價(trade)
> 買賣價(quote)
> 買賣量(quote)
> 產品名稱
2. 儲存於var ProductQuoteMap(sync.Map,in memory)

Market Order
---
1. 市價單，直接成交
2. 受交易時間限制
3. 用當下報價為成交價
4. 買單(side = buy)看賣價(ask), 賣單(side = sell)看買價(bid)
5. 撮合成功，CloseOrder

Limit Order
---
1. 限價單，見價成交，非逐筆成交
2. 收到tick才進行撮合
3. 每次收到tick
> 到redis檢查是否有該商品Order(OrderBook)
> 進一步檢查是否有滿足成交價格的Order
4. 撮合成功，CloseOrder
5. 移除Order from OrderBook

MIT Order
---
1. 收到Tick, 計算每一秒內的所有Tick最高最低價
2. 每秒撮合，是否有觸價的Order
3. 若有，Close Position(remove order list in closeOrder())