【仮想通貨自動売買bot】売買した際にLINEに通知する

【仮想通貨自動売買bot】売買した際にLINEに通知する

ocojo

いつもお世話になっております。せんまいらっちょ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



この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!
ocojo

サポートいただいたお金は、サーバー代や書籍購入代として利用させていただきます。

ocojo