Support limiting analyzed history
This commit is contained in:
parent
9dfbc1a7ff
commit
a38b33cd9c
@ -26,15 +26,15 @@ logger = logging.getLogger(__name__)
|
|||||||
BASE_URI = "/api/v1"
|
BASE_URI = "/api/v1"
|
||||||
|
|
||||||
|
|
||||||
class ArrowJSONEncoder(JSONEncoder):
|
class FTJSONEncoder(JSONEncoder):
|
||||||
def default(self, obj):
|
def default(self, obj):
|
||||||
try:
|
try:
|
||||||
if isinstance(obj, Arrow):
|
if isinstance(obj, Arrow):
|
||||||
return obj.for_json()
|
return obj.for_json()
|
||||||
elif isinstance(obj, date):
|
|
||||||
return obj.strftime("%Y-%m-%d")
|
|
||||||
elif isinstance(obj, datetime):
|
elif isinstance(obj, datetime):
|
||||||
return obj.strftime(DATETIME_PRINT_FORMAT)
|
return obj.strftime(DATETIME_PRINT_FORMAT)
|
||||||
|
elif isinstance(obj, date):
|
||||||
|
return obj.strftime("%Y-%m-%d")
|
||||||
iterable = iter(obj)
|
iterable = iter(obj)
|
||||||
except TypeError:
|
except TypeError:
|
||||||
pass
|
pass
|
||||||
@ -108,7 +108,7 @@ class ApiServer(RPC):
|
|||||||
'jwt_secret_key', 'super-secret')
|
'jwt_secret_key', 'super-secret')
|
||||||
|
|
||||||
self.jwt = JWTManager(self.app)
|
self.jwt = JWTManager(self.app)
|
||||||
self.app.json_encoder = ArrowJSONEncoder
|
self.app.json_encoder = FTJSONEncoder
|
||||||
|
|
||||||
self.app.teardown_appcontext(shutdown_session)
|
self.app.teardown_appcontext(shutdown_session)
|
||||||
|
|
||||||
@ -508,9 +508,16 @@ class ApiServer(RPC):
|
|||||||
def _analysed_history(self):
|
def _analysed_history(self):
|
||||||
"""
|
"""
|
||||||
Handler for /pair_history.
|
Handler for /pair_history.
|
||||||
|
Takes the following get arguments:
|
||||||
|
get:
|
||||||
|
parameters:
|
||||||
|
- pair: Pair
|
||||||
|
- timeframe: Timeframe to get data for (should be aligned to strategy.timeframe)
|
||||||
|
- limit: Limit return length to the latest X candles
|
||||||
"""
|
"""
|
||||||
pair = request.args.get("pair")
|
pair = request.args.get("pair")
|
||||||
timeframe = request.args.get("timeframe")
|
timeframe = request.args.get("timeframe")
|
||||||
|
limit = request.args.get("limit")
|
||||||
|
|
||||||
results = self._rpc_analysed_history(pair, timeframe)
|
results = self._rpc_analysed_history(pair, timeframe, limit)
|
||||||
return self.rest_dump(results)
|
return self.rest_dump(results)
|
||||||
|
@ -654,9 +654,11 @@ class RPC:
|
|||||||
raise RPCException('Edge is not enabled.')
|
raise RPCException('Edge is not enabled.')
|
||||||
return self._freqtrade.edge.accepted_pairs()
|
return self._freqtrade.edge.accepted_pairs()
|
||||||
|
|
||||||
def _rpc_analysed_history(self, pair, timeframe):
|
def _rpc_analysed_history(self, pair, timeframe, limit):
|
||||||
|
|
||||||
data, last_analyzed = self._freqtrade.dataprovider.get_analyzed_dataframe(pair, timeframe)
|
data, last_analyzed = self._freqtrade.dataprovider.get_analyzed_dataframe(pair, timeframe)
|
||||||
|
if limit:
|
||||||
|
data = data.iloc[:-limit]
|
||||||
return {
|
return {
|
||||||
'columns': data.columns,
|
'columns': data.columns,
|
||||||
'data': data.values.tolist(),
|
'data': data.values.tolist(),
|
||||||
|
Loading…
Reference in New Issue
Block a user