maker

package
v0.0.0-...-8fb26ab Latest Latest
Warning

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

Go to latest
Published: Oct 15, 2023 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CumulativeQtySpreadModel

type CumulativeQtySpreadModel interface {
	BidSpreadBps(totalQty float64) float64
	OfferSpreadBps(totalQty float64) float64
}

type FunctionalLiquidityCurve

type FunctionalLiquidityCurve[T instr.Instrument] struct {
	// contains filtered or unexported fields
}

func NewFunctionalLiqudityCurve

func NewFunctionalLiqudityCurve[T instr.Instrument](spreadModel CumulativeQtySpreadModel, instrument T, exchange exchange.Exchange) *FunctionalLiquidityCurve[T]

func (*FunctionalLiquidityCurve[T]) GenerateBids

func (lc *FunctionalLiquidityCurve[T]) GenerateBids(mid float64, now time.Time) []*orders.Limit[T]

func (*FunctionalLiquidityCurve[T]) GenerateOffers

func (lc *FunctionalLiquidityCurve[T]) GenerateOffers(mid float64, now time.Time) []*orders.Limit[T]

func (*FunctionalLiquidityCurve[T]) SetLevelQtysInBase

func (lc *FunctionalLiquidityCurve[T]) SetLevelQtysInBase(levelQtysInBase []float64)

type Layer

type Layer struct {
	ClientOrderID string
	Price         float64
}

type LayerStatus

type LayerStatus int
const (
	NotReplenishable LayerStatus = (iota + 1)
	Replenishable
	Reconcilable
)

type LiquidityCurve

type LiquidityCurve[T instr.Instrument] interface {
	GenerateBids(mid float64, now time.Time) []*orders.Limit[T]
	GenerateOffers(mid float64, now time.Time) []*orders.Limit[T]
}

type MakerDispatcher

type MakerDispatcher[T instr.Instrument] interface {
	DispatchLimitOrder(order *orders.Limit[T])
	DispatchCancelOrder(order *orders.Limit[T])
}

type MakerEngine

type MakerEngine[T instr.Instrument] struct {
	// contains filtered or unexported fields
}

func NewMakerEngine

func NewMakerEngine[T instr.Instrument](
	dispatcher MakerDispatcher[T],
	confirmedOrderBook *MakerOrderBook[T],
	controller *MakerLayerController[T],
	liquidityCurve LiquidityCurve[T]) *MakerEngine[T]

func (*MakerEngine[T]) CancelAll

func (e *MakerEngine[T]) CancelAll()

func (*MakerEngine[T]) ReconcileAndReplaceBids

func (e *MakerEngine[T]) ReconcileAndReplaceBids(mid, remainingTermInventory float64, refData *refdata.Composite, now time.Time) error

func (*MakerEngine[T]) ReconcileAndReplaceOffers

func (e *MakerEngine[T]) ReconcileAndReplaceOffers(mid, remainingBaseInventory float64, refData *refdata.Composite, now time.Time) error

type MakerLayerController

type MakerLayerController[T instr.Instrument] struct {
	// contains filtered or unexported fields
}

func NewMakerLayerController

func NewMakerLayerController[T instr.Instrument](instrument T, ex exchange.Exchange) *MakerLayerController[T]

func (*MakerLayerController[T]) ApplyExecutionReport

func (rm *MakerLayerController[T]) ApplyExecutionReport(rep *report.ExecutionReport[T])

func (*MakerLayerController[T]) GetLayerStatus

func (rm *MakerLayerController[T]) GetLayerStatus(layerIndex int, s side.OrderSide, refData *refdata.Composite, now time.Time) LayerStatus

func (*MakerLayerController[T]) HasMetMinimumQuoteTime

func (rm *MakerLayerController[T]) HasMetMinimumQuoteTime(orderLayer *orders.Limit[T], minimumQuoteTime time.Duration, now time.Time) bool

type MakerOrderBook

type MakerOrderBook[T instr.Instrument] struct {
	Bids   *tree.RedBlack[Layer, *orders.Limit[T]]
	Offers *tree.RedBlack[Layer, *orders.Limit[T]]
	// contains filtered or unexported fields
}

func NewMakerOrderBook

func NewMakerOrderBook[T instr.Instrument](instrument T, exchange exchange.Exchange) *MakerOrderBook[T]

func (*MakerOrderBook[T]) ApplyExecutionReport

func (book *MakerOrderBook[T]) ApplyExecutionReport(rep *report.ExecutionReport[T])

type SingleLayerLiquidityCurve

type SingleLayerLiquidityCurve[T instr.Instrument] struct {
	// contains filtered or unexported fields
}

func NewSingleLayerLiquidityCurve

func NewSingleLayerLiquidityCurve[T instr.Instrument](
	staticSpreadModel CumulativeQtySpreadModel,
	instrument T,
	exchange exchange.Exchange) *SingleLayerLiquidityCurve[T]

func (*SingleLayerLiquidityCurve[T]) GenerateBids

func (lc *SingleLayerLiquidityCurve[T]) GenerateBids(mid float64, now time.Time) []*orders.Limit[T]

func (*SingleLayerLiquidityCurve[T]) GenerateOffers

func (lc *SingleLayerLiquidityCurve[T]) GenerateOffers(mid float64, now time.Time) []*orders.Limit[T]

func (*SingleLayerLiquidityCurve[T]) SetBaseInventory

func (lc *SingleLayerLiquidityCurve[T]) SetBaseInventory(baseInventory float64)

func (*SingleLayerLiquidityCurve[T]) SetTermInventory

func (lc *SingleLayerLiquidityCurve[T]) SetTermInventory(termInventory float64)

type SingleLayerSpreadModel

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

func NewSingleLayerSpreadModel

func NewSingleLayerSpreadModel() *SingleLayerSpreadModel

func (*SingleLayerSpreadModel) BidSpreadBps

func (slsm *SingleLayerSpreadModel) BidSpreadBps(totalQty float64) float64

func (*SingleLayerSpreadModel) OfferSpreadBps

func (slsm *SingleLayerSpreadModel) OfferSpreadBps(totalQty float64) float64

func (*SingleLayerSpreadModel) SetSpreadBps

func (slsm *SingleLayerSpreadModel) SetSpreadBps(spreadBps float64)

type StaticSymmetricCurveModel

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

func NewStaticSymmetricCurveModel

func NewStaticSymmetricCurveModel(modelSpreadBpsFn func(totalQty float64) float64) *StaticSymmetricCurveModel

func (*StaticSymmetricCurveModel) BidSpreadBps

func (scm *StaticSymmetricCurveModel) BidSpreadBps(totalQty float64) float64

func (*StaticSymmetricCurveModel) OfferSpreadBps

func (scm *StaticSymmetricCurveModel) OfferSpreadBps(totalQty float64) float64

type TwoFactorSymmetricCurveModel

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

func NewTwoFactorSymmetricCurveModel

func NewTwoFactorSymmetricCurveModel() *TwoFactorSymmetricCurveModel

func (*TwoFactorSymmetricCurveModel) BidSpreadBps

func (tfscm *TwoFactorSymmetricCurveModel) BidSpreadBps(totalQty float64) float64

func (*TwoFactorSymmetricCurveModel) OfferSpreadBps

func (tfscm *TwoFactorSymmetricCurveModel) OfferSpreadBps(totalQty float64) float64

func (*TwoFactorSymmetricCurveModel) SetInsideQty

func (tfscm *TwoFactorSymmetricCurveModel) SetInsideQty(insideQty float64)

func (*TwoFactorSymmetricCurveModel) SetInsideSpreadBps

func (tfscm *TwoFactorSymmetricCurveModel) SetInsideSpreadBps(insideSpreadBps float64)

func (*TwoFactorSymmetricCurveModel) SetQtySpreadMultiplierBps

func (tfscm *TwoFactorSymmetricCurveModel) SetQtySpreadMultiplierBps(qtySpreadMultiplierBps float64)

type WithBiasSpreadModel

type WithBiasSpreadModel[M CumulativeQtySpreadModel] struct {
	UnderlyingModel M
	// contains filtered or unexported fields
}

func NewWithBiasSpreadModel

func NewWithBiasSpreadModel[M CumulativeQtySpreadModel](underlyingModel M) *WithBiasSpreadModel[M]

func (*WithBiasSpreadModel[M]) BidSpreadBps

func (wbsm *WithBiasSpreadModel[M]) BidSpreadBps(totalQty float64) float64

func (*WithBiasSpreadModel[M]) OfferSpreadBps

func (wbsm *WithBiasSpreadModel[M]) OfferSpreadBps(totalQty float64) float64

func (*WithBiasSpreadModel[M]) SetBidBiasBps

func (wbsm *WithBiasSpreadModel[M]) SetBidBiasBps(bidBiasBps float64)

func (*WithBiasSpreadModel[M]) SetOfferBiasBps

func (wbsm *WithBiasSpreadModel[M]) SetOfferBiasBps(offerBiasBps float64)

Jump to

Keyboard shortcuts

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