MetaTraderを使ってFXの完全自動売買をしています。FX業者はBroco。
<< EA BuilderでEAを作った例(その2) | main | おそらく最も簡単なEAサンプル >>
スポンサーサイト

一定期間更新がないため広告を表示しています

| スポンサードリンク | - | | - | - | pookmark |
[EA Tip 2] バーが更新するときだけ1回実行する

EAをチャートに張り付けると、MetaTraderは、AskやBidの値が変動するたびにそのEAを呼ぼうとします。そして、他のEAが稼働していなければ、そのEAは実行されます。

でも、例えば1hr足のチャートで、バーが変わったときだけ計算すれば充分なときなんかは、普段は余計なことをせずさっさとそのEAを終わらせ、PCに他の処理をさせたほうが有利です。

そんなときは、以下のようにします。

(1) start()関数の外側でdatetime型変数を定義しておく

(2) start()関数の最初の部分で、さっきのdatetime型変数とTime[0]を比較する

(3) もしTime[0]と同じなら、何もしないでreturn(0)

(4) さきほどのdatetime型変数に、Time[0]を代入する

サンプルを見たほうが分かりやすいです。ここではdatetime型変数の名前をbartimeとしました。
 

datetime bartime=0;


int start()
{
  if (bartime==Time[0])
  {
    return(0);
  }
  bartime=Time[0];

  // あとは通常処理

  //
}


これで、バーが変わった直後だけ(例えば30分チャートならば、×時00分、×時30分だけ)通常処理をしてくれます。現在の始値を使いたいとか、1本前の終値を使うときなども、この方法は有効です。

但し、この方法では、バーが変わったときしか仕事をしません。当たり前ですが。
スキャルピングやブレイクアウト等、シフト0のバー(つまり現在変動中のバー)を常にAsk/Bidを監視していたいときは、この方法は使えません。
儲けるチャンスをみすみす逃してしまいます。


にほんブログ村 為替ブログ FX システムトレード派へ
にほんブログ村

FXランキング
FXランキング

人気ブログランキングへ
人気ブログランキング

| ☆のんき☆ | EA作成Tips | 22:24 | comments(0) | trackbacks(0) | pookmark |
スポンサーサイト
| スポンサードリンク | - | 22:24 | - | - | pookmark |









http://nonki777.jugem.jp/trackback/18
CATEGORIES
CALENDAR
SMTWTFS
    123
45678910
11121314151617
18192021222324
252627282930 
<< June 2017 >>
おすすめリンク
PROFILE
SELECTED ENTRIES
ARCHIVES
RECENT COMMENTS
RECENT TRACKBACK
クリックお願いします
カウンター
SPONSORED LINKS
MOBILE
qrcode
RECOMMEND
このページの先頭へ