model

package
v1.1.2 Latest Latest
Warning

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

Go to latest
Published: Oct 30, 2018 License: Apache-2.0 Imports: 8 Imported by: 50

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

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

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"
	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

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) AsFloat

func (n Number) AsFloat() float64

AsFloat gives a float64 representation

func (Number) AsString

func (n Number) AsString() string

AsString gives a string representation

func (Number) Precision

func (n Number) Precision() int8

Precision gives the precision of the Number

func (Number) String

func (n Number) String() string

String is the Stringer interface impl.

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) 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

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 (Timestamp) AsInt64

func (t Timestamp) AsInt64() int64

AsInt64 is a convenience method

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