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
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 4

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

5年前 评论
geeker

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

5年前 评论

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

5年前 评论
geeker

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

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!