FastMM documentation
FastMM C++ API 0.6.0
Public headers, tier 1 and tier 2
Loading...
Searching...
No Matches
fastmm::research::FeatureConfig Struct Reference

#include <fastmm/research/extractor.hpp>

Public Attributes

std::vector< Duration > horizons
 Forward horizons.
 
std::size_t imbalance_levels = 1
 Levels summed by fastmm::imbalance(). 1 is the touch, which is all a top-of-book feed shows.
 
Duration subsample {}
 Minimum spacing between rows of one instrument.
 
bool sample_book_updates = true
 What emits a row.
 
bool sample_trades = false
 
std::uint32_t instruments = 1
 Books kept. Events for a higher instrument id are counted and ignored.
 

Member Data Documentation

◆ horizons

std::vector<Duration> fastmm::research::FeatureConfig::horizons

Forward horizons.

Empty selects default_horizons(); non-positive entries are dropped and the rest are sorted ascending and de-duplicated.

◆ imbalance_levels

std::size_t fastmm::research::FeatureConfig::imbalance_levels = 1

Levels summed by fastmm::imbalance(). 1 is the touch, which is all a top-of-book feed shows.

◆ subsample

Duration fastmm::research::FeatureConfig::subsample {}

Minimum spacing between rows of one instrument.

Zero samples every book update; 10 ms keeps at most one row per instrument per 10 ms of event time.

◆ sample_book_updates

bool fastmm::research::FeatureConfig::sample_book_updates = true

What emits a row.

A book update emits one after it has been applied; a trade emits one with the book as it stood when the trade printed. Trades off by default; with book updates off and trades on, the table has exactly one row per trade, at the timestamp of every fill a backtest over the same data can produce, which is what the cross-check against fills.csv needs. Turning both off leaves an empty table.

◆ sample_trades

bool fastmm::research::FeatureConfig::sample_trades = false

◆ instruments

std::uint32_t fastmm::research::FeatureConfig::instruments = 1

Books kept. Events for a higher instrument id are counted and ignored.