MT4メタトレーダー4のEAプログラムで例えば、1時間足において移動平均線20SMAを…

現在値が上抜けたら買いエントリーというふうにティック単位のプログラムはできますか?

要するに1つ前のティックはSMAの下で現在のティックがSMAの上で買いエントリーの記述が分かる方いらしたら教えてください。

よろしくお願いいたします。

回答1

一つ前のTickを得る関数というのは残念ながらありません。
ですので、staticな変数を使います。
普通の変数だとあたらしいTickが入るたびに変数の値が定義しなおされ、リセットされてしまいますが、staticにすると前回の値を覚えてくれています。

static double before_tick; と変数を定義しておきます。

SMAという変数も定義しておき、移動平均線20SMAの現在値を入れておきます
if ( before_tick < SMA && SMA < Close[0] )
これで、一個前のTickで入ったbefore_tickがSMAより小さくて、SMAより現在値が大きければ真という条件式ができます。

あとは文末に before_tick=Close[0]; を入れます。
条件式よりも前に入れると、現在値がbefore_tickに入ってしまって、絶対に成り立たない条件になるのでその点だけ注意してください。

Static、ぜひ習得してください。
(これだけだと予期しない動作をするはずですが、ここから先は自分で考えてください)

回答2

標準で最初からついてるEAがまさにその動きです。
但し、tick単位ではなく、現在足と直前足です。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA