SPB Git

spb/wp40_uqo

Public MIT
1.4 KB · 24 lines cpp
1// Minimal C++ example: realized measures on the synthetic fixture with backend auto|cpu|metal and CPU fallback.2// Build: cmake --preset macos-release && cmake --build --preset macos-release --target example_minimal  (or compile against libraid)3#include <cstdio>4#include "raid/data/io.hpp"5#include "raid/data/calendar.hpp"6#include "raid/data/returns.hpp"7#include "raid/estimators/realized.hpp"89int main(int argc, char** argv) {10  const std::string backend = argc > 1 ? argv[1] : "auto";11  auto bars = raid::data::read_bars_csv(argc > 2 ? argv[2] : "datasets/fixtures/synthetic_bars_1m.csv");12  raid::MarketCalendar cal;13  for (auto& [sym, b] : bars) {14    b.normalize();15    auto reg = b.filter_session(cal, raid::SessionPolicy::regular);16    auto ir = raid::data::intraday_returns(reg);17    raid::est::RealizedOptions o; o.plan.backend = raid::backend_from_string(backend); o.plan.allow_fallback = true;18    auto m = raid::est::realized_measures(ir, o);19    std::printf("%s: %zu sessions, backend=%s precision=%s (%s)\n", sym.c_str(), m.sessions.size(), std::string(raid::to_string(m.stats.backend)).c_str(), std::string(raid::to_string(m.stats.precision)).c_str(), m.stats.note.c_str());20    for (size_t k = 0; k < m.sessions.size(); ++k) std::printf("  %s M=%zu RV=%.3e BPV=%.3e RSV-=%.3e RQ=%.3e\n", m.sessions[k].iso().c_str(), m.n_returns[k], m.rv[k], m.bpv[k], m.rsv_neg[k], m.rq[k]);21  }22  return 0;23}24
Files · 5aa66725db0233807b19cc5388f7ea815cfe531d
Menu

Theme