myTestFreqAI/test_timestamp.sh

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"