ここでは、「自動売買チャンピオンシップ2007」で第5位に入賞し3ヶ月弱で$10000を約3.7倍にしたzyx40さんが使用したEAの基となったEAを紹介します。
今回紹介するEAが入っている【Zyx40.zip】をダウンロード
そのままでは、少し読みづらいので、シンプルなコードに変更したEAでコード解説していきます。
今回解説するEA【Zyx40_mod01.mq4】をダウンロード
コード解説
上から順に見ていきます。
外部パラメーター
パラメーターは次の通りです。それぞれの設定値が何に使用されるかは、大体の見当をつける程度でよいと思います。ちなみに時間設定はODLのサーバー時間での時間だそうです。
extern int TakeProfit_L = 40; extern int StopLoss_L = 133; extern int TakeProfit_S = 27; extern int StopLoss_S = 200; extern int TradeTime = 18; extern int t1 = 7; extern int t2 = 2; extern int delta_L = 9; extern int delta_S = 10; extern double lot = 0.1; extern int Orders = 1; extern int MaxOpenTime = 138;
グローバル変数
グローバル変数cnatradeは、のちほど分かりますがトレード許可判定に使用されています。
bool cantrade = true;
取引注文用関数
ユーザー関数OpenLong()
OpenLong(ロット数) と実行すると、指定したロット数で買い成行注文をするユーザー関数を作っています。
void OpenLong(double volume = 0.1) { int slippage = 10; double sl = Ask - StopLoss_L * Point; double tp = Ask + TakeProfit_L * Point; string comment = "20/200 expert v2 (Long)"; color arrow_color = clrBlue; int magic = 0; int ticket = OrderSend(Symbol(), OP_BUY, volume, Ask, slippage, sl, tp, comment, magic, 0, arrow_color); }
ロット数の指定がない場合は、デフォルト値の0.1ロットで注文します。
ユーザー関数OpenShort()
OpenLong()関数の売り注文バージョンの関数です。
void OpenShort(double volume = 0.1) { int slippage = 10; double sl = Bid + StopLoss_S * Point; double tp = Bid - TakeProfit_S * Point; string comment = "20/200 expert v2 (Short)"; color arrow_color = clrRed; int magic = 0; int ticket = OrderSend(Symbol(), OP_SELL, volume, Bid, slippage, sl, tp , comment, magic, 0, arrow_color); }
あとがき
次回は、start()関数の中身を見ていきます。
すいませんメタトレーダー初心者ですが
EAはどこのファイルにダウンロードして
どのように起動させるのか解りません
初心者のくだらない質問ですが
よろしかったら教えてください
信長さん、こんばんわ。
記事の中で説明すべきでしたね。ゴメンなさい。
普通にMT4をダウンロードした場合は、MT4のフォルダがマイコンピュータ→ローカルディスクC→Program Filesの中にあると思います。
そのMT4のフォルダの中にexpertsというフォルダがあり、その中に入れて下さい。
その後MetaEditorで、ダウンロードしたmq4ファイルを開いて見てください。コードが見れると思います。
そこで、コンパイルボタンをクリックすると同じexpertsフォルダ内に同じ名前のex4ファイルが作られます。
これでMetaTraderで使えるようになります。
また、わからないところがあったら聞いて下さいね。
うーん、これは
191位の500117 autoforexさんのコードですよね?
そうみたいですね。
教えてくださって、ありがとうございます。
さっそく、訂正しますm(..)m
やり方わかりました
丁寧に教えてくださりありがとうございました
ランキングから来ました。
とても勉強させていただきました!
次の記事も楽しみにしてます。
信長さん、おはようございます。
信長さんのおかげで【完全自動売買への道のり】の記事を増やすことができました。ありがとうございます。
ps
名前がいいですね。MT4でもトップトレーダーになれそうです。
私は、傾き通します^^;
jpyuserさん、おはようございます。
次の記事はいよいよ戦略部分です。
作成中なのでもうしばらくお待ちくださいね!
慶次さん、MetaboNewNiceRCIを作っていただきありがとうございました。
お礼の連絡がおそくなってすみません。
>RCIとの相性は若干薄いのではといったところです。
そうですか~。残念です。
今、私が思っていることは、平均移動線を見てトレンド方向のみにのる方法です。
100日、300日平均移動線とボリンジャー20日線が同じ方向のみエントリー。
エントリー位置は価格が20日移動線に触れてシャフが規定値だったらエントリーです。
いわゆる押し目買いだと思います。
20日線の角度により、エントリーするか見送りか決める。
これって、簡単に作れますかねえ?
自分で作ろうと考えたみたものの、チンプンカンプンでした?
エントリー回数はすくないかもしれませんが、
複数通貨エントリーすれば、回数は増えるかも?
なお、エントリー判断の20日線の角度の数値は後から変えられるようにできればうれしいです。
いつも、お願いばかりですみません。
慶次さん、前回はアドバイスを有難うございました。私なりに調べてみたのですがやはり慶次さんのおっしゃられる通りOSのメモリーが原因のようです。本当に本当にいろいろありがとうございます。慶次さんのブログがMT4を前向きにきわめようしている皆さんの強い味方になっているみたいでとてもうれしいです。またこれからも勉強させて下さい。宜しくお願いします。
>幸さん
こんにちわ。
MetaboNewNiceはボラが重要みたいですね。
バンド幅40以上で時間枠を指定だとうまくいくパターンがありました。
今回の幸さんの戦略は年明けにやってみますね。
>MIKIさん
こんにちわ。
私も、USDJPYの過去のデータを取り込んだMT4のUSDJPYのバックテストでは、たまにメモリ不足になります。そんなときは、30分ほど何も触らずにほったらかしにすると計算が終わっているときがあります。(エラー画面がでたら計算されませんが^^;)
また、困ったことや分からないことがあったら何でも聞いてくださいね!
お世話になります。MT4がんばって勉強中です。ところで教えていただきたいことがありますがMT4フォーラムのForex TSDですが
ログインするためにメンバー登録をしたいのですがPassword記入のところでけられて登録出来ません。ログイン方法を教えていただけないでしょうか。
wanさん、おはようございます。
Password記入をユーザーネームと違うもので半角英数字6文字前後を使用してみてください。私はそれで登録できました。
それでもダメな場合、Password記入のところでどのような注意がでるか教えていただけますか?