旅人が教える「旅に出たくなる映画」

MT4にて一定時間内においての取引数を制限させる
プログラムを作成したいのですが、
ネットを検索しても良い文例が見つかりません。

例えば、
「過去24時間内で取引10回まで」
といったプログラムを作りたいです。

当方、初心者のためEA作成には自信がないため、
どなたか教えて頂ければ幸いです。
よろしくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

>「過去24時間内で取引10回まで」



この意味がよくわからないのですが、「一日10回まで」ということでしょうか。

いろんなやり方があると思いますが、スタティック変数を利用すればうまくやれると思います。たとえば、スタート関数の中に、

static int TradeCnt = 0; として、トレード回数を表す変数を宣言します。staticと書くのはティックが変わっても変数が初期化されずに以前の数値をそのまま保持するためです。

次に、

if(TimeHour(CurTime())==00 && TimeMinute(CurTime())==00) TradeCnt = 0; と書きます。この文の意味は、「もしも、チャート上の時刻が00時00分ならば、TradeCnt変数を0にもどす」です。


あとは、エントリー条件を記述するときに、

if(TradeCnt<10 && …)
{
OrderSend(…);
TradeCnt++;
}

とします。この記述の意味は、「もしもトレード回数が10回未満ならばエントリーをする」「エントリーをしたら、TradeCnt変数を1つずつ加算する」ということです。

まとめると、トレードをするたびにTradeCntが一つずつ増えていき、10回目に到達すると、エントリーしなくなり、チャート時刻によって日付が変わると、TradeCntが0に戻るため、再度エントリーできるというわけです。

現在、手元にメタトレーダーがないので、プログラムチェックができませんので、ひょっとしたらミスがあるかもしれません。ご自身でチェックしてください。
    • good
    • 1
この回答へのお礼

丁寧なご回答ありがとうございます!

質問の意味が分かりづらく申し訳ありませんでした。
解釈のとおり、「1日10回まで」という例えで質問しております。
今週末にでも実際にやってみたいと思います!

結果はまた回答致します!

お礼日時:2010/06/15 21:52

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QMT4で時間を指定するにはどのようにすれば良いでしょうか。

MT4で時間を指定するにはどのようにすれば良いでしょうか。

例えば、取引を日本時間で午前9時から午後3時の間に指定して、午後3時の時点で建て玉があった場合は手仕舞いできるようにしたいのです。

MT4付属EAの、MACD Sampleで時間指定する場合は、どのようなプログラムをどの位置に書けば良いのでしょうか。

時間指定をいろいろ変えてバックテストを行ってみたいと思っています。

プログラムは、トレードスタジアムで少しやった程度ですので、MT4のプログラムは初心者のレベルです。よろしくお願いします。

Aベストアンサー

回答が大変遅くなってごめんなさい。

実は、私も悩んでいました。

MACDのサンプルプログラムを下の方までよく読んでみると、マジックナンバーが16384となっているので、これに統一しなければ決済されません。

よって、私が書いた最初の部分で、

# define MAGIC 0001

という部分を、

# define MAGIC 16384

としていただければ、うまくいくかと思います。

一時やってみてください。


人気Q&Aランキング

おすすめ情報