こんばんは。
なおき(@naoki_finance)です。
次回まで作っていたbotでは、外出先でbotが動いているのか止まっているのか把握できません。
そこで今回は稼動状況をTwitterにTweetすることで外出先でも確認できるようにしていきたいと思います。
スポンサーリンク
プログラミングまでの準備
Twitter APIキーの取得
まずTwitterにツイートするためにTwitterのAPIキーを取得します。
こちらのURL(https://apps.twitter.com/)にアクセスし、Create New Appボタンをクリックします。
必要事項を入力し、Create your Twitter applicationボタンをクリックします。
※Website欄は、もし持っていないようでしたら仮のもので良いようです。
また、Twitterのアカウントは携帯電話番号認証を行っていないとエラーとなるようです。
Keys and Access Tokensタブを開くとAPI keyとAPI Secretキーを確認することができます。
初めてAPIキーを取得する場合は、Access TokenとAccess Token Secretを取得します。
同じ画面の下にあるCreate my access tokenボタンをクリックします。
Access TokenとAccess Token Secretが生成されます。
先ほど取得したAPI keyとAPI Secretキーとこの2つを使用します。
requests-oauthlibライブラリのインストール
TwitterのAPIを使用するためにrequests-oauthlib(oauthは、オーオースと読みます)のインストールを行います。
ccxtをインストールしたときは、pipコマンドを使用しましたが、Anacondaを使用している環境では、condaコマンドを使うほうが正しいということでcondaコマンドを使用します。
コマンドプロンプトを起動し、以下のコマンドを入力します。
conda install requests-oauthlib
インストールの途中でProceedと聞かれるところが出てきますのでyを入力し、キーボードのEnterボタンを押します。
これで今回の準備は完了です。
Twitter連携のプログラミング
今回作成したソースコードはこちらです。
import ccxt from datetime import datetime from time import sleep import json from requests_oauthlib import OAuth1Session # ライブラリ読み込み(追加) """ bitbankにccxtのbitbankを使うデータを入れる """ bitbank = ccxt.bitbank({ "apiKey": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "secret": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" }) # Twitter APIキー(追加) APIKey = "XXXXXXXXXXXXXXXXXXXXXXXXX" SecretKey = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" AccessToken = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" AccessTokenSecret = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" # 認証処理(追加) twitter = OAuth1Session(APIKey, SecretKey, AccessToken, AccessTokenSecret) # ツイートURL(追加) url = "https://api.twitter.com/1.1/statuses/update.json" count = 0 while( True ): try: # 現在の価格取得 data = bitbank.fetch_ticker(symbol="XRP/JPY") # 毎日100円ずつ積み立てていく amount = 100 / data["ask"] # エントリー注文発行 res = bitbank.create_order( symbol="XRP/JPY", type="market", side="buy", amount=str(amount), price=1 ) # (追加) data = {"status": str(datetime.now().strftime("%Y/%m/%d %H:%M:%S") )} # tweet送信(追加) twitter.post(url, params = data) print(str(datetime.now().strftime("%Y/%m/%d %H:%M:%S") ) ) print( json.dumps(res, indent=True) ) # シンボルと購入枚数(追加) data = {"status": res["symbol"] + " " + str(res["amount"])} # tweet送信(追加) twitter.post(url, params = data) print("--------------------------------------------") # 1日 sleep( 60 * 60 * 24 ) except ccxt.BaseError as e: # (追加) data = {"status": "エラー発生" + " " + str(e)} # tweet送信(追加) twitter.post(url, params = data) print("エラー発生", e) if 3 > count: count = count + 1 # 1分スリープ sleep( 60 ) else: count = 0 # 1日 sleep( 60 * 57 * 24 )
※各APIキーはご自身のものに置き換えてください。
今回追加した行は、コメントで(追加)と記述しています。
ツイートする流れとしましては以下の通りとなります。
- ライブラリのインポート
- APIキーの定義
- 認証処理
- ツイート用のURLの定義
- ツイート用データ作成
- ツイート(post)実行
スポンサーリンク
まとめ
このようにtwitterにツイートすることで稼動状況の把握が可能です。
これまでの簡単なbotの場合は、ツイートしなくても問題ないかと思いますが、今後、本格的にトレードを行うbotを作る場合、役に立つと思いますのでぜひチャレンジしてみてください。
次回以降は相場の状況を判断しながらトレードを行っていくbotの開発を行っていこうと思います。
ではまた。
前回の記事はこちら↓
-
-
第4回 例外処理で稼動率アップ!サルでも分かる仮想通貨botの作り方!
こんばんは。 なおき(@naoki_finance)です。 前回は、第3回 ドルコスト平均法で自動積立!サルでも分かる仮想通貨bot開発!と題して簡単なbotを開発しました。 しかし、あのbotは例外 ...
次回の記事も更新しました↓
-
-
第6回 移動平均線のGC/DCで売り買いするbot開発方法を解説!サルでも分かる仮想通貨botの作り方!
こんばんは。 なおき(@naoki_finance)です。 今回から相場の状況を判断して売買を行うbotを作っていきます。 5分足10本分の移動平均を算出し、現在値がそれを上回ったらロング、下回ったら ...
今回の内容を動画でもアップしています↓