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

All engine enumerations. More...

#include <cstddef>
#include <cstdint>
#include <string_view>

Go to the source code of this file.

Namespaces

namespace  fastmm
 

Enumerations

enum class  fastmm::Side : std::uint8_t { fastmm::Buy = 0 , fastmm::Sell = 1 }
 
enum class  fastmm::OrderType : std::uint8_t { fastmm::Limit = 0 , fastmm::Market = 1 , fastmm::PostOnly = 2 }
 
enum class  fastmm::TimeInForce : std::uint8_t { fastmm::Gtc = 0 , fastmm::Ioc = 1 , fastmm::Fok = 2 , fastmm::Day = 3 }
 
enum class  fastmm::AssetClass : std::uint8_t {
  fastmm::Spot = 0 , fastmm::Perpetual = 1 , fastmm::Future = 2 , fastmm::Option = 3 ,
  fastmm::Fx = 4 , fastmm::Equity = 5
}
 
enum class  fastmm::OptionType : std::uint8_t { fastmm::None = 0 , fastmm::Call = 1 , fastmm::Put = 2 }
 
enum class  fastmm::OrderState : std::uint8_t {
  fastmm::PendingNew = 0 , fastmm::Live = 1 , fastmm::PartiallyFilled = 2 , fastmm::PendingCancel = 3 ,
  fastmm::PendingReplace = 4 , fastmm::Filled = 5 , fastmm::Canceled = 6 , fastmm::Rejected = 7 ,
  fastmm::Expired = 8
}
 
enum class  fastmm::RejectReason : std::uint8_t {
  fastmm::None = 0 , fastmm::KillSwitch = 1 , fastmm::VenueKilled = 2 , fastmm::InstrumentDisabled = 3 ,
  fastmm::InvalidTick = 4 , fastmm::InvalidLot = 5 , fastmm::BelowMinNotional = 6 , fastmm::StaleMarketData = 7 ,
  fastmm::PriceCollar = 8 , fastmm::FatFinger = 9 , fastmm::MaxOrderQty = 10 , fastmm::MaxOrderNotional = 11 ,
  fastmm::MaxPosition = 12 , fastmm::MaxOpenOrders = 13 , fastmm::SelfTradePrevention = 14 , fastmm::RateLimit = 15 ,
  fastmm::MaxLoss = 16 , fastmm::MaxGrossNotional = 17 , fastmm::MaxNetNotional = 18 , fastmm::FxRateUnknown = 19 ,
  fastmm::FeedLag = 20 , fastmm::MaxUnderlyingNet = 21 , fastmm::UnderlyingMarkUnknown = 22 , fastmm::BalanceShort = 23 ,
  fastmm::PoolExhausted = 32 , fastmm::UnknownOrder = 33 , fastmm::InvalidState = 34 , fastmm::DuplicateId = 35 ,
  fastmm::TransportFull = 36 , fastmm::NotReconciled = 37 , fastmm::InvalidTag = 38 , fastmm::OrderTableFull = 39 ,
  fastmm::InvalidAccount = 40 , fastmm::GatewayRateLimit = 48 , fastmm::GatewayOpenNotional = 49 , fastmm::GatewayNotOwner = 50 ,
  fastmm::GatewayAccountKilled = 51 , fastmm::GatewayGrossNotional = 52 , fastmm::GatewayNetNotional = 53 , fastmm::GatewayFxRateUnknown = 54 ,
  fastmm::GatewayUnderlyingNet = 55 , fastmm::GatewayUnderlyingMarkUnknown = 56 , fastmm::GatewaySelfTrade = 57 , fastmm::GatewayBalanceShort = 58 ,
  fastmm::VenueReject = 64 , fastmm::PostOnlyWouldCross = 65 , fastmm::InsufficientBalance = 66 , fastmm::VenueRateLimit = 67 ,
  fastmm::VenueUnknownOrder = 68
}
 Ordered exactly like RiskEngine::check_new evaluates them (5.7), followed by OMS / transport / venue reasons. More...
 
enum class  fastmm::EventType : std::uint8_t {
  fastmm::Padding = 0 , fastmm::BookDelta = 1 , fastmm::BookSnapshot = 2 , fastmm::BookTicker = 3 ,
  fastmm::Trade = 4 , fastmm::OrderAck = 5 , fastmm::OrderReject = 6 , fastmm::OrderCancelAck = 7 ,
  fastmm::OrderCancelReject = 8 , fastmm::OrderFill = 9 , fastmm::OrderExpired = 10 , fastmm::PositionUpdate = 11 ,
  fastmm::Timer = 12 , fastmm::Control = 13 , fastmm::ConnectionState = 14 , fastmm::Reconcile = 15 ,
  fastmm::LatencySample = 16 , fastmm::OutNewOrder = 17 , fastmm::OutCancel = 18 , fastmm::OutReplace = 19 ,
  fastmm::OrderAddL3 = 20 , fastmm::OrderExecL3 = 21 , fastmm::OrderCancelL3 = 22 , fastmm::OrderReplaceL3 = 23 ,
  fastmm::OptionTicker = 24 , fastmm::EngineTime = 25 , fastmm::ParamUpdate = 26 , fastmm::Funding = 27 ,
  fastmm::Balance = 28 , fastmm::PerpState = 29 , fastmm::StrategyState = 30 , fastmm::Count = 31
}
 Message discriminator carried in EventHeader::type. More...
 
enum class  fastmm::ConnState : std::uint8_t {
  fastmm::Disconnected = 0 , fastmm::Connecting = 1 , fastmm::Live = 2 , fastmm::Stale = 3 ,
  fastmm::Resyncing = 4 , fastmm::Dead = 5
}
 
enum class  fastmm::FeeAsset : std::uint8_t { fastmm::Quote = 0 , fastmm::Base = 1 , fastmm::Other = 2 }
 The asset a fill's commission is charged in. More...
 
enum class  fastmm::Liquidity : std::uint8_t { fastmm::Unknown = 0 , fastmm::Maker = 1 , fastmm::Taker = 2 }
 
enum class  fastmm::ControlCommand : std::uint8_t {
  fastmm::Stop = 0 , fastmm::PullQuotes = 1 , fastmm::ResumeQuotes = 2 , fastmm::TripKill = 3 ,
  fastmm::ResetKill = 4 , fastmm::Reload = 5 , fastmm::FlushStats = 6 , fastmm::RecalibrateTsc = 7 ,
  fastmm::TripVenueKill = 8 , fastmm::Flatten = 9 , fastmm::SetLimits = 10 , fastmm::Reconcile = 11 ,
  fastmm::SetUnderlyingLimit = 12 , fastmm::TakeOver = 13 , fastmm::Transfer = 14
}
 
enum class  fastmm::KillReason : std::uint8_t {
  fastmm::None = 0 , fastmm::Requested = 1 , fastmm::MaxLoss = 2 , fastmm::TransportFull = 3 ,
  fastmm::JournalOverflow = 4 , fastmm::AllVenuesKilled = 5 , fastmm::VenueFatal = 6 , fastmm::VenueHardStop = 7 ,
  fastmm::OrderRingOverflow = 8 , fastmm::StrategyError = 9 , fastmm::FeedLost = 10 , fastmm::OrderIdsExhausted = 11 ,
  fastmm::DeadMansSwitchLost = 12 , fastmm::GatewayMaxLoss = 13 , fastmm::GatewayOperator = 14
}
 Why a kill switch (global or one venue's) was tripped. More...
 
enum class  fastmm::FlattenState : std::uint8_t {
  fastmm::Off = 0 , fastmm::Working = 1 , fastmm::Flat = 2 , fastmm::TimedOut = 3 ,
  fastmm::Stopped = 4
}
 How far an operator flatten (ControlCommand::Flatten) got. More...
 
enum class  fastmm::LogLevel : std::uint8_t {
  fastmm::Trace = 0 , fastmm::Debug = 1 , fastmm::Info = 2 , fastmm::Warn = 3 ,
  fastmm::Error = 4 , fastmm::Off = 5
}
 

Functions

constexpr Side fastmm::opposite (Side s) noexcept
 
constexpr int fastmm::sign (Side s) noexcept
 
constexpr std::string_view fastmm::to_string (Side s) noexcept
 
constexpr std::string_view fastmm::to_string (OrderType t) noexcept
 
constexpr std::string_view fastmm::to_string (TimeInForce t) noexcept
 
constexpr std::string_view fastmm::to_string (AssetClass a) noexcept
 
constexpr bool fastmm::is_terminal (OrderState s) noexcept
 
constexpr bool fastmm::is_pending (OrderState s) noexcept
 
constexpr std::string_view fastmm::to_string (OrderState s) noexcept
 
constexpr std::string_view fastmm::to_string (RejectReason r) noexcept
 
constexpr std::string_view fastmm::to_string (EventType t) noexcept
 
constexpr std::string_view fastmm::to_string (ConnState s) noexcept
 
constexpr std::string_view fastmm::to_string (Liquidity l) noexcept
 
constexpr std::string_view fastmm::to_string (ControlCommand c) noexcept
 
constexpr std::string_view fastmm::to_string (KillReason r) noexcept
 
constexpr std::string_view fastmm::to_string (FlattenState s) noexcept
 
constexpr std::string_view fastmm::to_string (LogLevel l) noexcept
 

Variables

constexpr std::size_t fastmm::kKillVenueSlots = 31
 Kill reasons are kept per venue id for ids 0..kKillVenueSlots-1; higher ids share the last slot, as they share the last kill bit (RiskEngine::venue_bit).
 

Detailed Description

All engine enumerations.

Every enum is enum class with a fixed underlying type so it can be embedded in trivially copyable messages; to_string() is for logs/diagnostics.