model

package
v1.6.0 Latest Latest
Warning

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

Go to latest
Published: Mar 29, 2019 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var CcxtAssetConverter = Display

CcxtAssetConverter is the asset converter for the CCXT exchange interface

Display is a basic converter for display purposes

View Source
var KrakenAssetConverter = makeAssetConverter(map[Asset]string{
	XLM:  "XXLM",
	BTC:  "XXBT",
	USD:  "ZUSD",
	ETH:  "XETH",
	LTC:  "XLTC",
	REP:  "XREP",
	ADA:  "ADA",
	BCH:  "BCH",
	DASH: "DASH",
	EOS:  "EOS",
	GNO:  "GNO",
	FEE:  "KFEE",
	QTUM: "QTUM",
	USDT: "USDT",
	DAO:  "XDAO",
	ETC:  "XETC",
	ICN:  "XICN",
	MLN:  "XMLN",
	NMC:  "XNMC",
	XDG:  "XXDG",
	XMR:  "XXMR",
	XRP:  "XXRP",
	XVN:  "XXVN",
	ZEC:  "XZEC",
	CAD:  "ZCAD",
	EUR:  "ZEUR",
	GBP:  "ZGBP",
	JPY:  "ZJPY",
	KRW:  "ZKRW",
})

KrakenAssetConverter is the asset converter for the Kraken exchange

View Source
var KrakenAssetConverterOpenOrders = makeAssetConverter(map[Asset]string{
	XLM: "XLM",
	BTC: "XBT",
	USD: "USD",
})

KrakenAssetConverterOpenOrders is the asset converter for the Kraken exchange's GetOpenOrders API

View Source
var NumberConstants = struct {
	Zero *Number
	One  *Number
}{
	Zero: NumberFromFloat(0.0, 16),
	One:  NumberFromFloat(1.0, 16),
}

NumberConstants holds some useful constants

Functions

func IsBotKey

func IsBotKey(key string) bool

IsBotKey checks whether a given string is a BotKey

func SplitDataKey

func SplitDataKey(key string) (string, string)

SplitDataKey splits the data key on the account into the hash and part

func TradingPairs2Strings

func TradingPairs2Strings(c *AssetConverter, delim string, pairs []TradingPair) (map[TradingPair]string, error)

TradingPairs2Strings converts the trading pairs to an array of strings

func TradingPairs2Strings2 added in v1.3.0

func TradingPairs2Strings2(c *AssetConverter, delim string, pairs []*TradingPair) (map[TradingPair]string, error)

TradingPairs2Strings2 converts the trading pairs to an array of strings

Types

type Asset

type Asset string

Asset is typed and enlists the allowed assets that are understood by the bot

const (
	XLM  Asset = "XLM"
	BTC  Asset = "BTC"
	USD  Asset = "USD"
	ETH  Asset = "ETH"
	LTC  Asset = "LTC"
	REP  Asset = "REP"
	ADA  Asset = "ADA"
	BCH  Asset = "BCH"
	DASH Asset = "DASH"
	EOS  Asset = "EOS"
	GNO  Asset = "GNO"
	FEE  Asset = "FEE"
	QTUM Asset = "QTUM"
	USDT Asset = "USDT"
	USDC Asset = "USDC"
	DAO  Asset = "DAO"
	ETC  Asset = "ETC"
	ICN  Asset = "ICN"
	MLN  Asset = "MLN"
	NMC  Asset = "NMC"
	XDG  Asset = "XDG"
	XMR  Asset = "XMR"
	XRP  Asset = "XRP"
	XVN  Asset = "XVN"
	ZEC  Asset = "ZEC"
	CAD  Asset = "CAD"
	EUR  Asset = "EUR"
	GBP  Asset = "GBP"
	JPY  Asset = "JPY"
	KRW  Asset = "KRW"
	OMG  Asset = "OMG"
)

this is the list of assets understood by the bot. This string can be converted by the specific exchange adapter as is needed by the exchange's API

func FromHorizonAsset added in v1.6.0

func FromHorizonAsset(hAsset horizon.Asset) Asset

FromHorizonAsset is a factory method

type AssetConverter

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

AssetConverter converts to and from the asset type, it is specific to an exchange

func (AssetConverter) FromString

func (c AssetConverter) FromString(s string) (Asset, error)

FromString converts from a string to an asset

func (AssetConverter) MustFromString

func (c AssetConverter) MustFromString(s string) Asset

MustFromString converts from a string to an asset, failing on errors

func (AssetConverter) ToString

func (c AssetConverter) ToString(a Asset) (string, error)

ToString converts an asset to a string

type BotKey

type BotKey struct {
	AssetBaseCode    string
	AssetBaseIssuer  string
	AssetQuoteCode   string
	AssetQuoteIssuer string
	// contains filtered or unexported fields
}

BotKey is a unique key to identify a bot

func MakeSortedBotKey

func MakeSortedBotKey(assetA horizon.Asset, assetB horizon.Asset) *BotKey

MakeSortedBotKey makes a BotKey by sorting the passed in assets

func (*BotKey) FullKey

func (b *BotKey) FullKey(part int) string

FullKey returns the full key to be used in the manageData operation

func (*BotKey) Hash

func (b *BotKey) Hash() string

Hash returns the hash of the underlying key

func (*BotKey) HashWithPrefix

func (b *BotKey) HashWithPrefix() string

HashWithPrefix returns the hash prefixed with "b/"

func (*BotKey) Key

func (b *BotKey) Key() string

Key returns the unique key string for this BotKey

func (BotKey) String

func (b BotKey) String() string

String impl

type CancelOrderResult

type CancelOrderResult int8

CancelOrderResult is the result of a CancelOrder call

const (
	CancelResultCancelSuccessful CancelOrderResult = 0
	CancelResultPending          CancelOrderResult = 1
	CancelResultFailed           CancelOrderResult = 2
)

These are the available types

func (CancelOrderResult) String

func (r CancelOrderResult) String() string

String is the stringer function

type Number

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

Number abstraction

func InvertNumber

func InvertNumber(n *Number) *Number

InvertNumber inverts a number, returns nil if the original number is nil, preserves precision

func MustNumberFromString

func MustNumberFromString(s string, precision int8) *Number

MustNumberFromString panics when there's an error

func NumberByCappingPrecision

func NumberByCappingPrecision(n *Number, precision int8) *Number

NumberByCappingPrecision returns a number with a precision that is at max the passed in precision

func NumberFromFloat

func NumberFromFloat(f float64, precision int8) *Number

NumberFromFloat makes a Number from a float

func NumberFromString

func NumberFromString(s string, precision int8) (*Number, error)

NumberFromString makes a Number from a string, by calling NumberFromFloat

func (Number) Abs added in v1.3.0

func (n Number) Abs() *Number

Abs returns the absolute of the number

func (Number) Add added in v1.3.0

func (n Number) Add(n2 Number) *Number

Add returns a new Number after adding the passed in Number

func (Number) AsFloat

func (n Number) AsFloat() float64

AsFloat gives a float64 representation

func (Number) AsRatio added in v1.2.0

func (n Number) AsRatio() (int32, int32, error)

AsRatio returns an integer numerator and denominator

func (Number) AsString

func (n Number) AsString() string

AsString gives a string representation

func (Number) Divide added in v1.3.0

func (n Number) Divide(n2 Number) *Number

Divide returns a new Number after dividing by the passed in Number

func (Number) EqualsPrecisionNormalized added in v1.3.0

func (n Number) EqualsPrecisionNormalized(n2 Number, epsilon float64) bool

EqualsPrecisionNormalized returns true if the two numbers are the same after comparing them at the same (lowest) precision level

func (Number) Multiply added in v1.3.0

func (n Number) Multiply(n2 Number) *Number

Multiply returns a new Number after multiplying with the passed in Number

func (Number) Negate added in v1.3.0

func (n Number) Negate() *Number

Negate returns the negative value of the number

func (Number) Precision

func (n Number) Precision() int8

Precision gives the precision of the Number

func (Number) Scale added in v1.3.0

func (n Number) Scale(scaleFactor float64) *Number

Scale takes in a scalar with which to multiply the number using the same precision of the original number

func (Number) String

func (n Number) String() string

String is the Stringer interface impl.

func (Number) Subtract added in v1.3.0

func (n Number) Subtract(n2 Number) *Number

Subtract returns a new Number after subtracting out the passed in Number

type OpenOrder

type OpenOrder struct {
	Order
	ID             string
	StartTime      *Timestamp
	ExpireTime     *Timestamp
	VolumeExecuted *Number
}

OpenOrder represents an open order for a trading account

func (OpenOrder) String

func (o OpenOrder) String() string

String is the stringer function

type Order

type Order struct {
	Pair        *TradingPair
	OrderAction OrderAction
	OrderType   OrderType
	Price       *Number
	Volume      *Number
	Timestamp   *Timestamp
}

Order represents an order in the orderbook

func (Order) String

func (o Order) String() string

String is the stringer function

type OrderAction

type OrderAction bool

OrderAction is the action of buy / sell

const (
	OrderActionBuy  OrderAction = false
	OrderActionSell OrderAction = true
)

OrderActionBuy and OrderActionSell are the two actions

func OrderActionFromString

func OrderActionFromString(s string) OrderAction

OrderActionFromString is a convenience to convert from common strings to the corresponding OrderAction

func (OrderAction) IsBuy

func (a OrderAction) IsBuy() bool

IsBuy returns true for buy actions

func (OrderAction) IsSell

func (a OrderAction) IsSell() bool

IsSell returns true for sell actions

func (OrderAction) Reverse added in v1.3.0

func (a OrderAction) Reverse() OrderAction

Reverse returns the opposite action

func (OrderAction) String

func (a OrderAction) String() string

String is the stringer function

type OrderBook

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

OrderBook encapsulates the concept of an orderbook on a market

func MakeOrderBook

func MakeOrderBook(pair *TradingPair, asks []Order, bids []Order) *OrderBook

MakeOrderBook creates a new OrderBook from the asks and the bids

func (OrderBook) Asks

func (o OrderBook) Asks() []Order

Asks returns the asks in an orderbook

func (OrderBook) Bids

func (o OrderBook) Bids() []Order

Bids returns the bids in an orderbook

func (OrderBook) Pair added in v1.1.0

func (o OrderBook) Pair() *TradingPair

Pair returns trading pair

func (OrderBook) TopAsk added in v1.4.0

func (o OrderBook) TopAsk() *Order

TopAsk returns the best ask in an orderbook

func (OrderBook) TopBid added in v1.4.0

func (o OrderBook) TopBid() *Order

TopBid returns the best bid in an orderbook

type OrderConstraints added in v1.3.0

type OrderConstraints struct {
	PricePrecision  int8
	VolumePrecision int8
	MinBaseVolume   Number
	MinQuoteVolume  *Number
}

OrderConstraints describes constraints when placing orders on an excahnge

func MakeOrderConstraints added in v1.3.0

func MakeOrderConstraints(pricePrecision int8, volumePrecision int8, minBaseVolume float64) *OrderConstraints

MakeOrderConstraints is a factory method for OrderConstraints

func MakeOrderConstraintsWithCost added in v1.6.0

func MakeOrderConstraintsWithCost(pricePrecision int8, volumePrecision int8, minBaseVolume float64, minQuoteVolume float64) *OrderConstraints

MakeOrderConstraintsWithCost is a factory method for OrderConstraints

func (*OrderConstraints) String added in v1.6.0

func (o *OrderConstraints) String() string

OrderConstraints describes constraints when placing orders on an excahnge

type OrderType

type OrderType int8

OrderType represents a type of an order, example market, limit, etc.

const (
	OrderTypeMarket OrderType = 0
	OrderTypeLimit  OrderType = 1
)

These are the available order types

func OrderTypeFromString

func OrderTypeFromString(s string) OrderType

OrderTypeFromString is a convenience to convert from common strings to the corresponding OrderType

func (OrderType) IsLimit

func (o OrderType) IsLimit() bool

IsLimit returns true for limit orders

func (OrderType) IsMarket

func (o OrderType) IsMarket() bool

IsMarket returns true for market orders

func (OrderType) String

func (o OrderType) String() string

String is the stringer function

type Timestamp

type Timestamp int64

Timestamp is millis since epoch

func MakeTimestamp

func MakeTimestamp(ts int64) *Timestamp

MakeTimestamp creates a new Timestamp

func MakeTimestampFromTime added in v1.3.0

func MakeTimestampFromTime(t time.Time) *Timestamp

MakeTimestampFromTime creates a new Timestamp

func (*Timestamp) AsInt64

func (t *Timestamp) AsInt64() int64

AsInt64 is a convenience method

func (*Timestamp) String added in v1.2.0

func (t *Timestamp) String() string

type Trade

type Trade struct {
	Order
	TransactionID *TransactionID
	Cost          *Number
	Fee           *Number
}

Trade represents a trade on an exchange

func (Trade) String

func (t Trade) String() string

type TradesByTsID added in v1.6.0

type TradesByTsID []Trade

TradesByTsID implements sort.Interface for []Trade based on Timestamp and TransactionID

func (TradesByTsID) Len added in v1.6.0

func (t TradesByTsID) Len() int

func (TradesByTsID) Less added in v1.6.0

func (t TradesByTsID) Less(i int, j int) bool

func (TradesByTsID) Swap added in v1.6.0

func (t TradesByTsID) Swap(i int, j int)

type TradingPair

type TradingPair struct {
	// Base represents the asset that has a unit of 1 (implicit)
	Base Asset
	// Quote (or Counter) represents the asset that has its unit specified relative to the base asset
	Quote Asset
}

TradingPair lists an ordered pair that is understood by the bot and our exchange API. EUR/USD = 1.25; EUR is base, USD is Quote. EUR is more valuable in this example USD/EUR = 0.80; USD is base, EUR is Quote. EUR is more valuable in this example

func MakeTradingPair added in v1.3.0

func MakeTradingPair(base Asset, quote Asset) *TradingPair

MakeTradingPair is a factory method

func TradingPairFromString

func TradingPairFromString(codeSize int8, c *AssetConverter, p string) (*TradingPair, error)

TradingPairFromString makes a TradingPair out of a string

func (TradingPair) String

func (p TradingPair) String() string

String is the stringer function

func (TradingPair) ToString

func (p TradingPair) ToString(c *AssetConverter, delim string) (string, error)

ToString converts the trading pair to a string using the passed in assetConverter

type TransactionID

type TransactionID string

TransactionID is typed for the concept of a transaction ID of an order

func MakeTransactionID

func MakeTransactionID(s string) *TransactionID

MakeTransactionID is a factory method for convenience

func (*TransactionID) String

func (t *TransactionID) String() string

String is the stringer function

Jump to

Keyboard shortcuts

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