EA稼働をしているとPCの前にいる時はいいですが、外出先でPCの無い環境の場合、MT4のメール送信機能が役立ちます。今回は実際に注文した際に、yahooメールより自分の携帯メールにその情報を送るやり方を書いてみたいと思います。

MT4のメニューより(バージョン:Build225)
ツール→オプション→Eメールタブを選択
・有効にするにチェック
・SMTPサーバー【smtp.mail.yahoo.co.jp:587】
・SMTPログインID【xxxxx】
・SMTPパスワード【ヤフーメールのパスワード】
・発信元【xxxxx@yahoo.co.jp】
・送信先【自分の携帯メールアドレス】
※xxxxxには自分で取得したヤフーIDを入力

yahooメールのPOPアクセスを有効にすることと
携帯のPCメールを受け取れる設定も忘れずにしましょう。

設定後Testボタンを押し、
件名:Test message
本文:This is a test message.
という内容のメールがくれば成功です。

また、プログラムソース内部では、OrderSendの次の行に
買いの場合は
SendMail("Open Buy", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + "@"+DoubleToStr(Lots,2));
売りの場合は
SendMail("Open Sell", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + "@"+DoubleToStr(Lots,2));
と記述すれば注文後に、携帯にBuyとSell・通貨名・約定値・ロット数がメールで来るはずです。
Lotsはプログラム内のロット数を格納している変数で、各プログラムにより異なります。


3月はあまり動きが無く、取引量も大分少ない結果となりました。
先日ODLより「両建て規制」と「レバレッジ規制」のメールが来ました。
内容としては2010.7.5よりレバレッジが50倍に変更、2010.7.19から両建てを禁止するという内容です。
私のEAですが実は両建てします・・・・・(・_・;)
今のところ日本の法律で決まった事らしいので、今後他の日本ブローカーも規制を行うことでしょう。
しょうがないので、今のEAは

①両建て可能な海外ブローカーで使用する
②BUY専用口座とSELL専用口座の2口座で運用する
③両建てしないロジックに作り変える

のいずれかを検討しております。


2010.3月総合結果 \280,780


2010.3月結果(121証券) \93,600
MT4の自作EAで自動売買!!(FX自動売買システム)-201031-331(121)

2010.3月結果(ODL) \187,180
MT4の自作EAで自動売買!!(FX自動売買システム)-201031-331(ODL)

MQL4プログラムはメモ帳などのテキストエディタでも十分作成は出来ますが、デバッグを行なっていますと、実行途中の変数の値や、処理中の状態はソースのどの部分なのか、などが分かると非常に便利で修正もしやすいと思います。複雑なロジックを調べる際は非常に重要です。

あいにくこの辺の機能が、今のメタエディタには実装されておらず、C++やjavaのような統合開発環境が整っておりません。(やり方があるかも知れませんが、私は知りません)

そこで、プログラム中で調べたい箇所に、その時点での変数や状態を表す説明文を書いておき、ログファイルとして吐き出す為の関数を紹介します。(Print関数やComment関数を使う方法もありますが・・・)

こうしておくと、このループは通ったけどこっちのループは通っていないなどの、プログラムがどのように流れていくかが把握しやすいです。

ソースの最後などに下記をコピペ↓


void Write(string str)
{
string Filename = "aaa.txt"; //ここはEA名などのお好きなファイル名(start関数の前に書くとスマートです)

  int Handle;

Handle = FileOpen(Filename, FILE_READ|FILE_WRITE|FILE_CSV, "/t");
if (Handle < 1){
Print("Error opening audit file: Code ", GetLastError());
return;
}

if (!FileSeek(Handle, 0, SEEK_END)){
Print("Error seeking end of audit file: Code ", GetLastError());
return;
}

if (FileWrite(Handle, TimeToStr(CurTime(), TIME_DATE|TIME_SECONDS) + " " + str) < 1){
Print("Error writing to audit file: Code ", GetLastError());
return;
}

FileClose(Handle);
}


プログラムの調べたい箇所に下記をコピペ↓(Comment関数のように+で変数名を繋げたり出来ます)


Write("処理1");//ログ出力(""の間の文字列は分かりやすい説明に直して下さい)


これで、テスターモードの時は、

C:\Program Files\MT4(ブローカーにより違う名前)\tester\files 以下に、

実稼動の時は

C:\Program Files\MT4(ブローカーにより違う名前)\experts\files 以下に

ログファイルが作成されるはずです。

色々いじって試してみて下さい!!

先日いつもの如く情報収集をしていて、便利なサイトを発見しました。

メタシス・シーカー

私は今までgoogle翻訳で、本家サイトの翻訳版を見ておりましたが、やはり専門用語は変な日本語になってしまい、その度に手間がかかっておりました。
このサイトはその辺もちゃんと翻訳してありました。
これでソース解析やコーディングが今までより楽になりますね(o^-')b

2月は全体的に取引数が少なかったですが、今のところ安定して利益がでています。

このEAはUSD/JPYで取引しておりますが、別通貨ではまだ試しておりません。

そこで、今後リスクヘッジの為に他通貨での取引でも通用するか、テストしようと思っております。

いい通貨ペアがあれば、その情報も掲載したいと思います。


2010.2月総合結果 \704,295


2010.2月結果(121証券) \264,475
MT4の自作EAで自動売買!!(FX自動売買システム)-201021-228(121)

2010.2月結果(ODL) \439,820
MT4の自作EAで自動売買!!(FX自動売買システム)-2010131-228(ODL)