From 611ad7b12fcc6b34229316099ae66bccbcf24ad9 Mon Sep 17 00:00:00 2001 From: Joel Grunbaum <joelgrun@gmail.com> Date: Wed, 12 Jan 2022 06:12:35 +0000 Subject: [PATCH] Pull data from ftp and parse --- book.hpp | 65 ++++++++++++++++---------------- 1 files changed, 33 insertions(+), 32 deletions(-) diff --git a/book.hpp b/book.hpp index 2240290..27b6597 100644 --- a/book.hpp +++ b/book.hpp @@ -6,6 +6,7 @@ #include <iostream> #include <queue> #include <string> +#include <unordered_map> #include <vector> namespace book @@ -14,24 +15,24 @@ enum ProductTypeEnum { TEST, FUTURE, SPREAD, CALL, PUT }; struct Order { - double price; - OrderSideEnum side; - int remaining_volume; - int filled_volume; - double timestamp; - std::string id; - Order(double price, OrderSideEnum side, int volume, double timestamp, - std::string id); + double price; + OrderSideEnum side; + int remaining_volume; + int filled_volume; + double timestamp; + std::string id; + Order(double price, OrderSideEnum side, int volume, double timestamp, + std::string id); }; struct Level { - double price; - int volume; - OrderSideEnum side; - double timestamp; - std::string id; + double price; + int volume; + OrderSideEnum side; + double timestamp; + std::string id; - Level(Order& order); + Level(Order& order); }; bool operator>(const Level& a, const Level& b); @@ -42,25 +43,25 @@ std::ostream& operator<<(std::ostream& out, const Level& a); struct Book { - std::vector<Level> bidSide; - std::vector<Level> askSide; - ProductTypeEnum productType; - std::string product; - std::string stationId; - std::string unit; - std::chrono::nanoseconds expiry; - double aggFee; - double pasFee; - double broFee; + std::unordered_map<std::string, Level> bidSide; + std::unordered_map<std::string, Level> askSide; + ProductTypeEnum productType; + std::string product; + int stationId; + std::string unit; + std::chrono::nanoseconds expiry; + double aggFee; + double pasFee; + double broFee; + double bomPrice; - Book(); - Book(ProductTypeEnum productType, std::string product, - std::string stationId, std::string unit, - std::chrono::nanoseconds expiry, double aggFee, double pasFee, - double broFee); - void ask(Order& order); - void bid(Order& order); - void printBook(std::size_t numOrders = 10); + Book(); + Book(ProductTypeEnum productType, std::string product, int stationId, + std::string unit, std::chrono::nanoseconds expiry, double aggFee, + double pasFee, double broFee); + void ask(Order& order); + void bid(Order& order); + void printBook(std::size_t numOrders = 10); }; Book testBook(int orders = 10, bool printBook = true); -- Gitblit v1.9.3