| | |
| | | |
| | | mapTrade = {{"BUY_AGGRESSOR", BUY_AGGRESSOR}, |
| | | {"SELL_AGGRESSOR", SELL_AGGRESSOR}, |
| | | {"BROKER_TRADE", BROKER_TRADE}}; |
| | | {"BROKER_TRADE", BROKER_TRADE}}; |
| | | |
| | | mapOrderSide = {{book::Buy, "BUY"}, {book::Sell, "SELL"}}; |
| | | } |
| | |
| | | BrokerAck* brokerAck(rapidjson::Value& d); |
| | | BrokerConfirm* brokerCon(rapidjson::Value& d); |
| | | ErrorMessage* error(rapidjson::Value& d); |
| | | |
| | | std::chrono::seconds parseTime(std::string& s); |
| | | |
| | | std::queue<Message*> parse(std::string& str) |
| | | { |
| | |
| | | return out; |
| | | } |
| | | |
| | | std::chrono::seconds parseTime(std::string& s) |
| | | { |
| | | return std::chrono::hours{std::stoi(s.substr(0, 4)) * 24 * 30 * 12} + |
| | | std::chrono::hours{std::stoi(s.substr(5, 2)) * 24 * 30} + |
| | | std::chrono::hours{std::stoi(s.substr(8, 2)) * 24} + |
| | | std::chrono::hours{std::stoi(s.substr(11, 2))} + |
| | | std::chrono::minutes{std::stoi(s.substr(14, 2))} + |
| | | std::chrono::hours{std::stoi(s.substr(16, 5))}; |
| | | } |
| | | |
| | | AnnounceMessage* announce(rapidjson::Value& d) |
| | | { |
| | | // std::stringstream expiryStream(d["expiry"].GetString()); |
| | | std::string es = d["expiry"].GetString(); |
| | | std::chrono::nanoseconds exp_time(0); |
| | | // expiryStream >> |
| | | // date::parse("%Y-%m-%f %H:%M%z", exp_time); // Parsing is broken |
| | | exp_time = parseTime(es); |
| | | return new AnnounceMessage( |
| | | mapTypes[d["type"].GetString()], d["product"].GetString(), |
| | | d["stationId"].GetInt(), d["stationName"].GetString(), |
| | |
| | | |
| | | SettleMessage* settle(rapidjson::Value& d) |
| | | { |
| | | // std::stringstream expiryStream(d["expiry"].GetString()); |
| | | std::chrono::nanoseconds exp_time(0); |
| | | // expiryStream >> date::parse("%Y-%m-%d %H:%M%z", exp_time); |
| | | std::string es = d["expiry"].GetString(); |
| | | exp_time = parseTime(es); |
| | | return new SettleMessage( |
| | | mapTypes[d["type"].GetString()], d["product"].GetString(), |
| | | d["stationName"].GetString(), exp_time, d["price"].GetDouble(), |