【仮想通貨自動売買bot】売買した際にLINEに通知する
いつもお世話になっております。せんまいらっちょv3です。
最近は仮想通貨の自動取引botの開発に勤しんでおります。常に画面の前に張り付いているわけにはいきませんから、売買した時にLINEに通知してくれるととても便利です。
本記事ではLINEの通知機能を開発したいと思います。
まずは下記URLにアクセスし、ログインします。
その後、右上部の自分のアカウント名からMy Pageをクリックします。下記画像では名前部分は塗りつぶしてあります。
ページ下段にあるGenerate tokenをクリックします。
Generate tokenページにてトークン名と、通知をしたいトークルームを選択します。その後、Generate tokenをクリックします。
トークンが生成されるのでそれをコピーして保存します。
ここからはpythonで通知する機能を記述していきます。
import requests
#LINE通知機能の関数を定義
def line_notify(message):
line_notify_token = 'your token' #発行したトークンを記述する
line_notify_url = 'https://notify-api.line.me/api/notify'
message = message
payload = {'message': message}
headers = {'Authorization': 'Bearer ' + line_notify_token} # tokenをヘッダーに代入
line_notify = requests.post(line_notify_url, data=payload, headers=headers)
"your token"部分には先ほど発行したご自身のトークンを入れてお使いください。
'https://notify-api.line.me/api/notify'というURLに、通知したいメッセージと、先ほど生成したトークンを付与してPOSTメソッドを投げると通知を行うことができます。
これを関数として定義しておき、具体的な売買ロジックの前後に組み込んでいきます。
簡単な売買ロジックにLINE通知機能を組み込んだサンプルを記載しました。
環境はbitflyerです。api_key,api_secretは各々が取得したものをお使いください。
また、今回の売買ロジックは最新の終値が1000000を超えたら売買を行うように設定してありますが、こちらもご自身がお考えになったロジックをお使いくださいませ。
import pybitflyer
import requests
#LINE通知機能の関数を定義
def line_notify(message):
line_notify_token = 'your token' #発行したトークンを記述する
line_notify_url = 'https://notify-api.line.me/api/notify'
message = message
payload = {'message': message}
headers = {'Authorization': 'Bearer ' + line_notify_token}
line_notify = requests.post(line_notify_url, data=payload, headers=headers)
#注文を行うための関数
def market(side, size):
print(api.sendchildorder(product_code="FX_BTC_JPY", child_order_type="MARKET", minute_to_expire= 60, side=side, size=size))
api = pybitflyer.API(api_key="your api",api_secret="your secret")
while True:
r = requests.get('https://api.cryptowat.ch/markets/bitflyer/btcfxjpy/ohlc?periods=3600')
json = r.json()
ohlcv = json['result']['3600']
last_close = ohlcv[-1][4] #最新の終値を取得
if last_close > 1000000:
market("BUY",0.01)
line_notify("買い注文を行いました") #ここに先ほど定義した機能を組み込む
elif last_close < 1000000:
market("SELL",0.01)
line_notify("売り注文を行いました") #通知するメッセージは自由に変更可能
以上、参考になりましたら幸いです。
機械学習関連やトレードのつぶやきをしてますので、もしよろしければフォローお願いします。
https://twitter.com/comusou3?lang=ja