mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-06-06 07:26:47 +00:00
(Exchange) Add GetHistoricCandles() & GetHistoricCandlesEx() support to exchanges (#479)
* implemented binance and bitfinex GetHistoricCandles wrapper methods) * coinbene supported added * after and before clean up * gateio wrapper completed * merged upstream/master * Added bsaic KlineIntervalSupported() method * Converted binance fixed test * WIP * new KlineConvertToExchangeStandardString method added * end of day WIP * WIP * end of day WIP started migration of trade history * added kline support to hitbtc huobi lbank * added exchangehistory to all supported exchanges started work on coinbase 300 candles/request method * end of day WIP * removed unused ta and misc changes to flag ready for review * yobit cleanup * revert coinbase changES * general code clean up and added zb support * poloniex support added * renamed method to FormatExchangeKlineInterval other misc fixes * linter fixes * linter fixes * removed verbose * fixed poloniex test coverage * revert poloniex mock data * regenerated poloniex mock data * a very verbose clean up * binance mock clean up * removed unneeded t.Log() * setting verbose to true to debug CI issue * first pass changes addressed * common.ErrNotYetImplemented implemented :D * comments added * WIP-addressed exchange requests and reverted previous GetExchangeHistory changes * WIP-addressed exchange requests and reverted previous GetExchangeHistory changes * increased test coverage added kraken support * OKGroup support completed started work on address GetExchangeHistory feedback and migrating to own PR under https://github.com/xtda/gocryptotrader/tree/exchange_history * convert zb ratelimits * gofmt run on okcoin * increased delay on rate limit * gofmt package * fixed panic with coinbene and bithumb if conversion fails * very broken end of day WIP * added support for GetHistoricCandlesEx to coinbase and binance * gofmt package * coinbase, btcmarkets, zb ex wrapper function added * added all exchange support for ex regenerated mock data * update bithumb to return wrapper method * gofmt package * end of day started work on changes * reworked test coverage added okgroup support general fixes/change requests addressed * Added OneMonth * limit checks on supportedexchanges * reverted getexchangehistory * reworked binance tesT * added workaround for kraken panic * renamed command to extended removed interval check on non-implemented commands * added wrapperconfig back * increased test coverage for FormatExchangeKlineInterval * WIP * increased test coverage for FormatExchangeKlineInterval bitfinex/gateio/huobi * linter fixes * zb kraken lbank coinbene btcmarkets support added * removed verbose * OK group support for other asset types added * swapped margin to use spot endpoint * index support added test coverage added for asset types * added asset type to okcoin test * gofmt * add asset to extended method * removed verbose * add support for coinbene swap increase test coverage * removed verbose * small clean up of okgroup wrapper functions * verbose to troubleshoot CI issues * removed verbose * added error check reverted coinbasechanges * readme updated * removed unused start/finish started work on decoupling api requests from kline package * restructured coinbene, bithumb methods, added bitstamp support * kraken time fix * BTCMarkets restructure * typo fix * removed test for futures due to contact changing * added start/end date to extended method over range * converted to assettranslator * removed verbose * removed invalid char * reverted incorrectly removed return * added import * further template updates * macos hates my keyboard :D * misc canges * x -> i * removed verbose * updated fixCasing to allocate var before checks * removed time conversion * sort all outgoing kline candles * fixCasing fix * after/before checks added * added parallel to test * logic check on BTCmarkets * removed unused param, used correct iterator * converted HitBTC to use time.Time * add iszero false check to candle times * updated resultlimit to 5000 * new line added * added comment to exported const * use configured ratelimit * fixed pair for test * panic fixed WIP on fixCasing * fixCasing rework, started work on readme docs * enable rate limiter for wrapper issues tool * docs updated * removed err from return and formatted currency * updated Yobit supported status * Updated HitBTC to use onehour candles due to test exeuction times * added further details to gctcli output * added link to docs * added link to tempalte * disable FTX websocket in config_example * fix poloneix * regenerated poloniex mock data * removed recording flag
This commit is contained in:
@@ -28,9 +28,11 @@ const (
|
||||
// OKGroupAPIPath const to help with api url formatting
|
||||
OKGroupAPIPath = "api/"
|
||||
// API subsections
|
||||
okGroupAccountSubsection = "account"
|
||||
okGroupTokenSubsection = "spot"
|
||||
okGroupMarginTradingSubsection = "margin"
|
||||
okGroupAccountSubsection = "account"
|
||||
okGroupTokenSubsection = "spot"
|
||||
okGroupMarginTradingSubsection = "margin"
|
||||
okGroupFuturesTradingSubSection = "futures"
|
||||
oKGroupSwapTradingSubSection = "swap"
|
||||
// OKGroupAccounts common api endpoint
|
||||
OKGroupAccounts = "accounts"
|
||||
// OKGroupLedger common api endpoint
|
||||
@@ -365,10 +367,21 @@ func (o *OKGroup) GetSpotFilledOrdersInformation(request GetSpotFilledOrdersInfo
|
||||
return resp, o.SendHTTPRequest(http.MethodGet, okGroupTokenSubsection, requestURL, nil, &resp, false)
|
||||
}
|
||||
|
||||
// GetSpotMarketData Get the charts of the trading pairs. Charts are returned in grouped buckets based on requested granularity.
|
||||
func (o *OKGroup) GetSpotMarketData(request GetSpotMarketDataRequest) (resp GetSpotMarketDataResponse, _ error) {
|
||||
// GetMarketData Get the charts of the trading pairs. Charts are returned in grouped buckets based on requested granularity.
|
||||
func (o *OKGroup) GetMarketData(request *GetMarketDataRequest) (resp GetMarketDataResponse, err error) {
|
||||
requestURL := fmt.Sprintf("%v/%v/%v%v", OKGroupInstruments, request.InstrumentID, OKGroupGetSpotMarketData, FormatParameters(request))
|
||||
return resp, o.SendHTTPRequest(http.MethodGet, okGroupTokenSubsection, requestURL, nil, &resp, false)
|
||||
var requestType string
|
||||
switch request.Asset {
|
||||
case asset.Spot, asset.Margin:
|
||||
requestType = okGroupTokenSubsection
|
||||
case asset.Futures:
|
||||
requestType = okGroupFuturesTradingSubSection
|
||||
case asset.PerpetualSwap:
|
||||
requestType = oKGroupSwapTradingSubSection
|
||||
default:
|
||||
return nil, errors.New("asset not supported")
|
||||
}
|
||||
return resp, o.SendHTTPRequest(http.MethodGet, requestType, requestURL, nil, &resp, false)
|
||||
}
|
||||
|
||||
// GetMarginTradingAccounts List all assets under token margin trading account, including information such as balance, amount on hold and more.
|
||||
|
||||
@@ -4,6 +4,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/thrasher-corp/gocryptotrader/currency"
|
||||
"github.com/thrasher-corp/gocryptotrader/exchanges/asset"
|
||||
)
|
||||
|
||||
// Order types
|
||||
@@ -329,15 +330,16 @@ type GetSpotFilledOrdersInformationResponse struct {
|
||||
TradeID string `json:"trade_id"`
|
||||
}
|
||||
|
||||
// GetSpotMarketDataRequest request data for GetSpotMarketData
|
||||
type GetSpotMarketDataRequest struct {
|
||||
// GetMarketDataRequest request data for GetMarketData
|
||||
type GetMarketDataRequest struct {
|
||||
Asset asset.Item
|
||||
Start string `url:"start,omitempty"` // [optional] start time in ISO 8601
|
||||
End string `url:"end,omitempty"` // [optional] end time in ISO 8601
|
||||
Granularity int64 `url:"granularity"` // The granularity field must be one of the following values: {60, 180, 300, 900, 1800, 3600, 7200, 14400, 43200, 86400, 604800}.
|
||||
Granularity string `url:"granularity"` // The granularity field must be one of the following values: {60, 180, 300, 900, 1800, 3600, 7200, 14400, 43200, 86400, 604800}.
|
||||
InstrumentID string `url:"-"` // [required] trading pairs
|
||||
}
|
||||
|
||||
// GetSpotMarketDataResponse response data for GetSpotMarketData
|
||||
// GetMarketDataResponse response data for GetMarketData
|
||||
// Return Parameters
|
||||
// time string Start time
|
||||
// open string Open price
|
||||
@@ -345,7 +347,7 @@ type GetSpotMarketDataRequest struct {
|
||||
// low string Lowest price
|
||||
// close string Close price
|
||||
// volume string Trading volume
|
||||
type GetSpotMarketDataResponse []interface{}
|
||||
type GetMarketDataResponse []interface{}
|
||||
|
||||
// GetMarginAccountsResponse response data for GetMarginAccounts
|
||||
type GetMarginAccountsResponse struct {
|
||||
@@ -731,7 +733,7 @@ type GetFuturesMarketDateRequest struct {
|
||||
InstrumentID string `url:"-"` // [required] trading pairs
|
||||
}
|
||||
|
||||
// GetFuturesMarketDataResponse contains candle data from a GetSpotMarketDataRequest
|
||||
// GetFuturesMarketDataResponse contains candle data from a GetMarketDataRequest
|
||||
// Return Parameters
|
||||
// time string Start time
|
||||
// open string Open price
|
||||
|
||||
Reference in New Issue
Block a user