- ベストアンサー
MT4にて一定時間内においての取引数を制限させる
MT4にて一定時間内においての取引数を制限させる プログラムを作成したいのですが、 ネットを検索しても良い文例が見つかりません。 例えば、 「過去24時間内で取引10回まで」 といったプログラムを作りたいです。 当方、初心者のためEA作成には自信がないため、 どなたか教えて頂ければ幸いです。 よろしくお願い致します。
- みんなの回答 (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に戻るため、再度エントリーできるというわけです。 現在、手元にメタトレーダーがないので、プログラムチェックができませんので、ひょっとしたらミスがあるかもしれません。ご自身でチェックしてください。
お礼
丁寧なご回答ありがとうございます! 質問の意味が分かりづらく申し訳ありませんでした。 解釈のとおり、「1日10回まで」という例えで質問しております。 今週末にでも実際にやってみたいと思います! 結果はまた回答致します!