|
FastMM C++ API 0.6.0
Public headers, tier 1 and tier 2
|
| ►Nfastmm | |
| ►Nbt | |
| CArrayColumns | |
| CArraySource | |
| CBacktestConfig | |
| CBacktestResult | |
| CBacktestRunner | Convenience wrapper that owns the config |
| CBacktestSession | |
| CBacktestTreasury | The pool treasuries of a run ([venues |
| CChainSource | Concatenation of sources that cover consecutive spans of time (one file per day) |
| CCsvSource | |
| CEquityRows | |
| CFillQuality | Diagnostics of how the fills were obtained, next to the markouts |
| CFillRows | |
| CInstrumentEquityRows | One instrument's columns of EquityRows, one row per bar |
| CJournalInfo | |
| CJournalSource | |
| CLiveAnalysis | |
| CLiveAnalysisInstrument | |
| CMarkoutBucket | |
| CMarkoutHorizon | Buckets of one horizon, all over the same measured fills |
| CMergedSource | K-way merge of several sources by event time (stable: lower source index first on ties) |
| CMetrics | |
| CMetricsInputs | |
| COrderRows | |
| COwnedMergedSource | MergedSource over sources it owns: open_data() of several specs ("a; b"), one per venue |
| CPnlDecomposition | How the net PnL of the run splits into the parts a market maker can act on: net == spread_capture + mid_drift - fees_paid + rebates_received + residual mid_drift is the move of the mid from each fill to the end of the run, valued at the signed quantity of the fill: adverse selection plus the mark-to-market of whatever is still open |
| CReplayOptions | |
| CReplayResult | |
| CReplayStrategy | A strategy outside the registry (a Python hot strategy): the name for the result, the parameter schema that ParamUpdate fields are matched against, and a factory that builds the runner on the sim::ReplayBackend that deps.backend points at |
| CRow | |
| CRowAssembler | Builds messages from a row stream. Provider is bool(Row&) returning false at end |
| CSlowMethodTiming | Wall time of one slow method of a Python strategy over a backtest |
| CSweepPoint | |
| CSyntheticSource | |
| CSyntheticSourceConfig | |
| CTimeSliceSource | The events of inner in [t0, t1) of event time (exch_ts, recv_ts when unset), for walk-forward folds |
| CWalkForwardFold | |
| CWalkForwardReport | |
| ►Ncodecs | |
| CFrameView | One complete application frame carved out of a byte stream |
| ►Nlive | |
| CLiveBackend | |
| CLiveOptions | |
| CLiveStrategy | A strategy the caller builds instead of the registry's [strategy] name |
| ►Nnet | |
| CBackoffConfig | |
| CConnection | |
| ►CConnectionConfig | |
| CTls | |
| CConnectionStats | |
| CDatagramHandlerArchetype | A handler that accepts every datagram: the shape poll() is checked against |
| CDatagramSourceStats | |
| CDatagramSubscription | |
| CDpdkConfig | |
| CDpdkDatagramSource | |
| CDpdkStats | |
| CDpdkSubscription | |
| CEcdsaP256Key | |
| CEd25519Key | A parsed Ed25519 key (private, or public only for verification). Move-only |
| CExponentialBackoff | |
| CFixedHexString | Fixed-capacity, NUL-terminated hex string (no heap). size() excludes the terminator |
| CHmacSha256Key | HMAC-SHA256 with the key schedule precomputed (see the header comment) |
| CHttpClient | |
| CHttpClientConfig | |
| CHttpClientStats | |
| CHttpResponse | |
| CIoHandler | |
| CKernelDatagramSource | |
| CKernelSourceConfig | |
| CKernelSourceOpen | Outcome of open(). err is 0 or -errno of the step that failed, for subscription line |
| CMcastInterface | Interface for multicast membership and IP_MULTICAST_IF: an IPv4 address or an interface index |
| CQueryBuilder | Builds "k1=v1\&k2=v2" into a fixed buffer, percent-encoding values |
| CReactor | |
| CRxMeta | |
| CUdpSocket | |
| CUrl | |
| CWsClient | |
| CWsClientConfig | |
| CWsStats | |
| CXdpConfig | |
| CXdpDatagramSource | |
| CXdpFilter | The BPF objects of one interface: subscription hash map, XSKMAP, per-CPU fallback counter and the program, plus its XDP link once attached |
| CXdpInterfaceQueues | |
| CXdpInterfaceStatus | |
| CXdpSocketStats | XDP_STATISTICS of one socket, as of the last refresh_stats() |
| CXdpStats | |
| CXdpSubscription | |
| ►Noptions | |
| CGreeks | |
| CIvResult | |
| ►Nresearch | |
| CEvalConfig | |
| CFeatureConfig | |
| CFeatureRows | |
| CFeatureTable | |
| CHorizonCoverage | Per horizon, how many rows got a forward mid and why the rest did not |
| CHorizonEval | |
| CSignalBucket | |
| CSignalEval | |
| ►Nsim | |
| CHarnessOptions | |
| CParamSchedule | |
| CStrategyHarness | |
| ►Nstore | |
| CBackend | |
| CBackendOptions | What a backend is built with |
| CBookedFillQuery | The executions an engine stored for one venue (Reader::booked_fills): the engine's side of a fill audit (core/fill_audit.hpp) |
| CParamQuery | Every query takes the same filter; a backend ignores the fields its query has no use for |
| CQueryFilter | |
| CReader | |
| ►CRecovery | What the previous session left behind, for the operator who is about to start a new one |
| CDuplicate | Executions and funding payments the engine's store holds more than once (Reader::duplicates): a restart booked them a second time, so the positions and the PnL of the sessions holding the copies count them twice |
| CPastOrder | The orders of those sessions that were not terminal at their last record and that the venue had acknowledged (a venue order id), newest first, at most kMaxPastOrders |
| CPositionState | The positions a session carries over (fastmm-live restores them before it connects; see Venue::resume_executions): per venue and symbol, the last one the engine's store holds, from this session or, for a venue and symbol it recorded nothing about (it crashed first), the newest earlier session that did |
| CTradeIdMark | The highest numeric trade id per (venue, symbol) the store holds up to the newest session that got past its replay on the venue (see above), and the ids above it that the sessions after that one stored |
| CVenueResume | |
| CRows | |
| CSessionClose | Written once, after the last record |
| ►CSessionOpen | Written once, before any record |
| CParamField | The strategy's parameter table in schema order: a ParamRecord's field index names an entry |
| CParamValue | The parameters the session starts with |
| CStoreEntry | |
| CStoreRegistry | |
| CStoreThread | |
| CStoreThreadOptions | |
| CStoreThreadStats | |
| ►Nvenues | |
| ►CBatchedOrders | The orders a venue encoded into a corked connection |
| CEntry | |
| CBlockingHttp | |
| CBlockingHttpOptions | |
| CConnectionSlot | |
| CCountdownDriver | What a connector does with a countdown switch, the same for every venue that has one (Binance USDⓈ-M countdownCancelAll, OKX cancel-all-after) |
| CCountdownSwitch | Refresh clock for a countdown dead man's switch |
| CDecimalText | Stack formatting buffer: DecimalText t(px); send(t.view()); - no heap, no locale |
| CDecodeResult | |
| CErrorMapping | |
| CEventSink | |
| CHttpReply | |
| CJsonWriter | |
| COrderCommand | |
| COutboundBatch | The engine's batch handed over directly (run-to-completion, Venue::send_now) behind the consumer side of MsgRing, so drain_outbound_coalesced takes either |
| CPaddedJson | |
| CRateBucket | |
| CRateCheck | |
| CRateLimiter | |
| CRawRecorder | |
| CRecentSpend | What was sent in the last couple of seconds (RateLimiter::kHeaderLagNs), in 125 ms slots |
| CRestChannel | |
| CRestChannelConfig | |
| ►CSentWatermark | The watermark stamped into an open-order snapshot's ReconcileMsg Begin: the engine's orders at or below it can be judged by the snapshot, the ones above it cannot |
| CMark | The watermark for a snapshot: the id, for the engine, and its send sequence (0: none sent) |
| CSharedRate | One IP's request weight, shared by every account that sends from it (RateLimiter::share_ip) |
| CSymbolTable | |
| CVenue | |
| CVenueCapabilities | What a connector declares about itself before one exists |
| CVenueCaps | |
| CVenueEntry | |
| CVenueFactoryOptions | |
| CVenueFee | The account's own fee rates on one instrument (Venue::account_fees) |
| CVenueFeedStatus | |
| CVenueKeySpec | One [venues |
| CVenueRegistry | |
| CVenueStatus | Snapshot for the stats line; every field is a plain counter so it can be copied out from the control thread (the venue publishes it through a Seqlocked) |
| CWireLatencyRecorder | |
| CWireLatencyStats | |
| CWireLatencyWindow | The three over one window (WireLatencyRecorder::summarize) |
| CBalanceMsg | The account's holding of one asset on one venue (EventType::Balance), as the venue reports it at its time hdr.exch_ts |
| CBinanceFuturesSyncTraits | Binance USDT-M futures: first applied delta must have U <= L and u >= L; afterwards each delta's pu must equal the previous delta's u |
| CBinanceSpotSyncTraits | Binance Spot: snapshot via REST (lastUpdateId = L) |
| CBookDeltaMsg | Bids then asks follow the fixed part as a flexible array of Level (bid_count + ask_count) |
| CBookSyncer | |
| CBookTickerMsg | |
| CBybitSyncTraits | Bybit v5: the stream itself sends a snapshot first (kSnapshot flag), then deltas whose u must be strictly increasing; u == 1 means the venue restarted the book (treated as a snapshot marker -> resubscribe) |
| CClockReadings | Clock readings used by TscCalibrator |
| CConfig | |
| CConfigError | |
| CConfigLoadOptions | |
| CConnectionStateMsg | |
| CControlLimitsMsg | ControlCommand::SetLimits: a ControlMsg with the new limits after it |
| CControlMsg | |
| CControlTransferMsg | ControlCommand::Transfer: one step of a pool treasury's transfer (core/treasury.hpp), on the treasury's ring into the engine, which journals it |
| CControlUnderlyingMsg | ControlCommand::SetUnderlyingLimit: a ControlMsg whose arg is the new max_net (raw Qty, base units; 0 lifts the limit) of the underlying at index underlying of the session's plan (core/underlying.hpp), named in name for the log and a journal reader |
| CCycles | |
| CDesiredQuotes | |
| CDuration | |
| CEngineConfig | |
| CEngineSection | |
| CEngineTimeMsg | Journal only (format v2): the engine clock as an absolute value |
| CEventHeader | |
| CFeeRates | One maker/taker pair. 1 cbps == 0.01 bps == 1e-6 of the notional |
| CFeesSection | |
| CFeeTable | |
| CFill | One execution as a strategy sees it (on_fill) |
| CFillRecord | One execution |
| CFixed | |
| CFundingMsg | A perpetual funding payment the venue booked on the account's position in hdr.instrument (EventType::Funding) |
| CFundingRecord | A funding payment the engine booked (FundingMsg): amount in the instrument's settlement currency, negative paid |
| CGatewaySection | Fastmm-gateway's account guards: one venue's account, shared by every attached strategy |
| CGenericSection | Free-form section used by the sim / backtest libraries: dotted keys -> stringified value |
| CHandle | |
| ►CHedgeExecutor | |
| CConfig | |
| CStats | |
| CStatus | |
| CHookInfo | |
| CInstrument | |
| CInstrumentSection | |
| ►CInstrumentTable | Dense-by-id table built at startup; symbol lookup is a sorted FlatMap keyed by (venue, symbol) |
| CKey | |
| CKeySpec | |
| CKillRecord | A kill switch trip. hdr.flags & kVenue marks a per-venue trip (hdr.venue names it) |
| CKillState | Cumulative risk state across sessions |
| CKillStateStore | |
| CL2Book | |
| CLatencySampleMsg | |
| CLevel | One price level. Shared by book messages and the L2 book |
| CLimitOrder | Chainable builder returned by NewOrderRequest::limit(); converts to NewOrderRequest |
| CLiveMetric | A number the strategy publishes by name (ctx.metric): a budget split, a model state |
| CLiveQuoteInstrument | |
| CLiveQuoteSide | One side of an instrument as the engine publishes it (EngineLiveStats::quotes) |
| CLogDescriptor | |
| CLogger | Process-wide registry of per-thread rings + the sink thread. Implemented in log_sink.cpp |
| CLoggingSection | |
| CLogRecord | |
| CNewOrderRequest | |
| COms | |
| COmsStats | |
| COmsUpdate | |
| COptionTickerMsg | Options ticker (EventType::OptionTicker): the venue's mark, implied volatilities and greeks for one option instrument |
| COrder | |
| COrderAckMsg | |
| COrderAddL3Msg | |
| COrderCancelAckMsg | |
| COrderCancelL3Msg | |
| COrderCancelRejectMsg | |
| COrderExecL3Msg | |
| COrderExpiredMsg | |
| COrderFillMsg | |
| COrderRecord | The OMS record after a transition |
| COrderRejectMsg | |
| COrderReplaceL3Msg | |
| COrderTimes | When the order's working leg (the order, or its latest replacement once acknowledged) was sent and accepted |
| COutCancelMsg | |
| COutNewOrderMsg | |
| COutReplaceMsg | |
| CParamDesc | |
| ►CParamPublisher | |
| CBlockOps | Copying and freeing a parameter block whose layout is known only at run time (strategies/hot_params.hpp); validate runs after the schema's parsers |
| CValue | Every parameter of the copy, in schema order: one instrument's, or the shared set |
| CParamRecord | A strategy parameter update the engine applied (ParamUpdateMsg): after the header, the message's bytes past its own header, so the fields sit at the same offsets |
| CParamSchema | |
| CParamSink | Where a built update goes; push returns false when it was not accepted (full) |
| CParamUpdateMsg | New strategy parameter values (ADR-0013): up to kMaxFields (field index, raw value) pairs, built and validated off the engine thread (strategies/param_publisher.hpp) |
| CPerpStateMsg | The venue's reference prices and funding of one derivative (EventType::PerpState), from its public market data |
| CPortfolio | PnL totals over every instrument (StrategyContext::portfolio()), in the reporting currency when the tracker converts (PositionTracker::set_accounting) |
| CPosition | |
| CPositionRecord | One instrument's position and the portfolio totals at the same instant |
| ►CPositionTracker | |
| CTotals | Totals of one currency, in that currency (converting() only) |
| CPositionUpdateMsg | |
| CQuoteAction | |
| CQuoteManager | |
| CQuoteNote | What the strategy says about a side (ctx.note_quote): a short reason ("inventory_cap", "model_off", "cooldown"; empty: none) and the budget it gave the side, in the settlement currency (raw 1e-8; 0: none given) |
| CQuoteParams | |
| CQuoteStats | |
| CReconcileMsg | Control thread injects the venue's view after a reconnect (5.8) |
| CRecordHeader | |
| CRecordWriter | Engine-side producer |
| CRejectRecord | One order refused: by the pre-trade checks (the engine's) or by its venue (an OrderReject), with the account's order budget as the engine saw it then (ctx.order_budget) |
| CReplayedRecord | A venue's execution replay ended complete (a reconciliation began with ReconcileMsg::kExecutionsExact): every execution the venue made before it is in the records before this one |
| CResult | |
| CResult< void, E > | Result<void, E>: success carries nothing |
| CRiskHeadroom | How much more each limit admits for one instrument now: the largest order (or number of orders) that passes that limit's check at this instant, the others aside |
| CRiskLimits | |
| CRiskReject | A new order or replace the engine's own risk check refused (RiskEngine, [risk]): nothing was sent and no order exists for it |
| CRiskSection | |
| CRunnerDeps | Everything a factory needs that is backend-independent |
| CSecret | Wrap a value to have it rendered as "***" |
| CSessionEpochStore | The 16-bit session epoch is the high half of every ClientOrderId, so two sessions that share one would let a venue's late message from the earlier session match an order of the later one |
| CSettlementMix | Instruments do not all settle in the same currency: an inverse contract settles in its base coin, a linear one in its quote currency |
| CSimClock | Deterministic clock for sim/backtest/replay. 1 cycle == 1 ns |
| CStatePosition | One instrument's position in a StrategyStateMsg's kPositionsPart: on the account (venue) whose Reconcile Position would set it |
| CStrategyBase | |
| CStrategyConflict | Thrown by register_strategy when a name is already registered with a different schema or factory |
| CStrategyContext | |
| CStrategyEntry | |
| CStrategyRegistry | |
| CStrategySection | |
| CStrategyStateMsg | Journal only: what a replay or a backtest over the journal can start from |
| CStrongId | |
| CTimerMsg | |
| CTimestamp | |
| CTopLevels | Fixed-size result of top<N>() |
| CTradeMsg | |
| CTransferRequest | |
| CTransferResult | |
| CTreasurySection | [venues |
| CTscAnchor | One simultaneous reading of the three clocks (the TSC is the midpoint of a tight bracket) |
| CTscCalibration | |
| CTscCalibrator | Long-baseline TSC calibration for the calibrator (control) thread |
| CTscClock | Periodic recalibration (see docs/explanation/architecture.md, "Clock calibration"): a calibrator thread measures with calibrate_tsc() and publishes into a Seqlocked<TscCalibration>; every TscClock user keeps its own copy and calls refresh() from its loop |
| CTscRecalibration | |
| CUnexpected | |
| CVenueHealth | |
| CVenueHealthView | What StrategyContext::venue_health returns. Durations are zero until the first sample |
| CVenueSection | |
| CXoshiro256ss | |
| ►Nstd | STL namespace |
| Chash< fastmm::StrongId< Tag, Rep, I > > |