ticker

package
v0.0.0-...-2a4c2d2 Latest Latest
Warning

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

Go to latest
Published: Dec 12, 2024 License: MIT Imports: 10 Imported by: 189

README

GoCryptoTrader package Ticker

Build Status Software License GoDoc Coverage Status Go Report Card

This ticker 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 ticker

  • This services the exchanges package by ticker functions.

  • This package facilitates ticker generation.

  • Attaches methods to an ticker

    • Returns a string of a value
  • Gets a loaded ticker 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:

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

// Converts ticker value to string
tickerValString := tick.PriceToString(...)
  • or if you have a routine setting an exchange orderbook you can access it via the package itself.
tick, err := ticker.GetTicker(...)
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

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrNoTickerFound is when a ticker is not found
	ErrNoTickerFound = errors.New("no ticker found")
	// ErrBidEqualsAsk error for locked markets
	ErrBidEqualsAsk = errors.New("bid equals ask this is a crossed or locked market")
	// ErrExchangeNameIsEmpty is an error for when an exchange name is empty
	ErrExchangeNameIsEmpty = errors.New("exchange name is empty")
)

Functions

func FindLast

func FindLast(p currency.Pair, a asset.Item) (float64, error)

FindLast searches for a currency pair and returns the first available

func ProcessTicker

func ProcessTicker(p *Price) error

ProcessTicker processes incoming tickers, creating or updating the Tickers list

func SubscribeTicker

func SubscribeTicker(exchange string, p currency.Pair, a asset.Item) (dispatch.Pipe, error)

SubscribeTicker subscribes to a ticker and returns a communication channel to stream new ticker updates

func SubscribeToExchangeTickers

func SubscribeToExchangeTickers(exchange string) (dispatch.Pipe, error)

SubscribeToExchangeTickers subscribes to all tickers on an exchange

Types

type Price

type Price struct {
	Last         float64       `json:"Last"`
	High         float64       `json:"High"`
	Low          float64       `json:"Low"`
	Bid          float64       `json:"Bid"`
	BidSize      float64       `json:"BidSize"`
	Ask          float64       `json:"Ask"`
	AskSize      float64       `json:"AskSize"`
	Volume       float64       `json:"Volume"`
	QuoteVolume  float64       `json:"QuoteVolume"`
	PriceATH     float64       `json:"PriceATH"`
	Open         float64       `json:"Open"`
	Close        float64       `json:"Close"`
	OpenInterest float64       `json:"OpenInterest"`
	MarkPrice    float64       `json:"MarkPrice"`
	IndexPrice   float64       `json:"IndexPrice"`
	Pair         currency.Pair `json:"Pair"`
	ExchangeName string        `json:"exchangeName"`
	AssetType    asset.Item    `json:"assetType"`
	LastUpdated  time.Time

	// Funding rate field variables
	FlashReturnRate       float64
	BidPeriod             float64
	AskPeriod             float64
	FlashReturnRateAmount float64
}

Price struct stores the currency pair and pricing information

func GetExchangeTickers

func GetExchangeTickers(exchange string) ([]*Price, error)

GetExchangeTickers returns all tickers for a given exchange

func GetTicker

func GetTicker(exchange string, p currency.Pair, a asset.Item) (*Price, error)

GetTicker checks and returns a requested ticker if it exists

type Service

type Service struct {
	Tickers  map[key.ExchangePairAsset]*Ticker
	Exchange map[string]uuid.UUID
	// contains filtered or unexported fields
}

Service holds ticker information for each individual exchange

type Ticker

type Ticker struct {
	Price
	Main  uuid.UUID
	Assoc []uuid.UUID
}

Ticker struct holds the ticker information for a currency pair and type

Jump to

Keyboard shortcuts

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