14#include <unordered_map>
142 execReportCallback_ = std::move(callback);
153 marketDataUpdateCallback_ = std::move(callback);
191 const std::list<Order>*
getPendingOrders(
const std::string& instrumentId)
const;
261 void handle_new_order(
const OrderEvent& event);
267 void handle_cancel_request(
const OrderEvent& event);
273 void handle_session_logon(
const OrderEvent& event);
279 void handle_session_logout(
const OrderEvent& event);
286 OrderBook& getOrCreateOrderBook(
const std::string& symbol);
298 std::string generateExecID();
303 std::string generateOrderID();
337 void executeFill(
Order&
order,
double fillPrice, int64_t fillQty);
353 std::optional<Order> removeFromPendingOrders(
const std::string& instrumentId,
354 const std::string& clOrdID);
356 std::atomic<bool> running_{
false};
357 std::thread worker_thread_;
363 std::unordered_map<std::string, std::unique_ptr<OrderBook>> orderBooks_;
366 std::unordered_map<std::string, SessionID> orderSessionMap_;
369 std::unordered_map<std::string, std::string> orderUserMap_;
378 uint64_t nextExecID_ = 1;
381 uint64_t nextOrderID_ = 1;
388 std::unordered_map<std::string, MarketDataSnapshot> marketSnapshots_;
391 std::unordered_map<std::string, std::list<Order>> pendingOrders_;
400 InstrumentManager* instrumentManager_ =
nullptr;
合约信息管理器
Definition instrument_manager.hpp:47
行情驱动撮合引擎
Definition matching_engine.hpp:83
void stop()
停止撮合引擎线程
Definition matching_engine.cpp:77
void setMarketDataUpdateCallback(MarketDataUpdateCallback callback)
设置行情更新回调
Definition matching_engine.hpp:152
void start()
启动撮合引擎线程
Definition matching_engine.cpp:68
void submit(const OrderEvent &event)
提交订单事件
Definition matching_engine.cpp:92
void submitMarketData(const MarketData &md)
提交行情数据
Definition matching_engine.cpp:407
MatchingEngine(const MatchingEngine &)=delete
const std::list< Order > * getPendingOrders(const std::string &instrumentId) const
获取挂单列表(只读)
Definition matching_engine.cpp:419
MatchingEngine & operator=(const MatchingEngine &)=delete
const MarketDataSnapshot * getMarketSnapshot(const std::string &instrumentId) const
获取行情快照
Definition matching_engine.cpp:411
bool canMatchSellOrder(const Order &order, const MarketDataSnapshot &snapshot) const
检查卖单是否可成交
Definition matching_engine.cpp:522
bool canMatchBuyOrder(const Order &order, const MarketDataSnapshot &snapshot) const
检查买单是否可成交
Definition matching_engine.cpp:507
void setInstrumentManager(InstrumentManager *instrumentMgr)
设置合约管理器
Definition matching_engine.hpp:213
bool is_running() const
检查引擎是否正在运行
Definition matching_engine.hpp:133
~MatchingEngine()
析构函数
Definition matching_engine.cpp:64
size_t getTotalPendingOrderCount() const
获取所有挂单数量
Definition matching_engine.cpp:427
void setExecutionReportCallback(ExecutionReportCallback callback)
设置 ExecutionReport 回调
Definition matching_engine.hpp:141
const OrderBook * getOrderBook(const std::string &symbol) const
获取订单簿(只读)
Definition matching_engine.cpp:369
订单簿
Definition order_book.hpp:110
Definition blockingconcurrentqueue.h:26
Definition matching_engine.hpp:23
std::function< void(const SessionID &, const ExecutionReport &)> ExecutionReportCallback
ExecutionReport 回调类型
Definition matching_engine.hpp:34
std::function< void(const std::string &, double)> MarketDataUpdateCallback
行情更新回调类型
Definition matching_engine.hpp:42
Order order
Definition simulation_app.cpp:46
执行报告
Definition order.hpp:195
合约行情快照
Definition market_data_snapshot.hpp:47
行情数据结构体
Definition market_data.hpp:55
订单事件
Definition order_event.hpp:41
内部订单表示
Definition order.hpp:90
FIX 会话标识符
Definition application.hpp:28