メール機能を追加する方法

メール機能を追加する方法



今回は、メール機能を追加する方法の基礎の部分です^^

その前に、MT4のツール→オプション→E-メールで
有効にするにチェックし、各項目に必要事項を入力してください。


メールを送信するには、

SendMail( 題名, 本文) ;

というようにSendMail関数を書いてあげましょう。


今回は、練習として
新たな足がでたら、メールする。
メールは3回まで。
題名を【Test】
本文を【通貨ペア 足の番号】
というようにしましょうか。

でわ、早速

extern int MailCount=3;

int bar,cnt;


として、
メール発信する回数をパラメータ用整数変数 MailCount として
初期値を3としてあげましょう。
そして、記憶用整数変数 bar と cnt として、
現在の足の番号、メール送信した回数を代入するため宣言します。

次に start() 関数の{}内に


if(Bars>bar && MailCount>cnt)
{
SendMail("Test",Symbol()+" "+Bars);
bar=Bars;
cnt++;
}

としてあげましょう。

これは、

もし、足の番号がbarより大きくて、cntがMailCount未満の場合

   題名 Test
   本文 通貨ペア名 足の番号
   のメールを送信。
   barに現在の足の番号を代入。
   cntに1を足す。

といった感じの意味です。

これで、足が変わるたびにメールを送信し、MailCountで設定した回数に達したらメール送信は終わります。


こんな感じで、条件が揃ったときだけメールを送るというコードを
インディケータなどに組み込むこともできますね^^

いろいろ試してみてくださいね!

でわこのへんで^^

2009年5月 2日|コメント (13)

カテゴリー:EAの作成方法

コメント (13)

はじめまして。
まだEAをかじって間もない初心者です。

慶次さんのブログ本当に助かります。
勉強になります。

そこで、質問?といえば厚かましいのですが、
「エントリーして足が何本経てば決済する」
というような決済方法はどのような考えをすればよいのでしょうか。
いろいろ調べてみたりするのですがわかりません。

よろしくお願いします。

投稿者:META4" |2009年5月15日 12:41

META4"さん
こんにちわ!

今回の記事のように、エントリしたときにバーの番号を記憶させ、
バーの番号が、その記憶したバー+何本以上となったら、
決済するという文でできると思いますよ^^

投稿者:慶次 |2009年5月15日 13:26

慶次さん、こんにちは。

アドバイスありがとうございます。
何とか解決できそうです。

それにしても、プログラムにはわからない単語ばかりで初心者には大変です。

これからも、いろんな記事
よろしくお願いします。

投稿者:META4" |2009年5月15日 17:53

META4"さん
こんにちわ!
解決できそうでよかったです^^

最初はわからない単語がたくさんですが、
慣れてくると楽になりますので、がんばりましょうね!

投稿者:慶次 |2009年5月15日 23:16

お世話になっております。
return(0);
の使い方が良くわからないので質問させていただきます。
メタトレーダー入門という本の説明ではstart関数を終了する時に書くとの事ですが
start関数を終了するとはどういう事なのでしょうか、
今私が想像しているのは、価格が動くたびにstart関数を読み込んで、start関数の中身が司令塔になり、start関数外のプログラムを呼び出すという事でしょうか、
たとえば
if ( Volume[0] > 1 || IsTradeAllowed() == false )
{
return( 0 );
}
という文がstart関数内にあったら、適用している時間足出来高が0か1のときだけこの文の下にある文を実行する。出来高が2以上の時はstart関数を終了して、次の価格が動くとまたstart関数が読み込まれるという事でしょうか、
また、プログラムとは上から順に読まれていく物なのでしょうか?

投稿者:kakaka |2009年6月25日 01:14

kakakaさん

こんにちわ!
kakakaさんの解釈はあってると思いますよ^^

本に書かれている内容につきましては、著者さんに聞くのが一番いいかと思います^^;

投稿者:慶次 |2009年6月25日 10:19

sendmail()関数が面白そうで実験してみました。
設定をいろいろ変化させて試みましたが

操作履歴に mail: not enough space for "Test"

と表示されてうまく動きません。
121証券に聞いても設定に誤りはないので信号は通りますと回答される
だけで前に進みません。

ちなみに以下のような設定です。

EAを有効にして Allow live Tradingにチェックを入れて
ニコちゃんマークがスマイルに変化するのを確かめました。

ツール -> オプション -> E-メール で
「有効にする」にチェックを入れました。

SMTPサーバー: pop.mail.yahoo.co.jp
この後ろに:587と入れると全く受け付けてもらえないので消しました。

SMTPログインID: 私のID

SMTPパスワード: POPのパスワードと同じものを入力

発信元: 私のPCのアドレス

送信先: ケータイのアドレス 駄目でした
     私のPCのアドレスに変えても 駄目でした

「TEST」をチェック

まだ駆け出しなので理由が分からないので解決方法にたどり着けません。
どうしたらよいのでしょうか?

少し道案内をお願いできますでしょうか。

投稿者:タカちゃん |2009年8月 8日 05:09

タカちゃんさん

こんにちわ!

TESTのメールは送られてきますでしょうか?
また、その他のメール機能つきEAやインディケータでも同様の状況でしょうか?

投稿者:慶次 |2009年8月 8日 17:49

おはようございます。

TESTメールは送られてこないで
操作履歴に mail: not enough space for "Test"
となります。

Indicator や EA でも同様の現象です。

そこで、メールアドレスを変えて、gmailを使ってみましたが
同じでした。

送信先をPCに変えても同じでした。

121証券から FXCM にデモ口座を変更しても変わりません。
このことから推察すると何か書き間違いが有ると思うのですが
理解できない状態です。

よろしくお願いします。


投稿者:タカちゃん |2009年8月 9日 05:24

タカちゃんさん

こんにちわ!
MT4を再インストールしてみてはどうでしょうか?

>操作履歴に mail: not enough space for "Test"
ということから、どこかメモリ一杯になっている感じですね^^;

投稿者:慶次 |2009年8月 9日 09:30

こんにちは

MT4を全部アンインストールして、 ブローカーをFXDDに変えて
デモ口座を開いてみました。

メールの設定は以前と同様にしました。

TESTメールを送りました。

結果は何の応答もありません。
操作履歴にも何も書き込まれません。

とても楽しみにして実験を開始したのですが 駄目なようです。

12:15にTESTを送って 13:10まで何も動きが見られないのは
駄目だったのでしょう。

どうも お手数掛けました。

ありがとうございました。

投稿者:タカちゃん |2009年8月 9日 13:11

タカちゃんさん

受け取り側の受信フォルダのデータを何件か削除して、
再度MT4を立ち上げテストしてみてください^^;

投稿者:慶次 |2009年8月24日 10:02

私も同様のエラーになりましたが、
インストールしたフォルダ直下のmailboxというフォルダの
内容を消したら送信されるようになりました。

その他色々触っていたので、これが当たりかは分かりません。

投稿者:huhu05 |2010年11月29日 19:16

コメントを投稿する

(初めてのコメントの時は、コメントが表示されるためにこのブログのオーナーの承認が必要になることがあります。承認されるまでコメントは表示されませんのでしばらくお待ちください)






画像の中に見える文字を入力してください。

Captchaの認証で入力ミスがありますと、コメントが消えてしまいますのでご注意ください。
コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。