package
0.0.0-20250311023717-5c21e974eed8
Repository: https://github.com/thrasher-corp/gocryptotrader.git
Documentation: pkg.go.dev

# README

GoCryptoTrader package Orderbook

Build Status Software License GoDoc Coverage Status Go Report Card

This orderbook package is part of the GoCryptoTrader codebase.

This is still in active development

You can track ideas, planned features and what's in progress on our GoCryptoTrader Kanban board.

Join our slack to discuss all things related to GoCryptoTrader! GoCryptoTrader Slack

Current Features for orderbook

  • This package facilitates orderbook generation.

  • Attaches methods to an orderbook

    • To Return total Bids
    • To Return total Asks
    • Update orderbooks
  • Gets a loaded orderbook by exchange, asset type and currency pair.

  • This package is primarily used in conjunction with but not limited to the exchange interface system set by exchange wrapper orderbook functions in "exchange"_wrapper.go.

Examples below:

ob, err := yobitExchange.UpdateOrderbook(...)
if err != nil {
	// Handle error
}

// Find total asks which also returns total orderbook value
totalAsks, totalOrderbookVal := ob.CalculateTotalAsks()
  • or if you have a routine setting an exchange orderbook you can access it via the package itself.
ob, err := orderbook.Get(...)
if err != nil {
	// Handle error
}

Please click GoDocs chevron above to view current GoDoc information for this package

Contribution

Please feel free to submit any pull requests or suggest any desired features to be added.

When submitting a PR, please abide by our coding guidelines:

  • Code must adhere to the official Go formatting guidelines (i.e. uses gofmt).
  • Code must be documented adhering to the official Go commentary guidelines.
  • Code must adhere to our coding style.
  • Pull requests need to be based on and opened against the master branch.

Donations

If this framework helped you in any way, or you would like to support the developers working on it, please donate Bitcoin to:

bc1qk0jareu4jytc0cfrhr5wgshsq8282awpavfahc

# Packages

# Functions

DeployDepth sets a depth struct and returns a depth pointer.
Get checks and returns the orderbook given an exchange name and currency pair.
GetDepth returns a Depth pointer allowing the caller to stream orderbook changes.
NewDepth returns a new orderbook depth.
SubscribeToExchangeOrderbooks returns a pipe to an exchange feed.

# Constants

Amend applies amount adjustment by ID.
Delete removes price level from book by ID.
FullLiquidityExhaustedPercentage defines when a book has been completely wiped out of potential liquidity.
Insert adds price level to book.
UpdateInsert on conflict applies amount adjustment or appends new amount to book.

# Variables

ErrInvalidAction defines and error when an action is invalid.
ErrOrderbookInvalid defines an error for when the orderbook is invalid and should not be trusted.
Public errors.

# Structs

Base holds the fields for the orderbook base.
DeploymentAction defines deployment information on a liquidity side.
Depth defines a store of orderbook tranches.
Exchange defines a holder for the exchange specific depth items with a specific ID associated with that exchange.
Movement defines orderbook traversal details from either hitting the bids or lifting the asks.
Service provides a store for difference exchange orderbooks.
SideAmounts define the amounts total for the tranches, total value in quotation and the cumulative base amounts.
Tranche defines a segmented portions of an order or options book.
Update and things and stuff.
WhaleBombResult returns the whale bomb result.

# Interfaces

Outbound restricts outbound usage of depth.

# Type aliases

Action defines a set of differing states required to implement an incoming orderbook update used in conjunction with UpdateEntriesByID.
Tranches defines a slice of orderbook Tranche.