mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-05-24 23:16:52 +00:00
* kline: Add builder and testing * Ideas * kline: deploy builder functionality across GCT * exchanges: implement across gct * exchanges: Add tests and fix implementations before kline package testing and veri. * kline: Add tests and start to fix ConvertToNewInterval * kline: fix ConvertToNewInterval add tests * kline: complete overarching tests now on to exchanges * kline: finish exchange tests and implement limits * exchanges: more fixes * linter: fix * engine: fix tests * kraken: fix recent trades and other fixes * zb: fix tests * bithumb: fix empty insertion * kline: refactor/optimize CreateKline function * kline: remove the mooos! * kline: prealloc CalculateCandleDateRanges * linter: fix * exchanges: prealloc extended * fix whoopsie * reverse fix because this is a whoopsie * okx: fix risidual issues * linter: fix * kline: initial nits from @gloriouscode * kline: rename builder -> request and cascade change * linter: fix + test * kline: update forced alignment on start and end times when CreateKlineRequest is called. * nits: more more more * NITS: Addressed * tests: fix race issue * Update exchanges/kline/request.go Co-authored-by: Scott <gloriousCode@users.noreply.github.com> * kline: add method AddPadding() to automatically fill in holes in kline.Request functionality and reject if missing data when converting * kline: Add params start and end to addPadding() to insert blanks in between block * kline: remove test comment code as it's not needed anymore * kline: fix lint and test * kline: sort slice without extra bool check every iteration * okx: fix issues with timeing and candles and such from niterinos & address typo * Update exchanges/kline/kline.go Co-authored-by: Scott <gloriousCode@users.noreply.github.com> * glorious: niterinos * Update exchanges/poloniex/poloniex_wrapper.go Co-authored-by: Scott <gloriousCode@users.noreply.github.com> * glorious: nits now onto conflicts YAYA!!! * Update exchanges/exchange_test.go Co-authored-by: Scott <gloriousCode@users.noreply.github.com> * glorious: nits again * thrasher: nitters * thrasher: niterinos - adds partial flag for incomplete recent candles and fetching. * kline: rm fmtizzle packageizzle * glorious: nitters * glorious: more niterinos * fix last niterinos Co-authored-by: Ryan O'Hara-Reid <ryan.oharareid@thrasher.io> Co-authored-by: Scott <gloriousCode@users.noreply.github.com>
96 lines
3.9 KiB
Markdown
96 lines
3.9 KiB
Markdown
# GoCryptoTrader OHLCV support
|
|
|
|
<img src="https://github.com/thrasher-corp/gocryptotrader/blob/master/web/src/assets/page-logo.png?raw=true" width="350px" height="350px" hspace="70">
|
|
|
|
[](https://github.com/thrasher-corp/gocryptotrader/actions/workflows/tests.yml)
|
|
[](https://github.com/thrasher-corp/gocryptotrader/blob/master/LICENSE)
|
|
[](https://godoc.org/github.com/thrasher-corp/gocryptotrader/exchanges)
|
|
[](http://codecov.io/github/thrasher-corp/gocryptotrader?branch=master)
|
|
[](https://goreportcard.com/report/github.com/thrasher-corp/gocryptotrader)
|
|
|
|
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](https://trello.com/b/ZAhMhpOy/gocryptotrader).
|
|
|
|
Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://join.slack.com/t/gocryptotrader/shared_invite/enQtNTQ5NDAxMjA2Mjc5LTc5ZDE1ZTNiOGM3ZGMyMmY1NTAxYWZhODE0MWM5N2JlZDk1NDU0YTViYzk4NTk3OTRiMDQzNGQ1YTc4YmRlMTk)
|
|
|
|
## Wrapper Methods
|
|
|
|
Candle retrieval is handled by two methods
|
|
|
|
|
|
GetHistoricCandles which makes a single request to the exchange and follows all exchange limitations
|
|
```go
|
|
func (b *base) GetHistoricCandles(ctx context.Context, pair currency.Pair, a asset.Item, interval kline.Interval, start, end time.Time) (*kline.Item, error) {
|
|
return nil, common.ErrFunctionNotSupported
|
|
}
|
|
```
|
|
|
|
GetHistoricCandlesExtended that will make multiple requests to an exchange if the requested periods are outside exchange limits
|
|
```go
|
|
func (b *base) GetHistoricCandlesExtended(ctx context.Context, pair currency.Pair, a asset.Item, interval kline.Interval, start, end time.Time) (*kline.Item, error) {
|
|
return nil, common.ErrFunctionNotSupported
|
|
}
|
|
```
|
|
|
|
both methods return kline.Item{}
|
|
|
|
```go
|
|
// 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](../cmd/dbseed/README.md) has been created for assisting with candle data migration
|
|
|
|
## Exchange status
|
|
| Exchange | Supported |
|
|
|----------------|-------------|
|
|
| Binance.US | Y |
|
|
| Binance | Y |
|
|
| Bitfinex | Y |
|
|
| Bitflyer | |
|
|
| Bithumb | Y |
|
|
| Bitmex | |
|
|
| Bitstamp | Y |
|
|
| BTC Markets | Y |
|
|
| Bittrex | |
|
|
| BTSE | Y |
|
|
| Bybit | Y |
|
|
| Coinbase Pro | Y |
|
|
| Coinut | |
|
|
| Exmo | |
|
|
| GateIO | Y |
|
|
| Gemini | |
|
|
| HitBTC | Y |
|
|
| Huobi | Y |
|
|
| FTX | Y |
|
|
| itBIT | |
|
|
| Kraken | Y |
|
|
| lBank | Y |
|
|
| Localbitcoins | |
|
|
| Okcoin | Y |
|
|
| Okx | Y |
|
|
| Poloniex | Y |
|
|
| Yobit | |
|
|
| ZB | Y |
|