myTestFreqAI/tools/hyperopt.sh
zhangkun9038@dingtalk.com d099c278ed hyperopt optimal
2025-06-04 21:37:25 +08:00

92 lines
2.7 KiB
Bash
Executable File

#!/bin/bash
# 检查 .env 文件
if [ ! -f ".env" ]; then
echo "⚠️ 本地缺少 .env 文件,请创建并配置。示例内容如下:"
echo ""
echo "STRATEGY_NAME=FreqaiPrimer"
echo "CONFIG_FILE=FreqaiPrimer.json"
echo "TEST_BRANCH=freqaiprimer-deviation-test"
echo "DRYRUN_BRANCH=freqaiprimer-deviation-dryrun"
echo ""
exit 1
fi
# 加载 .env 文件中的变量
export $(grep -v '^#' .env | xargs)
# 设置默认值
STRATEGY_NAME=${STRATEGY_NAME:-FreqaiPrimer}
CONFIG_FILE=${CONFIG_FILE:-FreqaiPrimer.json}
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")}
cd ../
source .venv/bin/activate
rm -rf user_data/models/*
rm -rf ./freqtrade/user_data/data/backtest_results/*
rm -fr ./user_data/dryrun_results/*
#docker-compose -f docker-compose_backtest.yml run --rm freqtrade >output.log 2>&1
echo "docker-compose run --rm freqtrade hyperopt \
--logfile /freqtrade/user_data/logs/freqtrade.log \
--freqaimodel XGBoostRegressorMultiTarget \
--strategy $STRATEGY_NAME \
--config /freqtrade/config_examples/$CONFIG_FILE \
--config /freqtrade/templates/${PARAMS_NAME}.json \
--strategy-path /freqtrade/templates \
--timerange ${START_DATE}-${END_DATE} \
-e 200 \
--hyperopt-loss ShortTradeDurHyperOptLoss \
--spaces roi stoploss trailing \
--fee 0.0016"
docker-compose run --rm freqtrade hyperopt \
--logfile /freqtrade/user_data/logs/freqtrade.log \
--freqaimodel XGBoostRegressorMultiTarget \
--strategy $STRATEGY_NAME \
--config /freqtrade/config_examples/$CONFIG_FILE \
--config /freqtrade/templates/${PARAMS_NAME}.json \
--strategy-path /freqtrade/templates \
--timerange ${START_DATE}-${END_DATE} \
-e 200 \
--hyperopt-loss SharpeHyperOptLoss \
--spaces roi stoploss trailing \
--fee 0.0016
#>output.log 2>&1
#sed -i 's/\x1B\[[0-9;]*m//g' output.log
#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 ../