Home › Guides

Run Freqtrade in dry-run mode (paper trading with a simulated wallet)

✓ Written from official docs · checked 2026-10-17

Install Freqtrade with Docker, keep dry_run on, set a simulated wallet and run a strategy against live prices without sending orders. Steps from the official Freqtrade docs.

Tools in this guide

Safety scores are calculated from our listing facts. They aren't a ranking, and affiliate links never affect them. How it works

1. Install with Docker

mkdir ft_userdata && cd ft_userdata
curl https://raw.githubusercontent.com/freqtrade/freqtrade/stable/docker-compose.yml -o docker-compose.yml
docker compose pull
docker compose run --rm freqtrade create-userdir --userdir user_data

2. Create a config and answer yes to dry-run

docker compose run --rm freqtrade new-config --config user_data/config.json

The interactive questions include whether to enable dry-run. Answer yes. The config is saved as user_data/config.json.

3. Check the dry-run settings

"dry_run": true,
"dry_run_wallet": 1000,
"db_url": "sqlite:///tradesv3.dryrun.sqlite"

dry_run defaults to true. dry_run_wallet is the simulated starting balance in your stake currency (default 1000), or a per-currency dictionary like {"USDT": 1000}. If you use "stake_amount": "unlimited", set the wallet to a realistic amount so simulated orders match what you'd really trade.

4. Leave exchange keys empty

Dry-run doesn't need API keys: the docs show running it with empty key and secret values, and --dry-run on the command line strips exchange secrets and simulates trades. Prices still come from the exchange's public data.

5. Start the bot

docker compose up -d

Freqtrade's docs say to start trading with docker compose up -d, not docker compose run. It starts with the bundled SampleStrategy, which exists only to give you ideas. Backtest your own strategy before you trust it.

6. Watch results, then decide

Follow trades in the logs, Telegram or FreqUI (enable the API server in the config for the UI). Going live means setting dry_run to false, using a different db_url and adding an exchange key with trading only, no withdrawal permission, as Freqtrade's exchange notes advise.

FAQ

Does dry-run place real orders?

No. Freqtrade simulates orders and balances against live market data and sends nothing to the exchange.

Is a dry-run result what I'd get live?

Not exactly. Fills are simulated, so slippage, partial fills and exchange outages show up only in live trading.

Sources

Not financial advice. Trading involves risk; test on paper first.

Related guides

Get the weekly AI-trading stack update

New MCP servers, broker and data API changes, and safety notes. One email a week, unsubscribe anytime.