model

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 16, 2026 License: MIT Imports: 6 Imported by: 0

Documentation

Overview

Package model contains the normalized trading domain model used above SDKs.

Index

Constants

View Source
const (
	BarAggregationTime BarAggregation = "time"

	BarPriceTypeLast BarPriceType = "last"

	AggregationSourceExternal AggregationSource = "external"
	AggregationSourceInternal AggregationSource = "internal"
)

Variables

View Source
var (
	ErrInvalidInstrumentID   = errors.New("invalid instrument id")
	ErrInvalidInstrument     = errors.New("invalid instrument")
	ErrInstrumentNotFound    = errors.New("instrument not found")
	ErrInvalidMarketData     = errors.New("invalid market data")
	ErrInvalidOrder          = errors.New("invalid order")
	ErrInvalidAccount        = errors.New("invalid account")
	ErrInvalidExecutionEvent = errors.New("invalid execution event")
	ErrNotSupported          = errors.New("not supported")
)

Functions

This section is empty.

Types

type AccountID

type AccountID string

type AccountSnapshot

type AccountSnapshot struct {
	AccountID    AccountID
	Venue        Venue
	Type         AccountType
	BaseCurrency Currency
	Balances     []Balance
	Margins      []MarginBalance
	Timestamp    time.Time
}

func (AccountSnapshot) Validate

func (a AccountSnapshot) Validate() error

type AccountType

type AccountType string
const (
	AccountTypeCash   AccountType = "cash"
	AccountTypeMargin AccountType = "margin"
)

type AggregationSource

type AggregationSource string

type AggressorSide

type AggressorSide string
const (
	AggressorSideBuyer       AggressorSide = "buyer"
	AggressorSideSeller      AggressorSide = "seller"
	AggressorSideNoAggressor AggressorSide = "no_aggressor"
)

func (AggressorSide) Validate

func (s AggressorSide) Validate() error

type Balance

type Balance struct {
	Currency Currency
	Free     string
	Locked   string
	Total    string
}

func (Balance) Amounts

func (b Balance) Amounts() (total decimal.Decimal, locked decimal.Decimal, free decimal.Decimal, err error)

func (Balance) FreeAmount

func (b Balance) FreeAmount() (decimal.Decimal, error)

func (Balance) LockedAmount

func (b Balance) LockedAmount() (decimal.Decimal, error)

func (Balance) TotalAmount

func (b Balance) TotalAmount() (decimal.Decimal, error)

func (Balance) Validate

func (b Balance) Validate() error

type Bar

type Bar struct {
	BarType    BarType
	Open       decimal.Decimal
	High       decimal.Decimal
	Low        decimal.Decimal
	Close      decimal.Decimal
	Volume     decimal.Decimal
	Timestamp  time.Time
	InitTime   time.Time
	IsRevision bool
}

func (Bar) Validate

func (b Bar) Validate() error

type BarAggregation

type BarAggregation string

type BarPriceType

type BarPriceType string

type BarType

type BarType struct {
	InstrumentID      InstrumentID
	Step              time.Duration
	Aggregation       BarAggregation
	PriceType         BarPriceType
	AggregationSource AggregationSource
}

func NewTimeBarType

func NewTimeBarType(instrumentID InstrumentID, step time.Duration) BarType

func (BarType) Canonical

func (t BarType) Canonical() BarType

func (BarType) String

func (t BarType) String() string

func (BarType) Validate

func (t BarType) Validate() error

type BatchCancelOrders

type BatchCancelOrders struct {
	Metadata     CommandMetadata
	AccountID    AccountID
	InstrumentID InstrumentID
	Cancels      []CancelOrder
}

func (BatchCancelOrders) Validate

func (b BatchCancelOrders) Validate() error

type BracketOrderRequest

type BracketOrderRequest struct {
	InstrumentID InstrumentID
	Side         OrderSide
	Quantity     decimal.Decimal
	EntryPrice   decimal.Decimal
	TakeProfit   decimal.Decimal
	StopLoss     decimal.Decimal
}

type CancelAllOrders

type CancelAllOrders struct {
	Metadata     CommandMetadata
	AccountID    AccountID
	InstrumentID InstrumentID
	OrderSide    OrderSide
}

func (CancelAllOrders) MatchesOrder

func (c CancelAllOrders) MatchesOrder(order OrderStatusReport) bool

func (CancelAllOrders) Validate

func (c CancelAllOrders) Validate() error

type CancelOrder

type CancelOrder struct {
	Metadata      CommandMetadata
	AccountID     AccountID
	InstrumentID  InstrumentID
	OrderID       OrderID
	ClientOrderID ClientOrderID
}

func (CancelOrder) Validate

func (o CancelOrder) Validate() error

type ClientOrderID

type ClientOrderID string

type CommandID

type CommandID string

type CommandMetadata

type CommandMetadata struct {
	TraderID        TraderID
	StrategyID      StrategyID
	CommandID       CommandID
	CorrelationID   CorrelationID
	ClientID        ExecutionClientID
	ComponentID     ComponentID
	ExecAlgorithmID ExecAlgorithmID
	ExecSpawnID     ExecSpawnID
	TsInit          time.Time
	Params          map[string]string
}

func (CommandMetadata) Clone

func (m CommandMetadata) Clone() CommandMetadata

func (CommandMetadata) WithDefaults

func (m CommandMetadata) WithDefaults(defaults CommandMetadata) CommandMetadata

type ComponentID

type ComponentID string

type ContingencyType

type ContingencyType string
const (
	ContingencyTypeOTO ContingencyType = "oto"
	ContingencyTypeOCO ContingencyType = "oco"
	ContingencyTypeOUO ContingencyType = "ouo"
)

func (ContingencyType) Validate

func (c ContingencyType) Validate() error

type CorrelationID

type CorrelationID string

type Currency

type Currency string

type CustomData

type CustomData struct {
	InstrumentID InstrumentID
	Type         string
	Fields       map[string]string
	Timestamp    time.Time
	InitTime     time.Time
}

func (CustomData) Validate

func (d CustomData) Validate() error

type DataRequest

type DataRequest struct {
	Metadata     CommandMetadata
	RequestID    DataRequestID
	InstrumentID InstrumentID
	Type         MarketDataType
	BarType      BarType
	Start        time.Time
	End          time.Time
	Limit        int
	Depth        int
	CustomType   string
}

func (DataRequest) Validate

func (r DataRequest) Validate() error

type DataRequestID

type DataRequestID string

type DataResponse

type DataResponse struct {
	Metadata     CommandMetadata
	RequestID    DataRequestID
	InstrumentID InstrumentID
	Type         MarketDataType
	BarType      BarType
	Events       []MarketEvent
	IsFinal      bool
}

func (DataResponse) Validate

func (r DataResponse) Validate() error

type ExecAlgorithmID

type ExecAlgorithmID string

type ExecSpawnID

type ExecSpawnID string

type ExecutionClientID

type ExecutionClientID string

type ExecutionEvent

type ExecutionEvent struct {
	Account           *AccountSnapshot
	Order             *OrderStatusReport
	Lifecycle         *OrderLifecycleEvent
	Fill              *FillReport
	Position          *PositionStatusReport
	PositionLifecycle *PositionLifecycleEvent
}

func (ExecutionEvent) Validate

func (e ExecutionEvent) Validate() error

type ExecutionMassStatus

type ExecutionMassStatus struct {
	Metadata  CommandMetadata
	AccountID AccountID
	Venue     Venue
	Accounts  []AccountSnapshot
	Orders    []OrderStatusReport
	Fills     []FillReport
	Positions []PositionStatusReport
	Timestamp time.Time
}

func (ExecutionMassStatus) Validate

func (s ExecutionMassStatus) Validate() error

type FillReport

type FillReport struct {
	AccountID     AccountID
	InstrumentID  InstrumentID
	OrderID       OrderID
	VenueOrderID  VenueOrderID
	ClientOrderID ClientOrderID
	TradeID       TradeID
	PositionID    PositionID
	IsLeg         bool
	Side          OrderSide
	Price         decimal.Decimal
	Quantity      decimal.Decimal
	Fee           decimal.Decimal
	FeeCurrency   Currency
	Timestamp     time.Time
}

func (FillReport) IsLegFill

func (r FillReport) IsLegFill() bool

func (FillReport) Validate

func (r FillReport) Validate() error

type FundingRate

type FundingRate struct {
	InstrumentID InstrumentID
	// Rate is the venue's settlement-interval funding rate. FundingInterval
	// declares that interval when the venue exposes it; callers that need an
	// hourly rate should derive it explicitly from these fields.
	Rate            decimal.Decimal
	MarkPrice       decimal.Decimal
	IndexPrice      decimal.Decimal
	NextFundingTime time.Time
	FundingInterval time.Duration
	Timestamp       time.Time
	InitTime        time.Time
}

func (FundingRate) Validate

func (f FundingRate) Validate() error

type GenerateExecutionMassStatus

type GenerateExecutionMassStatus struct {
	Metadata        CommandMetadata
	AccountID       AccountID
	InstrumentID    InstrumentID
	OrderID         OrderID
	VenueOrderID    VenueOrderID
	ClientOrderID   ClientOrderID
	PositionID      PositionID
	VenuePositionID VenuePositionID
}

func (GenerateExecutionMassStatus) Validate

func (c GenerateExecutionMassStatus) Validate() error

type GenerateFillReports

type GenerateFillReports struct {
	Metadata      CommandMetadata
	AccountID     AccountID
	InstrumentID  InstrumentID
	OrderID       OrderID
	VenueOrderID  VenueOrderID
	ClientOrderID ClientOrderID
	StartTradeID  TradeID
}

func (GenerateFillReports) Validate

func (c GenerateFillReports) Validate() error

type GenerateOrderStatusReports

type GenerateOrderStatusReports struct {
	Metadata      CommandMetadata
	AccountID     AccountID
	InstrumentID  InstrumentID
	OrderID       OrderID
	VenueOrderID  VenueOrderID
	ClientOrderID ClientOrderID
}

func (GenerateOrderStatusReports) Validate

func (c GenerateOrderStatusReports) Validate() error

type GeneratePositionStatusReports

type GeneratePositionStatusReports struct {
	Metadata        CommandMetadata
	AccountID       AccountID
	InstrumentID    InstrumentID
	PositionID      PositionID
	VenuePositionID VenuePositionID
}

func (GeneratePositionStatusReports) Validate

func (c GeneratePositionStatusReports) Validate() error

type Instrument

type Instrument struct {
	ID          InstrumentID
	RawSymbol   string
	Type        InstrumentType
	Base        Currency
	Quote       Currency
	Settle      Currency
	PriceTick   decimal.Decimal
	SizeTick    decimal.Decimal
	MakerFee    decimal.Decimal
	TakerFee    decimal.Decimal
	MarginInit  decimal.Decimal
	MarginMaint decimal.Decimal
	Status      InstrumentStatus
}

func (Instrument) Validate

func (i Instrument) Validate() error

func (Instrument) ValidatePrice

func (i Instrument) ValidatePrice(price decimal.Decimal) error

func (Instrument) ValidateSize

func (i Instrument) ValidateSize(size decimal.Decimal) error

type InstrumentID

type InstrumentID struct {
	Symbol string
	Venue  Venue
}

func MustInstrumentID

func MustInstrumentID(raw string) InstrumentID

func ParseInstrumentID

func ParseInstrumentID(raw string) (InstrumentID, error)

func (InstrumentID) IsSynthetic

func (id InstrumentID) IsSynthetic() bool

func (InstrumentID) String

func (id InstrumentID) String() string

func (InstrumentID) Validate

func (id InstrumentID) Validate() error

type InstrumentStatus

type InstrumentStatus string
const (
	InstrumentStatusTrading InstrumentStatus = "trading"
	InstrumentStatusHalted  InstrumentStatus = "halted"
)

type InstrumentType

type InstrumentType string
const (
	InstrumentTypeSpot      InstrumentType = "spot"
	InstrumentTypePerp      InstrumentType = "perp"
	InstrumentTypeFuture    InstrumentType = "future"
	InstrumentTypeOption    InstrumentType = "option"
	InstrumentTypeSpread    InstrumentType = "spread"
	InstrumentTypeSynthetic InstrumentType = "synthetic"
	InstrumentTypeIndex     InstrumentType = "index"
	InstrumentTypeEquity    InstrumentType = "equity"
	InstrumentTypeBetting   InstrumentType = "betting"
)

func (InstrumentType) Validate

func (t InstrumentType) Validate() error

type MarginBalance

type MarginBalance struct {
	Currency     Currency
	InstrumentID InstrumentID
	Initial      string
	Maintenance  string
}

func (MarginBalance) Amounts

func (m MarginBalance) Amounts() (initial decimal.Decimal, maintenance decimal.Decimal, err error)

func (MarginBalance) Validate

func (m MarginBalance) Validate() error

type MarketDataType

type MarketDataType string
const (
	MarketDataTypeTicker      MarketDataType = "ticker"
	MarketDataTypeOrderBook   MarketDataType = "order_book"
	MarketDataTypeTradeTick   MarketDataType = "trade_tick"
	MarketDataTypeQuoteTick   MarketDataType = "quote_tick"
	MarketDataTypeBar         MarketDataType = "bar"
	MarketDataTypeFundingRate MarketDataType = "funding_rate"
	MarketDataTypeCustom      MarketDataType = "custom"
)

func (MarketDataType) String

func (t MarketDataType) String() string

func (MarketDataType) Validate

func (t MarketDataType) Validate() error

type MarketEvent

type MarketEvent struct {
	Ticker      *Ticker
	OrderBook   *OrderBook
	Trade       *TradeTick
	Quote       *QuoteTick
	Bar         *Bar
	FundingRate *FundingRate
	Custom      *CustomData
}

func (MarketEvent) InstrumentID

func (e MarketEvent) InstrumentID() InstrumentID

func (MarketEvent) Validate

func (e MarketEvent) Validate() error

type ModifyOrder

type ModifyOrder struct {
	Metadata           CommandMetadata
	AccountID          AccountID
	InstrumentID       InstrumentID
	OrderID            OrderID
	VenueOrderID       VenueOrderID
	ClientOrderID      ClientOrderID
	Quantity           decimal.Decimal
	Price              decimal.Decimal
	TriggerPrice       decimal.Decimal
	ActivationPrice    decimal.Decimal
	TrailingOffset     decimal.Decimal
	TrailingOffsetType TrailingOffsetType
	TimeInForce        TimeInForce
}

func (ModifyOrder) Validate

func (o ModifyOrder) Validate() error

type OrderBook

type OrderBook struct {
	InstrumentID InstrumentID
	Bids         []OrderBookLevel
	Asks         []OrderBookLevel
	Timestamp    time.Time
}

func (OrderBook) Validate

func (b OrderBook) Validate() error

type OrderBookLevel

type OrderBookLevel struct {
	Price decimal.Decimal
	Size  decimal.Decimal
}

type OrderEventKind

type OrderEventKind string
const (
	OrderEventInitialized     OrderEventKind = "order_initialized"
	OrderEventDenied          OrderEventKind = "order_denied"
	OrderEventEmulated        OrderEventKind = "order_emulated"
	OrderEventReleased        OrderEventKind = "order_released"
	OrderEventSubmitted       OrderEventKind = "order_submitted"
	OrderEventAccepted        OrderEventKind = "order_accepted"
	OrderEventRejected        OrderEventKind = "order_rejected"
	OrderEventTriggered       OrderEventKind = "order_triggered"
	OrderEventPendingUpdate   OrderEventKind = "order_pending_update"
	OrderEventPendingCancel   OrderEventKind = "order_pending_cancel"
	OrderEventUpdated         OrderEventKind = "order_updated"
	OrderEventModifyRejected  OrderEventKind = "order_modify_rejected"
	OrderEventCancelRejected  OrderEventKind = "order_cancel_rejected"
	OrderEventCanceled        OrderEventKind = "order_canceled"
	OrderEventExpired         OrderEventKind = "order_expired"
	OrderEventPartiallyFilled OrderEventKind = "order_partially_filled"
	OrderEventFilled          OrderEventKind = "order_filled"
)

func (OrderEventKind) TargetStatus

func (k OrderEventKind) TargetStatus() (OrderStatus, bool)

type OrderFactory

type OrderFactory struct {
	// contains filtered or unexported fields
}

func NewOrderFactory

func NewOrderFactory(accountID AccountID, opts ...OrderFactoryOption) *OrderFactory

func (*OrderFactory) Bracket

func (f *OrderFactory) Bracket(req BracketOrderRequest) OrderList

func (*OrderFactory) Limit

func (f *OrderFactory) Limit(instrumentID InstrumentID, side OrderSide, quantity decimal.Decimal, price decimal.Decimal, opts ...SubmitOrderOption) SubmitOrder

func (*OrderFactory) LimitIfTouched

func (f *OrderFactory) LimitIfTouched(instrumentID InstrumentID, side OrderSide, quantity decimal.Decimal, price decimal.Decimal, triggerPrice decimal.Decimal, opts ...SubmitOrderOption) SubmitOrder

func (*OrderFactory) Market

func (f *OrderFactory) Market(instrumentID InstrumentID, side OrderSide, quantity decimal.Decimal, opts ...SubmitOrderOption) SubmitOrder

func (*OrderFactory) MarketIfTouched

func (f *OrderFactory) MarketIfTouched(instrumentID InstrumentID, side OrderSide, quantity decimal.Decimal, triggerPrice decimal.Decimal, opts ...SubmitOrderOption) SubmitOrder

func (*OrderFactory) MarketToLimit

func (f *OrderFactory) MarketToLimit(instrumentID InstrumentID, side OrderSide, quantity decimal.Decimal, opts ...SubmitOrderOption) SubmitOrder

func (*OrderFactory) StopLimit

func (f *OrderFactory) StopLimit(instrumentID InstrumentID, side OrderSide, quantity decimal.Decimal, price decimal.Decimal, triggerPrice decimal.Decimal, opts ...SubmitOrderOption) SubmitOrder

func (*OrderFactory) StopMarket

func (f *OrderFactory) StopMarket(instrumentID InstrumentID, side OrderSide, quantity decimal.Decimal, triggerPrice decimal.Decimal, opts ...SubmitOrderOption) SubmitOrder

func (*OrderFactory) TrailingStopLimit

func (f *OrderFactory) TrailingStopLimit(instrumentID InstrumentID, side OrderSide, quantity decimal.Decimal, price decimal.Decimal, trailingOffset decimal.Decimal, opts ...SubmitOrderOption) SubmitOrder

func (*OrderFactory) TrailingStopMarket

func (f *OrderFactory) TrailingStopMarket(instrumentID InstrumentID, side OrderSide, quantity decimal.Decimal, trailingOffset decimal.Decimal, opts ...SubmitOrderOption) SubmitOrder

type OrderFactoryOption

type OrderFactoryOption func(*OrderFactory)

func WithClientOrderIDPrefix

func WithClientOrderIDPrefix(prefix string) OrderFactoryOption

func WithOrderMetadata

func WithOrderMetadata(metadata CommandMetadata) OrderFactoryOption

type OrderID

type OrderID string

type OrderLifecycleEvent

type OrderLifecycleEvent struct {
	Metadata       CommandMetadata
	AccountID      AccountID
	InstrumentID   InstrumentID
	OrderID        OrderID
	ClientOrderID  ClientOrderID
	VenueOrderID   VenueOrderID
	Kind           OrderEventKind
	PreviousStatus OrderStatus
	Status         OrderStatus
	Reason         string
	Report         *OrderStatusReport
}

func (OrderLifecycleEvent) Validate

func (e OrderLifecycleEvent) Validate() error

type OrderList

type OrderList struct {
	Metadata CommandMetadata
	ID       OrderListID
	Orders   []SubmitOrder
}

func (OrderList) IsBracket

func (l OrderList) IsBracket() bool

func (OrderList) Kind

func (l OrderList) Kind() OrderListKind

func (OrderList) UniformInstrument

func (l OrderList) UniformInstrument() (InstrumentID, bool)

func (OrderList) Validate

func (l OrderList) Validate() error

func (OrderList) Venue

func (l OrderList) Venue() (Venue, bool)

func (OrderList) WithCommandMetadataDefaults

func (l OrderList) WithCommandMetadataDefaults() OrderList

type OrderListID

type OrderListID string

type OrderListKind

type OrderListKind string
const (
	OrderListKindBulk    OrderListKind = "bulk"
	OrderListKindOTO     OrderListKind = "oto"
	OrderListKindOCO     OrderListKind = "oco"
	OrderListKindOUO     OrderListKind = "ouo"
	OrderListKindBracket OrderListKind = "bracket"
)

type OrderSide

type OrderSide string
const (
	OrderSideBuy  OrderSide = "buy"
	OrderSideSell OrderSide = "sell"
)

func (OrderSide) Opposite

func (s OrderSide) Opposite() OrderSide

type OrderStatus

type OrderStatus string
const (
	OrderStatusInitialized     OrderStatus = "initialized"
	OrderStatusDenied          OrderStatus = "denied"
	OrderStatusEmulated        OrderStatus = "emulated"
	OrderStatusReleased        OrderStatus = "released"
	OrderStatusSubmitted       OrderStatus = "submitted"
	OrderStatusAccepted        OrderStatus = "accepted"
	OrderStatusTriggered       OrderStatus = "triggered"
	OrderStatusPendingCancel   OrderStatus = "pending_cancel"
	OrderStatusPendingUpdate   OrderStatus = "pending_update"
	OrderStatusPartiallyFilled OrderStatus = "partially_filled"
	OrderStatusFilled          OrderStatus = "filled"
	OrderStatusCanceled        OrderStatus = "canceled"
	OrderStatusRejected        OrderStatus = "rejected"
	OrderStatusExpired         OrderStatus = "expired"
)

func (OrderStatus) IsOpen

func (s OrderStatus) IsOpen() bool

func (OrderStatus) IsTerminal

func (s OrderStatus) IsTerminal() bool

type OrderStatusReport

type OrderStatusReport struct {
	Metadata            CommandMetadata
	AccountID           AccountID
	InstrumentID        InstrumentID
	TriggerInstrumentID InstrumentID
	OrderListID         OrderListID
	PositionID          PositionID
	OrderID             OrderID
	VenueOrderID        VenueOrderID
	ParentClientOrderID ClientOrderID
	ClientOrderID       ClientOrderID
	Status              OrderStatus
	Side                OrderSide
	Type                OrderType
	Contingency         ContingencyType
	Quantity            decimal.Decimal
	FilledQuantity      decimal.Decimal
	LeavesQuantity      decimal.Decimal
	Price               decimal.Decimal
	TriggerPrice        decimal.Decimal
	ActivationPrice     decimal.Decimal
	TrailingOffset      decimal.Decimal
	TrailingOffsetType  TrailingOffsetType
	PostOnly            bool
	ReduceOnly          bool
	TimeInForce         TimeInForce
	ExpireTime          time.Time
	AveragePrice        decimal.Decimal
	LastUpdatedTime     time.Time
}

func ApplyOrderModification

func ApplyOrderModification(order OrderStatusReport, modify ModifyOrder) (OrderStatusReport, bool, error)

func (OrderStatusReport) TriggerInstrument

func (r OrderStatusReport) TriggerInstrument() InstrumentID

func (OrderStatusReport) Validate

func (r OrderStatusReport) Validate() error

type OrderType

type OrderType string
const (
	OrderTypeMarket             OrderType = "market"
	OrderTypeLimit              OrderType = "limit"
	OrderTypeMarketToLimit      OrderType = "market_to_limit"
	OrderTypeStopMarket         OrderType = "stop_market"
	OrderTypeStopLimit          OrderType = "stop_limit"
	OrderTypeMarketIfTouched    OrderType = "market_if_touched"
	OrderTypeLimitIfTouched     OrderType = "limit_if_touched"
	OrderTypeTrailingStopMarket OrderType = "trailing_stop_market"
	OrderTypeTrailingStopLimit  OrderType = "trailing_stop_limit"
)

func (OrderType) Validate

func (t OrderType) Validate() error

type PositionEventKind

type PositionEventKind string
const (
	PositionEventOpened  PositionEventKind = "position_opened"
	PositionEventChanged PositionEventKind = "position_changed"
	PositionEventClosed  PositionEventKind = "position_closed"
)

type PositionID

type PositionID string

type PositionLifecycleEvent

type PositionLifecycleEvent struct {
	AccountID        AccountID
	InstrumentID     InstrumentID
	PositionID       PositionID
	Kind             PositionEventKind
	PreviousSide     PositionSide
	PreviousQuantity decimal.Decimal
	Side             PositionSide
	Quantity         decimal.Decimal
	Report           *PositionStatusReport
}

func NewPositionLifecycleEvent

func NewPositionLifecycleEvent(previous *PositionStatusReport, next PositionStatusReport) (PositionLifecycleEvent, bool)

func (PositionLifecycleEvent) Validate

func (e PositionLifecycleEvent) Validate() error

type PositionSide

type PositionSide string
const (
	PositionSideLong  PositionSide = "long"
	PositionSideShort PositionSide = "short"
	PositionSideFlat  PositionSide = "flat"
)

type PositionStatusReport

type PositionStatusReport struct {
	Metadata        CommandMetadata
	AccountID       AccountID
	InstrumentID    InstrumentID
	PositionID      PositionID
	VenuePositionID VenuePositionID
	Side            PositionSide
	Quantity        decimal.Decimal
	EntryPrice      decimal.Decimal
	Timestamp       time.Time
}

func (PositionStatusReport) Validate

func (r PositionStatusReport) Validate() error

type QueryAccount

type QueryAccount struct {
	Metadata  CommandMetadata
	AccountID AccountID
}

func (QueryAccount) Validate

func (q QueryAccount) Validate() error

type QueryOrder

type QueryOrder struct {
	Metadata      CommandMetadata
	AccountID     AccountID
	InstrumentID  InstrumentID
	OrderID       OrderID
	VenueOrderID  VenueOrderID
	ClientOrderID ClientOrderID
}

func (QueryOrder) Validate

func (q QueryOrder) Validate() error

type QuoteTick

type QuoteTick struct {
	InstrumentID InstrumentID
	BidPrice     decimal.Decimal
	AskPrice     decimal.Decimal
	BidSize      decimal.Decimal
	AskSize      decimal.Decimal
	Timestamp    time.Time
	InitTime     time.Time
}

func (QuoteTick) Validate

func (q QuoteTick) Validate() error

type StrategyID

type StrategyID string

type SubmitOrder

type SubmitOrder struct {
	Metadata            CommandMetadata
	AccountID           AccountID
	InstrumentID        InstrumentID
	TriggerInstrumentID InstrumentID
	OrderListID         OrderListID
	ParentClientOrderID ClientOrderID
	ClientOrderID       ClientOrderID
	Side                OrderSide
	Type                OrderType
	Contingency         ContingencyType
	TimeInForce         TimeInForce
	Quantity            decimal.Decimal
	Price               decimal.Decimal
	TriggerPrice        decimal.Decimal
	ActivationPrice     decimal.Decimal
	TrailingOffset      decimal.Decimal
	TrailingOffsetType  TrailingOffsetType
	EmulationTrigger    TriggerType
	PostOnly            bool
	ReduceOnly          bool
	ExpireTime          time.Time
}

func (SubmitOrder) TriggerInstrument

func (o SubmitOrder) TriggerInstrument() InstrumentID

func (SubmitOrder) Validate

func (o SubmitOrder) Validate() error

type SubmitOrderList

type SubmitOrderList struct {
	Metadata  CommandMetadata
	AccountID AccountID
	List      OrderList
}

func (SubmitOrderList) Validate

func (c SubmitOrderList) Validate() error

func (SubmitOrderList) WithCommandMetadataDefaults

func (c SubmitOrderList) WithCommandMetadataDefaults() SubmitOrderList

type SubmitOrderOption

type SubmitOrderOption func(*SubmitOrder)

func WithActivationPrice

func WithActivationPrice(price decimal.Decimal) SubmitOrderOption

func WithClientOrderID

func WithClientOrderID(id ClientOrderID) SubmitOrderOption

func WithCommandMetadata

func WithCommandMetadata(metadata CommandMetadata) SubmitOrderOption

func WithContingency

func WithContingency(contingency ContingencyType) SubmitOrderOption

func WithExpireTime

func WithExpireTime(expire time.Time) SubmitOrderOption

func WithOrderListID

func WithOrderListID(id OrderListID) SubmitOrderOption

func WithParentClientOrderID

func WithParentClientOrderID(id ClientOrderID) SubmitOrderOption

func WithPostOnly

func WithPostOnly() SubmitOrderOption

func WithReduceOnly

func WithReduceOnly() SubmitOrderOption

func WithTimeInForce

func WithTimeInForce(tif TimeInForce) SubmitOrderOption

func WithTrailingOffset

func WithTrailingOffset(offset decimal.Decimal) SubmitOrderOption

func WithTrailingOffsetType

func WithTrailingOffsetType(offsetType TrailingOffsetType) SubmitOrderOption

func WithTriggerInstrumentID

func WithTriggerInstrumentID(id InstrumentID) SubmitOrderOption

func WithTriggerPrice

func WithTriggerPrice(price decimal.Decimal) SubmitOrderOption

type SubscribeMarketData

type SubscribeMarketData struct {
	InstrumentID InstrumentID
	Type         MarketDataType
	Depth        int
	BarType      BarType
}

func (SubscribeMarketData) Key

func (s SubscribeMarketData) Key() string

func (SubscribeMarketData) Validate

func (s SubscribeMarketData) Validate() error

type SyntheticInstrument

type SyntheticInstrument struct {
	ID             InstrumentID
	PricePrecision int
	PriceTick      decimal.Decimal
	Components     []InstrumentID
	Formula        string
	Timestamp      time.Time
	InitTime       time.Time
}

func (SyntheticInstrument) Validate

func (s SyntheticInstrument) Validate() error

type Ticker

type Ticker struct {
	InstrumentID InstrumentID
	Bid          decimal.Decimal
	Ask          decimal.Decimal
	Last         decimal.Decimal
	Timestamp    time.Time
}

func (Ticker) Validate

func (t Ticker) Validate() error

type TimeInForce

type TimeInForce string
const (
	TimeInForceGTC TimeInForce = "gtc"
	TimeInForceIOC TimeInForce = "ioc"
	TimeInForceFOK TimeInForce = "fok"
	TimeInForceGTD TimeInForce = "gtd"
	TimeInForceDAY TimeInForce = "day"
)

func (TimeInForce) Validate

func (t TimeInForce) Validate() error

type TradeID

type TradeID string

type TradeTick

type TradeTick struct {
	InstrumentID  InstrumentID
	Price         decimal.Decimal
	Size          decimal.Decimal
	AggressorSide AggressorSide
	TradeID       TradeID
	Timestamp     time.Time
	InitTime      time.Time
}

func (TradeTick) Validate

func (t TradeTick) Validate() error

type TraderID

type TraderID string

type TrailingOffsetType

type TrailingOffsetType string
const (
	TrailingOffsetTypePrice       TrailingOffsetType = "price"
	TrailingOffsetTypeBasisPoints TrailingOffsetType = "basis_points"
	TrailingOffsetTypeTicks       TrailingOffsetType = "ticks"
)

func (TrailingOffsetType) Canonical

func (t TrailingOffsetType) Canonical() TrailingOffsetType

func (TrailingOffsetType) Validate

func (t TrailingOffsetType) Validate() error

type TriggerType

type TriggerType string
const (
	TriggerTypeNoTrigger TriggerType = "no_trigger"
	TriggerTypeDefault   TriggerType = "default"
	TriggerTypeBidAsk    TriggerType = "bid_ask"
	TriggerTypeLastPrice TriggerType = "last_price"
)

func (TriggerType) IsActive

func (t TriggerType) IsActive() bool

func (TriggerType) Validate

func (t TriggerType) Validate() error

type Venue

type Venue string

type VenueOrderID

type VenueOrderID string

type VenuePositionID

type VenuePositionID string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL