MT4で約定時にメール送信するインジケーター「320_YakujoML」


新規注文と決済注文が約定したときにメールを送信するインジケーターです。
EAに組み込む際に参考になるサンプルもあります。

MT4には約定時に自動的にメールを送信する機能がありません。
自作のEAや他作でもソースが入手できるEAであれば新規注文や決済注文のタイミングでメール送信(SendMail関数)を追加することができますが、それでもIFDやOCO注文による約定ではメール送信できません。

そのような場合、このインジケーターを使用すればメールによる約定通知を受けることができます。
(補足:バージョン3.00にて主処理をインクルードファイルに移行しましたので添付のインジケータはサンプル扱いになります)

メール送信間隔を指定できるので、送信間隔を「1秒」にした場合、ほぼリアルタイムで受信することが可能です。
また、送信間隔を「1日(86400秒)」にした場合、複数の売買情報をまとめて一回(1通のメール)で受信することも可能です。
(補足:バージョン3.00から定時送信機能が追加されましたので、それを使用することをお勧めします)

MT4を再起動しても前回のメール送信後に売買したポジションの分だけがメール送信されます。例えば、MT4が起動していないときにIFD注文などで約定したポジションがあった場合、MT4再起動後、そのポジションの分もメール送信されます。

MT5での動作確認済みです。インクルードファイルはそのまま使用できます。
インジケーターとサンプルEAは拡張子を「mq4」から「mq5」に変更して使用してください。
ただし、MT5の場合はメールの内容が多少異なります。

ファイルはMT4用のトップページからダウンロードできます。


バージョン3.00からの追加機能について
バージョン3.00からは定時送信機能が追加されたので「毎時0分」とか「毎日7時0分」など、決まった日時にメールすることも可能です。
サマータイム自動判断の指定も可能なので「毎日7時0分」に指定しておけば夏時間には自動的に「毎日6時0分」にメール送信されますので、NYクローズやFX業者のメンテナンス時間帯に合わせて1日分の取引をメールで受け取れます。

定時送信機能の追加に伴い、約定した取引が0件でも送信する機能や休日メール送信有無も追加されました。
「0件送信」を有効にして「毎時0分」にメール送信する設定にしておけば、メールが届かないことで「MT4が停止した」ということに気づきやすくなります。とはいえ、休日にはメールを受けたくない場合もあります。その場合は「休日送信」を無効にします。
(蛇足:MT4死活監視システムについては現在設計中です。これが完成したら「MT4が停止したらメール送信」(上記の逆)が可能です。完成したら公開します。…でもいつになるやら(^_^;…)

また、対象の取引を通貨ペアやマジックナンバーで指定できるようにしました。(旧バージョンは全取引が対象でした)
そのため「EAで約定した取引だけメール通知を受けたい」ということが可能になりました。

あと、メール本文を誰でも容易に変更できることを目的にインクルードファイルへの移行を行いました。
メール本文内で使用する各種文言(「新規注文日時:」など)の変更や、メール本文からの削除が楽にできます。
また、「320_YakujoML」本体側の修正になりますが、項目の順番を入れ替えることも比較的容易になったと思います。
詳細は「メール本文の変更方法」を参照してください。


メールのサンプル

新規注文情報、決済注文情報、口座情報のサンプルです。

新規注文情報と決済注文情報は前回のメール送信の後に売買されたポジションの分だけ記載されます。
ヘッダ部(FX業者名~注文件数)と口座情報は1つです。

なお、以下のサンプルではパラメーターの「時間調整」で「7」を指定しているので調整後と調整前の日時が記載されています。

↓↓↓ここから↓↓↓ FX業者名:OANDA Corporation 作成日時:2019.01.09 20:00:00 注文件数:新規1件、決済1件 ■新規注文情報■ 新規注文日時:2019.01.09 19:18:06 (2019.01.09 12:18:06) 通貨ペア名 :USDJPY 注文種別  :買→売 注文ロット数: 1.00 注文通貨枚数: 100,000 新規注文価格: 108.914 ストップ価格: 108.890 リミット価格: 108.930 マジック番号: 123456 チケット番号: 172325289 コメント  :SampleEA ■決済注文情報■ 新規注文日時:2019.01.09 19:18:06 (2019.01.09 12:18:06) 決済注文日時:2019.01.09 19:21:34 (2019.01.09 12:21:34) 通貨ペア名 :USDJPY 注文種別  :買→売 注文ロット数: 1.00 注文通貨枚数: 100,000 新規注文価格: 108.914 決済注文価格: 108.930 損益額   : 1,600  (スワップ): 0 ストップ価格: 108.890 リミット価格: 108.930 マジック番号: 123456 チケット番号: 172325289 コメント  :SampleEA ■口座情報■ 口座残高  : 1,002,410 評価損益  : -30,200 有効証拠金 : 972,210 必要証拠金 : 80,476 余剰証拠金 : 891,734 証拠金維持率: 1,208.08% レバレッジ : 2.03倍 ポジション数: 1 売りロット数: 30,000 買いロット数: 0 売り累計金額: 1,975,650 買い累計金額: 0 --- Author by 320_YakujoML ↑↑↑ここまで↑↑↑

当インクルードファイルを使用する上での注意事項(免責事項等は別途MT4用のトップページを参照)

  1. 注文変更や取消に対するメール送信は行われません。
  2. レバレッジの値は適当に計算したものなので間違っているかもしれません。また、アカウントの通貨名が「JPY」以外では正しく計算できません。(というか計算方法がわからない…)
  3. メールを受信する環境によっては金額等の文字位置がずれる場合があります。(金額等の位置ズレについてを参照)

導入方法(インストール)

ダウンロードしたZIPファイルを適当なフォルダに展開(解凍)後、通常のインクルードファイルと同様にMT4に導入してください。

  1. MT4のメニュー「ファイル」から「データフォルダを開く」をクリックする。
  2. エクスプローラーが表示されたら「MQL4」フォルダ内にある「Include」フォルダにインクルードファイル「320_YakujoML_Main.mqh」と「320_YakujoML_Word.mqh」をコピーする。

補足:ZIPファイルはMT4用のトップページからダウンロードできます。


削除方法(アンインストール)

当インクルードファイルを使用しているインジケーター等があれば、先にチャートから削除してください。
その後、通常のインクルードファイルと同様にMT4から削除してください。
インクルードファイルを削除したら「Files」フォルダにある「320_YakujoML」から始まる「*.csv」ファイルも削除してください。

  1. MT4のメニュー「ファイル」から「データフォルダを開く」をクリックする。
  2. エクスプローラーが表示されたら「MQL4」フォルダ→「Include」フォルダ内の「320_YakujoML_Main.mqh」と「320_YakujoML_Word.mqh」を削除する。

補足:「Files」フォルダはMT4のメニュー「ファイル」から「データフォルダを開く」をクリックし、表示されたエクスプローラーの「MQL4」フォルダ内にあります。


使い方

「320_YakujoML」はインクルードファイルなのでインジケーターやEAから呼び出して使用します。

とりあえず使ってみたいという方は、インジケーター「320_YakujoML.mq4」を「Indicators」フォルダにコピー&コンパイル後、チャートに挿入してください。パラメーターは適宜変更してください。
その後、約定したらメールを確認してください。

「パラメーターが多すぎで使いずらい」という場合は「320_YakujoML_Simple.mq4」を参考にパラメーターの削除を行ってください。
MQLの知識がある方はインクルードファイル「320_YakujoML_Main.mqh」の「変数の宣言」の既定値を修正することで、より多くのパラメーターを削除することもできるでしょう。

別のインジケーターやEAに組み込みたい場合は「320_YakujoML_EA.mq4」を参考にするとよいでしょう。
その際には約定メール送信メイン処理(YakujoMailSend)がエラーになった場合の処理は必ず行ってください。(EventKillTimerを呼び出してタイマーを停止するなど)

補足:事前にMT4のメール設定が正しく行われていることを確認しておいてください。


パラメータの説明

Custom Indicatorの「パラメーターの入力」の画面イメージ
パラメーターの入力画面

補足:「■」で始まる項目について

当サイトのインジケーターではパラメーターの仕切りとして使用したり、コメント(注記など)を記載するために使用しています。なので値を変更しても何も変わりません。

FX業者名称

ヘッダーにある「FX業者名:」の右側に出力されるFX業者名称を指定します。
指定しない場合(空文字の場合)はTerminalInfoString関数で取得した名称になります。

補足:TerminalInfoString関数で取得した名称ですが、FXTFは、以前は「FXTrade Financial Co., Ltd.」だったのですが、2020年2月ごろから「MetaQuotes Software Corp.」に変わりました。(デモ口座は「Goldenway Japan Co., Ltd.」なんだけど…私の環境がおかしいのか?(^_^;…)
もし、他のFX業者も「MetaQuotes Software Corp.」になると、どのFX業者で約定したものかわからなくなるのでこのパラメーターを追加しました。

メールタイトル

メールのタイトルを指定します。
指定しない場合(空文字の場合)はメール送信は行わず、「Files」フォルダ内にファイルを作成します。ファイルの内容はメール本文になります。
メール本文の修正を行った後、実際のメール送信は行わなくても修正後の内容を確認することができます。

注記:「メールタイトルとして使用できる文字か?」などのチェックは行っていないので、特殊文字などは使用しないほうが良いと思います。

メール送信最短間隔(秒)

メールを送信する最短の間隔を秒単位で指定します。
ここで指定した間隔でポジションを確認し、新規注文や決済注文があればメールを送信します。無い場合は送信しません。

1時間間隔でまとめてメールを送信したいなら「3600」、1日1回だけ送信したいなら「86400」を指定してください。
ただし、送信するタイミング(時間)は当インジケーターが起動した(挿入された)時間になります。(挿入されてから3600秒後など)
ソース修正ができる人なら決まった時刻に送信させることができます。(決まった時刻にメールを送信したい場合を参照)
バージョン3.00から定時送信機能が追加されましたので、それを使用することをお勧めします。

新規注文を送信する(=true)

新規注文がある場合、その注文内容をメール送信します。「false」の場合は送信しません。

決済注文を送信する(=true)

決済注文がある場合、その注文内容をメール送信します。「false」の場合は送信しません。

口座情報を送信する(=true)

新規注文または決済注文のメールを送信する場合、口座情報も付与して送信します。
メールを送信しない場合は口座情報は送信されません。(口座情報のみが送信されることはありません)

両建てマックス方式(=true)

口座情報に含まれる「レバレッジ」を両建てマックス方式で計算するか積み上げ方式で計算するかを指定します。
両建てマックス方式の場合は「true」、積み上げ方式の場合は「false」を指定してください。

0件送信(=true)

新規注文と決済注文の両方が0件の場合でもメールを送信します。「false」の場合は送信しません。

注記:「新規注文を送信する」が「false」の場合は「0件」とはみなされません。決済注文も同様です。そのため両方とも「false」の場合でも0件とはみなされないのでメールは送信されません。

時間調整

メールに記載される新規注文日時および決済注文日時に対して時間調整を行いたい場合に指定します。

新規注文日時等はサーバ時間になります。そのため、例えばOANDAの場合、日本時間と比べて7時間前の日時になります。
ターミナル画面の取引タブや口座履歴タブに表示されている時間はサーバ時間なのでMT4の画面と見比べる場合はそのままでも良いのですが、日本時間で「何時何分に約定したか」を知りたい場合は時間調整したほうが見やすいと思います。

なお、時間調整した場合、メールには調整後の日時と調整前の日時が両方記載されます。(カッコ内の日時が調整前)

サマータイムを判断する(=true)

メールに記載される新規注文日時および決済注文日時に対してサマータイムを反映させたい場合に指定します。
上記の時間調整と同様にメールに記載される日時を調整する(日本時間に合わせる)ための機能です。

対象通貨

メールに記載される新規注文と決済注文を特定の通貨のみに限定したい場合に指定します。
指定する値は通貨ペア名です。(USDJPYなど)
複数指定したい場合は連続して指定します。(USDJPYGBPJPYなど)
指定しない場合(空文字の場合)は全通貨が対象となります。

注記:対象通貨か否かは「文字列部分一致」で判断しています。
指定した値が「USDJPY」でMT4の通貨ペア名が「USDJPY-cd」の場合、「USDJPY-cd」という文字列が見つからないため対象外と判断されます。
指定した値が「USDJPY-CD」の場合も英大文字と英小文字で異なるので対象外と判断されます。
「USDJPY-cd」や「USDJPY.prc」など、FX業者ごとやMT4とMT5で異なる場合がありますので、実際の値を確認して正しい値を指定してください。
なお、指定した値が「JPYUSDJPYGBP」でMT4の通貨ペア名が「USDJPY」の場合、真ん中の「USDJPY」が部分一致するので対象と判断されます。(仕様です…笑)

対象マジックナンバー(From)/(To)

メールに記載される新規注文と決済注文を特定のマジックナンバーのみに限定したい場合に指定します。
指定する場合は両方とも「0」以上の値を指定してください。
また、「To」は「From」以上の値を指定してください。
指定しない場合(「-1」の場合)は全マジックナンバーが対象となります。

時(0~23)

メールを決まった時刻に送信したい場合に指定します。
「時(0~23)」を指定する場合は「分(0~59)」の指定は必須です。

「時(0~23)」を指定すると毎日指定された「時」と「分」にメール送信されます。よって1日1回のメール送信となります。
サマータイムと休日送信の設定次第で1時間ずれたり、送信されない場合もあります。

分(0~59)

メールを決まった時刻に送信したい場合に指定します。
「分(0~59)」を指定することで定時送信が有効になります。
指定しない場合(「-1」の場合)は定時送信が無効になります。

「分(0~59)」のみを指定すると毎時指定された「分」にメール送信されます。よって1日最大24回のメール送信となります。
休日送信の設定次第で送信されない場合もあります。

注記:毎分0秒に送信しますが、何らかの理由で「0秒」にならない状態が発生するとメールは送信されません。
例えば、時間を取得した際に、前回が6時59分59秒、今回が7時0分1秒になった場合などです。(絶対無いとは言えない)
その場合は次のタイミングでまとめて送信されます。(1通のメールに2回分の情報が記載される)

サマータイムを判断する(=true)

夏時間の期間はメールを1時間早く送信したい場合に指定します。
「時(0~23)」を指定している場合に有効です。

休日送信(=true)

休日もメールを送信したい場合に指定します。
定時送信を行う場合に有効な設定です。

日曜日にメールが無いとMT4が停止していることに気づくので月曜日になって突然慌てることがなくなるかもしれません。

補足:休日とは基本的に土曜日の8時0分から月曜日の6時59分(日本のFX業者の取引開始直前?)までとしています。
土曜日に7時台を含めないのは金曜日のNYクローズまでの約定をメールするためです。
ただし、「時」の設定が「8」以上の場合は土曜日のその時間帯(8時0分~59分など)にメールが送信されます。
なお、サマータイムを判断する場合で夏時間の場合には1時間早くメールが送信されます。

ヘッダの注文件数(0:通常,1:詳細,2:詳細(注文種別反転))

ヘッダの注文件数の編集方法を指定します。

「通常」は、バージョン3.20までと同じ編集方法で、注文種別を判断せず、単純に新規注文と決済注文の件数のみで編集します。
例:新規の売り注文が1件、買い注文が2件、決済した売り注文が3件、買い注文が1件の場合
注文件数:新規3件、決済4件

「詳細」は、注文種別ごとに合算します。よって、上記例は以下のようになります。
注文件数:新規3件(売り1件、買い2件)、決済4件(売り3件、買い1件)

「詳細(注文種別反転)」は、注文種別ごとに合算しますが、決済側は注文種別が逆になります。
例:新規の買い注文を1件行い、それを決済した場合
注文件数:新規1件(売り0件、買い1件)、決済1件(売り1件、買い0件)

なお、詳細の場合でも注文が0件の場合は売りと買いの件数は省略されます。
例:新規注文無し、決済注文のみの場合
注文件数:新規0件、決済3件(売り1件、買い2件)


メール本文の変更方法

メタクォーツ言語エディタ(MetaEditor)を使用してメール本文の変更方法を説明します。
(テキストエディタを使用するなど、自分の慣れた方法で変更しても構いません)

まず、メタクォーツ言語エディタ(MetaEditor)を起動します。MT4を起動後に「F4」キーを押下して起動する方法でも良いです。

次に、メタクォーツ言語エディタ画面に表示されているナビゲータ(表示されていない場合はCtrl+Dを押下して表示する)の「Include」を展開(左側の「+」をクリック)して、その中の「320_YakujoML_Word.mqh」をダブルクリックします。

ソースが表示されたら、「メール文言定義1(ここから)」を探します。16行目にあります。(*1)
その行から「メール文言定義2(ここまで)」までがメール本文に使用されている文言の定義です。
文言はダブルクォーテーション「"」で括られています。
文言は自由に変更しても良いですが、それ以外(ダブルクォーテーションで括られていない部分)については変更しないでください。(*2)

ここでできることは、
・メール本文内の文言を変更する
・メール本文から行ごと削除する
です。

例えば、新規注文時の見出しを「■新規注文情報■」から「★新規注文情報★」に変更したい場合は31行目を
const string Op01 = "■新規注文情報■"; //見出し
から
const string Op01 = "★新規注文情報★"; //見出し
に変更します。
変更する文字は何でも良いと思いますが、特殊な漢字など、何らかの不具合が発生するようでしたら他の文字で代用してください。

また、新規注文時の「注文通貨枚数」をメール本文から削除したい場合は36行目を
const string Op06 = "注文通貨枚数:"; //通貨枚数
から
const string Op06 = ""; //通貨枚数
に変更します。
削除したい場合は文言のみを削除します。その行は残しておいてください。


メール本文の順番を変更したい場合は、「320_YakujoML_Main.mqh」を修正します。
少々難易度は高くなりますが比較的簡単に修正できると思います。
まずは「320_YakujoML_Word.mqh」と同様にダブルクリックしてソースを表示してください。

ソースが表示されたら、「項目順変更(ここから)」を探します。357行目や395行目(MT5は238行目と273行目)など複数個所にあります。
その行から「項目順変更(ここまで)」までがメールを出力しているところです。1組あたり十数行程度です。

ソースの右側のコメントを参考にしながら新規注文や決済注文、口座情報の各項目の出力順を変更してください。
変更時は1行まるごと上や下に移動させてください。

例えば、口座情報の評価損益を口座残高の前に移動したい場合

//口座情報の項目順変更(ここから)
if (Ac02 != "") sWML3=sWML3+Ac02+DCS(AccountInfoDouble(ACCOUNT_BALANCE),iAcDigits)+"\r\n"; //口座残高
if (Ac03 != "") sWML3=sWML3+Ac03+DCS(AccountInfoDouble(ACCOUNT_PROFIT),iAcDigits)+"\r\n"; //評価損益
if (Ac04 != "") sWML3=sWML3+Ac04+DCS(AccountInfoDouble(ACCOUNT_EQUITY),iAcDigits)+"\r\n"; //有効証拠金
~省略~
//口座情報の項目順変更(ここまで)

//口座情報の項目順変更(ここから)
if (Ac03 != "") sWML3=sWML3+Ac03+DCS(AccountInfoDouble(ACCOUNT_PROFIT),iAcDigits)+"\r\n"; //評価損益
if (Ac02 != "") sWML3=sWML3+Ac02+DCS(AccountInfoDouble(ACCOUNT_BALANCE),iAcDigits)+"\r\n"; //口座残高
if (Ac04 != "") sWML3=sWML3+Ac04+DCS(AccountInfoDouble(ACCOUNT_EQUITY),iAcDigits)+"\r\n"; //有効証拠金
~省略~
//口座情報の項目順変更(ここまで)

のように1行まるごと移動させます。
if文など、いろいろごちゃごちゃした記述がありますが、内容は無視してとりあえず1行まるごと移動させてください。

「口座情報をメールの先頭に移動したい」など、「新規注文」、「決済注文」、「口座情報」のそれぞれ塊をまるごと順番変更する場合は、505行目あたりの順番を変更してください。

最後に、コンパイル(F7キー押下)してエラーが無いか確認してください。


変更した結果の確認方法ですが、パラメーターの「メールタイトル」を未設定(空文字)にするとメール送信ではなくファイル保存になります。この機能を使用するとわざわざメールソフトを起動して確認しなくても良いので楽です。

また、取引が約定するのを待たずに、すぐに修正したメール本文を確認したい場合は、「Files」フォルダに作成されている「320_YakujoML」から始まる「*.csv」ファイルをメタクォーツ言語エディタで開いて記述されている日時を古い日時に書き替えてください。書き換え後にインジケーターを挿入するとその日時以降に約定した取引がメール送信(またはファイル保存)されます。何度も繰り返し修正する場合に便利な方法です。
ちなみに、「320_YakujoML」の後ろのファイル名はパラメーターの「対象通貨」や「対象マジックナンバー」です。

(*1):上記説明内の行数については今後のバージョンアップ等で変わってきますのであくまでも目安です。

(*2):特に「Op01」や「Cl01」などの英数字が変更されると正しく動作しなくなりますので注意してください。


EAに組み込む際のサンプルソース「320_YakujoML_EA.mq4」

「320_YakujoML_EA.mq4」はEAに約定メール送信機能を組み込む際の参考用です。

インジケーターを使用しても同様のメールが送信されてきますが、EAに組み込むメリットの1つとして、何らかの理由でEAが停止していた場合はメールが送信されないのでEAが動いていないことに気づけます。
そのためこのサンプルソースでは約定していなくても毎日午前7時にメールを送信するようになっています。

お手持ちのEAに組み込む際は「サンプル(ここから)」と「サンプル(ここまで)」の間にあるソースを同様の場所にコピーしてください。
このサンプルは自動売買を行っていないので、そのままEAとして動かして「約定通知兼EA異常停止検知用」としても使用できます。

なお、EAに約定メール送信機能を組み込むとEAの負荷が高くなると思われますので、シビアなタイミングで売買するEAには組み込まない方が良いと思います。


決まった時刻にメールを送信したい場合

当インジケーターは指定された間隔(秒数)ごとにポジションを確認してメールを送信します。
そのため、「3600(1時間ごと)」を指定しても送信される時間を「毎時0分ちょうど」にするのはちょっと面倒です。(当インジケーターを挿入するタイミングを0分ちょうどにする必要がある)

そこで、当インジケーターの修正が必要ですが、以下の方法で「毎時0分」とか「毎日午前8時」にメール送信することができます。

まず、ソース内にある「定時送信」という文字を探してください。
その中に「毎時0分に送信する」と「毎日午前7時に送信する」の2つのサンプルソースがコメント化された状態で記述されていますので、それを参考にソースを修正してください。

修正したらコンパイルしてエラーが発生していないか確認してください。
その後、当インジケーターをチャートに挿入します。
その際、パラメーター「メール送信最短間隔(秒)」には必ず「1」を指定してください。
あとは思った通りにメールが送られてくるのを待つだけです。
バージョン3.00から定時送信機能が追加されましたので、それを使用することをお勧めします。


※ソースは利用許諾の範囲内で自由に改変してご使用いただけます。


金額等の位置ズレについて

Yahooのメールアドレス(xxx@yahoo.co.jp)に送信した場合、一部の金額等が1桁左にずれる現象が発生しました。
どうも数字等の桁数が偶数の場合に1桁左にずれるようです。(全角コロン(:)と金額等の間の半角空白が1文字無くなる)
もしくは、連続した半角空白は偶数個になるようにも見えます。(例えば半角空白が3つの場合、2つになる等)

SendMail関数の前にメールの内容をテキストファイルに出力する処理を追加して内容を確認しましたが問題ありませんでした。
また、別のメールアドレスに送信した場合は桁ズレは発生しませんでした。でも、そのメールをYahooに転送すると桁ズレしました。

Yahoo側またはブラウザの表示上の問題なのかは不明ですが、メールを受信する環境によっては桁ズレが起きるかもしれません。


更新履歴

リリース日 バージョン 内容
2019/01/15 1.00 初リリース
2019/02/04 1.01 最後に送信した日時が数秒遅れる不具合に対応しました。
EAに組み込む際のサンプルを添付しました。
2019/03/10 2.00 MT5に対応しました。
2020/04/01 3.00 1.インジケーターからインクルードファイルに移行しました。
2.対象の通貨ペアやマジックナンバーを指定できるようにしました。
3.条件が異なる場合に限り複数稼働できるようにしました。
4.定時送信機能を追加しました。
5.休日の送信有無を指定できるようにしました。
6.約定した注文が0件でも送信できるようにしました。
7.メールタイトル未設定時はファイル保存するように変更しました。
8.メール本文をカスタマイズしやすくしました。
9.MT5での不具合を修正しました。
2020/05/14 3.10 1.処理中に約定した取引がメールされない不具合に対応しました。
2.パラメーターに「FX業者名称」を追加しました。
2020/05/17 3.20 「条件が異なる場合に限り複数稼働できる」の条件に定時送信の「時」と「分」を追加しました。
これにより複数稼働できる条件は、「パラメーターの対象通貨、対象マジックナンバー、時、分のいずれかが異なる場合」となりました。
2020/08/29 3.30 1.定時送信の場合、何らかの理由で「0秒」にならない場合でもメールが送信されるように修正しました。
2.1月1日も休日に含めました。(休日送信=false時に判断)
3.注文件数に売り件数と買い件数も追記できるように対応しました。
4.その他、不具合や誤字を修正しました。