From b69a9134f59f3eed093dc0fad8c5b7191cdcb888 Mon Sep 17 00:00:00 2001 From: saeedrss Date: Fri, 23 Apr 2021 21:27:13 +0430 Subject: [PATCH 1/3] fixing support for HitBTC #4778 hitbtc by default send candle from beginning (not most recently) this change fixed --- freqtrade/exchange/exchange.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/freqtrade/exchange/exchange.py b/freqtrade/exchange/exchange.py index ed7918b36..809cdb4e1 100644 --- a/freqtrade/exchange/exchange.py +++ b/freqtrade/exchange/exchange.py @@ -874,8 +874,15 @@ class Exchange: "Fetching pair %s, interval %s, since %s %s...", pair, timeframe, since_ms, s ) - - data = await self._api_async.fetch_ohlcv(pair, timeframe=timeframe, + #fixing support for HitBTC #4778 + if self.name== 'HitBTC': + data = await self._api_async.fetch_ohlcv(pair, timeframe=timeframe, + since=since_ms, + limit=self.ohlcv_candle_limit(timeframe), + params={"sort": "DESC"} + ) + else: + data = await self._api_async.fetch_ohlcv(pair, timeframe=timeframe, since=since_ms, limit=self.ohlcv_candle_limit(timeframe)) From 0b280a59bc4413e46e4277b2a66e95d3baca3378 Mon Sep 17 00:00:00 2001 From: Matthias Date: Sat, 1 May 2021 17:29:53 +0200 Subject: [PATCH 2/3] Support per exchange params for OHLCV endpoint --- freqtrade/exchange/__init__.py | 1 + freqtrade/exchange/exchange.py | 15 +++++---------- freqtrade/exchange/hitbtc.py | 26 ++++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 10 deletions(-) create mode 100644 freqtrade/exchange/hitbtc.py diff --git a/freqtrade/exchange/__init__.py b/freqtrade/exchange/__init__.py index 889bb49c2..23ba2eb10 100644 --- a/freqtrade/exchange/__init__.py +++ b/freqtrade/exchange/__init__.py @@ -14,5 +14,6 @@ from freqtrade.exchange.exchange import (available_exchanges, ccxt_exchanges, timeframe_to_seconds, validate_exchange, validate_exchanges) from freqtrade.exchange.ftx import Ftx +from freqtrade.exchange.hitbtc import Hitbtc from freqtrade.exchange.kraken import Kraken from freqtrade.exchange.kucoin import Kucoin diff --git a/freqtrade/exchange/exchange.py b/freqtrade/exchange/exchange.py index 809cdb4e1..6642b946d 100644 --- a/freqtrade/exchange/exchange.py +++ b/freqtrade/exchange/exchange.py @@ -59,6 +59,7 @@ class Exchange: _ft_has_default: Dict = { "stoploss_on_exchange": False, "order_time_in_force": ["gtc"], + "ohlcv_params": {}, "ohlcv_candle_limit": 500, "ohlcv_partial_candle": True, "trades_pagination": "time", # Possible are "time" or "id" @@ -874,17 +875,11 @@ class Exchange: "Fetching pair %s, interval %s, since %s %s...", pair, timeframe, since_ms, s ) - #fixing support for HitBTC #4778 - if self.name== 'HitBTC': - data = await self._api_async.fetch_ohlcv(pair, timeframe=timeframe, - since=since_ms, - limit=self.ohlcv_candle_limit(timeframe), - params={"sort": "DESC"} - ) - else: - data = await self._api_async.fetch_ohlcv(pair, timeframe=timeframe, + params = self._ft_has.get('ohlcv_params', {}) + data = await self._api_async.fetch_ohlcv(pair, timeframe=timeframe, since=since_ms, - limit=self.ohlcv_candle_limit(timeframe)) + limit=self.ohlcv_candle_limit(timeframe), + params=params) # Some exchanges sort OHLCV in ASC order and others in DESC. # Ex: Bittrex returns the list of OHLCV in ASC order (oldest first, newest last) diff --git a/freqtrade/exchange/hitbtc.py b/freqtrade/exchange/hitbtc.py new file mode 100644 index 000000000..b9d32b56d --- /dev/null +++ b/freqtrade/exchange/hitbtc.py @@ -0,0 +1,26 @@ +""" hitbtx exchange subclass """ +import logging +from typing import Dict + +from freqtrade.exchange import Exchange + + +logger = logging.getLogger(__name__) + + +class Hitbtc(Exchange): + """ + Hitbtc exchange class. Contains adjustments needed for Freqtrade to work + with this exchange. + + Please note that this exchange is not included in the list of exchanges + officially supported by the Freqtrade development team. So some features + may still not work as expected. + """ + + # fetchCurrencies API point requires authentication for Hitbtc, + _ft_has: Dict = { + "ohlcv_candle_limit": 1000, + + "ohlcv_params": {"sort": "DESC"} + } From bdd0184f0bdd9329d9aaada8f7fbf91146fe0d41 Mon Sep 17 00:00:00 2001 From: Matthias Date: Sat, 1 May 2021 17:44:43 +0200 Subject: [PATCH 3/3] Small stylistic fixes --- freqtrade/exchange/hitbtc.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/freqtrade/exchange/hitbtc.py b/freqtrade/exchange/hitbtc.py index b9d32b56d..763535263 100644 --- a/freqtrade/exchange/hitbtc.py +++ b/freqtrade/exchange/hitbtc.py @@ -1,4 +1,3 @@ -""" hitbtx exchange subclass """ import logging from typing import Dict @@ -21,6 +20,5 @@ class Hitbtc(Exchange): # fetchCurrencies API point requires authentication for Hitbtc, _ft_has: Dict = { "ohlcv_candle_limit": 1000, - "ohlcv_params": {"sort": "DESC"} }