52 lines
1.6 KiB
Bash
52 lines
1.6 KiB
Bash
#!/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" |