How To Use Freqtrade

Freqtrade is an open-source cryptocurrency trading bot designed for traders who want to automate their trading strategies on various exchanges. It is highly customizable, works with multiple market data sources, and supports features like backtesting, hyper-optimization, and both paper and live trading. This guide will walk you step-by-step through the process of setting up, configuring, and using Freqtrade effectively.

What Is Freqtrade?

Freqtrade is a Python-based platform that allows traders to create and run algorithmic strategies. It connects to crypto exchanges through their API, monitors price movements, and executes trades automatically based on predefined conditions. Traders can run it locally or on cloud servers and integrate it with tools for monitoring and analytics.

The main features include:

  • Multi-exchange support
  • Custom strategies in Python
  • Extensive backtesting capabilities
  • Paper trading for risk-free experimentation
  • Hyperopt for automatic parameter optimization
  • Risk and money management rules

System Requirements

Before installing Freqtrade, make sure you have the following:

  • Operating System: Linux, macOS, or Windows
  • Python Version: 3.8 or newer
  • Memory: Minimum 2 GB RAM (more is recommended for large datasets)
  • Disk Space: At least 1 GB free
  • Exchange Account: Binance, KuCoin, or another supported exchange
  • API Keys: For connecting to the exchange

You may also use Docker to simplify installation and dependency management.

Installing Freqtrade

Installing with Docker

Docker is recommended because it isolates Freqtrade from your system environment.

  1. Install Docker and Docker Compose on your machine.
  2. Create a working directory for the bot: mkdir freqtrade && cd freqtrade
  3. Pull the latest stable Freqtrade Docker image: docker pull freqtradeorg/freqtrade:stable
  4. Create a configuration file: docker run -it --rm -v $(pwd):/freqtrade freqtradeorg/freqtrade:stable new-config

Installing without Docker

If you prefer direct installation:

  1. Install Python 3.8 or newer.
  2. Clone the Freqtrade GitHub repository: git clone https://github.com/freqtrade/freqtrade.git cd freqtrade
  3. Create a virtual environment: python3 -m venv .env source .env/bin/activate
  4. Install dependencies: pip install -r requirements.txt
  5. Initialize a config file: freqtrade new-config

Configuring Freqtrade

Your main configuration file (config.json) controls exchange settings, risk management, and trade parameters.

Key sections include:

  • Exchange: API key, API secret, and exchange name
  • Stake currency: The base currency for trades, such as USDT or BTC
  • Stake amount: How much to invest per trade
  • Timeframe: Chart interval, like 5m, 15m, 1h
  • Risk settings: Stop-loss and take-profit percentages
  • Max open trades: Limits exposure

Example snippet:

{
    "exchange": {
        "name": "binance",
        "key": "YOUR_API_KEY",
        "secret": "YOUR_API_SECRET"
    },
    "stake_currency": "USDT",
    "stake_amount": 100,
    "timeframe": "15m",
    "max_open_trades": 3
}

Creating a Strategy

Strategies are Python classes that tell the bot when to buy or sell. They use technical indicators like moving averages or RSI.

Example:

from freqtrade.strategy import IStrategy
from pandas import DataFrame
class EmaCrossStrategy(IStrategy):
    timeframe = '15m'
    def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
        dataframe['ema_short'] = dataframe['close'].ewm(span=12, adjust=False).mean()
        dataframe['ema_long'] = dataframe['close'].ewm(span=26, adjust=False).mean()
        return dataframe
    def populate_entry_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
        dataframe.loc[
            (dataframe['ema_short'] > dataframe['ema_long']),
            'buy'
        ] = 1
        return dataframe
    def populate_exit_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
        dataframe.loc[
            (dataframe['ema_short'] < dataframe['ema_long']),
            'sell'
        ] = 1
        return dataframe

Backtesting

Backtesting helps you test your strategy on historical market data.

  1. Download historical data: freqtrade download-data --exchange binance --timeframe 15m --days 60
  2. Run the backtest: freqtrade backtesting --strategy EmaCrossStrategy
  3. Analyze results, including profit, drawdown, win rate, and number of trades.

Paper Trading

Paper trading simulates live market conditions without risking funds.

To start paper trading:

freqtrade trade --strategy EmaCrossStrategy --dry-run

This lets you validate your strategy’s real-time behavior before going live.

Live Trading

When ready to use real funds:

  1. Disable dry-run in your config.json.
  2. Use exchange API keys with trade permissions.
  3. Start the bot: freqtrade trade --strategy EmaCrossStrategy

Always begin with small amounts and gradually scale up.

Optimizing with Hyperopt

Hyperopt finds the best parameters for your strategy automatically.

Example:

freqtrade hyperopt --strategy EmaCrossStrategy --timeframe 15m --epochs 100

This will test various parameter combinations to improve profitability.

Risk Management Tips

  • Use stop-loss orders to limit downside risk.
  • Avoid overexposing by limiting open trades.
  • Adjust stake size according to account balance.
  • Monitor performance regularly.

Monitoring and Maintenance

  • Check logs for errors or unusual behavior.
  • Update Freqtrade periodically for bug fixes and new features.
  • Adjust strategies based on market conditions.
  • Use the Freqtrade web UI for easier monitoring.

Security Best Practices

  • Store API keys securely and restrict withdrawal permissions.
  • If running on a remote server, secure it with a firewall and SSH keys.
  • Avoid sharing your configuration files with sensitive data.

Conclusion

Freqtrade is a flexible and powerful trading bot for automating cryptocurrency strategies. With the right setup, strategy development, and risk management, it can help you trade systematically and reduce emotional decision-making. By starting with backtesting, moving to paper trading, and then going live cautiously, you can maximize your chances of success while keeping risks manageable. With continuous optimization and monitoring, Freqtrade can become a valuable tool in your trading arsenal.

Investing Brokers
Investing Brokers

The Investing Brokers team have over 15 years of experience in the online brokerage industry and are committed to providing reliable information for all of the brokers that we review.

InvestingBrokers.com
Logo