orderbook

package module
v0.0.0-...-587c1d0 Latest Latest
Warning

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

Go to latest
Published: Aug 21, 2022 License: GPL-3.0 Imports: 6 Imported by: 0

README

Orderbook in Go

  • price-time priority
  • Add/Delete order
  • Aggregate price levels
  • LIMIT order type
  • MARKET order type

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Less

func Less(a, b decimal.Decimal) bool

Types

type Order

type Order struct {
	Action OrderAction
	ID     uint64
	Side   OrderSide
	Price  decimal.Decimal // use decimal.Zero to indicate market order
	Qty    decimal.Decimal
}

func (*Order) Clone

func (o *Order) Clone() *Order

func (*Order) String

func (o *Order) String() string

type OrderAction

type OrderAction uint
const (
	ADD OrderAction = iota
	DEL
)

type OrderBook

type OrderBook struct {
	Symbol string
	Asks   *OrderSingleSide
	Bids   *OrderSingleSide
}

func NewOrderBook

func NewOrderBook(symbol string) *OrderBook

func (*OrderBook) Debug

func (ob *OrderBook) Debug()

func (*OrderBook) Match

func (ob *OrderBook) Match(o *Order)

type OrderQueue

type OrderQueue struct {
	Price  decimal.Decimal
	Volume decimal.Decimal
	Orders *list.List
}

func NewOrderQueue

func NewOrderQueue(price decimal.Decimal) *OrderQueue

func (*OrderQueue) Append

func (oq *OrderQueue) Append(o *Order) *list.Element

func (*OrderQueue) Len

func (oq *OrderQueue) Len() int

func (*OrderQueue) Remove

func (oq *OrderQueue) Remove(e *list.Element) *Order

func (*OrderQueue) Update

func (oq *OrderQueue) Update(e *list.Element, o *Order) *list.Element

type OrderSide

type OrderSide uint
const (
	BUY OrderSide = iota
	SELL
)

type OrderSingleSide

type OrderSingleSide struct {
	Side OrderSide
	// contains filtered or unexported fields
}

func NewOrderSingleSide

func NewOrderSingleSide(side OrderSide) *OrderSingleSide

func (*OrderSingleSide) Append

func (os *OrderSingleSide) Append(o *Order)

func (*OrderSingleSide) Debug

func (os *OrderSingleSide) Debug(prefix string)

func (*OrderSingleSide) Match

func (os *OrderSingleSide) Match(o *Order) *Order

func (*OrderSingleSide) Remove

func (os *OrderSingleSide) Remove(o *Order) bool

type OrderState

type OrderState uint
const (
	INIT OrderState = iota
	PARTIAL_MATCHED
	FINISHED
	CANCELLED
)

type OrderType

type OrderType uint
const (
	LIMIT OrderType = iota
	MARKET
)

Jump to

Keyboard shortcuts

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