ATS
An algorithmic trading system completely written in C++
Public Member Functions | List of all members
ats::OrderManager Class Reference

A class for managing orders. More...

#include <OrderManager.h>

Public Member Functions

 OrderManager ()
 Construct a new OrderManager object.
 
 OrderManager (std::vector< std::string > symbols)
 Construct a new OrderManager with an initial symbols list. More...
 
 ~OrderManager ()
 Destroy the OrderManager object.
 
void start ()
 Start the order manager thread.
 
void run ()
 Run the order manager loop.
 
void stop ()
 Stop the order manager thread.
 
bool isRunning ()
 Check if the order manager is running. More...
 
double getLastOrderQty ()
 Get last filled order quantity. More...
 
void setLastOrderQty (double qty)
 Sets last filled order quantity.
 
long createOrder (OrderType type, Side side, std::string symbol, double quantity, double price=0)
 Create a new order and add it to the queue. More...
 
long createOrder (Order &order)
 Add an order to the queue. More...
 
void cancelOrder (long orderId, std::string symbol)
 Cancel an order. More...
 
void cancelAllOrders ()
 Cancel all orders.
 
void updateOpenOrders (std::unordered_map< long, Order > openOrders)
 Update open orders. More...
 
void processOrder (Order order)
 Process a single order. More...
 
void processOrders ()
 Process all orders in the queue.
 
bool hasOrders ()
 Check if there are orders to be sent. More...
 
bool hasCancelOrders ()
 Check if there are orders to be cancelled. More...
 
OrdergetOldestOrder ()
 Get the oldest order from the order queue. More...
 
Order getOrderById (long ID)
 Returns order by ID. More...
 
std::pair< long, std::string > getCancelOrder ()
 Get an order to cancel. More...
 
std::vector< std::string > getSymbols ()
 Get symbols currently ordered. More...
 

Detailed Description

A class for managing orders.

Constructor & Destructor Documentation

◆ OrderManager()

ats::OrderManager::OrderManager ( std::vector< std::string >  symbols)

Construct a new OrderManager with an initial symbols list.

Parameters
symbolsan initial list of traded symbols

Member Function Documentation

◆ cancelOrder()

void ats::OrderManager::cancelOrder ( long  orderId,
std::string  symbol 
)

Cancel an order.

Parameters
orderIdID of the order
symbolSymbol of the order

◆ createOrder() [1/2]

long ats::OrderManager::createOrder ( Order order)

Add an order to the queue.

Parameters
orderThe order to add
Returns
Order Id

◆ createOrder() [2/2]

long ats::OrderManager::createOrder ( OrderType  type,
Side  side,
std::string  symbol,
double  quantity,
double  price = 0 
)

Create a new order and add it to the queue.

Parameters
typeThe type of order
sideThe side of the order
symbolThe symbol to trade
quantityThe quantity to trade
priceThe price to trade
Returns
Order Id

◆ getCancelOrder()

std::pair< long, std::string > ats::OrderManager::getCancelOrder ( )

Get an order to cancel.

Returns
{id,symbol} of the order to cancel

◆ getLastOrderQty()

double ats::OrderManager::getLastOrderQty ( )

Get last filled order quantity.

Returns
-1 if not set, quantity of last filled order otherwise.

◆ getOldestOrder()

Order & ats::OrderManager::getOldestOrder ( )

Get the oldest order from the order queue.

Returns
Order& The oldest order in the queue

◆ getOrderById()

Order ats::OrderManager::getOrderById ( long  ID)

Returns order by ID.

Parameters
IDID of the order to return
Returns
Order The requested order

◆ getSymbols()

std::vector< std::string > ats::OrderManager::getSymbols ( )

Get symbols currently ordered.

Returns
std::vector<std::string> a vector of symbols

◆ hasCancelOrders()

bool ats::OrderManager::hasCancelOrders ( )

Check if there are orders to be cancelled.

Returns
true if there are orders to cancel
false otherwise

◆ hasOrders()

bool ats::OrderManager::hasOrders ( )

Check if there are orders to be sent.

Returns
true if there are orders waiting to be sent
false otherwise

◆ isRunning()

bool ats::OrderManager::isRunning ( )

Check if the order manager is running.

Returns
true if the order manager is running, false otherwise

◆ processOrder()

void ats::OrderManager::processOrder ( Order  order)

Process a single order.

Parameters
orderThe order to process

◆ updateOpenOrders()

void ats::OrderManager::updateOpenOrders ( std::unordered_map< long, Order openOrders)

Update open orders.

Parameters
openOrdersthe new list of open orders

The documentation for this class was generated from the following files: