Help us understand the problem. What is going on with this article?

外為で勝つために その4 ~ LINE 通知編

前回「外為で勝つために その3 ~ LAMP 構築編」の続きです。

値動きが大きくなったら LINE Messageing API から通知してもらいます。
他の方法も考えたんですが、

  • SMS は基本有料
  • twitter は用途に合っていない(bot と誤解される)
  • facebook うーん、難しそう
  • #slack はあまり使わない

ということから LINE を採用しました。
今回の参考はこちら「PythonでLINEにメッセージを送る」です。

LINE Notify をお友達にする

スマホの LINE から「LINE Notify」さんをお友達に追加します。
Screenshot_addfriend.png
すでにお友達が 200 万人近くいるようですが、実際そんなにいたら大変ですね。
いやもう覚えきれません。

LINE Access Token の発行

トークンを発行します。
トークン名は適当な名前にします。
Screenshot_publishtoken.png
ここで、1つ失敗したんですが
グループを作ってそこに通知して欲しいときは、この画面で「通知を送信するトークルーム」を選択しなければいけなかったようです。後で作成し直す羽目になりました。

Python コード

トークンが取得できたので、Python プログラムに組み込みます。
コードの全文は公開中の GitHub をご参照ください。

from decimal import Decimal
import requests

必要なライブラリをインポートします。

# LINE Notify settings
line_url = "https://notify-api.line.me/api/notify"
line_access_token = "## Your LINE Access Token ##"
line_headers = {'Authorization': 'Bearer ' + line_access_token}

LINE Notify に通知してもらうための設定です。

line_message = ""

# Difference high and low
diff = Decimal(raw[price]["h"]) - Decimal(raw[price]["l"])
print("{} {}: {}".format(
    raw["time"].replace("000Z", "").replace("T", " "),
    response["instrument"],
    diff
))

if response["instrument"].find("_JPY") > -1:
    if diff >= 0.1:
        line_message += "'" + response["instrument"] + "' "
else:
    if diff >= 0.0015:
        line_message += "'" + response["instrument"] + "' "

# LINE Notify
if len(line_message) > 0:
    line_payload = {"message": "There were signficant price fluctuations in " + line_message + "."}
    r = requests.post(line_url, headers=line_headers, params=line_payload)

対円相場は 0.1 円以上、それ以外は 0.0015 米ドル(他)以上の値動きがあったら、LINE 通知メッセージを貯め込みます。
最後に、LINE から通知すべきメッセージを requests.post します。

結果

基本的に、どの通貨ペアに大きな値動きがあったか分かれば良いので、こんな感じになります。
チャートを確認して気配があったら取引するのも良いでしょう。
Screenshot_linenotify.png

Raspberry Pi 起動時に実行する

スタートアップ登録しておくと便利です。

/home/pi/.config/autostart/market.desktop
[Desktop Entry]
Type=Application
Name=Market Monitor
Exec=/usr/bin/python3 -B /home/pi/python/MarketMonitor/oanda_candle.py
Terminal=false

動作確認

システムを再起動して、動作しているかは phpmyadmin でデータベースに突っ込まれていることが確認できれば問題ないでしょう。
LINE 通知は普段、あまり来ることはないと思うので。
Screenshot_phpmyadmin.png

環境周りはできてきたので、
ポータルサイト的なものを作ってみたいと思います。

続く。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした