通知システムの中身(LINE編):ゴトー日になったらスマホに届く仕組み
みなさんこんにちは。まーきゅりーです。
前回、ゴトー日仲値トレードの注文を何度も忘れそうになった話と、それをきっかけに通知システムを作ったという経緯を書きました。今回はその中身を、LINE編・メール編の2回に分けて紹介していきます。まずはLINEの方からです。
なぜLINEにも通知を送るのか
メールだけでも通知自体は成立します。ただ、メールは溜まっていくと見逃しやすく、通知が来たこと自体に気づかないことがあります。一方LINEは、スマホの画面に直接プッシュで表示されるので、気づきやすいという特徴があります。
ゴトー日仲値トレードは月6回しかなく、しかも時間帯が決まっています。そのタイミングで確実に気づけるかどうかが肝心なので、メールとLINEの両方から通知を送ることにしました。片方だけに依存すると、その経路で何か不具合があったときに気づけなくなるというのもあります。二重化しておいた方が安心です。
仕組みの概要
通知の仕組みは、Cloudflare Workersの「Cron機能」を使って動いています。これは、決まった時刻にプログラムを自動的に起動できる機能です。前日の21:00と当日の7:00、1日に2回起動するように設定しています。
前日21:00の通知は、エントリー注文のためのものです。ゴトー日仲値トレードでは、時間を指定して成行で発注する「時間指定成行注文」を使っていて、みんなのFXやヒロセ通商ではこの注文を前もってセットしておくことができます。対象日だと分かったタイミングで、その日の夜のうちにエントリーの時間指定注文をセットしておく、というのが21:00通知の役割です。
当日7:00の通知は、決済注文のためのものです。これも時間指定成行注文で行っていて、みんなのFXの場合は決済注文を別にセットする必要があり、ヒロセ通商の場合は新規注文のタイミングで決済もまとめてセットできます。ヒロセ通商のようにまとめてセットできる場合でも、改めて7:00に通知を送っているのは、セットした注文の指示に間違いがないかを確認するためです。日付を1日ずらしてセットしてしまっていることが、たまにあります。前日と当日の2回に分けているのは、こうしてエントリーと決済、それぞれの注文タイミングに合わせているからです。
対象日の判定
起動したプログラムは、まず今日(または翌日)が対象日かどうかを判定します。対象日は毎月5日・10日・15日・20日・25日・月末ですが、これが土日祝に当たる場合は前営業日にシフトするルールになっています。このシフトのルールが実はかなりややこしく、前回の記事でも書いたとおり、自分で覚えていると間違えやすい部分です。だからこそ、プログラムに判定を任せる価値があると感じています。
対象日の判定に加えて、日本とアメリカの休場日(祝日など)に当たっていないかどうかもチェックしています。どちらかの市場が休みの日は、そもそもトレードを行わない方針なので、この判定も欠かせません。
該当すればLINEに通知
対象日かつ休場日でないと判定された場合に、LINE公式アカウントのMessaging APIという仕組みを使って、自分のLINEにメッセージを送っています。Messaging APIは、プログラムから自動でLINEのメッセージを送信するための仕組みで、個人のLINEアカウントでも公式アカウントを作れば使うことができます。
このあたりの具体的な設定の仕方や、プログラムの細かい内容については、セキュリティ上の理由もあって記事では触れない方針にしています。あくまで「こういう構成で動いている」という紹介にとどめようと思います。
次回はメール編
次回は、もう一方のメール通知の仕組みについて書く予定です。LINEとメール、それぞれどんな役割分担になっているのかも含めて紹介していきます。
引き続きよろしくお願いいたします。

