MQL4の時間足、ローソク足で1回だけ計算させる

MQL4はC言語に近いので、プログラムをやったことがある人が参入すると
FX固有の問題にぶつかります。その1つとしては時間足、あるいはローソク足という概念を無視してロジックを作成すると時間足が終わるまでエントリーを繰り返してしまうということです。

始値でのみ

 
始値でのみロジックの計算をしてエントリーする、その後次のローソク足までは停止させると軽くなり、同じローソク足の時間内に計算を繰り返し、かつ注文を大量に出すことはなくなります。

 

目次
1. Bars
2. Volume[]関数

Bars

int Bars
Barsは現在チャートのバーの総数なので時間足が進むとカウントアップします
同じ時間足内、ローソク足では総数は変わらないということを利用します。

Barsを以下のように使うと簡単に解決できます。

Volume[ ]関数

Volume[ ]関数を使う方法があります

long Volume[]

これは現在のBarのtick出来高を格納されるのでバーの最初では1になるということを利用しています。

例えば、これはMT4にあるMoving Average.mq4のある箇所ですが、Volume[ ]が例として使われています。

ただ、これは1以上の値が返ってくる可能性があるということで、あまりお勧めできないわけで
Barsを使うのが穏当です。