Mac
Node.js
Bitcoin

Bitcoinの価格が気になって仕事が手につかない私(あなた)へ

Bitcoinの値動きが気になって仕事が手につきません。

今更ながら、Bitcoinを買ってみました。
いまやブームも終わりかけているような気もしますが、やっぱり副収入が欲しい!
働かないでお金が欲しい!
そんな欲求に負けて、買ってしまいました。

で、なんというか値動きが激しいわけですよね。
1時間で、5万円とか10万円くらい動くこともある。
あとで気づいて、あのタイミングで買っておけば!なんてこともあったり。

なので、Macに通知を出すことにしました。

とりあえず。
自動売買とかまでは、したくない!怖いし!
「あ、ちょっと教えてくれれば良いだけだから!
買うのはこっちで考えるから!」
というわけで。

やりたいこと

1分に1回、値段を調べる。
想定より高い、もしくは安かったら、通知を出す。
以上。

サーバからプッシュとかしても良かったんでしょうが
そこまでのモチベーションもなく。
とりあえず、作業中にペロッと通知がくればOK。

※世の中には、自動売買の方法を扱った記事もたくさんあるので
複雑なことを試したい方は、そちらをご覧くださいませ。

使った環境

以下の環境を使用しています。
PC:Mac OS X
定期実行:crontab
実行環境:Node.js
API:bitFlyer API ※2018/05/11 の仕様で動いているものになります。

値段を調べる。

これは、bitFlyerのAPIを使用させていただきました。
publicのAPIしか使わないので、Keyなどは不要で、攻撃とか悪いことしなければ、誰でも使えるはずです。

想定金額を設定する。

自分で適当なファイルを作って、上限/下限を設定することにしました。
こんなファイル。

price.json
{
  "max":1150000,
  "min":700000
}

Macに通知を出す

osascriptというものがあるんですね。初めて知りました。
osascriptにある、「display notification」を使って、簡単に通知を出すことができました。

$ osascript -e 'display notification "通知内容"'

高値、安値を判定

APIの戻り値の「ltp」が値段になっているような気がしています。(多分)
ので、ltpと、min/maxを比較します。

ソース全体

index.js
'use strict';
const exec = require('child_process').exec;
let https = require('https');
const price = require('./price');
const URL = "https://api.bitflyer.jp/v1/ticker?product_code=BTC_JPY";
https.get(URL, (res) => {
    let body = '';
    res.setEncoding('utf8');
    res.on('data', (chunk) => {
        body += chunk;
    });
    res.on('end', (res) => {
        res = JSON.parse(body);
        const ltp = parseInt(res.ltp,10);

        if (ltp > price.max){
            exec('osascript -e \'display notification "高値! ¥' + ltp + '"\'');
        } else if (ltp < price.min){
            exec('osascript -e \'display notification "安値! ¥' + ltp + '"\'');
        }
    });
}).on('error', (e) => {
    console.log(e.message); //エラー時
});

これだけです。

実行する

index.jsとprice.jsonを同じフォルダに置いて

$node index.js

定期的に実行する

crontabにでも登録すればOKです。

* * * * * /usr/local/share/node ~/Desktop/bitcoin/index.js

これで1分ごとに、APIを投げて、想定よりも上(または下)だったら、通知が出ます。
前回のデータも保存しておいて、上がり(下がり)続けたら、アラートを出すとかしても良いかもしれないですね。

結果

このスクリプトを活用して、売買を続けた結果、収支は1万円のマイナスとなっております。
また、通知がうるさいため、今はcronを停止しています。

おしまい。

これくらいのライトな内容だったら、いろんな人が気軽に試せるのでは?と思ってます。
しょぼしょぼの内容なので、いくらでも応用できるのではないでしょうか。
ソースはこちら
そして、Bitcoinがどんどん買われて、値段が高騰すれば良いのに!!