その他

GASでETFや株が特定条件下の時、メールで通知する[No114]

スポンサーリンク

以下の記事で紹介したことを具体的にどのように行うのか、一例としてその手法を紹介します。

no image
ETFや株が特定条件下の時、通知をする仕組みを考える[No111]
SPYD・VYM・HDVなどの高配当ETFを毎月一定額購入していましたが、この定期購入の買い方を変更することにしました。変更後は、自分があらかじめ指定した条件の範囲内になったときに買 ...

以下の記事の方法では、1シート1銘柄になってしまうため、一覧で取得できるようにします。また、この一覧作成ではGASは利用せずにGoogleスプレッドシート関数で実現します。

no image
GASを活用した株価データ解析:最高株価の日付とその価格を抽出するコード[No112]
この記事では、Google Apps Scriptを活用して、株価データを自動的に取得し、その中から任意で指定した期間内での最高株価を見つけて記録する方法について詳しく解説します。G ...

完成イメージ

あらかじめ指定しておいた銘柄のどれか1つでも、条件に達していれば、以下のようなメールを受信できるようになります。

件名:メール件名(投資関係)(2023/08/27 09:00:)

本文:

【1,VYM,-3.60,-99,-5】
【2,HDV,-2.02,-99,-5】
【3,SPYD,-5.69,-99,-5】
【4,VTI,-4.27,-99,-5】

準備

1.以下の記事を確認して、管理表シートを作成する

以下の記事でスプレッドシートで行う手法を紹介しました。今回は以下の記事との関連技となります。

 

2.以下の設定シートを用意する

上図と同じセル番号のところに項目名を設定する。以下は登場する項目名です。

・No、銘柄、騰落率、アラート下限、アラート上限
・項目対象(行)、項目対象(列)、項目対象(行列)

3.項目の値のセルに計算式を設定する

・No:1

・銘柄:VYM

・騰落率:=INDIRECT(+I2)

・アラート下限:-99

・アラート上限:-5

・項目対象(行):=MATCH($B2,'管理表'!$C$1:$C$14,0)

・項目対象(列):=MATCH($C$1,'管理表'!$A$4:$L$4,0)

・項目対象(行列):=ADDRESS(G2, H2, 4, TRUE, "管理表")

4.以下の記事を確認する

no image
GASで為替レート(為替相場など)が指定した条件を満たしたときにメール通知[No107]
米国株投資を外貨決済で行うために、出来るだけお得にドルを調達し持っておきたいところです。 毎日、為替相場(為替レートなど)でドル 円(USD-JPY/USD/JPY)をGoogle ...

5.上記記事内のソースコードを準備して、以下のところを変更する


〇変更箇所1:notificationExchange関数

記事No107
  let targetArray = [];
  targetArray.push(getTargetPrice('USD / JPY'));
  // targetArray.push(getTargetPrice('EUR / JPY'));
  // targetArray.push(getTargetPrice('AUD / JPY'));

の部分を以下に変更する

記事No114(本記事)
  let targetArray = [];
  targetArray.push(getTargetPrice('VYM'));
  targetArray.push(getTargetPrice('HDV'));
  targetArray.push(getTargetPrice('SPYD'));
  targetArray.push(getTargetPrice('VTI'));

〇変更箇所2:notificationExchange関数

記事No107
  let targetPrice = targetArray[a][list[0].indexOf('レート(円)')];

の部分を以下に変更する

記事No114(本記事)
  let targetPrice = targetArray[a][list[0].indexOf('騰落率')];

〇変更箇所3:getTargetPrice関数

記事No107
  let lastRow = settingSheet.getLastRow();// 最終行を取得
  let lastCol = settingSheet.getLastColumn();// 最終列を取得

の部分を以下に変更する

記事No114(本記事)
  let lastRow = settingSheet.getLastRow();// 最終行を取得
  // let lastCol = settingSheet.getLastColumn();// 最終列を取得
  let lastCol = 5;// 最終列を取得

〇変更箇所4:getTargetPrice関数

記事No107
  let targetCol = list[0].indexOf('外国為替');

の部分を以下に変更する

記事No114(本記事)
  let targetCol = list[0].indexOf('銘柄');
  console.log("list[0]:",list[0]);

6.以下の記事を確認する。そして参考にしながらこの記事用に設定する

no image
GASで特定時間に自動実行するようにトリガーをセットする(正規表現で月・日・曜日で範囲指定)[No106]
タイトルの通りです。プログラムと設定方法を紹介します。 Google Apps Scriptの用意 Google Apps Script(GAS)の用意 function setTr ...

7.動作確認する

動作を確認する

参考サイト/関連サイト

-

最後までお付き合いいただきありがとうございます!

この情報が誰かの役にたてれば幸いです。

スポンサーリンク

-その他