PHP 和树莓派开发一个比特币 / 以太坊交易机器人

本文是一篇翻译文章,喜欢看英文原文的直接去这里:原文。欢迎大家批评指正 :blush:

我最近得到了 Raspberry Pi Zero Wifi,我告诉你这个东西是改变游戏规则的。我之前使用过 RasPis,但由于该设备的占地面积小得多,耗电少,价格便宜且无线上网,因此非常适合低端或物联网项目。

注:目前我已经扩展了机器人以便能够交易以太坊!

我希望它能够在不必太多关注的情况下做事,而我想到的第一件事就是:

为什么不创建一个可以自动进行比特币和以太坊的简单交易机器人。

这个想法很简单:Raspberry Pi Zero 使用 Coinbase API 定期检查价格,并在有意义的时候购买和销售比特币。你应该能够给它一个预算,看看能用它做些什么。

这个机器人是一个潜伏数周或数月的潜伏​​者,并等待一个很棒的比特币价格购买和出售。这取决于你如何使用它!

机器人应该能够做什么:

  • 我希望你买 50 欧元的比特币,当 50 欧元变成 52 欧元时卖掉。
  • 当比特币价格达到 1000 欧元 / 比特币时,我希望你买 100 欧元的比特币,当这 100 欧元的比特币价值 150 欧元时卖掉。
  • 买低,卖高。
  • 在下一个泡沫破裂的时候自动购买比特币。

机器人不会做什么:

  • 进行市场分析并检测泡沫和暴跌。
  • 让你富有。
  • 做大量交易。这个机器人是一个缓慢的潜伏投资者。

出于控制原因,我希望每当出售或购买 BTC/ETH 时都会收到通知。为此,我使用一个简单的 webhook 为我最喜欢的(和自主)聊天平台 rocket.chat。但它也适用于 Slackwebhook

这是 PHPTrader 机器人。

我们需要什么让它运行:

  • 一个 Raspberry Pi 或只是 Linux 盒子。
  • Coinbase 帐户,包含有一些资金的欧元 / 美元钱包。
  • PHP 5 或更高版本。
  • PHP Composer 安装库。
  • 如果你想有通知,你需要一个 rocket.chat 或 Slack webhook。

第 1 步:安装机器人#

它很简单:

  • 使用命令 git clone https://github.com/chrisiaut/phptrader.git 下载 repo 或下载为 ZIP 文件。
  • 进入 php 交易者目录 cd phptrader
  • 安装所需的 composer 文件 composer install
  • example.config.inc.php 重命名为 config.inc.php

第 2 步:输入 Coinbase API 密钥和密钥#

获得你的钥匙也很容易:

  • 1. 输入 https://www.coinbase.com/settings/api
  • 2. 点击 + New API Key
  • 3. 然后,你将看到 API 密钥创建对话框。选择比特币 / 以太坊和欧元 / 美元钱包。
  • 4. 选择所有权限。
  • 5. 提交。

当你看到 API keyAPI secret 时,请在 config.inc.php 文件中 COINBASE_KEYCOINBASE_SECRET 下的 PHPTrader bot 输入它们。

警告:保密 API keyAPI secret,当攻击者获得访问权限时,就像交了你的房门钥匙一样。

第 3 步(可选):设置 rocket.chat 或 Slack webhook#

对于 Slack,请使用本教程来获取 webhook。 并将其填入 config.inc.php 中的 ROCKETCHAT_WEBHOOK 字段中:

注意:你需要成为管理员才能为 rocket.chat 设置 webhook。托管你的实例(使用 Docker 非常容易)或者请信任的管理员为你执行此操作。

  • 1. 在聊天实例上,转到 Administration -> Integrations
  • 2. 单击 New Integration,然后单击 Incoming WebHook
  • 3. 将其设置为 enabled,选择发布频道或用户。
  • 4. 点击 Save Changes

现在将看到一个 Webhook URL,将其复制并放入 config.inc.php 中的 ROCKETCHAT_WEBHOOK 字段中就 ok 了。

最后一步:告诉机器人什么时候买卖#

使用以下命令,机器人将创建一个 transacitons.json 文件,其中将保存欧元,BTC,起始价格和卖出价格的金额,以便我们可以在重新启动时跟踪它们。

  • php trader.php buy [amount in EUR] [sell when price increases by EUR]
  • php trader.php sell [amount in EUR] [sell when this BTC/ETH price is reached]
  • php trader.php order [amount in EUR] [sell when price increases by EUR] [buy at BTC/ETH price]

例子:#

  • 在 BTC/ETH 买入 10 欧元,当它们价值 12 欧元时出售:php trader.php buy 10 2
  • 添加卖单。当 BTC/ETH 价格达到 2000 时卖出 100 欧元 / 美元:php trader.php sell 100 2000
  • 当 1BTC/ETH 价值 1000 欧元时添加 100 欧元的买单,当 100 欧元价值 110 欧元时卖出:php trader.php order 100 10 1000

设置完成后,你可以启动看门狗:机器人的核心是无限循环,定期(每 10 秒)检查一次价格变化。你可以使用命令 php trader.php watchdog 自行启动它,或者使用 start.sh 脚本将该进程置于后台并登录到 /var/log/phptrader.log

./start.sh

或者

nohup php trader.php watchdog >> /var/log/phptrader.log 2> /var/log/phptrader.err &

你可以查看日志文件,以便查看机器人目前正在执行的操作:

这个软硬结合的教程,有点儿挑战,如果你希望纯 PC 实战学习 PHP 与以太坊开发,推荐这个:

php 以太坊实战入门教程,主要是介绍使用 php 进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和事件等内容。对没有开发过硬件的同学会轻松许多。

本作品采用《CC 协议》,转载必须注明作者和本文链接
geeker
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 4

刚好家里有一台 Raspberry Pi 3 :blush:

6年前 评论
geeker

@Jarvis42 那正好可以在以太坊测试链先试试。

6年前 评论

程序员思维了哈,直接交易所挂想要的单价买卖就可以了哈,哪里要那么复杂 :joy:

6年前 评论
geeker

@LiuXuFei 哈哈,对就是程序员玩,真正炒币的哪有这么干的,等开发好了黄花菜都凉了。:grinning:

6年前 评论