私はこの小さな機能を持っているので、機能の一部だけが自分の条件に一度に従います。MQL4:私のif/else ifループの半分だけが現在の実行につながります
bool trend()
{
//is there a trend?
close1 = iClose(NULL,0,1); //vars
close2 = iClose(NULL,0,2);
close3 = iClose(NULL,0,3);
open1 = iOpen(NULL,0,1);
open2 = iOpen(NULL,0,2);
open3 = iOpen(NULL,0,3);
if(close3 > open3 && close2 > open2 && close1 > open1)
{
return(true); //uptrend
}
else if(close3 < open3 && close2 < open2 && close1 < open1)
{
return(false); //downtrend
}
else return(EMPTY_VALUE);
}
これは、関数がint型の開始()、私の売りシグナルは、以下の条件を動作しますが、買いシグナルが条件に従わない上に書いたよう
trending = trend();
if (trending == true) Order = SIGNAL_BUY; // Rule to ENTER a Long trade
if (trending == false) Order = SIGNAL_SELL; // Rule to ENTER a Short trade
の下で、呼び出される方法です私は彼らがどのように引き起こしているのか理解できません。
「else return(EMPTY_VALUE);」を削除すると、買い注文は条件に従い始めますが、売り注文はもはや条件に従わなくなります。壊れた売り注文は、壊れた買い注文があったように見える。
私の機能がこのように動作する理由は何ですか?ありがとう!
感謝を。列挙型は動作できませんでしたが、関数をintに変換して各可能性の値を返すことで、より解決策が思いつきました。 – Jacket