ZeroLag_EMAとNINAとFX_FISH_2MAにメール機能をつけてみた。

指標トレードが流行っているのが原因…なのかどうか分かりませんが、「経済指標カレンダー」関係で、ウイルス感染事故(FXCM,マネパ)が起きたようです。ウイルス対策は万全にしておきましょう…。




さて、今日は、ZeroLag_EMA.mq4,NINA.mq4,FX_FISH_2MA.mq4にまとめてメール送信機能をつけてみました。ダウンロードはこちらです。
FX_FISH_2MA.mq4 は、リペイントするインジケータなので、まともに動くかどうかは分かりません..orz
(リペイントするインジケータでは、色が変わった時点でメールしたとしても、その後、もとに戻ってしまうことがあるのです...
依頼された人は、時間を掛けて動作検証してみてください。



ちなみに、メール機能のつけ方はいつも同じような作業をしているので、ちらっと紹介します。

まず、外部変数でアラート設定ができるようにコピペします。


AlertON は、Alert() を出すかどうか?
EmailON は、SendMail() でメールを送るかどうか?
LocalTimeMode は、メールに記載する時刻をパソコンの時刻にするかどうか? (false ならサーバ時刻)
QuickAlertMode は、Bar確定前に判定するかどうか?


になっています。QuickAlertMode は、一瞬でも条件を満たしたらアラートを出すので、予報的に使うことを前提にしています。アラートが出てから相場に張りつける人向けです。







アラート機能を取り付ける場所は、ほとんどのインジケータにある for ループ文が終わって、最後に return(0); する直前に挿入すればOKです。
特殊なインジケータでは、for文の中に取り付けた方が楽...なこともあるのですが、余程のことが無い限り、forループの外側に付けましょう..。





アラート/メール機能部分もいつもコピペで済ませています。
メッセージに含める内容が悩ましいところですが、

・通貨ペア名
・時間足
・シグナルの種類 ( BUY or SELL or EXIT..)
・Ask / Bid 値
・発生時刻
・インジケータ名 (WindowExpertName())
・業者名 (AccountCompany())

を含めておけば十分かなと思います。
だいたいMT4ユーザは、複数の業者に口座を持つことが多いので、AccountCompany() を入れておくと重宝します。


このタイプのアラートが良いなと思う人は、ZeroLag_EMA_mail.mq4 からコピペして自由に使ってください。




先程のコピペでは、どういう条件を満たしたら、アラートを発するのか?の条件判定が書かれていないので、その部分を修正します。ほとんどのインジケータでは、バッファ配列 ( MACDBuffer,SignalEMABuffer,buffer1,buffer2..)に値が入っているので、それがどうなったらアラートを出すべきなのか考えます。


MACDBuffer[0] :現在のBar での値
MACDBuffer[1] :1本前のBar での値
MACDBuffer[2] :2本前のBar での値


といった感じなので、ゼロラインとMACDBufferのクロスを検出したかったら、
条件1:『2本前のMACDBuffer[2] がゼロより大きい』
条件2:『1本前のMACDBuffer[1] がゼロ以下』
を満たせばよいので、

if( MACDBuffer[2] > 0 && MACDBuffer[1] <= 0 && AlertTime != Time[0])

と書きます。


どなたの役に立つのか分かりませんが、参考まで..。