backtest支持参数化使用其他策略

This commit is contained in:
zhangkun9038@dingtalk.com 2025-10-14 01:08:22 +08:00
parent b1a66281be
commit d33afb17bf

View File

@ -196,17 +196,29 @@ fi
# 如果命令行提供了策略参数,覆盖.env文件设置
if [ -n "$STRATEGY_ARG" ]; then
STRATEGY_NAME="$STRATEGY_ARG"
echo "Overriding strategy with command line parameter: $STRATEGY_NAME"
# 将策略名称转换为小写(移除.py后缀后转换再重新添加
STRATEGY_BASE_NAME="${STRATEGY_ARG%.py}"
STRATEGY_NAME_LOWER="$(echo "$STRATEGY_BASE_NAME" | tr '[:upper:]' '[:lower:]').py"
STRATEGY_NAME="$STRATEGY_NAME_LOWER"
echo "Overriding strategy with command line parameter: $STRATEGY_ARG"
echo "Converted strategy name to lowercase: $STRATEGY_NAME"
# 自动匹配策略对应的配置文件
STRATEGY_CONFIG="${STRATEGY_NAME%.py}.json"
echo "Checking auto-matched config file: freqtrade/templates/$STRATEGY_CONFIG"
if [ -f "../freqtrade/templates/$STRATEGY_CONFIG" ]; then
# 自动匹配策略对应的配置文件(也使用小写)
STRATEGY_CONFIG="${STRATEGY_BASE_NAME%.py}.json"
STRATEGY_CONFIG_LOWER="$(echo "${STRATEGY_BASE_NAME%.py}" | tr '[:upper:]' '[:lower:]').json"
echo "Checking auto-matched config file (original): freqtrade/templates/$STRATEGY_CONFIG"
echo "Checking auto-matched config file (lowercase): freqtrade/templates/$STRATEGY_CONFIG_LOWER"
# 优先检查小写配置文件
if [ -f "../freqtrade/templates/$STRATEGY_CONFIG_LOWER" ]; then
CONFIG_FILE="$STRATEGY_CONFIG_LOWER"
echo "Auto-matched config file for strategy (lowercase): $CONFIG_FILE"
elif [ -f "../freqtrade/templates/$STRATEGY_CONFIG" ]; then
CONFIG_FILE="$STRATEGY_CONFIG"
echo "Auto-matched config file for strategy: $CONFIG_FILE"
echo "Auto-matched config file for strategy (original): $CONFIG_FILE"
else
echo "Warning: Auto-matched config file '$STRATEGY_CONFIG' not found in templates directory"
echo "Warning: Auto-matched config file '$STRATEGY_CONFIG' or '$STRATEGY_CONFIG_LOWER' not found in templates directory"
echo "Available config files in templates directory:"
ls ../freqtrade/templates/*.json 2>/dev/null | sed 's|.*/||' || echo "No JSON config files found"
echo "Using current config: $CONFIG_FILE"