diff --git a/tools/backtest.sh b/tools/backtest.sh index 80fbae00..d42bbfee 100755 --- a/tools/backtest.sh +++ b/tools/backtest.sh @@ -122,16 +122,21 @@ fi # Parse dates if [[ "$START_DATE_RAW" == *" "* ]]; then - START_DATE=$(date -d "$START_DATE_RAW" +"%s") + START_DATE_TS=$(date -d "$START_DATE_RAW" +"%s") + START_DATE_STR=$(date -d "$START_DATE_RAW" +"%Y-%m-%d") else - # 兼容旧格式:20250616 -> 转换为 2025-06-16 00:00:00 再转为时间戳 - START_DATE=$(date -d "${START_DATE_RAW:0:4}-${START_DATE_RAW:4:2}-${START_DATE_RAW:6:2} 00:00:00" +"%s") + # 兼容旧格式:20260118 -> 转换为 2026-01-18 00:00:00 再转为时间戳和日期字符串 + START_DATE_TS=$(date -d "${START_DATE_RAW:0:4}-${START_DATE_RAW:4:2}-${START_DATE_RAW:6:2} 00:00:00" +"%s") + START_DATE_STR="${START_DATE_RAW:0:4}-${START_DATE_RAW:4:2}-${START_DATE_RAW:6:2}" fi if [[ "$END_DATE_RAW" == *" "* ]]; then - END_DATE=$(date -d "$END_DATE_RAW" +"%s") + END_DATE_TS=$(date -d "$END_DATE_RAW" +"%s") + END_DATE_STR=$(date -d "$END_DATE_RAW" +"%Y-%m-%d") else - END_DATE=$(date -d "${END_DATE_RAW:0:4}-${END_DATE_RAW:4:2}-${END_DATE_RAW:6:2} 00:00:00" +"%s") + # 兼容旧格式:20260218 -> 转换为 2026-02-18 00:00:00 再转为时间戳和日期字符串 + END_DATE_TS=$(date -d "${END_DATE_RAW:0:4}-${END_DATE_RAW:4:2}-${END_DATE_RAW:6:2} 00:00:00" +"%s") + END_DATE_STR="${END_DATE_RAW:0:4}-${END_DATE_RAW:4:2}-${END_DATE_RAW:6:2}" fi # 处理交易对参数:优先级为 --pairRemoteList > --pairs > 默认值 @@ -219,7 +224,7 @@ docker-compose run --rm freqtrade backtesting $PAIRS_FLAG \ --strategy-path /freqtrade/templates \ --enable-protections \ --strategy $STRATEGY_NAME \ - --timerange $START_DATE-$END_DATE \ + --timerange $START_DATE_STR-$END_DATE_STR \ --fee 0.0008 \ --breakdown day \ --cache none >output.log 2>&1