FastMM documentation
FastMM C++ API 0.6.0
Public headers, tier 1 and tier 2
Loading...
Searching...
No Matches
instrument.hpp File Reference

Instrument: the single definition of a tradable contract (5.3 / 5.15). More...

#include "fastmm/core/config_macros.hpp"
#include "fastmm/core/containers/flat_map.hpp"
#include "fastmm/core/containers/static_vector.hpp"
#include "fastmm/core/enums.hpp"
#include "fastmm/core/fixed_point.hpp"
#include "fastmm/core/fixed_string.hpp"
#include "fastmm/core/result.hpp"
#include "fastmm/core/strong_id.hpp"
#include <cstddef>
#include <cstdint>
#include <string_view>
#include <type_traits>

Go to the source code of this file.

Classes

struct  fastmm::Instrument
 
struct  fastmm::SettlementMix
 Instruments do not all settle in the same currency: an inverse contract settles in its base coin, a linear one in its quote currency. More...
 
class  fastmm::InstrumentTable
 Dense-by-id table built at startup; symbol lookup is a sorted FlatMap keyed by (venue, symbol). More...
 
struct  fastmm::InstrumentTable::Key
 

Namespaces

namespace  fastmm
 

Typedefs

using fastmm::Symbol = FixedString< 20 >
 

Enumerations

enum class  fastmm::InstrumentError : std::uint8_t {
  fastmm::TableFull , fastmm::DuplicateSymbol , fastmm::InvalidTick , fastmm::InvalidLot ,
  fastmm::EmptySymbol
}
 

Variables

constexpr std::size_t fastmm::kMaxInstruments = 256
 

Detailed Description

Instrument: the single definition of a tradable contract (5.3 / 5.15).

128 bytes: the first cache line holds everything the hot path reads (tick, lot, limits, multiplier), the second holds cold reference data (symbol, expiry, strike).

All asset-class differences live here (contract_multiplier, option fields) so strategies never branch on asset class; they call inst.notional()/pnl_per_tick().