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

Diagnostics of how the fills were obtained, next to the markouts. More...

#include <fastmm/backtest/metrics.hpp>

Public Attributes

double realized_spread_bps = 0.0
 Notional-weighted (mid at fill - price) for buys, (price - mid at fill) for sells, over the fills that had a venue mid.
 
double realized_spread_quote = 0.0
 
double at_touch_share = 0.0
 fills at the venue's best price on our side
 
double inside_touch_share = 0.0
 fills at a better price than the touch (it improved it)
 
double behind_touch_share = 0.0
 fills at a worse price than the touch
 
double through_touch_share = 0.0
 fills at or beyond the opposite touch (aggressive)
 
std::uint64_t time_to_fill_p50_ns = 0
 Venue arrival of a new order to its first fill. Only orders that filled are counted.
 
std::uint64_t time_to_fill_p90_ns = 0
 
std::uint64_t time_to_fill_p99_ns = 0
 
double fill_rate_per_quote = 0.0
 Share of new orders that got at least one fill (fill_ratio counts fills per order instead).
 
std::uint64_t quotes_placed = 0
 
std::uint64_t quotes_filled = 0
 
bool queue_position_known = false
 Displayed quantity still ahead of the order when it filled; the L2Queue fill model only.
 
double queue_ahead_mean = 0.0
 base units
 
double queue_ahead_p50 = 0.0
 
double queue_ahead_p90 = 0.0
 

Detailed Description

Diagnostics of how the fills were obtained, next to the markouts.

Member Data Documentation

◆ realized_spread_bps

double fastmm::bt::FillQuality::realized_spread_bps = 0.0

Notional-weighted (mid at fill - price) for buys, (price - mid at fill) for sells, over the fills that had a venue mid.

This is the realised spread: what markouts start from.

◆ realized_spread_quote

double fastmm::bt::FillQuality::realized_spread_quote = 0.0

◆ at_touch_share

double fastmm::bt::FillQuality::at_touch_share = 0.0

fills at the venue's best price on our side

◆ inside_touch_share

double fastmm::bt::FillQuality::inside_touch_share = 0.0

fills at a better price than the touch (it improved it)

◆ behind_touch_share

double fastmm::bt::FillQuality::behind_touch_share = 0.0

fills at a worse price than the touch

◆ through_touch_share

double fastmm::bt::FillQuality::through_touch_share = 0.0

fills at or beyond the opposite touch (aggressive)

◆ time_to_fill_p50_ns

std::uint64_t fastmm::bt::FillQuality::time_to_fill_p50_ns = 0

Venue arrival of a new order to its first fill. Only orders that filled are counted.

◆ time_to_fill_p90_ns

std::uint64_t fastmm::bt::FillQuality::time_to_fill_p90_ns = 0

◆ time_to_fill_p99_ns

std::uint64_t fastmm::bt::FillQuality::time_to_fill_p99_ns = 0

◆ fill_rate_per_quote

double fastmm::bt::FillQuality::fill_rate_per_quote = 0.0

Share of new orders that got at least one fill (fill_ratio counts fills per order instead).

◆ quotes_placed

std::uint64_t fastmm::bt::FillQuality::quotes_placed = 0

◆ quotes_filled

std::uint64_t fastmm::bt::FillQuality::quotes_filled = 0

◆ queue_position_known

bool fastmm::bt::FillQuality::queue_position_known = false

Displayed quantity still ahead of the order when it filled; the L2Queue fill model only.

◆ queue_ahead_mean

double fastmm::bt::FillQuality::queue_ahead_mean = 0.0

base units

◆ queue_ahead_p50

double fastmm::bt::FillQuality::queue_ahead_p50 = 0.0

◆ queue_ahead_p90

double fastmm::bt::FillQuality::queue_ahead_p90 = 0.0