MT4のEA作成について質問です。 条件文において、 「2本前が条件満たさず、1本前…

MT4のEA作成について質問です。
条件文において、
「2本前が条件満たさず、1本前で条件満たして」
とする場合には、どのようにすればよいでしょうか。

例えば、1本前が21SMA>84SMAのとき、ロングエントリーとする条件文にする場合、
条件満たした以降、毎足サインが出続けることになるので、
2本前は条件満たしていないことを指示したいです。
上記の例では、2本前が21SMA<=84SMAとすれば
良さそうですが、条件が何通りもある場合は
反対条件も何通りも指示を出さなければなりませんよね?
やはりそうするしかないのでしょうか?
それとも2本前が1本前の条件を満たさないとする
都合のいい条件文があるのでしょうか?
お手数おかけしますが、ご教授のほどよろしくお願いいたします。

回答1

毎回の判定結果を覚えておき前回の判定結果はそのまま使い、新しく計算で求めた今回の判定結果とをANDで結べばいいのではないでしょうか?

たとえばこんな感じです。

bool uptrend, mae_no_uptrend;
double sma21, sma84;
~~~~~~~~~~~~~~~

sma21 = iMA(xxxxx); sma84 = iMA(xxxx); // SMAを計算

if (sma21>sma84) uptrend = true; else uptrend = false; // 判定が複数あるならifの条件を増やす

if (!mae_no_uptrend && uptrend) { // golden cross
— longの処理 —
}
else if (mae_no_uptrend && !uptrend) { // dead cross
— shortの処理 —
}
mae_no_uptrend = uptrend; // 次回の判定のために記録

コメントを残す

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

CAPTCHA