Freqtrade新手指南

Freqtrade 是一个用 Python 编写的免费开源加密货币交易机器人,包含回测、绘图和资金管理工具以及机器学习的策略优化。

Freqtrade新手指南
一键发币: SOL | BNB | ETH | BASE | Blast | ARB | OP | POLYGON | AVAX | FTM | OK

最近我一直在尝试 Freqtrade(打开新窗口)等算法交易工具,所以我认为我应该分享我的经验。 让我们开始吧!

1、什么是Freqtrade?

官方文档这样介绍 Freqtrade:

Freqtrade 是一个用 Python 编写的免费开源加密货币交易机器人。 它旨在支持所有主要交易所并通过 Telegram 或 webUI 进行控制。 它包含回测、绘图和资金管理工具以及机器学习的策略优化。

Freqtrade 使你能够用 Python 编写自己的策略,并使用来自交易所的数据对其进行回溯测试。 最重要的是,你可以利用 Freqtrade 附带的机器学习实现来优化你的策略。

2、安装 Freqtrade

我们将使用 Freqtrade 提供的 docker 设置, 这是使用 Freqtrade 最简单的方法,因此我强烈建议你在学习中使用它。

mkdir freqtrade-bot
cd freqtrade-bot/
# Download the docker-compose file from the repository
curl https://raw.githubusercontent.com/freqtrade/freqtrade/stable/docker-compose.yml -o docker-compose.yml

# Pull the freqtrade image
docker-compose pull

# Create user directory structure
docker-compose run --rm freqtrade create-userdir --userdir user_data

# Create configuration - Requires answering interactive questions
docker-compose run --rm freqtrade new-config --config user_data/config.json


执行上述操作后,现在拥有一个项目文件夹、 docker-compose.yml 和配置。 我们现在需要的只是一个可玩的策略。

3、定义策略

Freqtrade 附带了一个我们可以探索的 SampleStrategy。 你可以在 freqtrade-bot/user_data/strategies/sample_strategy.py 下找到它。

我计划在下一篇文章中详细介绍 freqtrade 策略,因此我将简要介绍需要了解的最重要的事情。

Freqtrade 中的所有策略都扩展了 IStrategy 类。

# This class is a sample. Feel free to customize it.
class SampleStrategy(IStrategy):

如果你的策略允许做空,你需要将以下属性设置为 true。

# Can this strategy go short?
can_short: bool = False

你可以以百分比形式对止损进行硬编码,也可以使用 custom_stoplos() 方法,该方法将覆盖策略的止损属性。

# Optimal stoploss designed for the strategy.
# This attribute will be overridden if the config file contains "stoploss".
stoploss = -0.10

# Custom stoploss method.
def custom_stoploss(self, pair: str, trade: 'Trade', current_time: datetime, current_rate: float, current_profit: float, **kwargs) -> float:
    stoploss = self.stoploss

    stoploss_target = ...

    stoploss = stoploss_from_absolute(stoploss_target, current_rate, is_short=trade.is_short)

    return stoploss

请注意,你必须在这里使用百分比。 至少你可以从 stoploss_from_absolute`辅助方法获得帮助。

确保为你的策略定义默认时间范围。 如果设置,你的配置将覆盖此属性。

# Optimal timeframe for the strategy.
timeframe = '5m'

你可以在 populate_indicators() 方法中计算要用于交易的指标。 你将在 SampleStrategy 中找到很多有关如何创建指标的示例。

def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:

populate_entry_trend() 是你可以决定你的策略是否应该建立交易(空头还是多头)的地方。

def populate_entry_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:

一旦进入交易,你的策略还需要一种退出交易的方法。 处理这个问题的方法是 populate_exit_trend()

def populate_exit_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:

4、执行交易策略

一旦我们有了策略(现在可以使用 SampleStrategy),我们就可以在 Freqtrade 中使用它。 为此,我们需要在 docker-compose.yml 文件的启动命令中指定它。

# Default command used when running `docker-compose up`
command: >
    trade --logfile /freqtrade/user_data/logs/freqtrade.log --db-url sqlite:////freqtrade/user_data/freqtrade.sqlite --config /freqtrade/user_data/freqtrade.json --strategy SampleStrategy

让我们探索一下这个命令🧐

在幕后,这是使用 freqtrade trade 命令。 它还使用 --logfile 指定要使用的日志文件,使用 --db-url 指定要使用的 sqlite 数据库,使用 --config 指定要使用的配置,最后使用 --strategy 指定要使用的策略。

请注意,你需要指定容器内的位置,而不是主机系统内的位置。

5、启动机器人!

一旦我们完成了所有这些设置,我们终于可以使用以下命令启动机器人了。

docker-compose up -d

这将启动 Freqtrade 容器并为你提供一个可用于监控机器人的 Web 界面。 你应该能够通过 127.0.0.1:8080(打开新窗口)访问 Web 界面。

为你的机器人命名并输入你在配置文件设置期间设置的凭据。


原文链接:Getting started with Freqtrade

DefiPlot翻译整理,转载请标明出处

通过 NowPayments 打赏