VIX・株価アラートのメールを送付
VIX 30以上でアラートメールを送る方法の紹介です。
(VIX以外でも、VXNや株価の値や変動率でメールを送付することも可能です。)
Googleスプレッドシートに設定した条件に従って、Google Apps Scriptでメールを送付します。
概要は下記の通り。
- GoogleスプレッドシートでVIX値を取得。
- GoogleスプレッドシートでVIXの閾値(30)を設定。
- Google Apps Script(GAS)で閾値で判定しメールを送付。
- 前提条件:gmailのメールアドレスを保有。
- VIX 値の自動取得(下記のように設定)
- メール送付スクリプト(20行程度)
- メールの内容(下記のメールを受信)
それでは、詳細について説明しよう。
Googleスプレッドシートを開く
Googleスプレッドシートを開く。(リンク)
左の「空白」を選択。
vix指数、株価の取得
左から順に「Ticker、Price、Check、True or False」のカラムを作成し、Tickerに「VIX」を入力し、Checkに判定で使う閾値「30」を入力する。
次に、B2に下記の式を入力。
=GOOGLEFINANCE(A2)
D2に下記の式を入力。
=if(B2>C2,"TRUE","FALSE")
拡張機能から「Apps Script」を選択。
下記のコードをコピペし、
送付先のメールアドレスを下記に設定。
「var email = “xxxxxxx@gmail.com“」
function sendEmails() {
var email = "xxxxx@gmail.com";
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("シート1");
var lastRow = sheet.getLastRow();
var msg = ""
var Flag = "";
SpreadsheetApp.flush(); // 更新処理追加
Utilities.sleep(5000); // 更新処理追加
SpreadsheetApp.getActiveSheet().getRange("A1:D10"); // 更新処理追加
Utilities.sleep(5000); // 更新処理追加
for (let i = 1; i <= lastRow; i++) {
Flag = sheet.getRange(i, 4).getValue()
if (Flag == "TRUE") {
msg = msg + sheet.getRange(i, 1).getValue() + "\t" + sheet.getRange(i, 2).getValue()
msg = msg + "\t" + "https://google.com/search?q=stock+" + sheet.getRange(i, 1).getValue() + "\n";
}
}
var subject = "VIX アラート";
if (msg != "") {
MailApp.sendEmail(email, subject, msg);
}
}
「名前(Sendmail)」を設定。「保存ボタン」を押す。「実行」を押す。
「権限を確認」を押す。
アカウントを選択。
「詳細」を押す。
「Sendmail(安全ではないページ)に移動」を押す。
「許可」を押す。
左の「時計マーク」を押しスケジュールを設定する。
右下「トリガーを追加」を押す。
下記のように「イベントのソースを選択」から「時間主導型」を選択。
「時間ベースのトリガーのタイプを選択」から「日付ベースのタイマー」を選択。
「時刻を選択」から「任意の時間」を選択し「保存」を押す。
条件にマッチすると下記のメールが届く。
(テストのため、vix25以上でメールを送付する設定とした。)
メールの「リンク」を押すと、下記のように「現在の値とチャート」が確認できる。
必ずではありませんが、VIX は上昇後に、下がってきた時が株の買い時であることが多いように思います。
何かの参考になれば幸いです。
VIX30の時の株価について調べた記事が下記にあるので、よかったら併せて読んでみてください。
関連記事

コメント
いつも素晴らしいツールの紹介をありがとうございます。
こちらは、PCを起動させたままにして、グーグルスプレッドシートを立ち上げたままにしてないと、メールはとばないのでしょうか?
PC電源OFF、Googleスプレッドシート閉じていて大丈夫ですよー。
ご教授ありがとうございます。
プログラムの実行は1日1回のみ上記で設定した時刻帯(例:午前9時~10時)で実行されるのでしょうか?それとも常時VIXレートが監視され、設定値を超えたら早々アラートメール送信されるのでしょうか?
ご質問の回答ですが、
プログラムの実行は1日1回のみ上記で設定した時刻帯(例:午前9時~10時)で実行されることになります。
ご連絡ありがとうございます。事前設定した時間帯で実行とのことで承知しました。
VIXレートは日本時間では夜中に動くのでその時間帯で実行するように設定してみます。