Program Listing for File Engine.hpp¶
↰ Return to documentation for file (engine/include/Engine.hpp)
#pragma once
#include "OrderBook.hpp"
#include "Feature.hpp"
#include <string>
#include <vector>
#include <memory>
#include <map>
struct SimulationResult {
std::string name;
std::vector<double> data;
};
class Engine {
private:
OrderBook book_;
void initialize_features(
int64_t n_events,
const std::vector<std::pair<std::string, std::map<std::string, double>>>
&feature_configs,
std::vector<std::unique_ptr<Feature>> &features,
std::vector<double *> &out_ptrs,
std::vector<SimulationResult> &results
);
void process_events(
int64_t n_events, const int8_t *actions, const int8_t *sides,
const int64_t *prices, const int64_t *sizes, const uint64_t *order_ids,
const uint64_t *ts_recvs, const uint8_t *flags,
const std::vector<std::unique_ptr<Feature>> &features,
const std::vector<double *> &out_ptrs
);
public:
std::vector<SimulationResult> run_simulation(
const int8_t *actions, const int8_t *sides, const int64_t *prices,
const int64_t *sizes, const uint64_t *order_ids,
const uint64_t *ts_recvs, const uint8_t *flags, int64_t n_events,
const std::vector<std::pair<std::string, std::map<std::string, double>>>
&feature_configs = {}
);
OrderBook &book() { return book_; }
const OrderBook &book() const { return book_; }
};