Joel Grunbaum
2022-01-20 441abf1e6a15a39f1ef7bf5e4ee2a4a43bff327b
strat.cpp
@@ -43,10 +43,12 @@
void mainLoop()
{
   auto bs = protocol::recoverBook();
    std::cout << "ready" << std::endl;
   while (true) {
      auto messages = protocol::catchUp(bs);
      // bom::updateBom(bs);
      printFeed(messages);
      // printFeed(messages);
      dumbHit(messages);
      freeMessages(messages);
   }
}
@@ -102,20 +104,30 @@
void dumbHit(std::deque<json::Message*>& m)
{
    for (auto& i : m) {
        if (i->type == json::ADDED) {
            json::AddedMessage* j = (json::AddedMessage*) i;
            if (j->owner == "nseow") {
                book::OrderSideEnum s = j->side == book::Buy ? book::Sell : book::Buy;
                json::AddMessage a(json::ADD, j->product, j->price, s, j->resting);
                auto b = protocol::addOrder(a);
                if (b->type == json::ADDED) {
                    json::DeleteMessage d(json::DELETE, j->product, ((json::AddedMessage*) b)->id);
                    delete protocol::deleteOrder(d);
                }
                delete b;
            }
        }
    }
   for (auto& i : m) {
      if (i->type == json::ADDED) {
         json::AddedMessage* j = (json::AddedMessage*)i;
         if (j->owner == "nseow" || j->owner == "jgrunbau" || j->owner == "zoar" || j->owner == "aobrien") {
            book::OrderSideEnum s =
               j->side == book::Buy ? book::Sell : book::Buy;
            json::AddMessage a(json::ADD, j->product, j->price, s,
                               j->resting);
            auto b = protocol::addOrder(a);
            if (b->type == json::ADDED &&
                ((json::AddedMessage*)b)->resting > 0) {
               json::DeleteMessage d(json::DELETE, j->product,
                                     ((json::AddedMessage*)b)->id);
               delete protocol::deleteOrder(d);
            }
            if (b->type == json::ADDED) {
               std::cout << "Hit " << j->owner << " for "
                       << ((json::AddedMessage*)b)->filled
                       << ", resting "
                       << ((json::AddedMessage*)b)->resting << std::endl;
            }
            delete b;
         }
      }
   }
}
} // namespace strat