PHP 和樹莓派開發一個比特幣 / 以太坊交易機器人

geeker發表於2018-09-13

本文是一篇翻譯文章,喜歡看英文原文的直接去這裡:原文。歡迎大家批評指正 :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進行智慧合約開發互動,進行賬號建立、交易、轉賬、代幣開發以及過濾器和事件等內容。對沒有開發過硬體的同學會輕鬆許多。

相關文章