Update formatting
This commit is contained in:
@ -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)
|
||||||
|
|||||||
@ -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;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user