chore: unpack instead of list concat

This commit is contained in:
Matthias
2025-04-09 20:05:15 +02:00
parent 0aa05855d5
commit feab28de91
9 changed files with 17 additions and 16 deletions

View File

@@ -45,7 +45,8 @@ ARGS_COMMON_OPTIMIZE = [
"pairs", "pairs",
] ]
ARGS_BACKTEST = ARGS_COMMON_OPTIMIZE + [ ARGS_BACKTEST = [
*ARGS_COMMON_OPTIMIZE,
"position_stacking", "position_stacking",
"enable_protections", "enable_protections",
"dry_run_wallet", "dry_run_wallet",
@@ -58,7 +59,8 @@ ARGS_BACKTEST = ARGS_COMMON_OPTIMIZE + [
"freqai_backtest_live_models", "freqai_backtest_live_models",
] ]
ARGS_HYPEROPT = ARGS_COMMON_OPTIMIZE + [ ARGS_HYPEROPT = [
*ARGS_COMMON_OPTIMIZE,
"hyperopt", "hyperopt",
"hyperopt_path", "hyperopt_path",
"position_stacking", "position_stacking",
@@ -78,7 +80,7 @@ ARGS_HYPEROPT = ARGS_COMMON_OPTIMIZE + [
"analyze_per_epoch", "analyze_per_epoch",
] ]
ARGS_EDGE = ARGS_COMMON_OPTIMIZE + ["stoploss_range"] ARGS_EDGE = [*ARGS_COMMON_OPTIMIZE, "stoploss_range"]
ARGS_LIST_STRATEGIES = [ ARGS_LIST_STRATEGIES = [
"strategy_path", "strategy_path",
@@ -127,7 +129,7 @@ ARGS_BUILD_STRATEGY = ["user_data_dir", "strategy", "strategy_path", "template"]
ARGS_CONVERT_DATA_TRADES = ["pairs", "format_from_trades", "format_to", "erase", "exchange"] ARGS_CONVERT_DATA_TRADES = ["pairs", "format_from_trades", "format_to", "erase", "exchange"]
ARGS_CONVERT_DATA = ["pairs", "format_from", "format_to", "erase", "exchange"] ARGS_CONVERT_DATA = ["pairs", "format_from", "format_to", "erase", "exchange"]
ARGS_CONVERT_DATA_OHLCV = ARGS_CONVERT_DATA + ["timeframes", "trading_mode", "candle_types"] ARGS_CONVERT_DATA_OHLCV = [*ARGS_CONVERT_DATA, "timeframes", "trading_mode", "candle_types"]
ARGS_CONVERT_TRADES = [ ARGS_CONVERT_TRADES = [
"pairs", "pairs",

View File

@@ -463,7 +463,7 @@ AVAILABLE_CLI_OPTIONS = {
"format_from_trades": Arg( "format_from_trades": Arg(
"--format-from", "--format-from",
help="Source format for data conversion.", help="Source format for data conversion.",
choices=constants.AVAILABLE_DATAHANDLERS + ["kraken_csv"], choices=[*constants.AVAILABLE_DATAHANDLERS, "kraken_csv"],
required=True, required=True,
), ),
"format_from": Arg( "format_from": Arg(

View File

@@ -1346,7 +1346,8 @@ SCHEMA_BACKTEST_REQUIRED = [
"dataformat_ohlcv", "dataformat_ohlcv",
"dataformat_trades", "dataformat_trades",
] ]
SCHEMA_BACKTEST_REQUIRED_FINAL = SCHEMA_BACKTEST_REQUIRED + [ SCHEMA_BACKTEST_REQUIRED_FINAL = [
*SCHEMA_BACKTEST_REQUIRED,
"stoploss", "stoploss",
"minimal_roi", "minimal_roi",
"max_open_trades", "max_open_trades",
@@ -1358,6 +1359,4 @@ SCHEMA_MINIMAL_REQUIRED = [
"dataformat_ohlcv", "dataformat_ohlcv",
"dataformat_trades", "dataformat_trades",
] ]
SCHEMA_MINIMAL_WEBSERVER = SCHEMA_MINIMAL_REQUIRED + [ SCHEMA_MINIMAL_WEBSERVER = [*SCHEMA_MINIMAL_REQUIRED, "api_server"]
"api_server",
]

View File

@@ -361,7 +361,7 @@ def _validate_freqai_include_timeframes(conf: dict[str, Any], preliminary: bool)
# Ensure that the base timeframe is included in the include_timeframes list # Ensure that the base timeframe is included in the include_timeframes list
if not preliminary and main_tf not in freqai_include_timeframes: if not preliminary and main_tf not in freqai_include_timeframes:
feature_parameters = conf.get("freqai", {}).get("feature_parameters", {}) feature_parameters = conf.get("freqai", {}).get("feature_parameters", {})
include_timeframes = [main_tf] + freqai_include_timeframes include_timeframes = [main_tf, *freqai_include_timeframes]
conf.get("freqai", {}).get("feature_parameters", {}).update( conf.get("freqai", {}).get("feature_parameters", {}).update(
{**feature_parameters, "include_timeframes": include_timeframes} {**feature_parameters, "include_timeframes": include_timeframes}
) )

View File

@@ -99,7 +99,7 @@ DL_DATA_TIMEFRAMES = ["1m", "5m"]
ENV_VAR_PREFIX = "FREQTRADE__" ENV_VAR_PREFIX = "FREQTRADE__"
CANCELED_EXCHANGE_STATES = ("cancelled", "canceled", "expired", "rejected") CANCELED_EXCHANGE_STATES = ("cancelled", "canceled", "expired", "rejected")
NON_OPEN_EXCHANGE_STATES = CANCELED_EXCHANGE_STATES + ("closed",) NON_OPEN_EXCHANGE_STATES = (*CANCELED_EXCHANGE_STATES, "closed")
# Define decimals per coin for outputs # Define decimals per coin for outputs
# Only used for outputs. # Only used for outputs.

View File

@@ -281,7 +281,7 @@ def _merge_dfs(
): ):
merge_on = ["pair", "open_date"] merge_on = ["pair", "open_date"]
signal_wide_indicators = list(set(available_inds) - set(BT_DATA_COLUMNS)) signal_wide_indicators = list(set(available_inds) - set(BT_DATA_COLUMNS))
columns_to_keep = merge_on + ["enter_reason", "exit_reason"] columns_to_keep = [*merge_on, "enter_reason", "exit_reason"]
if exit_df is None or exit_df.empty or entry_only is True: if exit_df is None or exit_df.empty or entry_only is True:
return entry_df[columns_to_keep + available_inds] return entry_df[columns_to_keep + available_inds]

View File

@@ -2798,7 +2798,7 @@ class Exchange:
pair, timeframe, candle_type = pairwt pair, timeframe, candle_type = pairwt
since_ms = None since_ms = None
new_ticks: list = [] new_ticks: list = []
all_stored_ticks_df = DataFrame(columns=DEFAULT_TRADES_COLUMNS + ["date"]) all_stored_ticks_df = DataFrame(columns=[*DEFAULT_TRADES_COLUMNS, "date"])
first_candle_ms = self.needed_candle_for_trades_ms(timeframe, candle_type) first_candle_ms = self.needed_candle_for_trades_ms(timeframe, candle_type)
# refresh, if # refresh, if
# a. not in _trades # a. not in _trades
@@ -2843,7 +2843,7 @@ class Exchange:
else: else:
# Skip cache, it's too old # Skip cache, it's too old
all_stored_ticks_df = DataFrame( all_stored_ticks_df = DataFrame(
columns=DEFAULT_TRADES_COLUMNS + ["date"] columns=[*DEFAULT_TRADES_COLUMNS, "date"]
) )
# from_id overrules with exchange set to id paginate # from_id overrules with exchange set to id paginate

View File

@@ -460,7 +460,7 @@ def generate_candlestick_graph(
rows=rows, rows=rows,
cols=1, cols=1,
shared_xaxes=True, shared_xaxes=True,
row_width=row_widths + [1, 4], row_width=[*row_widths, 1, 4],
vertical_spacing=0.0001, vertical_spacing=0.0001,
) )
fig["layout"].update(title=pair) fig["layout"].update(title=pair)

View File

@@ -32,7 +32,7 @@ warnings.simplefilter(action="ignore", category=RuntimeWarning)
def numpy_rolling_window(data, window): def numpy_rolling_window(data, window):
shape = data.shape[:-1] + (data.shape[-1] - window + 1, window) shape = data.shape[:-1] + (data.shape[-1] - window + 1, window)
strides = data.strides + (data.strides[-1],) strides = (*data.strides, data.strides[-1])
return np.lib.stride_tricks.as_strided(data, shape=shape, strides=strides) return np.lib.stride_tricks.as_strided(data, shape=shape, strides=strides)