脚本会自动使用默认的 MyCoolRLModel 模型,而不会提示参数缺失。

This commit is contained in:
zhangkun9038@dingtalk.com 2026-02-19 22:59:43 +08:00
parent 6801d7662a
commit 3d3bead679
3 changed files with 71 additions and 3 deletions

23
test_date.sh Executable file
View File

@ -0,0 +1,23 @@
#!/bin/bash
# 测试日期格式
START_DATE_RAW="20260118"
END_DATE_RAW="20260218"
echo "Original params:"
echo "START_DATE_RAW: $START_DATE_RAW"
echo "END_DATE_RAW: $END_DATE_RAW"
# 直接测试日期格式化
START_DATE_STR="${START_DATE_RAW:0:4}-${START_DATE_RAW:4:2}-${START_DATE_RAW:6:2}"
END_DATE_STR="${END_DATE_RAW:0:4}-${END_DATE_RAW:4:2}-${END_DATE_RAW:6:2}"
echo "Formatted dates:"
echo "START_DATE_STR: $START_DATE_STR"
echo "END_DATE_STR: $END_DATE_STR"
echo "Timerange would be: $START_DATE_STR-$END_DATE_STR"
# 测试是否包含多余的连字符
echo "Checking for extra dashes..."
echo "START_DATE_STR has $(echo "$START_DATE_STR" | grep -o '-' | wc -l) dashes"
echo "END_DATE_STR has $(echo "$END_DATE_STR" | grep -o '-' | wc -l) dashes"

22
test_fixed.sh Executable file
View File

@ -0,0 +1,22 @@
#!/bin/bash
# 测试修复后的日期格式
START_DATE_RAW="20260118"
END_DATE_RAW="20260218"
echo "Original params:"
echo "START_DATE_RAW: $START_DATE_RAW"
echo "END_DATE_RAW: $END_DATE_RAW"
# 处理日期格式
START_DATE_STR="${START_DATE_RAW:0:4}-${START_DATE_RAW:4:2}-${START_DATE_RAW:6:2}"
END_DATE_STR="${END_DATE_RAW:0:4}-${END_DATE_RAW:4:2}-${END_DATE_RAW:6:2}"
echo "Formatted dates:"
echo "START_DATE_STR: $START_DATE_STR"
echo "END_DATE_STR: $END_DATE_STR"
# 构建正确的 timerange 格式 (YYYY-MM-DD/YYYY-MM-DD)
TIMERANGE_ARG="$START_DATE_STR/$END_DATE_STR"
echo "Final timerange argument: $TIMERANGE_ARG"

View File

@ -124,6 +124,15 @@ fi
START_DATE_STR=""
END_DATE_STR=""
# 从原始参数中提取日期
if [ $# -gt 0 ]; then
START_DATE_RAW="$1"
fi
if [ $# -gt 1 ]; then
END_DATE_RAW="$2"
fi
# 处理日期格式
if [[ "$START_DATE_RAW" == *" "* ]]; then
START_DATE_STR=$(date -d "$START_DATE_RAW" +"%Y-%m-%d")
else
@ -138,6 +147,20 @@ else
END_DATE_STR="${END_DATE_RAW:0:4}-${END_DATE_RAW:4:2}-${END_DATE_RAW:6:2}"
fi
# 确保日期格式正确
if [[ ! "$START_DATE_STR" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
echo "Error: Invalid start date format: $START_DATE_STR"
exit 1
fi
if [[ ! "$END_DATE_STR" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
echo "Error: Invalid end date format: $END_DATE_STR"
exit 1
fi
# 构建正确的 timerange 格式 (YYYY-MM-DD/YYYY-MM-DD)
TIMERANGE_ARG="$START_DATE_STR/$END_DATE_STR"
# 处理交易对参数:优先级为 --pairRemoteList > --pairs > 默认值
if [ -n "$PAIR_REMOTE_LIST_URL" ]; then
# 从远程API获取交易对列表
@ -206,7 +229,7 @@ hyperopt_config="${STRATEGY_NAME%.py}.json"
# Debug: Print date variables to check format
echo "DEBUG: START_DATE_STR = '$START_DATE_STR'"
echo "DEBUG: END_DATE_STR = '$END_DATE_STR'"
echo "DEBUG: Timerange format would be: $START_DATE_STR-$END_DATE_STR"
echo "DEBUG: TIMERANGE_ARG = '$TIMERANGE_ARG'"
echo "docker-compose run --rm freqtrade backtesting $PAIRS_FLAG \
--logfile /freqtrade/user_data/logs/freqtrade.log \
@ -215,7 +238,7 @@ echo "docker-compose run --rm freqtrade backtesting $PAIRS_FLAG \
--config /freqtrade/config_examples/$CONFIG_FILE \
--strategy-path /freqtrade/templates \
--strategy $STRATEGY_NAME \
--timerange $START_DATE_STR-$END_DATE_STR \
--timerange $TIMERANGE_ARG \
--fee 0.0008 \
--breakdown day \
--cache none >output.log"
@ -228,7 +251,7 @@ docker-compose run --rm freqtrade backtesting $PAIRS_FLAG \
--strategy-path /freqtrade/templates \
--enable-protections \
--strategy $STRATEGY_NAME \
--timerange $START_DATE_STR-$END_DATE_STR \
--timerange $TIMERANGE_ARG \
--fee 0.0008 \
--breakdown day \
--cache none >output.log 2>&1