Shortened conditions check is now used in logical operations, unlike the old MQL4 version where all expressions have been calculated and the check has been performed afterwards. Suppose there is a check of two conditions with the use of logical AND
if(condition1 && condition2)
{
// some block of operations
}
というのも、何らかの理由で(おそらくバグ)配列が初期化されないからです。
今のところ、'T3MA'と'HMA'の値を取得していません。
おそらく、このEAではこの2つの指標を使用しているので、これが原因で注文が開かないのだと思います。
それとも、EAに何かミスがあったのでしょうか?
今のところ、「T3MA」と「HMA」の値は取得できていません。
もう言っただろ
何らかの理由(おそらくバグ)で配列が初期化されていないためです。
おそらく、このEAでは、これらの指標の両方が使用されているため、注文を開くことができないのはこのためです。
多分、多分、多分、可能、可能性、合理的、などなど。
それとも、EAで何かミスをしたのでしょうか?
そんなことはないだろう
はい、その通りです。でも、どうして?
SDCの言うとおりにコンパイルしたところ、エラーやワーニングが「0」でした。
では、B-600+にアップグレードするにはどうしたらいいのでしょうか?
HMA.mq4はバグがあるので、init()のこの行を変えてください。
までこのEAは、'T3MA' と 'HMA' の両方が正常に動作している Build 509 でさえ、どの取引も開いていません。
では、何が原因なのでしょうか?
T3MA.mq4で同様のバグがあり、.MA.mq4に変更する。
これらは、コンパイラが捕捉できない論理的なバグである。
これらのバグはbuild 509で既に存在していますが、SetIndexBufferがfalseになる可能性はほとんどないため、問題にはなりません。今回の変更 で問題になっています.
Shortened conditions check is now used in logical operations, unlike the old MQL4 version where all expressions have been calculated and the check has been performed afterwards. Suppose there is a check of two conditions with the use of logical AND
条件式1が falseの 場合、条件式2の 計算が行われず、false && trueの 結果がfalseと なる。
T3MA.mq4で同様のバグがあり、.MA.mq4に変更する。
これらは、コンパイラが捕捉できない論理的なバグです。どうもありがとうございました。
はい、これらはバグであり、現在動作しています。)
これらのインジケータが動作しているにもかかわらず、EAが全く注文を開かない理由を見てもらえますか?
よろしくお願いします。
これらのインジケータが動作しているにもかかわらず、EAが全く注文を開けないのはなぜか、見てもらえますか?
EAのコードを表示してください。
EAコードを表示する
ここにあります。
iCustom
指定されたカスタムインジケータを計算し、その値を返します。
double iCustom(
string symbol, // symbol
int timeframe, // timeframe
string name, // カスタムインジケーターコンパイルプログラムのパス/名前
... // カスタムインジケータの入力パラメータ(必要な場合)
int mode, // ラインインデックス
int shift // シフト
);
パラメータ
シンボル
[インジケータを計算するデータ上のシンボル名。NULLは現在のシンボルを意味します。
タイムフレーム
[in] タイムフレーム。ENUM_TIMEFRAMESの列挙値のいずれかを指定することができます。0は現在のチャートのタイムフレームを 意味します。
名前
[in] カスタムインジケーターコンパイルされたプログラム名で、ルートインジケーターディレクトリ(MQL4/Indicators/)に相対するもの。もしインジケーターがサブディレクトリ、例えばMQL4/Indicators/Examplesにある場合、その名前は "Examples}indicator_name" と指定しなければ なりません(セパレーターとしてシングルではなく、ダブルバックスラッシュ "\" を指定する必要があります)。
...
[in] カスタムインジケータの入力パラメータをカンマ区切りで指定します。
入力されるパラメータとその順序は、カスタムインジケータの外部変数の宣言順序と型に対応していなければなりません。入力パラメータの値が指定されていない場合、デフォルト値が使用 されます。