Files
gocryptotrader/docs/OHLCV.md
Ryan O'Hara-Reid d636049fb2 exchanges: Initial context propagation (#744)
* gct: phase one context awareness pass

* exchanges: context propagation pass

* common/requester: force context requirement

* gctcli/exchanges: linter fix

* rpcserver: fix test using dummy rpc server

* backtester: fix comments

* grpc: add correct cancel and timeout for commands

* rpcserver_test: add comment on dummy server

* common: deprecated SendHTTPGetRequest

* linter: fix

* linter: turn on no context check

* apichecker: fix context linter issue

* binance: use param context

* common: remove checks as this gets executed before main

* common: change mutex to RW as clients can be used by multiple go routines.

* common: remove init and JIT default client. Unexport global variables and add protection.

* common: Add comments

* bithumb: after dinner mints fix
2021-09-11 13:52:07 +10:00

3.9 KiB

GoCryptoTrader OHLCV support

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(ctx context.Context, 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(ctx context.Context, 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

Exchange Supported
Binance Y
Bitfinex Y
Bitflyer
Bithumb Y
Bitmex
Bitstamp Y
BTC Markets Y
Bittrex
BTSE Y
Coinbase Pro Y
Coinbene Y
Coinut
Exmo
GateIO Y
Gemini
HitBTC Y
Huobi Y
FTX Y
itBIT
Kraken Y
lBank Y
Localbitcoins
Okcoin Y
Okex Y
Poloniex Y
Yobit
ZB Y