← All open source projects

Freqtrade

freqtrade/freqtrade

Freqtrade is a cryptocurrency trading bot with Python strategies, backtesting, and risk controls.

Forks 10,804
Author freqtrade
Language Python
License GPL-3.0
Synced 2026-06-27

What it is

Freqtrade is an open cryptocurrency trading bot. It does not promise profit; it provides exchange connections, Python strategies, historical testing, simulation, and trade execution.

The project is popular because it removes much of the low-level work around a trading loop, letting developers focus on entry rules, exits, risk, and hypothesis testing.

What is inside

The repository includes the bot core, strategy system, backtesting tools, parameter optimization, order management, exchange integrations, and monitoring interfaces.

Historical testing is especially important. Without it, a bot is only a collection of guesses.

How it is used

A typical path starts with a Python strategy, then backtesting, dry running without real trades, and only then cautious small-scale trading.

The project fits technical users who understand exchange risk, fees, slippage, and market instability.

Strengths and limits

The strength is transparent Python strategy code and a mature set of support tools.

The limit is that results are never guaranteed. A well-written bot can still lose money if the strategy or market assumptions are wrong.

A good Freqtrade practice is to keep strategies, parameters, and test results close to the code. That makes it possible to understand why a strategy changed, what data was used, and which limits were known before live trading.

Metrics need skepticism. A successful historical test can reflect overfitting to the past. Serious use needs dry runs, small amounts, logging, and a clear way to stop the bot quickly.

The repository is also useful as a study of disciplined automation. It shows that a trading bot needs configuration, validation, monitoring, and stop conditions just as much as it needs a clever entry signal.

This makes the repository a toolkit for controlled experiments, not a shortcut around financial risk. The code can automate execution, but it cannot make weak assumptions safe.

Example

Freqtrade strategy outline

The example shows the idea: a strategy marks entry and exit conditions on market data.

Language: Python
class SimpleStrategy(IStrategy):
    timeframe = "5m"

    def populate_entry_trend(self, dataframe, metadata):
        dataframe.loc[dataframe["rsi"] < 30, "enter_long"] = 1
        return dataframe

    def populate_exit_trend(self, dataframe, metadata):
        dataframe.loc[dataframe["rsi"] > 70, "exit_long"] = 1
        return dataframe