orderbook

package
v0.0.0-...-872243e Latest Latest
Warning

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

Go to latest
Published: Sep 27, 2019 License: GPL-3.0, LGPL-3.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CurrentOrder

type CurrentOrder struct {
	Sells []*OrderRes `json:"sells"`
	Buys  []*OrderRes `json:"buys"`
}

type OrderRes

type OrderRes struct {
	Price  decimal.Decimal
	Volume decimal.Decimal
}

type SafeMap

type SafeMap struct {
	sync.RWMutex
	Map map[string]*list.Element
}

func NewSafeMap

func NewSafeMap(size int) *SafeMap

func (*SafeMap) DeleteMap

func (sm *SafeMap) DeleteMap(key string)

func (*SafeMap) ListMap

func (sm *SafeMap) ListMap() ([]string, []*list.Element)

func (*SafeMap) ListMap_Tmp

func (sm *SafeMap) ListMap_Tmp() ([]string, []*list.Element)

//

func (*SafeMap) MapLength

func (sm *SafeMap) MapLength() int

func (*SafeMap) ReadMap

func (sm *SafeMap) ReadMap(key string) (*list.Element, bool)

func (*SafeMap) WriteMap

func (sm *SafeMap) WriteMap(key string, value *list.Element)

type XvcOrder

type XvcOrder struct {
	Id        string
	From      common.Address
	Trade     string //ETH/BTC
	Ordertype string //LimitOrder
	Side      string //Buy/Sell
	Timestamp int64
	//Quantity  decimal.Decimal
	//Price     decimal.Decimal
	Quantity string
	Price    string
	Rule     string //GTE/IOC
}

func NewXvcOrder

func NewXvcOrder(id string, from common.Address, trade string, ordertype string, side string, timestamp int64, quantity string, price string, rule string) *XvcOrder

func (*XvcOrder) Copy

func (o *XvcOrder) Copy() *XvcOrder

func (*XvcOrder) FROM

func (o *XvcOrder) FROM() common.Address

func (*XvcOrder) ID

func (o *XvcOrder) ID() string

func (*XvcOrder) MarshalJSON

func (o *XvcOrder) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler interface

func (*XvcOrder) ORDERTYPE

func (o *XvcOrder) ORDERTYPE() string

func (*XvcOrder) PRICE

func (o *XvcOrder) PRICE() string

func (*XvcOrder) QUANTITY

func (o *XvcOrder) QUANTITY() string

func (*XvcOrder) RULE

func (o *XvcOrder) RULE() string

func (*XvcOrder) SIDE

func (o *XvcOrder) SIDE() string

func (*XvcOrder) TIME

func (o *XvcOrder) TIME() int64

func (*XvcOrder) TRADE

func (o *XvcOrder) TRADE() string

func (*XvcOrder) UnmarshalJSON

func (o *XvcOrder) UnmarshalJSON(data []byte) error

UnmarshalJSON implements json.Unmarshaler interface

type XvcOrderBook

type XvcOrderBook struct {
	Orders *SafeMap

	Buys  *XvcOrderSide
	Sells *XvcOrderSide
}

func NewXvcOrderBook

func NewXvcOrderBook() *XvcOrderBook

func (*XvcOrderBook) CancelOrder

func (d *XvcOrderBook) CancelOrder(orderID string) *XvcOrder

func (*XvcOrderBook) InsertToOrderBook

func (ob *XvcOrderBook) InsertToOrderBook(od *XvcOrder) error

func (*XvcOrderBook) Order

func (ob *XvcOrderBook) Order(orderID string) *XvcOrder

func (*XvcOrderBook) Set

func (d *XvcOrderBook) Set(k string, v *list.Element)

func (*XvcOrderBook) String

func (ob *XvcOrderBook) String(trade string) (string, error)

func (*XvcOrderBook) UpdateOrder

func (d *XvcOrderBook) UpdateOrder(e *XvcOrder, diff decimal.Decimal)

type XvcOrderQueue

type XvcOrderQueue struct {
	//Volume decimal.Decimal
	//Price  decimal.Decimal
	Volume string
	Price  string
	//Orders []*XvcOrder
	Orders *list.List
}

func NewXvcOrderQueue

func NewXvcOrderQueue(price string) *XvcOrderQueue

func (*XvcOrderQueue) Append

func (oq *XvcOrderQueue) Append(o *XvcOrder) *list.Element

Append adds order to tail of the queue

func (*XvcOrderQueue) Head

func (oq *XvcOrderQueue) Head() *list.Element

Head returns top order in queue

func (*XvcOrderQueue) Len

func (oq *XvcOrderQueue) Len() int

Len returns amount of orders in queue

func (*XvcOrderQueue) OrderVolume

func (oq *XvcOrderQueue) OrderVolume(trade string) decimal.Decimal

func (*XvcOrderQueue) PRICE

func (oq *XvcOrderQueue) PRICE() string

func (*XvcOrderQueue) Remove

func (oq *XvcOrderQueue) Remove(e *list.Element) *XvcOrder

Remove removes order from the queue and link order chain

func (*XvcOrderQueue) String

func (oq *XvcOrderQueue) String() string

String implements fmt.Stringer interface

func (*XvcOrderQueue) Tail

func (oq *XvcOrderQueue) Tail() *list.Element

Tail returns bottom order in queue

func (*XvcOrderQueue) Update

func (oq *XvcOrderQueue) Update(e *XvcOrder, diff decimal.Decimal)

func (*XvcOrderQueue) VOLUME

func (oq *XvcOrderQueue) VOLUME() string

type XvcOrderSide

type XvcOrderSide struct {
	PriceTree *rbtx.RedBlackTreeExtended

	Prices    map[string]*XvcOrderQueue
	Volume    string
	NumOrders int
	Depth     int
	Lock      sync.Mutex
}

func NewOrderSide

func NewOrderSide() *XvcOrderSide

func (*XvcOrderSide) Append

func (os *XvcOrderSide) Append(o *XvcOrder) *list.Element

Append appends order to definite price level

func (*XvcOrderSide) DEPTH

func (os *XvcOrderSide) DEPTH() int

Depth returns depth of market

func (*XvcOrderSide) GreaterThan

func (os *XvcOrderSide) GreaterThan(price decimal.Decimal) *XvcOrderQueue

GreaterThan returns nearest OrderQueue with price greater than given

func (*XvcOrderSide) Len

func (os *XvcOrderSide) Len() int

func (*XvcOrderSide) LessThan

func (os *XvcOrderSide) LessThan(price decimal.Decimal) *XvcOrderQueue

LessThan returns nearest OrderQueue with price less than given

func (*XvcOrderSide) MaxPriceQueue

func (os *XvcOrderSide) MaxPriceQueue() *XvcOrderQueue

MaxPriceQueue returns maximal level of price

func (*XvcOrderSide) MinPriceQueue

func (os *XvcOrderSide) MinPriceQueue() *XvcOrderQueue

MinPriceQueue returns maximal level of price

func (*XvcOrderSide) Orders

func (os *XvcOrderSide) Orders(trade string) []*OrderRes

func (*XvcOrderSide) Remove

func (os *XvcOrderSide) Remove(e *list.Element) *XvcOrder

Remove removes order from definite price level

func (*XvcOrderSide) String

func (os *XvcOrderSide) String() string

String implements fmt.Stringer interface

func (*XvcOrderSide) UpdateOrder

func (os *XvcOrderSide) UpdateOrder(e *XvcOrder, diff decimal.Decimal)

func (*XvcOrderSide) VOLUME

func (os *XvcOrderSide) VOLUME() string

Jump to

Keyboard shortcuts

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