99 lines
2.9 KiB
Bash
Executable File
99 lines
2.9 KiB
Bash
Executable File
#!/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
|
|
echo "⚠️ 本地缺少 .env 文件,请创建并配置。示例内容如下:"
|
|
echo ""
|
|
echo "STRATEGY_NAME=TheForceV7"
|
|
echo "CONFIG_FILE=basic.json"
|
|
echo "TEST_BRANCH=theforce-noai-test"
|
|
echo "DRYRUN_BRANCH=theforce-noai-dryrun"
|
|
echo ""
|
|
exit 1
|
|
fi
|
|
|
|
# 加载 .env 文件中的变量
|
|
export $(grep -v '^#' .env | xargs)
|
|
# 设置默认值
|
|
STRATEGY_NAME=${STRATEGY_NAME:-TheForceV7}
|
|
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")}
|
|
|
|
cd ../
|
|
source .venv/bin/activate
|
|
rm -rf user_data/models/*
|
|
rm -rf ./freqtrade/user_data/data/backtest_results/*
|
|
rm -fr ./user_data/dryrun_results/*
|
|
rm result/*
|
|
|
|
hyperopt_config="${STRATEGY_NAME%.py}.json"
|
|
docker rm $(docker ps -aq) -f
|
|
|
|
# 获取当前 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 \
|
|
--config /freqtrade/config_examples/$CONFIG_FILE \
|
|
--strategy $STRATEGY_NAME \
|
|
--fee 0.0016 \
|
|
--strategy-path /freqtrade/templates
|
|
|
|
#python3 tools/filter.py
|
|
|
|
# rm ./result/*.json -fr
|
|
# rm ./result/*.py -fr
|
|
# mv ./user_data/backtest_results/* ./result/
|
|
#
|
|
# cd ./result
|
|
# # 查找当前目录下的所有 zip 文件
|
|
# zip_files=(*.zip)
|
|
#
|
|
# # 检查是否只有一个 zip 文件
|
|
# if [ ${#zip_files[@]} -eq 1 ]; then
|
|
# # 解压缩该 zip 文件到当前目录
|
|
# unzip "${zip_files[0]}"
|
|
# rm *.zip
|
|
# rm *.feather
|
|
# else
|
|
# echo "当前目录下没有 zip 文件或者有多个 zip 文件,无法操作。"
|
|
# 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
|
|
# python analytic.py >../result/analytic.log
|
|
# cd ../
|