matching

package module
v0.0.0-...-efdf83e Latest Latest
Warning

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

Go to latest
Published: Aug 27, 2019 License: MIT Imports: 4 Imported by: 2

README

matching

撮合引擎

使用范例

goDCE

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	DEFAULT_PRECISION = 8
)

Functions

This section is empty.

Types

type Data

type Data struct {
	Action string `json:"action"`
	Order  Order  `json:"order"`
}

type DoubleSubmitError

type DoubleSubmitError struct{}

func (*DoubleSubmitError) Error

func (d *DoubleSubmitError) Error() string

type Engine

type Engine struct {
	MarketId         int
	OrderBookManager OrderBookManager
	Traded           chan Offer
	Canceled         chan int
	Options          Options
}

func InitializeEngine

func InitializeEngine(marketId int, options Options) Engine

func (*Engine) AskOrderBook

func (engine *Engine) AskOrderBook() OrderBook

func (*Engine) BidOrderBook

func (engine *Engine) BidOrderBook() OrderBook

func (*Engine) Cancel

func (engine *Engine) Cancel(order Order)

func (*Engine) LimitOrders

func (engine *Engine) LimitOrders() (result map[string]map[string][]Order)

func (*Engine) MarketOrders

func (engine *Engine) MarketOrders() (result map[string][]Order)

func (*Engine) Submit

func (engine *Engine) Submit(order Order)

type ExceedSumLimit

type ExceedSumLimit struct{}

func (*ExceedSumLimit) Error

func (doubleSeubmitError *ExceedSumLimit) Error() string

type Fee

type Fee struct {
	Fee      decimal.Decimal
	Currency string
	Fixed    int
}

type InvalidOrderError

type InvalidOrderError struct{}

func (*InvalidOrderError) Error

func (i *InvalidOrderError) Error() string

type NotEnoughVolume

type NotEnoughVolume struct{}

func (*NotEnoughVolume) Error

func (n *NotEnoughVolume) Error() string

type Offer

type Offer struct {
	MarketId    int             `json:"market_id"`
	AskId       int             `json:"ask_id"`
	BidId       int             `json:"bid_id"`
	StrikePrice decimal.Decimal `json:"strike_price"`
	Volume      decimal.Decimal `json:"volume"`
	Funds       decimal.Decimal `json:"funds"`
}

type Options

type Options struct {
	Id              int
	Code            string
	Name            string
	BaseUnit        string
	QuoteUnit       string
	PriceGroupFixed int
	Bid             Fee
	Ask             Fee
	SortOrder       int
}

type Order

type Order struct {
	Id            int
	MarketId      int
	Type          string
	OrderType     string
	Price         decimal.Decimal
	Volume        decimal.Decimal
	Locked        decimal.Decimal
	Timestamp     int64
	BasePrecision int
}

func InitializeOrder

func InitializeOrder(attrs map[string]string) (order Order, err error)

func (*Order) Fill

func (order *Order) Fill(trade Trade)

func (*Order) IsCrossed

func (order *Order) IsCrossed(price decimal.Decimal) (result bool)

func for LimitOrder

func (*Order) IsFilled

func (order *Order) IsFilled() (result bool)

func (*Order) IsValid

func (order *Order) IsValid() (result bool)

func (*Order) Label

func (order *Order) Label() (label string)

func (*Order) TradeWith

func (order *Order) TradeWith(counterOrder Order, counterBook OrderBook) (trade Trade)

func (*Order) VolumeLimit

func (order *Order) VolumeLimit(tradePrice decimal.Decimal) (result decimal.Decimal)

func for MarketOrder

type OrderBook

type OrderBook struct {
	MarketId     int
	Side         string
	LimitOrders  *rbt.Tree
	MarketOrders *rbt.Tree
	Broadcast    bool
}

func InitializeOrderBook

func InitializeOrderBook(marketId int, side string, options map[string]string) (ob OrderBook)

func (*OrderBook) Add

func (ob *OrderBook) Add(order Order) error

func (*OrderBook) BestLimitPrice

func (ob *OrderBook) BestLimitPrice() decimal.Decimal

func (*OrderBook) FillTop

func (ob *OrderBook) FillTop(trade Trade)

func (*OrderBook) Find

func (ob *OrderBook) Find(order Order) (o Order)

func (*OrderBook) LimitOrdersMap

func (ob *OrderBook) LimitOrdersMap() (orders map[string][]Order)

func (*OrderBook) LimitTop

func (ob *OrderBook) LimitTop() (order Order)

func (*OrderBook) MarketOrdersMap

func (ob *OrderBook) MarketOrdersMap() (orders []Order)

func (*OrderBook) Remove

func (ob *OrderBook) Remove(order Order) (o Order, err error)

func (*OrderBook) Top

func (ob *OrderBook) Top() (order Order)

type OrderBookManager

type OrderBookManager struct {
	MarketId     int
	AskOrderBook OrderBook
	BidOrderBook OrderBook
}

func InitializeOrderBookManager

func InitializeOrderBookManager(marketId int, options map[string]string) (orderBookManager OrderBookManager)

func (*OrderBookManager) GetBooks

func (obm *OrderBookManager) GetBooks(stype string) (OrderBook, OrderBook)

type PriceLevel

type PriceLevel struct {
	Price  decimal.Decimal
	Orders []Order
}

func InitializePriceLevel

func InitializePriceLevel(price decimal.Decimal) (pl PriceLevel)

func (*PriceLevel) Add

func (pl *PriceLevel) Add(order Order)

func (*PriceLevel) Find

func (pl *PriceLevel) Find(id int) (order Order)

func (*PriceLevel) IsEmpty

func (pl *PriceLevel) IsEmpty() (result bool)

func (*PriceLevel) Remove

func (pl *PriceLevel) Remove(order Order)

func (*PriceLevel) Top

func (pl *PriceLevel) Top() Order

type Trade

type Trade struct {
	Price  decimal.Decimal
	Volume decimal.Decimal
	Funds  decimal.Decimal
}

Jump to

Keyboard shortcuts

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