Update formatting

This commit is contained in:
Lev
2021-07-02 17:20:32 -05:00
parent 675bfe6b81
commit bb6aa4a02e
2 changed files with 98 additions and 111 deletions

View File

@ -4,17 +4,10 @@
#include <algorithm> #include <algorithm>
#include <iostream> #include <iostream>
/** construct, reading a csv data file */ /** construct, reading a csv data file */
OrderBook::OrderBook(std::string filename) OrderBook::OrderBook(std::string filename)
{ {
orders = CSVReader::readCSV(filename); orders = CSVReader::readCSV(filename);
}
/** return vector of all know products in the dataset*/
std::vector<std::string> OrderBook::getKnownProducts()
{
std::vector<std::string> products;
std::map<std::string, bool> prodMap; std::map<std::string, bool> prodMap;
@ -26,15 +19,17 @@ std::vector<std::string> OrderBook::getKnownProducts()
// now flatten the map to a vector of strings // now flatten the map to a vector of strings
for (auto const &e : prodMap) for (auto const &e : prodMap)
{ {
products.push_back(e.first); knownProducts.push_back(e.first);
}
} }
return products; /** return vector of all know products in the dataset*/
std::vector<std::string> OrderBook::getKnownProducts()
{
return knownProducts;
} }
/** return vector of Orders according to the sent filters*/ /** return vector of Orders according to the sent filters*/
std::vector<OrderBookEntry> OrderBook::getOrders(OrderBookType type, std::vector<OrderBookEntry> OrderBook::getOrders(OrderBookType type, std::string product, std::string timestamp)
std::string product,
std::string timestamp)
{ {
std::vector<OrderBookEntry> orders_sub; std::vector<OrderBookEntry> orders_sub;
for (OrderBookEntry &e : orders) for (OrderBookEntry &e : orders)
@ -49,24 +44,24 @@ std::vector<OrderBookEntry> OrderBook::getOrders(OrderBookType type,
return orders_sub; return orders_sub;
} }
double OrderBook::getHighPrice(std::vector<OrderBookEntry> &orders) double OrderBook::getHighPrice(std::vector<OrderBookEntry> &orders)
{ {
double max = orders[0].price; double max = orders[0].price;
for (OrderBookEntry &e : orders) for (OrderBookEntry &e : orders)
{ {
if (e.price > max)max = e.price; if (e.price > max)
max = e.price;
} }
return max; return max;
} }
double OrderBook::getLowPrice(std::vector<OrderBookEntry> &orders) double OrderBook::getLowPrice(std::vector<OrderBookEntry> &orders)
{ {
double min = orders[0].price; double min = orders[0].price;
for (OrderBookEntry &e : orders) for (OrderBookEntry &e : orders)
{ {
if (e.price < min)min = e.price; if (e.price < min)
min = e.price;
} }
return min; return min;
} }
@ -103,13 +98,9 @@ void OrderBook::insertOrder(OrderBookEntry& order)
std::vector<OrderBookEntry> OrderBook::matchAsksToBids(std::string product, std::string timestamp) std::vector<OrderBookEntry> OrderBook::matchAsksToBids(std::string product, std::string timestamp)
{ {
// asks = orderbook.asks // asks = orderbook.asks
std::vector<OrderBookEntry> asks = getOrders(OrderBookType::ask, std::vector<OrderBookEntry> asks = getOrders(OrderBookType::ask, product, timestamp);
product,
timestamp);
// bids = orderbook.bids // bids = orderbook.bids
std::vector<OrderBookEntry> bids = getOrders(OrderBookType::bid, std::vector<OrderBookEntry> bids = getOrders(OrderBookType::bid, product, timestamp);
product,
timestamp);
// sales = [] // sales = []
std::vector<OrderBookEntry> sales; std::vector<OrderBookEntry> sales;
@ -190,7 +181,6 @@ std::vector<OrderBookEntry> OrderBook::matchAsksToBids(std::string product, std:
break; break;
} }
// if bid.amount < ask.amount # bid is completely gone, slice the ask // if bid.amount < ask.amount # bid is completely gone, slice the ask
if (bid.amount < ask.amount && if (bid.amount < ask.amount &&
bid.amount > 0) bid.amount > 0)

View File

@ -12,9 +12,7 @@ class OrderBook
/** return vector of all know products in the dataset*/ /** return vector of all know products in the dataset*/
std::vector<std::string> getKnownProducts(); std::vector<std::string> getKnownProducts();
/** return vector of Orders according to the sent filters*/ /** return vector of Orders according to the sent filters*/
std::vector<OrderBookEntry> getOrders(OrderBookType type, std::vector<OrderBookEntry> getOrders(OrderBookType type, std::string product, std::string timestamp);
std::string product,
std::string timestamp);
/** returns the earliest time in the orderbook*/ /** returns the earliest time in the orderbook*/
std::string getEarliestTime(); std::string getEarliestTime();
@ -32,7 +30,6 @@ class OrderBook
static double getLowPrice(std::vector<OrderBookEntry> &orders); static double getLowPrice(std::vector<OrderBookEntry> &orders);
private: private:
std::vector<OrderBookEntry> orders; std::vector<OrderBookEntry> orders; // private variable which holds all loaded orders from the file
std::vector<std::string> knownProducts;
}; };