优化download.sh和dryrun.sh
This commit is contained in:
parent
c232264487
commit
77f48fdadf
@ -35,6 +35,10 @@
|
||||
},
|
||||
"pair_whitelist": [
|
||||
"BTC/USDT",
|
||||
"TON/USDT",
|
||||
"ETH/USDT",
|
||||
"OKB/USDT",
|
||||
"DOT/USDT",
|
||||
"SOL/USDT"
|
||||
],
|
||||
"pair_blacklist": []
|
||||
|
||||
@ -27,17 +27,66 @@ get_param_value() {
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Function to extract comma-separated values
|
||||
get_csv_param_value() {
|
||||
local param="$1"
|
||||
shift
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
$param=*)
|
||||
echo "${1#*=}"
|
||||
return
|
||||
;;
|
||||
$param)
|
||||
# Check if the next argument exists and does not start with a dash
|
||||
if [[ -n "$2" && "$2" != -* ]]; then
|
||||
echo "$2"
|
||||
return
|
||||
else
|
||||
echo "Error: Missing value for parameter $param" >&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
echo ""
|
||||
return
|
||||
}
|
||||
|
||||
if [[ "$@" == *"--timerange"* ]] && [[ "$@" == *"--days"* ]]; then
|
||||
echo "Error: Both --timerange and --days cannot be provided."
|
||||
exit 1
|
||||
fi
|
||||
echo days: $days
|
||||
|
||||
# Get timerange or days from parameters
|
||||
if [[ "$@" == *"--timerange"* ]]; then
|
||||
timerange=$(get_param_value "--timerange" "$@")
|
||||
docker-compose run --rm freqtrade download-data --config /freqtrade/config_examples/basic.json --pairs BTC/USDT OKB/USDT TON/USDT DOT/USDT SOL/USDT XRP/USDT --timeframe 3m 5m 15m 30m 1h 4h 6h 12h 1d --timerange $timerange
|
||||
elif [[ "$@" == *"--days"* ]]; then
|
||||
days=$(get_param_value "--days" "$@")
|
||||
docker-compose run --rm freqtrade download-data --config /freqtrade/config_examples/basic.json --pairs BTC/USDT OKB/USDT TON/USDT DOT/USDT SOL/USDT XRP/USDT --timeframe 3m 5m 15m 30m 1h 4h 6h 12h 1d --days $days
|
||||
else
|
||||
docker-compose run --rm freqtrade download-data --config /freqtrade/config_examples/basic.json --pairs BTC/USDT OKB/USDT TON/USDT DOT/USDT SOL/USDT XRP/USDT --timeframe 3m 5m 15m 30m 1h 4h 6h 12h 1d
|
||||
fi
|
||||
# Get pairs and timeframe from parameters or use defaults
|
||||
pairs=$(get_csv_param_value "--pairs" "$@")
|
||||
timeframe=$(get_csv_param_value "--timeframe" "$@")
|
||||
|
||||
# Use default values if parameters are not provided
|
||||
if [[ -z "$pairs" ]]; then
|
||||
pairs="BTC/USDT,OKB/USDT,TON/USDT,DOT/USDT,SOL/USDT,XRP/USDT"
|
||||
fi
|
||||
|
||||
if [[ -z "$timeframe" ]]; then
|
||||
timeframe="3m,5m,15m,30m,1h,4h,6h,12h,1d"
|
||||
fi
|
||||
|
||||
# Initialize the base command
|
||||
cmd="docker-compose run --rm freqtrade download-data --config /freqtrade/config_examples/basic.json --pairs $pairs --timeframe $timeframe"
|
||||
|
||||
# Add timerange or days if provided
|
||||
if [[ -n "$timerange" ]]; then
|
||||
cmd+=" --timerange $timerange"
|
||||
elif [[ -n "$days" ]]; then
|
||||
cmd+=" --days $days"
|
||||
fi
|
||||
|
||||
# Execute the command
|
||||
eval $cmd
|
||||
|
||||
@ -1,4 +1,26 @@
|
||||
#!/bin/bash
|
||||
# 检查当前分支名称是否包含 "dryrun"
|
||||
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
||||
if [[ "$CURRENT_BRANCH" != *"dryrun"* ]]; then
|
||||
echo "⚠️ 警告:当前分支名称为 '$CURRENT_BRANCH',不包含 'dryrun'。"
|
||||
echo "⚠️ 确保您正在正确的分支上运行此脚本。"
|
||||
read -p "是否继续?(y/n): " confirm
|
||||
if [[ "$confirm" != "y" && "$confirm" != "Y" ]]; then
|
||||
echo "已取消执行。"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# 如果当前分支名称包含 "dryrun",执行 git reset --hard
|
||||
if [[ "$CURRENT_BRANCH" == *"dryrun"* ]]; then
|
||||
echo "当前分支为 '$CURRENT_BRANCH',正在执行 git reset --hard 以确保代码干净..."
|
||||
git reset --hard
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "⚠️ 执行 git reset --hard 失败,请检查 Git 状态。"
|
||||
exit 1
|
||||
fi
|
||||
echo "Git 工作区已清理。"
|
||||
fi
|
||||
|
||||
# 检查 .env 文件
|
||||
if [ ! -f ".env" ]; then
|
||||
@ -35,7 +57,9 @@ rm result/*
|
||||
hyperopt_config="${STRATEGY_NAME%.py}.json"
|
||||
docker rm $(docker ps -aq) -f
|
||||
|
||||
docker-compose run -d --rm -p 8080:8080 freqtrade trade \
|
||||
# 获取当前 Git Commit 的前 8 位
|
||||
GIT_COMMIT_SHORT=$(git rev-parse HEAD | cut -c 1-8)
|
||||
docker-compose run -d --rm --name freqtrade-dryrun-${GIT_COMMIT_SHORT} -p 8080:8080 freqtrade trade \
|
||||
--logfile /freqtrade/user_data/logs/freqtrade.log \
|
||||
--db-url sqlite:////freqtrade/user_data/tradesv3.sqlite \
|
||||
--freqaimodel LightGBMRegressor \
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user