freqtrade使用docker启动技巧

使用docker启动freqtrade策略,可以方便的进行策略的优化、回测等操作。

假设下面是docker-compose.yml文件的配置,可以根据自己的需求进行调整。

  download-data:
image: freqtradeorg/freqtrade:stable
container_name: ${TRADING_MODE:-spot}-${TIMERANGE:-20240101-}-download-data
volumes:
- "./user_data:/freqtrade/user_data"
command: >
download-data
--datadir /freqtrade/user_data/data/${EXCHANGE:-binance}
--config user_data/configs/E0V1E/backtesthyper_config/config_binance_spot.json
--timeframe ${TIMEFRAME:-5m}
--timerange ${TIMERANGE:-20240101-}

hyperopt:
image: freqtradeorg/freqtrade:stable
container_name: ${TRADING_MODE:-spot}-${STRATEGY_NAME:-myE0V1E}-${STRATEGY_VERSION:-v1}-${OPT_TIMERANGE:-20240101-}-hyperopt
volumes:
- "./user_data:/freqtrade/user_data"
command: >
hyperopt
--timeframe ${TIMEFRAME:-5m}
--timerange ${OPT_TIMERANGE:-20240101-}
--datadir /freqtrade/user_data/data/${EXCHANGE:-binance}
--hyperopt-loss ${HYPEROPT_LOSS:-SortinoHyperOptLossDaily}
--spaces ${SPACES:-buy}
--strategy ${STRATEGY_NAME:-myE0V1E}
--config user_data/configs/E0V1E/backtesthyper_config/config_binance_spot.json
-e ${OPTIMIZE_EPOCHS:-100}
-j 10
# --random-state 42
backtesting:
image: freqtradeorg/freqtrade:stable
container_name: ${TRADING_MODE:-spot}-${STRATEGY_NAME:-E0V1E}-${STRATEGY_VERSION:-v1}-${BACKTEST_TIMERANGE:-20240101-}-backtesting
volumes:
- "./user_data:/freqtrade/user_data"
command: >
backtesting
--datadir /freqtrade/user_data/data/${EXCHANGE:-binance}
--strategy-list ${STRATEGY_NAME:-E0V1E}
--config user_data/configs/E0V1E/backtesthyper_config/config_binance_spot2.json
--breakdown week
--timeframe ${TIMEFRAME:-5m}
--timerange ${BACKTEST_TIMERANGE:-20240101-}
--export signals
--export-filename user_data/backtest_results/${STRATEGY_NAME:-E0V1E}-${STRATEGY_VERSION:-latest}-${TRADING_MODE:-spot}-${BACKTEST_TIMERANGE:-20240101-}.json
--log-file user_data/logs/${STRATEGY_NAME:-E0V1E}-${STRATEGY_VERSION:-latest}-${TRADING_MODE:-spot}-${BACKTEST_TIMERANGE:-20240101-}.log

然后在PyCharm中配置Docker启动环境

alt text

注意到上面使用了环境变量,可以根据自己的需求进行调整。

自己调整参数,在同级目录保存为dev.env文件。

CONFIG=user_data/configs/E0V1E/backtesthyper_config/config_binance_spot.json
EXCHANGE=binance
TRADING_MODE=spot
TIMEFRAME=4h
TIMERANGE=20240306-
OPT_TIMERANGE=20240308-20240406
BACKTEST_TIMERANGE=20240306-
STRATEGY_NAME=NostalgiaForInfinityX4
STRATEGY_VERSION=v1
HYPEROPT_LOSS=SortinoHyperOptLossDaily
SPACES=buy sell
OPTIMIZE_EPOCHS=50