PythonでBTCが急上昇、急降下したらメールで通知するツール作ってみた

※本ページはプロモーションが含まれています

プログラム言語Pythonを使って、BTCが急上昇、もしくは急降下したら、メールで通知がくるツールを作ってみました。

仮想通貨は、特にBTCは定期的に仕手が頻繁に行われるし

BTCが上がると、他も上がる。BTCが下がると、他の通貨も下がる。なので、チェックしたかったんですよね。

 

目次

今回の目的は仕手対策

別通貨だけど、こういう暴落、暴騰シーンは、仮想通貨あるあるですよね。

数時間後(最悪、翌朝)に、なんじゃこりゃって事が日常茶飯事。

チャートを、ずーっと見るのもなーと思ったので、Pythonで作ってみました。

 

やりたいことは下記のとおり

bitFlyerのAPIを使って、BTCの価格(Bid)を60秒毎に取得して、前回と5000円以上、もしくは以下になった場合、メールに送信する。

先日作成した、BTCの価格を毎秒取得するプログラムがベースになってます。

[st-card id=2466]

 

ソースコード

一応ソースコード。バグは、たぶん無いと思う。。

★の変数の箇所は各自で設定して使ってくださいませ。

# ----------------------------------
#   BTC急上昇・急降下お知らせツール
# ----------------------------------
#   必要パッケージ
#    pip install python-dateutil
#    pip install email
# ----------------------------------

import sys
import requests
import time
import dateutil.parser
import smtplib
from email.mime.text import MIMEText
from email.utils import formatdate
from email.header import Header

API ="https://api.bitflyer.jp/v1/ticker"


#暴騰・暴落の価格差(円)
chk_yen = 5000

#スリープ時間(秒)
sleep_time = 60

#★送信元メール
MY_ADDRESS = ''

#★送信元メールパスワード
MY_PASSWORD = ''

#★送信元メールSMTPサーバー
SMTP_SERVER = ''

#★送信先アドレス
TO_ADDRESS = ''

#メール件名
subject_header = "【Bitcoin価格チェック】"


#
#関数:メール送信
#
def org_send_mail(from_address,to_address,subject,body):
	msg = MIMEText(body.encode(charset), "plain", charset)
	msg["Subject"] = Header(subject,charset)
	msg["From"]    = MY_ADDRESS
	msg["To"]      = TO_ADDRESS
	msg["Date"]    = formatdate(localtime=True)
	smtp = smtplib.SMTP(SMTP_SERVER,587)
	smtp.ehlo()
	smtp.starttls()
	smtp.login(MY_ADDRESS, MY_PASSWORD)
	smtp.sendmail(from_address,to_address,msg.as_string())
	smtp.quit()

#
#メイン
#
if __name__ == '__main__':
	i=0
	bid_btc=[]

	charset = "ISO-2022-JP"

	#ループ
	while True:
		updown=""

		#APIリクエスト
		res = requests.get(API)

		#JSON取得
		json = res.json()

		#リストに追加
		bid_btc.append(int(json["best_bid"]))

		#タイムスタンプ
		tstr = json["timestamp"]

		#JSON形式では直接パース出来ないのでdeteutil使用
		tdatetime = dateutil.parser.parse(tstr)

		tdatetime_str = tdatetime.strftime('%Y/%m/%d %H:%M:%S')

		if i != 0:
			#価格差取得
			kakakusa = int(bid_btc[i]) - int(bid_btc[i-1])
			if kakakusa > 0 and kakakusa >= chk_yen:
				updown = " ↑+"+ str(kakakusa) + "円"

				#メールタイトル
				subject = subject_header+"急上昇通知 "+tdatetime_str

				message_text = tdatetime_str+"\n\nBid:"+ "{:,d}".format(bid_btc[i]) + "円\n" + str(sleep_time) + "秒前の価格と比較して、" + str(kakakusa) + "円上昇しています。\n\n▼coinmarketcapでBTCチャート確認\nhttps://coinmarketcap.com/currencies/bitcoin/#charts\n\n▼bitFlyerへ\nhttps://bitflyer.jp/ja/\n\n以上"

				#メール本文
				body = message_text

				#メール送信
				org_send_mail(MY_ADDRESS,TO_ADDRESS,subject,message_text)

			elif kakakusa < 0 and kakakusa <= chk_yen*-1:
				updown = " ↓" + str(kakakusa) + "円"

				#メールタイトル
				subject = subject_header+"急降下通知 "+tdatetime_str

				message_text = tdatetime_str+"\n\nBid:"+ "{:,d}".format(bid_btc[i]) + "円\n" + str(sleep_time) + "秒前の価格と比較して、" + str(kakakusa) + "円下落しています。\n\n▼coinmarketcapでBTCチャート確認\nhttps://coinmarketcap.com/currencies/bitcoin/#charts\n\n▼bitFlyerへ\nhttps://bitflyer.jp/ja/\n\n以上"

				#メール本文
				body = message_text

				#メール送信
				org_send_mail(MY_ADDRESS,TO_ADDRESS,subject,message_text)

			else:
				updown = ""
				kakakusa = 0
				pass
		else:
			updown = "";
			pass

		print("[" + tdatetime_str + "] BTC_JP Bid: " + "{:,d}".format(bid_btc[i]) + "円" + updown)

		#スリープ
		time.sleep(int(sleep_time))

		i=i+1

60秒毎にチェックしていますが、これを毎秒にしたい場合は

sleep_time = 1

 

5000円の値動きで通知するようにしていますが、下記の変数を変えれば変更可能。

chk_yen = 5000

 

あんまり小さい金額にすると、スパムメールのように通知が届くのでおすすめしません。

 

実行結果

5000円の値動きは、そうそうないので、動作確認は500円で実施。

設定値よりも上回った場合は↑のサインと金額差、下回ったときは↓のサインと金額差を表示するようにしました。

 

上昇の場合、以下のようなメールが届く

 

下降の場合、以下のメールが届く

2000円近くの値動きは、結構頻繁にありますね。

 

とりあえず、動いてよかった。

今後の予定

[st-kaiwa1]他の取引所のAPIと合わせて

自動アービトラージのツール作成に着手しようかな。今回のアルゴリズムと合わせれば、取引完了したらメールで通知というのもできますね。[/st-kaiwa1]

 

ブログランキングに参加してます。この記事が少しでもお役に立ちましたら、応援ポチっとお願いします。

にほんブログ村 為替ブログ システムトレード 自作EA派へ
にほんブログ村

お友達にMT4インジケータープレゼント中

機械学習使った日々の予測結果や、細かい試行錯誤の結果はLINEで公開しています。パスワード付き記事もこちらから。

また、今ならお友達には矢野テック自作のMT4用のインジケーターをプレゼント中です。

友だち追加

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

プログラマー。FXのMT4を使った自動売買EA作成やBOT作成などが趣味。2016年から元本10万円をどこまで増やせるか挑戦中。一旦は10万⇒700万⇒2017暴落 20万。ガチホからFXトレードに変更。 現在1000万円。その過程やノウハウは無料メール講座にまとめました。1か月で学べます。→無料メール講座

ご質問はコメント欄からお願いします

コメントする

目次