Versions in this module Expand all Collapse all v1 v1.0.0 Jun 16, 2026 Changes in this version + const ReconciliationCaseExternalOrders + const ReconciliationCaseFillBeforeOrder + const ReconciliationCaseMassStatus + const ReconciliationCaseMissingFills + const ReconciliationCaseOrderDiscrepancy + var ErrAlgorithmIDMissing = errors.New("execution algorithm id missing") + var ErrAlgorithmNotFound = errors.New("execution algorithm not found") + var ErrClientNotFound = errors.New("execution client not found") + var ErrInvalidTransition = errors.New("invalid execution transition") + var ErrOverfill = errors.New("execution overfill") + type BatchCanceler interface + BatchCancelOrders func(context.Context, model.BatchCancelOrders) ([]model.OrderStatusReport, error) + type CancelAllCanceler interface + CancelAllOrders func(context.Context, model.CancelAllOrders) ([]model.OrderStatusReport, error) + type Client interface + type Config struct + AllowOverfills bool + Cache *cache.Cache + PositionIDMode PositionIDMode + type EmulatedRelease struct + Order model.SubmitOrder + Released model.OrderStatusReport + Triggered model.OrderStatusReport + type Emulator struct + func NewEmulator(cfg EmulatorConfig) *Emulator + func (e *Emulator) CancelOrder(cancel model.CancelOrder) (model.OrderStatusReport, bool, error) + func (e *Emulator) ModifyOrder(modify model.ModifyOrder) (model.OrderStatusReport, *EmulatedRelease, bool, error) + func (e *Emulator) ProcessMarketEvent(event model.MarketEvent) ([]EmulatedRelease, error) + func (e *Emulator) SubmitOrder(order model.SubmitOrder) (model.OrderStatusReport, *EmulatedRelease, error) + type EmulatorConfig struct + Cache *cache.Cache + Manager *Manager + type Engine struct + func NewEngine(cfg EngineConfig) *Engine + func (e *Engine) AddAlgorithm(algorithm ExecutionAlgorithm) error + func (e *Engine) AddClient(client Client) error + func (e *Engine) BatchCancelOrders(ctx context.Context, batch model.BatchCancelOrders) ([]model.OrderStatusReport, error) + func (e *Engine) CancelAllOrders(ctx context.Context, cancelAll model.CancelAllOrders) ([]model.OrderStatusReport, error) + func (e *Engine) CancelOrder(ctx context.Context, cancel model.CancelOrder) (model.OrderStatusReport, error) + func (e *Engine) Events() <-chan model.ExecutionEvent + func (e *Engine) ExternalOrderClaim(instrumentID model.InstrumentID) (model.StrategyID, bool) + func (e *Engine) ExternalOrderClaimInstruments() []model.InstrumentID + func (e *Engine) GenerateExecutionMassStatus(ctx context.Context, command model.GenerateExecutionMassStatus) (model.ExecutionMassStatus, error) + func (e *Engine) GenerateFillReports(ctx context.Context, command model.GenerateFillReports) ([]model.FillReport, error) + func (e *Engine) GenerateOrderStatusReports(ctx context.Context, command model.GenerateOrderStatusReports) ([]model.OrderStatusReport, error) + func (e *Engine) GeneratePositionStatusReports(ctx context.Context, command model.GeneratePositionStatusReports) ([]model.PositionStatusReport, error) + func (e *Engine) Health() Health + func (e *Engine) Manager() *Manager + func (e *Engine) ModifyOrder(ctx context.Context, modify model.ModifyOrder) (model.OrderStatusReport, error) + func (e *Engine) ProcessMarketEvent(ctx context.Context, event model.MarketEvent) ([]model.OrderStatusReport, error) + func (e *Engine) Purge(accountID model.AccountID, policy cache.PurgePolicy) cache.PurgeResult + func (e *Engine) QueryAccount(ctx context.Context, query model.QueryAccount) (model.AccountSnapshot, error) + func (e *Engine) QueryOrder(ctx context.Context, query model.QueryOrder) (model.OrderStatusReport, error) + func (e *Engine) RegisterExternalOrderClaim(instrumentID model.InstrumentID, strategyID model.StrategyID) error + func (e *Engine) Snapshot(accountID model.AccountID) cache.Snapshot + func (e *Engine) Start(ctx context.Context) error + func (e *Engine) Stop(ctx context.Context) error + func (e *Engine) SubmitOrder(ctx context.Context, order model.SubmitOrder) (model.OrderStatusReport, error) + func (e *Engine) SubmitOrderList(ctx context.Context, command model.SubmitOrderList) ([]model.OrderStatusReport, error) + type EngineConfig struct + Cache *cache.Cache + Emulator *Emulator + Manager *Manager + type ExecutionAlgorithm interface + ID func() model.ExecAlgorithmID + SubmitOrder func(context.Context, model.SubmitOrder) (model.OrderStatusReport, error) + type ExternalOrderPolicy struct + AllowImport bool + StrategyID model.StrategyID + type Health struct + Algorithms int + Cancels int64 + Clients int + Modifies int64 + Queries int64 + Starts int64 + Stops int64 + Submits int64 + type HeldOrderListChildren struct + Orders []model.SubmitOrder + ParentClientOrderID model.ClientOrderID + type Manager struct + func NewManager(cfg Config) *Manager + func (m *Manager) ApplyFill(fill model.FillReport) (bool, error) + func (m *Manager) ApplyOrderReport(report model.OrderStatusReport) error + func (m *Manager) CacheSubmitCommand(order model.SubmitOrder) error + func (m *Manager) DeterminePositionID(accountID model.AccountID, instrumentID model.InstrumentID, ...) model.PositionID + func (m *Manager) HandleOrderListProgress(order model.OrderStatusReport) (OrderListActions, error) + func (m *Manager) IndexOrderList(list model.OrderList) error + func (m *Manager) OrderListSnapshot(accountID model.AccountID, orderListID model.OrderListID) (OrderListSnapshot, bool) + func (m *Manager) OrderListSnapshots(accountID model.AccountID) []OrderListSnapshot + func (m *Manager) PopSubmitCommand(clientOrderID model.ClientOrderID) (model.SubmitOrder, bool) + func (m *Manager) SubmitCommand(clientOrderID model.ClientOrderID) (model.SubmitOrder, bool) + type OrderListActions struct + Cancel []model.CancelOrder + Modify []model.ModifyOrder + Submit []model.SubmitOrder + type OrderListAlgorithm interface + SubmitOrderList func(context.Context, model.SubmitOrderList) ([]model.OrderStatusReport, error) + type OrderListFillProgress struct + FilledQuantity decimal.Decimal + OrderID model.OrderID + type OrderListSnapshot struct + AccountID model.AccountID + FillProgress []OrderListFillProgress + HeldChildren []HeldOrderListChildren + HeldCount int + Kind model.OrderListKind + MemberCount int + Members []model.ClientOrderID + OpenCount int + OrderListID model.OrderListID + Orders []model.OrderStatusReport + Status OrderListStatus + TerminalCount int + type OrderListStatus string + const OrderListStatusClosed + const OrderListStatusInitialized + const OrderListStatusOpen + type OrderListSubmitter interface + SubmitOrderList func(context.Context, model.SubmitOrderList) ([]model.OrderStatusReport, error) + type PositionIDMode string + const PositionIDModeHedging + const PositionIDModeNetting + type Reconciler struct + func NewReconciler(cfg ReconciliationConfig) *Reconciler + func (r *Reconciler) AuditTrail() ReconciliationAudit + func (r *Reconciler) DetectOrderDiscrepancies(reports []model.OrderStatusReport) (ReconciliationResult, error) + func (r *Reconciler) LastResult() ReconciliationResult + func (r *Reconciler) ReconcileExternalOrders(reports []model.OrderStatusReport, policy ExternalOrderPolicy) (ReconciliationResult, error) + func (r *Reconciler) ReconcileMassStatus(status model.ExecutionMassStatus) (ReconciliationResult, error) + func (r *Reconciler) ReconcileMissingFills(reports []model.FillReport, lookbackStart time.Time) (ReconciliationResult, error) + type ReconciliationAudit struct + History []ReconciliationResult + LastError string + LastErrorResult ReconciliationResult + LastResult ReconciliationResult + LastSuccess ReconciliationResult + Unresolved []ReconciliationDiscrepancy + type ReconciliationConfig struct + Cache *cache.Cache + Manager *Manager + type ReconciliationDiscrepancy struct + AccountID model.AccountID + InstrumentID model.InstrumentID + Kind string + OrderID model.OrderID + PositionID model.PositionID + Reason string + TradeID model.TradeID + type ReconciliationResult struct + AccountID model.AccountID + AccountsApplied int + CaseID string + CompletedAt time.Time + DuplicatesSkipped int + FillsApplied int + FillsDeferred int + InstrumentID model.InstrumentID + LookbackSkipped int + OrdersApplied int + PositionsApplied int + ReportsScanned int + StartedAt time.Time + Unresolved []ReconciliationDiscrepancy