diff --git a/freqtrade/optimize/__init__.py b/freqtrade/optimize/__init__.py index 8d5350fe5..5591898fa 100644 --- a/freqtrade/optimize/__init__.py +++ b/freqtrade/optimize/__init__.py @@ -1,7 +1,13 @@ # pragma pylint: disable=missing-docstring import gzip -import json +try: + import ujson as json + _UJSON = True +except ImportError: + # see mypy/issues/1153 + import json # type: ignore + _UJSON = False import logging import os from typing import Optional, List, Dict, Tuple, Any @@ -14,6 +20,14 @@ from freqtrade.arguments import TimeRange logger = logging.getLogger(__name__) +def json_load(data): + """Try to load data with ujson""" + if _UJSON: + return json.load(data, precise_float=True) + else: + return json.load(data) + + def trim_tickerlist(tickerlist: List[Dict], timerange: TimeRange) -> List[Dict]: if not tickerlist: return tickerlist