メール送信インジケータ
50種類以上の通貨ペア、各種CFD(金、株など)対応
前回のインジケータを派手にするで、アラートウィンドウを開いたり、音を鳴らしたりしました。
今回は、メールを送信してみたいと思います。
ですが、メールの設定は結構めんどうなので、簡単にユーザを作れるYahooメールを例に設定を説明します。
とりあえず、Yahooメールと契約してください。
で、メール設定に「POPアクセスとメール転送」があります。
「ブラウザアクセスとPOPアクセス」にチェックを入れて、設定してください。
これで、Yahooメールの設定は終了です。
次は、メタトレーダーの設定です。
メニューのツール-オプションを開いてください。
「E-メール」タブで、
「有効にする」にチェックを入れます。
SMTPサーバー:「smtp.mail.yahoo.jpsmtp.mail.yahoo.co.jp:587」
SMTPログインID:「YahooのユーザID」
SMTPパスワード:「Yahooのパスワード」
発信元:「ユーザID@yahoo.co.jp」
送信先:「送信したいメールアドレス」
これを入力して、「Test」ボタンを押してください。
テストメールが送信されれば、設定OKです。
では、プログラムの方に行ってみましょう。
前回のソースを使います。
ここから、読み始めた人は、前回のインジケータを派手にするを見てくださいね。
では、DataSetを以下のように書き換えてください。
void DataSet(int i)
{
double dBBUp = iBands(NULL,0,Param1,2,0,PRICE_CLOSE,MODE_UPPER,i);
double dBBDown = iBands(NULL,0,Param1,2,0,PRICE_CLOSE,MODE_LOWER,i);
if(dBBUp < High[i])
{
ExtMapBuffer1[i]=dBBUp;
if(ExtMapBuffer1[i+1] == EMPTY_VALUE)
{
if(i == 0){
SendMail(”Test BB” , “BBUp Over:” + DoubleToStr(High[i],Digits));
PlaySound(”alert.wav”);
}
ExtMapBuffer1[i+1] = ExtMapBuffer2[i+1];
}
}
else
{
ExtMapBuffer2[i]=dBBUp;
if(ExtMapBuffer2[i+1] == EMPTY_VALUE)ExtMapBuffer2[i+1] = ExtMapBuffer1[i+1];
}
if(dBBDown > Low[i])
{
ExtMapBuffer3[i]=dBBDown;
if(ExtMapBuffer3[i+1] == EMPTY_VALUE)
{
if(i == 0){
SendMail(”Test BB” , “BBDown Over:” + DoubleToStr(Low[i],Digits));
PlaySound(”alert.wav”);
}
ExtMapBuffer3[i+1] = ExtMapBuffer4[i+1];
}
}
else
{
ExtMapBuffer4[i]=dBBDown;
if(ExtMapBuffer4[i+1] == EMPTY_VALUE)ExtMapBuffer4[i+1] = ExtMapBuffer3[i+1];
}
// ExtMapBuffer5[i]=iMA(NULL,0,14,0,MODE_SMA,PRICE_WEIGHTED,i);
// ExtMapBuffer6[i]=iMA(NULL,0,14,0,MODE_EMA,PRICE_WEIGHTED,i);
// ExtMapBuffer7[i]=iMA(NULL,0,14,0,MODE_SMMA,PRICE_WEIGHTED,i);
// ExtMapBuffer8[i]=iMA(NULL,0,14,0,MODE_LWMA,PRICE_WEIGHTED,i);
}
今回は、前回のアラートウィンドウの代わりにメール送信を行います。
SendMail(タイトル,本文);
を使います。
DoubleToStr(High[i],Digits)
で、High[i]の数字を文字型に変更しています。
DoubleToStr(double型の変数,有効小数点桁数)
Digitsは、現在の通貨ペアの小数点桁数を表します。
ということで、ボリンジャーバンドにタッチしたときの高値か安値をメールで送信するプログラムのできあがりです。
いままで、数回同じようなネタで行いましたが、結構簡単にいろいろなことができることが分かったと思います。
小難しいことを知らなくても意外と何とかなるでしょ!
では、また次回。
タグ
2009年05月22日
コメント&トラックバック(6)
| トラックバックURL
|
カテゴリ: インジケータ メタトレーダー入門 簡単インジケータ作成テンプレート
ちょっと賢いボリンジャーバンドインジケータ
50種類以上の通貨ペア、各種CFD(金、株など)対応
前回に引き続き、「簡単インジケータ作成テンプレート」を使ったサンプルを作ってみます。
今回もボリンジャーバンドを利用します。
ボリンジャーバンドにタッチしたら、売ったり買ったりすることが結構あると思います。
でも、本当にタッチしているかどうか分かりにくいですよね。
なので、タッチしているときだけ色を変えるようなインジケータを作ってみます。
まだ、テンプレートをダウンロードしていない人は、「簡単インジケータ作成テンプレート」からダウンロードしてください。
indicator_temp.mq4をコピーして、適当な名前にしてください。
例として、BB_I.mq4とします。
このファイルは、
インストールパス\MetaTrader\experts\indicators
に入れてくださいね。
いつものようにメタトレーダーを起動して、メタエディターを開いてください。
そこで、先ほど作ったBB_I.mq4を開きます。
変更する場所は、一番下の関数
DataSetだけです。
以下のように修正してみてください。
void DataSet(int i)
{
double dBBUp = iBands(NULL,0,Param1,2,0,PRICE_CLOSE,MODE_UPPER,i);
double dBBDown = iBands(NULL,0,Param1,2,0,PRICE_CLOSE,MODE_LOWER,i);
if(dBBUp < High[i])
{
ExtMapBuffer1[i]=dBBUp;
}
else
{
ExtMapBuffer2[i]=dBBUp;
}
if(dBBDown > Low[i])
{
ExtMapBuffer3[i]=dBBDown;
}
else
{
ExtMapBuffer4[i]=dBBDown;
}
// ExtMapBuffer5[i]=iMA(NULL,0,14,0,MODE_SMA,PRICE_WEIGHTED,i);
// ExtMapBuffer6[i]=iMA(NULL,0,14,0,MODE_EMA,PRICE_WEIGHTED,i);
// ExtMapBuffer7[i]=iMA(NULL,0,14,0,MODE_SMMA,PRICE_WEIGHTED,i);
// ExtMapBuffer8[i]=iMA(NULL,0,14,0,MODE_LWMA,PRICE_WEIGHTED,i);
}
今回は、上下2色使うので、上側にExtMapBuffer1、ExtMapBuffer2
下側に、ExtMapBuffer3、ExtMapBuffer4を割り当てます。
ボリンジャーバンドの上側のラインより高値が高い場合に、ExtMapBuffer1に値をセット。
低い場合に、ExtMapBuffer2にセットします。
下側も同様にセットしています。
ボリンジャーバンドで利用する足の数を変えられるように、Param1を使いました。
コンパイルして、描画させたいグラフにドロップしてみてください。
Param1は0になっているので、21とか適当な値にしてください。
線の太さや色もパラメータで設定できますので、いじってみてくださいね。
表示させた結果、ちゃんと色が変わっているのが分かりましたか?
でも、なんか線が飛んでいませんか?
データを入れていないところは、デフォルトでEMPTY_VALUEという描画しない値が、入っています。
ちょうど、書き始めに値が入っていないため抜けているんですね。
というわけで、ちょっと気持ち悪いので、たりない情報を別のバッファからもらうように修正してみます。
void DataSet(int i)
{
double dBBUp = iBands(NULL,0,Param1,2,0,PRICE_CLOSE,MODE_UPPER,i);
double dBBDown = iBands(NULL,0,Param1,2,0,PRICE_CLOSE,MODE_LOWER,i);
if(dBBUp < High[i])
{
ExtMapBuffer1[i]=dBBUp;
if(ExtMapBuffer1[i+1] == EMPTY_VALUE)ExtMapBuffer1[i+1] = ExtMapBuffer2[i+1];
}
else
{
ExtMapBuffer2[i]=dBBUp;
if(ExtMapBuffer2[i+1] == EMPTY_VALUE)ExtMapBuffer2[i+1] = ExtMapBuffer1[i+1];
}
if(dBBDown > Low[i])
{
ExtMapBuffer3[i]=dBBDown;
if(ExtMapBuffer3[i+1] == EMPTY_VALUE)ExtMapBuffer3[i+1] = ExtMapBuffer4[i+1];
}
else
{
ExtMapBuffer4[i]=dBBDown;
if(ExtMapBuffer4[i+1] == EMPTY_VALUE)ExtMapBuffer4[i+1] = ExtMapBuffer3[i+1];
}
// ExtMapBuffer5[i]=iMA(NULL,0,14,0,MODE_SMA,PRICE_WEIGHTED,i);
// ExtMapBuffer6[i]=iMA(NULL,0,14,0,MODE_EMA,PRICE_WEIGHTED,i);
// ExtMapBuffer7[i]=iMA(NULL,0,14,0,MODE_SMMA,PRICE_WEIGHTED,i);
// ExtMapBuffer8[i]=iMA(NULL,0,14,0,MODE_LWMA,PRICE_WEIGHTED,i);
}
これで、試してみてください。
うまくいったでしょ。
ちなみにコンパイルするとパラメータの設定が初期化されてしまいます。
気になる人は、上の方の
#property indicator_color1 Red
#property indicator_color2 Blue
#property indicator_color3 Green
#property indicator_color4 Yellow
extern int Param1=0;
の値を変えてみてくださいね。
タグ
2009年05月20日
コメント&トラックバック(2)
| トラックバックURL
|
カテゴリ: MQL4 インジケータ メタトレーダー入門 簡単インジケータ作成テンプレート
簡単インジケータ作成テンプレート
50種類以上の通貨ペア、各種CFD(金、株など)対応
インジケータプログラムの楽しさを知ってもらうために、「簡単インジケータ作成テンプレート」を作成しました。
まず、ダウンロードしてください。
それでは、簡単に使い方を説明します。
indicator_temp.mq4
を作りたいインジケータ名に変更します。
今回は、サンプルでボリンジャーバンドを表示してみたいと思います。
ですので、ファイル名を「Bands_I.mq4」に変更してください。
リネームしたファイルを以下のフォルダーへコピーしてください。
インストールパス\MetaTrader\experts\indicators
では、メタトレーダーを起動して、メタエディターを起動してください。
ナビゲータウィンドウのFilesタブにindicatorsを開くと、ファイル一覧が表示されます。
ここに先ほどコピーした、「Bands_I.mq4」があるはずなので、ダブルクリックして開いてください。
下の方に、「DataSet」という関数があります。
このテンプレートでは、基本的にこの中だけをいじります。
では、以下のように書き換えてください。
void DataSet(int i)
{
ExtMapBuffer1[i]=iBands(NULL,0,21,3,0,PRICE_CLOSE,MODE_UPPER,i);
ExtMapBuffer2[i]=iBands(NULL,0,21,2,0,PRICE_CLOSE,MODE_UPPER,i);
ExtMapBuffer3[i]=iBands(NULL,0,21,1,0,PRICE_CLOSE,MODE_UPPER,i);
ExtMapBuffer4[i]=iMA(NULL,0,21,0,MODE_SMA,PRICE_CLOSE,i);
ExtMapBuffer5[i]=iBands(NULL,0,21,1,0,PRICE_CLOSE,MODE_LOWER,i);
ExtMapBuffer6[i]=iBands(NULL,0,21,2,0,PRICE_CLOSE,MODE_LOWER,i);
ExtMapBuffer7[i]=iBands(NULL,0,21,3,0,PRICE_CLOSE,MODE_LOWER,i);
// ExtMapBuffer8[i]=iMA(NULL,0,14,0,MODE_LWMA,PRICE_WEIGHTED,i);
}
ラインは、7本使うので最後の1行はコメントアウトしています。
ボリンジャーバンドの3θ、2θ、1θを上下1本ずつ、合計6本と中央に移動平均を引くので、合計7本です。
このように、メタトレーダー標準の関数の値を代入するだけで、お手軽にいろいろな線を引くことができるテンプレートとなっています。
標準では、メインウィンドウへ書きますので、現在のレートに近い値を代入しないと表示できません。
※範囲外になってしまうので。。。
のようにコメントを変更してください。
ちなみに以下のように書き直すと、RSIが表示できます。
このように、比較的簡単にいろいろな指標を表示できます。
次回から、このテンプレートを使って遊んでみたいと思います。
タグ
2009年05月19日
コメント&トラックバック(1)
| トラックバックURL
|
カテゴリ: インジケータ メタトレーダー入門 簡単インジケータ作成テンプレート


![[image]投資で失敗しない7つの法則:無料CDプレゼント](http://www.affiliatecenter.jp/invest/img/FX_freeCD/banner165x100seven_rule5e.gif)
![[image]無料レポートプレゼント:ドルが紙くずになった時に資産を守る方法](http://www.affiliatecenter.jp/invest/img/dollar/MNL4_165x100.jpg)



MyBlog
