12#include <unordered_map>
97 std::optional<Position>
getPosition(
const std::string& accountId,
98 const std::string& instrumentId)
const;
122 bool hasPosition(
const std::string& accountId,
const std::string& instrumentId)
const;
151 const std::string& instrumentId,
179 const std::string& instrumentId,
207 const std::string& instrumentId,
236 static std::string makeKey(
const std::string& accountId,
const std::string& instrumentId);
243 void persistPosition(
const Position& position);
246 std::unordered_map<std::string, Position> positions_;
252 mutable std::mutex mutex_;
存储接口
Definition store.hpp:61
持仓管理器
Definition position_manager.hpp:56
std::vector< Position > getAllPositions() const
获取所有持仓
Definition position_manager.cpp:63
std::vector< Position > getPositionsByAccount(const std::string &accountId) const
获取账户所有持仓
Definition position_manager.cpp:51
PositionManager(const PositionManager &)=delete
void clear()
清空所有持仓
Definition position_manager.cpp:266
double closePosition(const std::string &accountId, const std::string &instrumentId, OrderSide side, int64_t volume, double price, int volumeMultiple)
平仓
Definition position_manager.cpp:143
bool hasPosition(const std::string &accountId, const std::string &instrumentId) const
检查是否有持仓
Definition position_manager.cpp:74
PositionManager()
默认构造函数
Definition position_manager.cpp:16
std::optional< Position > getPosition(const std::string &accountId, const std::string &instrumentId) const
获取持仓
Definition position_manager.cpp:40
void updateAllProfits(const MarketDataSnapshot &snapshot, int volumeMultiple)
更新指定合约所有持仓的浮动盈亏
Definition position_manager.cpp:219
~PositionManager()=default
析构函数
PositionManager & operator=(const PositionManager &)=delete
double updateProfit(const std::string &accountId, const std::string &instrumentId, double lastPrice, int volumeMultiple)
更新指定持仓的浮动盈亏
Definition position_manager.cpp:230
double getTotalProfit(const std::string &accountId) const
获取账户总浮动盈亏
Definition position_manager.cpp:250
size_t size() const
获取持仓数量
Definition position_manager.cpp:85
void openPosition(const std::string &accountId, const std::string &instrumentId, OrderSide side, int64_t volume, double price, double margin)
开仓
Definition position_manager.cpp:94
Definition matching_engine.hpp:23
OrderSide
买卖方向
Definition order.hpp:26
合约行情快照
Definition market_data_snapshot.hpp:47
合约持仓
Definition position.hpp:45