Add tests for new storing of backtest signal candles

This commit is contained in:
froggleston
2022-04-19 12:48:21 +01:00
parent 34fb8dacd7
commit 84f486295d
3 changed files with 43 additions and 7 deletions

View File

@@ -4,6 +4,7 @@ Various tool function for Freqtrade and scripts
import gzip
import hashlib
import logging
import pickle
import re
from copy import deepcopy
from datetime import datetime
@@ -86,6 +87,21 @@ def file_dump_json(filename: Path, data: Any, is_zip: bool = False, log: bool =
logger.debug(f'done json to "{filename}"')
def file_dump_pickle(filename: Path, data: Any, log: bool = True) -> None:
"""
Dump object data into a file
:param filename: file to create
:param data: Object data to save
:return:
"""
if log:
logger.info(f'dumping pickle to "{filename}"')
with open(filename, 'wb') as fp:
pickle.dump(data, fp)
logger.debug(f'done pickling to "{filename}"')
def json_load(datafile: IO) -> Any:
"""
load data with rapidjson

View File

@@ -1,5 +1,4 @@
import logging
import pickle
from copy import deepcopy
from datetime import datetime, timedelta, timezone
from pathlib import Path
@@ -12,8 +11,8 @@ from tabulate import tabulate
from freqtrade.constants import DATETIME_PRINT_FORMAT, LAST_BT_RESULT_FN, UNLIMITED_STAKE_AMOUNT
from freqtrade.data.btanalysis import (calculate_csum, calculate_market_change,
calculate_max_drawdown)
from freqtrade.misc import (decimals_per_coin, file_dump_json, get_backtest_metadata_filename,
round_coin_value)
from freqtrade.misc import (decimals_per_coin, file_dump_json, file_dump_pickle,
get_backtest_metadata_filename, round_coin_value)
logger = logging.getLogger(__name__)
@@ -61,11 +60,10 @@ def store_backtest_signal_candles(recordfilename: Path, candles: Dict[str, Dict]
else:
filename = Path.joinpath(
recordfilename.parent,
f'{recordfilename.stem}-{datetime.now().strftime("%Y-%m-%d_%H-%M-%S")}'
f'{recordfilename.stem}-{datetime.now().strftime("%Y-%m-%d_%H-%M-%S")}_signals'
).with_suffix(recordfilename.suffix)
with open(filename, 'wb') as f:
pickle.dump(candles, f)
file_dump_pickle(filename, candles)
def _get_line_floatfmt(stake_currency: str) -> List[str]: