优化download.sh和dryrun.sh
This commit is contained in:
parent
c232264487
commit
77f48fdadf
@ -35,6 +35,10 @@
|
|||||||
},
|
},
|
||||||
"pair_whitelist": [
|
"pair_whitelist": [
|
||||||
"BTC/USDT",
|
"BTC/USDT",
|
||||||
|
"TON/USDT",
|
||||||
|
"ETH/USDT",
|
||||||
|
"OKB/USDT",
|
||||||
|
"DOT/USDT",
|
||||||
"SOL/USDT"
|
"SOL/USDT"
|
||||||
],
|
],
|
||||||
"pair_blacklist": []
|
"pair_blacklist": []
|
||||||
|
|||||||
@ -27,17 +27,66 @@ get_param_value() {
|
|||||||
exit 1
|
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
|
if [[ "$@" == *"--timerange"* ]] && [[ "$@" == *"--days"* ]]; then
|
||||||
echo "Error: Both --timerange and --days cannot be provided."
|
echo "Error: Both --timerange and --days cannot be provided."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
echo days: $days
|
|
||||||
|
# Get timerange or days from parameters
|
||||||
if [[ "$@" == *"--timerange"* ]]; then
|
if [[ "$@" == *"--timerange"* ]]; then
|
||||||
timerange=$(get_param_value "--timerange" "$@")
|
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
|
elif [[ "$@" == *"--days"* ]]; then
|
||||||
days=$(get_param_value "--days" "$@")
|
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
|
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
|
#!/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 文件
|
# 检查 .env 文件
|
||||||
if [ ! -f ".env" ]; then
|
if [ ! -f ".env" ]; then
|
||||||
@ -35,7 +57,9 @@ rm result/*
|
|||||||
hyperopt_config="${STRATEGY_NAME%.py}.json"
|
hyperopt_config="${STRATEGY_NAME%.py}.json"
|
||||||
docker rm $(docker ps -aq) -f
|
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 \
|
--logfile /freqtrade/user_data/logs/freqtrade.log \
|
||||||
--db-url sqlite:////freqtrade/user_data/tradesv3.sqlite \
|
--db-url sqlite:////freqtrade/user_data/tradesv3.sqlite \
|
||||||
--freqaimodel LightGBMRegressor \
|
--freqaimodel LightGBMRegressor \
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user