見出し画像

SMA BOT(BitMEX API自動売買プログラム ボット配布ver.)の稼働状況をDiscordで確認してみよう

前々回のnoteでGo言語のインストールからBOT稼働まで、前回のnoteではDiscordでの通知方法について紹介しましたが、今回はBOT稼働状況もDiscordで確認しちゃおうというものです。

正常にBOTが稼働できていれば、Web上で稼働状況を確認することができるという優れものなのです。ローカルPCで動かしていれば、以下のURLで確認できます。
http://localhost:8080

AWS Cloud9で稼働させている方は、Cloud9のPreview→Preview Running Applicationを選択すると上記と同じ内容を見ることができます。

自宅PCで稼働している場合、出先からの確認ができませんね。またCloud9で稼働していたとしても、スマホからCloud9に接続するのは結構面倒ですよね。

そこで、前回のnoteで紹介したDiscordに送れば簡単に確認できちゃうんじゃないの?ってことで定期的にWebの情報を抜き取って、Discordに通知するプログラムを作成してみました。

Go自体は知らないんだけど、Pythonならわかるよって言う場合、元々のGo言語で書かれたBOT本体を触ることなく、PyhonのWebスクレイピングで簡単に実装してしまおうと言うのが今回の目玉です。

では、早速コードの紹介です。
事前に以下のコマンドから必要ないライブラリをインストールしてしておいてください。

AWS Cloud9の場合

sudo pip-3.6 install requests
sudo pip-3.6 install bs4

Mac OSの場合

sudo pip3 install requests
sudo pip3 install requests

Windowsの場合

pip install requests
pip install requests

それでは、コードです。

webget.py

#!/usr/bin/python3
# coding: utf-8
import time
import requests, bs4

def discord(message):
    # Provide the webhook URL that Discord generated
    discord_webhook_url = 'ご自身の通知したいChannnelのWebhook URLを設定'
    data = {"content": " " + message + " "}
    requests.post(discord_webhook_url, data=data)

while True:
    res = requests.get('http://localhost:8080/')
    res.raise_for_status()
    soup = bs4.BeautifulSoup(res.text, "html.parser")
    elems = soup.select('dd')
    mes="```\nbitmex SMA9/16自動売買BOT\n"
    for elem in elems:
        mes = mes  + elem.getText() + '\n'
    mes = mes + '```'
    discord(mes)
    time.sleep(900)

def discord()は前回紹介した関数をそのまま使っています。
メインの処理はlocalhost:8080の表示をGETして、左詰にするために先頭の空白を削除し、先頭と最後にCodeタグ('```')を設定したしています。
最後の行のtime.sleep(900)は通知したら900秒(15分)待つという意味ですので、1時間に一回でいいという場合はtime.sleep(3600)と変更すればOKです。

新規にBOT用にbitmexのアカウントを作成する際に以下のアフィリンクから登録してもらえると励みになります。https://www.bitmex.com/register/dDuM03

連絡先はこちら
https://twitter.com/ASIM_IKASIK
Discordでは:@asim#4460

BOTテスト用のBTCアドレス(寄付大歓迎)
3BMEX3wpfxko6sy5DonmbC1bfqRdTuQJjR

BOTテスト用のBTC口座:3BMEX8p9LHNvPSy7KBPSPcr6dxbMGdbDpm