脚本支持 pairRemoteList 参数
This commit is contained in:
parent
392effbccd
commit
3ad13472f9
@ -34,11 +34,6 @@
|
||||
"rateLimit": 500,
|
||||
"timeout": 20000
|
||||
},
|
||||
"pair_whitelist": [
|
||||
"BTC/USDT",
|
||||
"SOL/USDT"
|
||||
],
|
||||
"pair_blacklist": []
|
||||
},
|
||||
"entry_pricing": {
|
||||
"price_side": "same",
|
||||
@ -55,11 +50,6 @@
|
||||
"use_order_book": true,
|
||||
"order_book_top": 1
|
||||
},
|
||||
"pairlists": [
|
||||
{
|
||||
"method": "StaticPairList"
|
||||
}
|
||||
],
|
||||
"freqai": {
|
||||
"enabled": true,
|
||||
"data_kitchen": {
|
||||
|
||||
@ -21,22 +21,50 @@ CONFIG_FILE=${CONFIG_FILE:-basic.json}
|
||||
echo "Using strategy: $STRATEGY_NAME"
|
||||
echo "Using config: $CONFIG_FILE"
|
||||
echo "Using testBranch: $TEST_BRANCH"
|
||||
# Parse command line arguments
|
||||
START_DATE=${1:-$(date -d "2 days ago" +"%Y%m%d")}
|
||||
END_DATE=${2:-$(date -d "tomorrow" +"%Y%m%d")}
|
||||
PAIRS_ARG=${3:-""} # Optional --pairs argument for docker-compose
|
||||
PARAMS_NAME=$(echo "$STRATEGY_NAME" | tr '[:upper:]' '[:lower:]')
|
||||
# If PAIRS_ARG is provided, format it for docker-compose
|
||||
if [ -n "$PAIRS_ARG" ]; then
|
||||
PAIRS_FLAG="--pairs $PAIRS_ARG"
|
||||
else
|
||||
PAIRS_FLAG=""
|
||||
fi
|
||||
# Parse command line arguments
|
||||
START_DATE_RAW=${1:-$(date -d "2 days ago" +"%Y-%m-%d %H:%M:%S")}
|
||||
END_DATE_RAW=${2:-$(date -d "tomorrow" +"%Y-%m-%d %H:%M:%S")}
|
||||
|
||||
# 判断是否包含空格,如果是,则按完整时间解析并转为时间戳
|
||||
# Function to extract the value of a parameter
|
||||
get_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
|
||||
}
|
||||
|
||||
# Parse command line arguments
|
||||
START_DATE_RAW=$(get_param_value "--start-date" "$@")
|
||||
END_DATE_RAW=$(get_param_value "--end-date" "$@")
|
||||
PAIRS_ARG=$(get_param_value "--pairs" "$@")
|
||||
PAIR_REMOTE_LIST_URL=$(get_param_value "--pairRemoteList" "$@")
|
||||
|
||||
# Set default values if parameters not provided
|
||||
if [ -z "$START_DATE_RAW" ]; then
|
||||
START_DATE_RAW=$(date -d "2 days ago" +"%Y-%m-%d %H:%M:%S")
|
||||
fi
|
||||
|
||||
if [ -z "$END_DATE_RAW" ]; then
|
||||
END_DATE_RAW=$(date -d "tomorrow" +"%Y-%m-%d %H:%M:%S")
|
||||
fi
|
||||
|
||||
# Parse dates
|
||||
if [[ "$START_DATE_RAW" == *" "* ]]; then
|
||||
START_DATE=$(date -d "$START_DATE_RAW" +"%s")
|
||||
else
|
||||
@ -50,6 +78,57 @@ else
|
||||
END_DATE=$(date -d "${END_DATE_RAW:0:4}-${END_DATE_RAW:4:2}-${END_DATE_RAW:6:2} 00:00:00" +"%s")
|
||||
fi
|
||||
|
||||
# 处理交易对参数:优先级为 --pairRemoteList > --pairs > 默认值
|
||||
if [ -n "$PAIR_REMOTE_LIST_URL" ]; then
|
||||
# 从远程API获取交易对列表
|
||||
echo "Fetching pairs from remote URL: $PAIR_REMOTE_LIST_URL"
|
||||
pairs_json=$(curl -s "$PAIR_REMOTE_LIST_URL")
|
||||
|
||||
# 检查API响应是否成功
|
||||
if [[ $? -ne 0 || -z "$pairs_json" ]]; then
|
||||
echo "Error: Failed to fetch pairs from remote URL, using --pairs parameter or default"
|
||||
if [ -n "$PAIRS_ARG" ]; then
|
||||
PAIRS_FLAG="--pairs $PAIRS_ARG"
|
||||
echo "Using pairs from --pairs parameter: $PAIRS_ARG"
|
||||
else
|
||||
PAIRS_FLAG=""
|
||||
echo "No pairs parameter provided, using freqtrade default"
|
||||
fi
|
||||
else
|
||||
# 解析JSON并提取交易对,将连字符替换为斜杠
|
||||
remote_pairs=$(echo "$pairs_json" | python3 -c "
|
||||
import sys, json
|
||||
data = json.load(sys.stdin)
|
||||
pairs = [pair.replace('-', '/') for pair in data.get('pairlist', [])]
|
||||
print(' '.join(pairs) if pairs else '')
|
||||
")
|
||||
|
||||
# 如果解析成功且有交易对
|
||||
if [[ -n "$remote_pairs" ]]; then
|
||||
PAIRS_FLAG="--pairs $remote_pairs"
|
||||
echo "Successfully fetched $(echo "$remote_pairs" | wc -w) pairs from remote URL"
|
||||
echo "Pairs: $remote_pairs"
|
||||
else
|
||||
echo "Error: Failed to parse or empty pairlist from remote URL, using --pairs parameter or default"
|
||||
if [ -n "$PAIRS_ARG" ]; then
|
||||
PAIRS_FLAG="--pairs $PAIRS_ARG"
|
||||
echo "Using pairs from --pairs parameter: $PAIRS_ARG"
|
||||
else
|
||||
PAIRS_FLAG=""
|
||||
echo "No pairs parameter provided, using freqtrade default"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
elif [ -n "$PAIRS_ARG" ]; then
|
||||
# 使用 --pairs 参数提供的交易对
|
||||
PAIRS_FLAG="--pairs $PAIRS_ARG"
|
||||
echo "Using pairs from --pairs parameter: $PAIRS_ARG"
|
||||
else
|
||||
# 没有提供任何交易对参数
|
||||
PAIRS_FLAG=""
|
||||
echo "No pairs parameter provided, using freqtrade default"
|
||||
fi
|
||||
|
||||
cd ../
|
||||
source .venv/bin/activate
|
||||
rm -rf user_data/models/*
|
||||
@ -58,7 +137,6 @@ rm -fr ./user_data/dryrun_results/*
|
||||
rm result/*
|
||||
|
||||
hyperopt_config="${STRATEGY_NAME%.py}.json"
|
||||
#docker-compose -f docker-compose_backtest.yml run --rm freqtrade >output.log 2>&1
|
||||
|
||||
echo "docker-compose run --rm freqtrade backtesting $PAIRS_FLAG \
|
||||
--logfile /freqtrade/user_data/logs/freqtrade.log \
|
||||
@ -69,8 +147,9 @@ echo "docker-compose run --rm freqtrade backtesting $PAIRS_FLAG \
|
||||
--enable-protections \
|
||||
--timerange $START_DATE-$END_DATE \
|
||||
--fee 0.0008 \
|
||||
--breakdown day \
|
||||
--cache none >output.log"
|
||||
#LightGBMRegressorMultiTarget
|
||||
|
||||
docker-compose run --rm freqtrade backtesting $PAIRS_FLAG \
|
||||
--logfile /freqtrade/user_data/logs/freqtrade.log \
|
||||
--freqaimodel LightGBMRegressorMultiTarget \
|
||||
@ -82,9 +161,8 @@ docker-compose run --rm freqtrade backtesting $PAIRS_FLAG \
|
||||
--fee 0.0008 \
|
||||
--breakdown day \
|
||||
--cache none >output.log 2>&1
|
||||
sed -i 's/\x1B\[[0-9;]*m//g' output.log
|
||||
|
||||
#python3 tools/filter.py
|
||||
sed -i 's/\x1B\[[0-9;]*m//g' output.log
|
||||
|
||||
rm ./result/*.json -fr
|
||||
rm ./result/*.py -fr
|
||||
@ -106,7 +184,6 @@ fi
|
||||
|
||||
cd -
|
||||
sed -i 's/\x1B\[[0-9;]*m//g' output.log
|
||||
#python3 ../filter.py
|
||||
cp output.log result/ -f
|
||||
cd tools/
|
||||
python tradestocsv.py
|
||||
|
||||
@ -74,7 +74,32 @@ timeframe=$(get_csv_param_value "--timeframe" "$@")
|
||||
|
||||
# Use default values if parameters are not provided
|
||||
if [[ -z "$pairs" ]]; then
|
||||
pairs="BTC/USDT TON/USDT DOT/USDT XRP/USDT OKB/USDT SOL/USDT DOGE/USDT WCT/USDT TRUMP/USDT SUI/USDT PEPE/USDT TRB/USDT MASK/USDT UNI/USDT KAITO/USDT"
|
||||
# 从API获取交易对列表
|
||||
echo "Fetching pairs from API..."
|
||||
pairs_json=$(curl -s "http://pairlist.xl.home/api/pairlist?mute=true&count=50")
|
||||
|
||||
# 检查API响应是否成功
|
||||
if [[ $? -ne 0 || -z "$pairs_json" ]]; then
|
||||
echo "Error: Failed to fetch pairs from API, using fallback list"
|
||||
pairs="BTC/USDT TON/USDT DOT/USDT XRP/USDT OKB/USDT SOL/USDT DOGE/USDT WCT/USDT TRUMP/USDT SUI/USDT PEPE/USDT TRB/USDT MASK/USDT UNI/USDT KAITO/USDT"
|
||||
else
|
||||
# 解析JSON并提取交易对,将连字符替换为斜杠
|
||||
pairs=$(echo "$pairs_json" | python3 -c "
|
||||
import sys, json
|
||||
data = json.load(sys.stdin)
|
||||
pairs = [pair.replace('-', '/') for pair in data.get('pairlist', [])]
|
||||
print(' '.join(pairs) if pairs else '')
|
||||
")
|
||||
|
||||
# 如果解析失败,使用备用列表
|
||||
if [[ -z "$pairs" ]]; then
|
||||
echo "Error: Failed to parse API response, using fallback list"
|
||||
pairs="BTC/USDT TON/USDT DOT/USDT XRP/USDT OKB/USDT SOL/USDT DOGE/USDT WCT/USDT TRUMP/USDT SUI/USDT PEPE/USDT TRB/USDT MASK/USDT UNI/USDT KAITO/USTS"
|
||||
else
|
||||
echo "Successfully fetched $(echo "$pairs" | wc -w) pairs from API"
|
||||
echo "Pairs: $pairs"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -z "$timeframe" ]]; then
|
||||
@ -86,7 +111,7 @@ IFS=',' read -r -a timeframe_array <<<"$timeframe"
|
||||
timeframe_array_str=$(printf " '%s'" "${timeframe_array[@]}")
|
||||
|
||||
# Initialize the base command
|
||||
cmd="docker-compose run --rm freqtrade download-data --config /freqtrade/config_examples/basic.json --pairs $pairs --timeframe$timeframe_array_str"
|
||||
cmd="docker-compose run --rm freqtrade download-data --config /freqtrade/config_examples/basic.json --pairs $pairs --timeframe$timeframe_array_str --days 50"
|
||||
|
||||
# Add timerange or days if provided
|
||||
if [[ -n "$timerange" ]]; then
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e # 出错立即停止
|
||||
|
||||
# 检查 .env 文件
|
||||
if [ ! -f ".env" ]; then
|
||||
echo "⚠️ 本地缺少 .env 文件,请创建并配置。示例内容如下:"
|
||||
@ -12,6 +13,7 @@ if [ ! -f ".env" ]; then
|
||||
echo ""
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 加载 .env 文件中的变量(位于项目根目录)
|
||||
if [ -f ".env" ]; then
|
||||
export $(grep -v '^#' .env | xargs)
|
||||
@ -35,8 +37,8 @@ else
|
||||
fi
|
||||
|
||||
# 如果当前分支名称包含 "dryrun",执行 git reset --hard
|
||||
if [[ "$CURRENT_BRANCH" == *"dryrun"* ]]; then
|
||||
echo "当前分支为 '$CURRENT_BRANCH',正在执行 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 状态。"
|
||||
@ -45,6 +47,37 @@ if [[ "$CURRENT_BRANCH" == *"dryrun"* ]]; then
|
||||
echo "Git 工作区已清理。"
|
||||
fi
|
||||
|
||||
# Function to extract the value of a parameter
|
||||
get_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
|
||||
}
|
||||
|
||||
# Parse command line arguments
|
||||
PAIRS_ARG=$(get_param_value "--pairs" "$@")
|
||||
PAIR_REMOTE_LIST_URL=$(get_param_value "--pairRemoteList" "$@")
|
||||
|
||||
# 加载 .env 文件中的变量
|
||||
export $(grep -v '^#' .env | xargs)
|
||||
# 设置默认值
|
||||
@ -55,9 +88,57 @@ PARAMS_NAME=$(echo "$STRATEGY_NAME" | tr '[:upper:]' '[:lower:]')
|
||||
echo "Using strategy: $STRATEGY_NAME"
|
||||
echo "Using config: $CONFIG_FILE"
|
||||
echo "Using testBranch: $TEST_BRANCH"
|
||||
# Parse command line arguments
|
||||
START_DATE=${1:-$(date -d "2 days ago" +"%Y%m%d")}
|
||||
END_DATE=${2:-$(date -d "tomorrow" +"%Y%m%d")}
|
||||
|
||||
# 处理交易对参数:优先级为 --pairRemoteList > --pairs > 默认值
|
||||
if [ -n "$PAIR_REMOTE_LIST_URL" ]; then
|
||||
# 从远程API获取交易对列表
|
||||
echo "Fetching pairs from remote URL: $PAIR_REMOTE_LIST_URL"
|
||||
pairs_json=$(curl -s "$PAIR_REMOTE_LIST_URL")
|
||||
|
||||
# 检查API响应是否成功
|
||||
if [[ $? -ne 0 || -z "$pairs_json" ]]; then
|
||||
echo "Error: Failed to fetch pairs from remote URL, using --pairs parameter or default"
|
||||
if [ -n "$PAIRS_ARG" ]; then
|
||||
PAIRS_FLAG="--pairs $PAIRS_ARG"
|
||||
echo "Using pairs from --pairs parameter: $PAIRS_ARG"
|
||||
else
|
||||
PAIRS_FLAG=""
|
||||
echo "No pairs parameter provided, using freqtrade default"
|
||||
fi
|
||||
else
|
||||
# 解析JSON并提取交易对,将连字符替换为斜杠
|
||||
remote_pairs=$(echo "$pairs_json" | python3 -c "
|
||||
import sys, json
|
||||
data = json.load(sys.stdin)
|
||||
pairs = [pair.replace('-', '/') for pair in data.get('pairlist', [])]
|
||||
print(' '.join(pairs) if pairs else '')
|
||||
")
|
||||
|
||||
# 如果解析成功且有交易对
|
||||
if [[ -n "$remote_pairs" ]]; then
|
||||
PAIRS_FLAG="--pairs $remote_pairs"
|
||||
echo "Successfully fetched $(echo "$remote_pairs" | wc -w) pairs from remote URL"
|
||||
echo "Pairs: $remote_pairs"
|
||||
else
|
||||
echo "Error: Failed to parse or empty pairlist from remote URL, using --pairs parameter or default"
|
||||
if [ -n "$PAIRS_ARG" ]; then
|
||||
PAIRS_FLAG="--pairs $PAIRS_ARG"
|
||||
echo "Using pairs from --pairs parameter: $PAIRS_ARG"
|
||||
else
|
||||
PAIRS_FLAG=""
|
||||
echo "No pairs parameter provided, using freqtrade default"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
elif [ -n "$PAIRS_ARG" ]; then
|
||||
# 使用 --pairs 参数提供的交易对
|
||||
PAIRS_FLAG="--pairs $PAIRS_ARG"
|
||||
echo "Using pairs from --pairs parameter: $PAIRS_ARG"
|
||||
else
|
||||
# 没有提供任何交易对参数
|
||||
PAIRS_FLAG=""
|
||||
echo "No pairs parameter provided, using freqtrade default"
|
||||
fi
|
||||
|
||||
cd ../
|
||||
source .venv/bin/activate
|
||||
@ -71,6 +152,7 @@ docker rm $(docker ps -aq) -f || true
|
||||
|
||||
# 获取当前 Git Commit 的前 8 位
|
||||
GIT_COMMIT_SHORT=$(git rev-parse HEAD | cut -c 1-8)
|
||||
|
||||
echo "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 \
|
||||
@ -84,6 +166,7 @@ echo "docker-compose run -d --rm --name freqtrade-dryrun-${GIT_COMMIT_SHORT} -p
|
||||
--strategy-path /freqtrade/templates"
|
||||
|
||||
docker-compose run -d --rm --name freqtrade-dryrun-${GIT_COMMIT_SHORT} -p 8080:8080 freqtrade trade \
|
||||
$PAIRS_FLAG \
|
||||
--logfile /freqtrade/user_data/logs/freqtrade.log \
|
||||
--db-url sqlite:////freqtrade/user_data/tradesv3.sqlite \
|
||||
--dry-run \
|
||||
@ -92,5 +175,6 @@ docker-compose run -d --rm --name freqtrade-dryrun-${GIT_COMMIT_SHORT} -p 8080:8
|
||||
--config /freqtrade/templates/${PARAMS_NAME}.json \
|
||||
--enable-protections \
|
||||
--strategy $STRATEGY_NAME \
|
||||
--config /freqtrade/freqtrade/templates/${STRATEGY_NAME}.json \
|
||||
--fee 0.0008 \
|
||||
--strategy-path /freqtrade/templates
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e # 出错立即停止
|
||||
|
||||
# 检查 .env 文件
|
||||
if [ ! -f ".env" ]; then
|
||||
echo "⚠️ 本地缺少 .env 文件,请创建并配置。示例内容如下:"
|
||||
@ -12,6 +13,7 @@ if [ ! -f ".env" ]; then
|
||||
echo ""
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 加载 .env 文件中的变量(位于项目根目录)
|
||||
if [ -f ".env" ]; then
|
||||
export $(grep -v '^#' .env | xargs)
|
||||
@ -35,8 +37,8 @@ else
|
||||
fi
|
||||
|
||||
# 如果当前分支名称包含 "dryrun",执行 git reset --hard
|
||||
if [[ "$CURRENT_BRANCH" == *"dryrun"* ]]; then
|
||||
echo "当前分支为 '$CURRENT_BRANCH',正在执行 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 状态。"
|
||||
@ -45,6 +47,37 @@ if [[ "$CURRENT_BRANCH" == *"dryrun"* ]]; then
|
||||
echo "Git 工作区已清理。"
|
||||
fi
|
||||
|
||||
# Function to extract the value of a parameter
|
||||
get_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
|
||||
}
|
||||
|
||||
# Parse command line arguments
|
||||
PAIRS_ARG=$(get_param_value "--pairs" "$@")
|
||||
PAIR_REMOTE_LIST_URL=$(get_param_value "--pairRemoteList" "$@")
|
||||
|
||||
# 加载 .env 文件中的变量
|
||||
export $(grep -v '^#' .env | xargs)
|
||||
# 设置默认值
|
||||
@ -56,9 +89,57 @@ PARAMS_NAME=$(echo "$STRATEGY_NAME" | tr '[:upper:]' '[:lower:]')
|
||||
echo "Using strategy: $STRATEGY_NAME"
|
||||
echo "Using config: $CONFIG_FILE"
|
||||
echo "Using testBranch: $TEST_BRANCH"
|
||||
# Parse command line arguments
|
||||
START_DATE=${1:-$(date -d "2 days ago" +"%Y%m%d")}
|
||||
END_DATE=${2:-$(date -d "tomorrow" +"%Y%m%d")}
|
||||
|
||||
# 处理交易对参数:优先级为 --pairRemoteList > --pairs > 默认值
|
||||
if [ -n "$PAIR_REMOTE_LIST_URL" ]; then
|
||||
# 从远程API获取交易对列表
|
||||
echo "Fetching pairs from remote URL: $PAIR_REMOTE_LIST_URL"
|
||||
pairs_json=$(curl -s "$PAIR_REMOTE_LIST_URL")
|
||||
|
||||
# 检查API响应是否成功
|
||||
if [[ $? -ne 0 || -z "$pairs_json" ]]; then
|
||||
echo "Error: Failed to fetch pairs from remote URL, using --pairs parameter or default"
|
||||
if [ -n "$PAIRS_ARG" ]; then
|
||||
PAIRS_FLAG="--pairs $PAIRS_ARG"
|
||||
echo "Using pairs from --pairs parameter: $PAIRS_ARG"
|
||||
else
|
||||
PAIRS_FLAG=""
|
||||
echo "No pairs parameter provided, using freqtrade default"
|
||||
fi
|
||||
else
|
||||
# 解析JSON并提取交易对,将连字符替换为斜杠
|
||||
remote_pairs=$(echo "$pairs_json" | python3 -c "
|
||||
import sys, json
|
||||
data = json.load(sys.stdin)
|
||||
pairs = [pair.replace('-', '/') for pair in data.get('pairlist', [])]
|
||||
print(' '.join(pairs) if pairs else '')
|
||||
")
|
||||
|
||||
# 如果解析成功且有交易对
|
||||
if [[ -n "$remote_pairs" ]]; then
|
||||
PAIRS_FLAG="--pairs $remote_pairs"
|
||||
echo "Successfully fetched $(echo "$remote_pairs" | wc -w) pairs from remote URL"
|
||||
echo "Pairs: $remote_pairs"
|
||||
else
|
||||
echo "Error: Failed to parse or empty pairlist from remote URL, using --pairs parameter or default"
|
||||
if [ -n "$PAIRS_ARG" ]; then
|
||||
PAIRS_FLAG="--pairs $PAIRS_ARG"
|
||||
echo "Using pairs from --pairs parameter: $PAIRS_ARG"
|
||||
else
|
||||
PAIRS_FLAG=""
|
||||
echo "No pairs parameter provided, using freqtrade default"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
elif [ -n "$PAIRS_ARG" ]; then
|
||||
# 使用 --pairs 参数提供的交易对
|
||||
PAIRS_FLAG="--pairs $PAIRS_ARG"
|
||||
echo "Using pairs from --pairs parameter: $PAIRS_ARG"
|
||||
else
|
||||
# 没有提供任何交易对参数
|
||||
PAIRS_FLAG=""
|
||||
echo "No pairs parameter provided, using freqtrade default"
|
||||
fi
|
||||
|
||||
cd ../
|
||||
source .venv/bin/activate
|
||||
@ -84,6 +165,7 @@ echo "docker-compose run -d --rm --name freqtrade-dryrun-${GIT_COMMIT_SHORT} -p
|
||||
--strategy-path /freqtrade/templates"
|
||||
|
||||
docker-compose run -d --rm --name freqtrade-dryrun-${GIT_COMMIT_SHORT} -p 8080:8080 freqtrade trade \
|
||||
$PAIRS_FLAG \
|
||||
--logfile /freqtrade/user_data/logs/freqtrade.log \
|
||||
--db-url sqlite:////freqtrade/user_data/tradesv3.sqlite \
|
||||
--freqaimodel LightGBMRegressorMultiTarget \
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user