default strategy FreqaiPrimer

This commit is contained in:
zhangkun9038@dingtalk.com 2025-10-14 17:15:32 +08:00
parent 9ad6d112f6
commit 69f0fde7d1
2 changed files with 47 additions and 14 deletions

View File

@ -19,7 +19,8 @@ if [ -f .env ]; then
set +a
fi
# 设置默认值
STRATEGY_NAME=${STRATEGY_NAME:-TheForceV7}
# 设置默认策略名称
STRATEGY_NAME=${STRATEGY_NAME:-FreqaiPrimer}
CONFIG_FILE=${CONFIG_FILE:-basic.json}
TEST_BRANCH=${TEST_BRANCH:-develop}
@ -41,14 +42,16 @@ get_param_value() {
if [ $((i + 1)) -lt ${#args[@]} ] && [[ "${args[$((i + 1))]}" != -* ]]; then
echo "${args[$((i + 1))]}"
return 0
else
echo "Error: Missing value for parameter $param" >&2
exit 1
fi
# 如果参数存在但没有值,返回特殊标识"PARAM_WITHOUT_VALUE"
echo "PARAM_WITHOUT_VALUE"
return 0
;;
esac
i=$((i + 1))
done
# 如果参数不存在,返回空字符串
echo ""
return 0
}
@ -194,12 +197,12 @@ else
echo "No pairs parameter provided, using default pairs: $DEFAULT_PAIRS"
fi
# 如果命令行提供了策略参数,覆盖.env文件设置
if [ -n "$STRATEGY_ARG" ]; then
# 如果命令行提供了有效的策略参数,覆盖.env文件设置
if [ -n "$STRATEGY_ARG" ] && [ "$STRATEGY_ARG" != "PARAM_WITHOUT_VALUE" ]; then
# 策略类名保持不变如MyStrategy但文件名使用小写
STRATEGY_CLASS_NAME="$STRATEGY_ARG"
STRATEGY_FILE_NAME="$(echo "$STRATEGY_ARG" | tr '[:upper:]' '[:lower:]').py"
STRATEGY_NAME="$STRATEGY_FILE_NAME"
STRATEGY_NAME="$STRATEGY_CLASS_NAME"
echo "Overriding strategy with command line parameter: $STRATEGY_CLASS_NAME"
echo "Strategy class name: $STRATEGY_CLASS_NAME"
echo "Strategy file name: $STRATEGY_FILE_NAME"
@ -236,6 +239,18 @@ else
echo "Config file found: freqtrade/templates/$CONFIG_FILE"
fi
# 最后确认STRATEGY_NAME有值
if [ -z "$STRATEGY_NAME" ]; then
echo "Warning: STRATEGY_NAME is empty, using default FreqaiPrimer"
STRATEGY_NAME="FreqaiPrimer"
fi
# 确保STRATEGY_CLASS_NAME有值
if [ -z "$STRATEGY_CLASS_NAME" ]; then
echo "Warning: STRATEGY_CLASS_NAME is empty, setting to STRATEGY_NAME value"
STRATEGY_CLASS_NAME="$STRATEGY_NAME"
fi
# 在参数处理完成后输出最终使用的值
echo "Using strategy: $STRATEGY_NAME"
echo "Using config: $CONFIG_FILE"
@ -253,8 +268,8 @@ echo "docker-compose run --rm freqtrade backtesting $PAIRS_FLAG \
--freqaimodel LightGBMRegressorMultiTarget \
--config /freqtrade/config_examples/$CONFIG_FILE \
--config /freqtrade/templates/$CONFIG_FILE \
--strategy $STRATEGY_NAME \
--strategy-path /freqtrade/templates \
--strategy $STRATEGY_CLASS_NAME \
--timerange $START_DATE-$END_DATE \
--fee 0.0008 \
--breakdown day \
@ -265,9 +280,9 @@ docker-compose run --rm freqtrade backtesting $PAIRS_FLAG \
--freqaimodel LightGBMRegressorMultiTarget \
--config /freqtrade/config_examples/$CONFIG_FILE \
--config /freqtrade/templates/$CONFIG_FILE \
--strategy $STRATEGY_CLASS_NAME \
--strategy-path /freqtrade/templates \
--enable-protections \
--strategy $STRATEGY_CLASS_NAME \
--timerange $START_DATE-$END_DATE \
--fee 0.0008 \
--breakdown day \

View File

@ -41,14 +41,16 @@ get_param_value() {
if [ $((i + 1)) -lt ${#args[@]} ] && [[ "${args[$((i + 1))]}" != -* ]]; then
echo "${args[$((i + 1))]}"
return 0
else
echo "Error: Missing value for parameter $param" >&2
exit 1
fi
# 如果参数存在但没有值,返回特殊标识"PARAM_WITHOUT_VALUE"
echo "PARAM_WITHOUT_VALUE"
return 0
;;
esac
i=$((i + 1))
done
# 如果参数不存在,返回空字符串
echo ""
return 0
}
@ -235,8 +237,8 @@ else
echo "No pairs parameter provided, using default pairs: $DEFAULT_PAIRS"
fi
# 如果命令行提供了策略参数,覆盖.env文件设置
if [ -n "$STRATEGY_ARG" ]; then
# 如果命令行提供了有效的策略参数,覆盖.env文件设置
if [ -n "$STRATEGY_ARG" ] && [ "$STRATEGY_ARG" != "PARAM_WITHOUT_VALUE" ]; then
# 策略类名保持不变如MyStrategy但文件名使用小写
STRATEGY_CLASS_NAME="$STRATEGY_ARG"
STRATEGY_FILE_NAME="$(echo "$STRATEGY_ARG" | tr '[:upper:]' '[:lower:]').py"
@ -277,6 +279,18 @@ else
echo "Config file found: freqtrade/templates/$CONFIG_FILE"
fi
# 最后确认STRATEGY_NAME有值
if [ -z "$STRATEGY_NAME" ]; then
echo "Warning: STRATEGY_NAME is empty, using default TheForceV7"
STRATEGY_NAME="TheForceV7"
fi
# 确保STRATEGY_CLASS_NAME有值
if [ -z "$STRATEGY_CLASS_NAME" ]; then
echo "Warning: STRATEGY_CLASS_NAME is empty, setting to STRATEGY_NAME value"
STRATEGY_CLASS_NAME="$STRATEGY_NAME"
fi
# 在参数处理完成后输出最终使用的值
# 显示完整使用帮助
echo "正确用法示例:"
@ -325,7 +339,11 @@ docker-compose run --rm freqtrade hyperopt $PAIRS_FLAG \
-e 2500 \
-j 4 \
--hyperopt-loss SharpeHyperOptLossDaily \
<<<<<<< Updated upstream
--spaces roi stoploss trailing \
=======
--spaces sell \
>>>>>>> Stashed changes
--fee 0.001