GoCryptoTrader OHLCV support

May 6, 2021 ยท View on GitHub

Build Status Software License GoDoc Coverage Status Go Report Card

This exchanges 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 this Trello board: https://trello.com/b/ZAhMhpOy/gocryptotrader.

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

Wrapper Methods

Candle retrieval is handled by two methods

GetHistoricCandles which makes a single request to the exchange and follows all exchange limitations

func (b *base) GetHistoricCandles(pair currency.Pair, a asset.Item, start, end time.Time, interval kline.Interval) (kline.Item, error) {
	return kline.Item{}, common.ErrFunctionNotSupported
}

GetHistoricCandlesExtended that will make multiple requests to an exchange if the requested periods are outside exchange limits

func (b *base) GetHistoricCandlesExtended(pair currency.Pair, a asset.Item, start, end time.Time, interval kline.Interval) (kline.Item, error) {
	return kline.Item{}, common.ErrFunctionNotSupported
}

both methods return kline.Item{}

// Item holds all the relevant information for internal kline elements
type Item struct {
	Exchange string
	Pair     currency.Pair
	Asset    asset.Item
	Interval Interval
	Candles  []Candle
}

// Candle holds historic rate information.
type Candle struct {
	Time   time.Time
	Open   float64
	High   float64
	Low    float64
	Close  float64
	Volume float64
}

DBSeed helper

A helper tool cmd/dbseed has been created for assisting with candle data migration

Exchange status

ExchangeSupported
BinanceY
BitfinexY
Bitflyer
BithumbY
Bitmex
BitstampY
BTC MarketsY
Bittrex
BTSEY
Coinbase ProY
CoinbeneY
Coinut
Exmo
GateIOY
Gemini
HitBTCY
HuobiY
FTXY
itBIT
KrakenY
LakeBTC
lBankY
Localbitcoins
OkcoinY
OkexY
PoloniexY
Yobit
ZBY