Freqtrade新手指南
Freqtrade 是一个用 Python 编写的免费开源加密货币交易机器人,包含回测、绘图和资金管理工具以及机器学习的策略优化。
一键发币: 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翻译整理,转载请标明出处