VPS配置

由于国内的各种实名认证,备案等等比较恶心,不太想继续用阿里云了,找来找去,选了之前因为没有卡而注册失败的AWS,感谢招行万事达awa。

根据GPT的推荐,刚开始选择了t3.small。结果2G的内存到后来根本吃不消docker,后来也发现docker的官方文档推荐至少4G内存。

最终的配置如图所示

AWS

(感谢AWS送的100刀,虽然挺贵的,但是让我先蹬完再说hhh)

安装docker

Ubuntu一键安装

Bash
# Add Docker's official GPG key:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
 
# Add the repository to Apt sources:
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
 
sudo apt update
Bash
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

下载freqtrade镜像

官方文档

Bash
mkdir ft_userdata
cd ft_userdata/
# 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

根据情况配置一下就行,后续可以在config.json里修改。 建议设置先设置"initial_state": "paused" (不设置会一开机就下单。虽然是dryrun,但是还是见不得不受控的变化,强迫症说是,)

然后,就可以启动机器人啦

Bash
docker compose up -d

Telegram机器人汉化

由于一堆英文对我的水平实在有点吃力,于是我选择把/help命令汉化一下 这里对应原文件1924-1984行

freqtrade/rpc/telegram.py
message = (
            "_机器人控制_\n"
            "------------\n"
            "*/start:* `启动交易者`\n"
            "*/pause:* `暂停交易者的新入场,但会优雅地处理已开仓的交易`\n"
            "*/stop:* `停止交易者`\n"
            "*/stopentry:* `停止入场,但会优雅地处理已开仓的交易` \n"
            "*/forceexit <trade_id>|all:* `立即退出指定交易或所有交易,"
            "无论盈亏`\n"
            "*/fx <trade_id>|all:* `/forceexit 的别名`\n"
            f"{force_enter_text if self._config.get('force_entry_enable', False) else ''}"
            "*/delete <trade_id>:* `立即在数据库中删除指定交易`\n"
            "*/reload_trade <trade_id>:* `从交易所订单重新加载交易`\n"
            "*/cancel_open_order <trade_id>:* `取消交易的开挂订单。"
            "仅当交易存在未完成订单时有效。`\n"
            "*/coo <trade_id>|all:* `/cancel_open_order 的别名`\n"
            "*/whitelist [sorted] [baseonly]:* `显示当前白名单。可选择按排序"
            "和/或仅显示每个交易对的基础货币。`\n"
            "*/blacklist [pair]:* `显示当前黑名单,或将一个或多个交易对"
            "加入黑名单。` \n"
            "*/blacklist_delete [pairs]| /bl_delete [pairs]:* "
            "`从黑名单删除交易对/模式。在 reload_conf 后会重置。` \n"
            "*/reload_config:* `重新加载配置文件` \n"
            "*/unlock <pair|id>:* `解锁该交易对(或当锁定 ID 为数字时解锁该 ID)`\n"
            "_当前状态_\n"
            "------------\n"
            "*/show_config:* `显示运行中的配置` \n"
            "*/locks:* `显示当前被锁定的交易对`\n"
            "*/balance:* `显示机器人管理的各币种余额`\n"
            "*/balance total:* `显示账户各币种余额`\n"
            "*/logs [limit]:* `显示最新日志 - 默认 10 条` \n"
            "*/count:* `显示活跃交易数与允许交易数的对比`\n"
            "*/health* `显示最新处理时间戳 - 默认为 1970-01-01 00:00:00` \n"
            "*/marketdir [long | short | even | none]:* `更新用户管理的"
            "表示当前市场方向的变量。如未提供方向,`"
            "`则输出当前已设置的市场方向。` \n"
            "*/list_custom_data <trade_id> <key>:* `列出指定交易 ID 与 Key 组合的 custom_data。`\n"
            "`若未提供 Key,则列出该交易 ID 下找到的所有键值对。`\n"
            "_统计信息_\n"
            "------------\n"
            "*/status <trade_id>|[table]:* `列出所有未平仓交易`\n"
            "         *<trade_id> :* `列出一个或多个指定交易。`\n"
            "                        `多个 <trade_id> 之间用空格分隔。`\n"
            "         *table :* `以表格形式展示交易`\n"
            "                `未完成的买单用单星号 (*) 标记`\n"
            "                `未完成的卖单用双星号 (**) 标记`\n"
            "*/entries <pair|none>:* `显示入场标签(enter_tag)表现`\n"
            "*/exits <pair|none>:* `显示出场原因表现`\n"
            "*/mix_tags <pair|none>:* `显示入场标签 + 出场原因的合并表现`\n"
            "*/trades [limit]:* `列出最近已平仓交易(默认限制 10 条)`\n"
            "*/profit [<n>]:* `列出最近 n 天内所有已完成交易的累计利润`\n"
            "*/profit_long [<n>]:* `列出最近 n 天内所有已完成多头交易的累计利润`\n"
            "*/profit_short [<n>]:* `列出最近 n 天内所有已完成空头交易的累计利润`\n"
            "*/performance:* `按交易对分组显示每个已完成交易的表现`\n"
            "*/daily <n>:* `显示最近 n 天每日的盈亏`\n"
            "*/weekly <n>:* `显示最近 n 周每周的统计`\n"
            "*/monthly <n>:* `显示最近 n 个月每月的统计`\n"
            "*/stats:* `按卖出原因显示盈/亏,以及买单和卖单的平均持仓时长。`\n"
            "*/help:* `本帮助信息`\n"
            "*/version:* `显示版本`\n"
        )

原文件可以在containers里找到

在根目录的docker-compose.ymlvolume加上这行,就能覆盖配置啦

YAML
- ./patches/freqtrade/rpc/telegram.py:/freqtrade/freqtrade/rpc/telegram.py

先写这么多,明天继续更新

除另有说明,本文内容采用 CC BY-NC-SA 4.0 协议许可。转载或改编请署名、非商业使用,并以相同方式共享。