脚本会自动使用默认的 MyCoolRLModel 模型,而不会提示参数缺失。
This commit is contained in:
parent
dade26a9ad
commit
ab99c06030
52
test_timestamp.sh
Normal file
52
test_timestamp.sh
Normal file
@ -0,0 +1,52 @@
|
||||
#!/bin/bash
|
||||
# 测试时间戳转换
|
||||
|
||||
# 测试输入
|
||||
START_DATE_RAW="20260118"
|
||||
END_DATE_RAW="20260218"
|
||||
|
||||
echo "=== 测试时间戳转换 ==="
|
||||
echo "输入:"
|
||||
echo "START_DATE_RAW: $START_DATE_RAW"
|
||||
echo "END_DATE_RAW: $END_DATE_RAW"
|
||||
|
||||
# 处理日期格式 - 转换为 UNIX 时间戳
|
||||
START_DATE_TS=""
|
||||
END_DATE_TS=""
|
||||
|
||||
if [[ "$START_DATE_RAW" == *" "* ]]; then
|
||||
# 如果输入有空格,假设是日期/时间字符串
|
||||
START_DATE_TS=$(date -d "$START_DATE_RAW" +"%s")
|
||||
elif [[ "$START_DATE_RAW" =~ ^[0-9]{8}$ ]]; then
|
||||
# 如果输入是 8 位数 (YYYYMMDD),转换为时间戳
|
||||
START_DATE_TS=$(date -d "${START_DATE_RAW:0:4}-${START_DATE_RAW:4:2}-${START_DATE_RAW:6:2} 00:00:00" +"%s")
|
||||
else
|
||||
# 否则,假设已经是时间戳
|
||||
START_DATE_TS="$START_DATE_RAW"
|
||||
fi
|
||||
|
||||
if [[ "$END_DATE_RAW" == *" "* ]]; then
|
||||
# 如果输入有空格,假设是日期/时间字符串
|
||||
END_DATE_TS=$(date -d "$END_DATE_RAW" +"%s")
|
||||
elif [[ "$END_DATE_RAW" =~ ^[0-9]{8}$ ]]; then
|
||||
# 如果输入是 8 位数 (YYYYMMDD),转换为时间戳
|
||||
END_DATE_TS=$(date -d "${END_DATE_RAW:0:4}-${END_DATE_RAW:4:2}-${END_DATE_RAW:6:2} 00:00:00" +"%s")
|
||||
else
|
||||
# 否则,假设已经是时间戳
|
||||
END_DATE_TS="$END_DATE_RAW"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "转换结果:"
|
||||
echo "START_DATE_TS: $START_DATE_TS"
|
||||
echo "END_DATE_TS: $END_DATE_TS"
|
||||
|
||||
# 构建正确的 timerange 格式 (TIMESTAMP1-TIMESTAMP2)
|
||||
TIMERANGE_ARG="$START_DATE_TS-$END_DATE_TS"
|
||||
|
||||
echo ""
|
||||
echo "最终 timerange 参数:"
|
||||
echo "TIMERANGE_ARG: $TIMERANGE_ARG"
|
||||
echo ""
|
||||
echo "完整命令示例:"
|
||||
echo "docker-compose run --rm freqtrade backtesting --pairs XAUT/USDT --timerange $TIMERANGE_ARG --strategy FreqaiPrimer"
|
||||
@ -123,37 +123,45 @@ if [ -z "$START_DATE_RAW" ] && [ -z "$END_DATE_RAW" ] && [ $# -gt 0 ]; then
|
||||
fi
|
||||
|
||||
# Process date formats
|
||||
START_DATE_STR=""
|
||||
END_DATE_STR=""
|
||||
START_DATE_TS=""
|
||||
END_DATE_TS=""
|
||||
|
||||
# Handle date processing
|
||||
# Handle date processing - convert to UNIX timestamp
|
||||
if [[ "$START_DATE_RAW" == *" "* ]]; then
|
||||
START_DATE_STR=$(date -d "$START_DATE_RAW" +"%Y-%m-%d")
|
||||
# If input has spaces, assume it's a date/time string
|
||||
START_DATE_TS=$(date -d "$START_DATE_RAW" +"%s")
|
||||
elif [[ "$START_DATE_RAW" =~ ^[0-9]{8}$ ]]; then
|
||||
# If input is 8 digits (YYYYMMDD), convert to timestamp
|
||||
START_DATE_TS=$(date -d "${START_DATE_RAW:0:4}-${START_DATE_RAW:4:2}-${START_DATE_RAW:6:2} 00:00:00" +"%s")
|
||||
else
|
||||
# 兼容旧格式:20260118 -> 转换为 2026-01-18
|
||||
START_DATE_STR="${START_DATE_RAW:0:4}-${START_DATE_RAW:4:2}-${START_DATE_RAW:6:2}"
|
||||
# Otherwise, assume it's already a timestamp
|
||||
START_DATE_TS="$START_DATE_RAW"
|
||||
fi
|
||||
|
||||
if [[ "$END_DATE_RAW" == *" "* ]]; then
|
||||
END_DATE_STR=$(date -d "$END_DATE_RAW" +"%Y-%m-%d")
|
||||
# If input has spaces, assume it's a date/time string
|
||||
END_DATE_TS=$(date -d "$END_DATE_RAW" +"%s")
|
||||
elif [[ "$END_DATE_RAW" =~ ^[0-9]{8}$ ]]; then
|
||||
# If input is 8 digits (YYYYMMDD), convert to timestamp
|
||||
END_DATE_TS=$(date -d "${END_DATE_RAW:0:4}-${END_DATE_RAW:4:2}-${END_DATE_RAW:6:2} 00:00:00" +"%s")
|
||||
else
|
||||
# 兼容旧格式:20260218 -> 转换为 2026-02-18
|
||||
END_DATE_STR="${END_DATE_RAW:0:4}-${END_DATE_RAW:4:2}-${END_DATE_RAW:6:2}"
|
||||
# Otherwise, assume it's already a timestamp
|
||||
END_DATE_TS="$END_DATE_RAW"
|
||||
fi
|
||||
|
||||
# Validate date formats
|
||||
if [[ ! "$START_DATE_STR" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
|
||||
echo "Error: Invalid start date format: $START_DATE_STR"
|
||||
# Validate timestamp formats
|
||||
if [[ ! "$START_DATE_TS" =~ ^[0-9]+$ ]]; then
|
||||
echo "Error: Invalid start date format: $START_DATE_RAW"
|
||||
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"
|
||||
if [[ ! "$END_DATE_TS" =~ ^[0-9]+$ ]]; then
|
||||
echo "Error: Invalid end date format: $END_DATE_RAW"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Build correct timerange format (YYYY-MM-DD/YYYY-MM-DD)
|
||||
TIMERANGE_ARG="$START_DATE_STR/$END_DATE_STR"
|
||||
# Build correct timerange format (TIMESTAMP1-TIMESTAMP2)
|
||||
TIMERANGE_ARG="$START_DATE_TS-$END_DATE_TS"
|
||||
|
||||
# 处理交易对参数:优先级为 --pairRemoteList > --pairs > 默认值
|
||||
if [ -n "$PAIR_REMOTE_LIST_URL" ]; then
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user