string counts;
void _a()
{
counts += "a - " + IntegerToString( ObjectsTotal( OBJ_ARROW ) );
//---return;
}
void _b()
{
counts += " - b - " + IntegerToString( ObjectsTotal( OBJ_ARROW ) );
//---return;
}
Print( counts );
// while 1st loop: a - 2 - b - 4// while 2nd loop: a - 2 - b - 4a - 2 - b - 4// while 3rd loop: a - 2 - b - 4a - 2 - b - 4a - 2 - b - 4a - 2 - b - 4// and so on...// But I like only 1st loop results even that loop runs 10 thousand times
OnCalculate
OnCalculate()関数は、Calculate イベントによってインジケータ値を計算する必要がある場合にのみ、カスタムインジケータで呼び出されます。
これは通常、インジケータが計算されるシンボルに対して新しいティックが受信されたときに発生します。
このインジケータは、このシンボルのどの価格チャートにも添付する必要はありません。
OnCalculate()関数の戻り値はint型でなければなりません。 2つの定義が可能です。1つのインジケータ内で、この関数の両方のバージョンを使用することはできません。
最初の形式は、単一のデータ・バッファで計算できるインジケータを対象としています。このようなインジケータの例として、カスタム移動平均があります。
intOnCalculate(constint rates_total,// price[] 配列の大き さ)
constint prev_calculated,// 前の呼び出しで処理されたバー
constint begin,// 重要なデータの開始位置
constdouble& price[]// 計算する配列
);
OnCalculate
OnCalculate()関数は、Calculate イベントによってインジケータ値を計算する必要がある場合にのみ、カスタムインジケータで呼び出されます。
これは通常、インジケータが計算されるシンボルに対して新しいティックが受信されたときに発生します。
このインジケータは、このシンボルのどの価格チャートにも添付する必要はありません。
OnCalculate()関数の戻り値はint型でなければなりません。 2つの定義が可能です。1つのインジケータ内で、この関数の両方のバージョンを使用することはできません。
最初の形式は、単一のデータ・バッファで計算できるインジケータを対象としています。このようなインジケータの例として、カスタム移動平均があります。
intOnCalculate(constint rates_total,// price[] 配列の大き さ)
constint prev_calculated,// 前の呼び出しで処理されたバー
constint begin,// 重要なデータの開始位置
constdouble& price[]// 計算する配列
);
("Lag "という言葉を使いますが、これは価格変動、注文の開始、終了の遅れを意味し、たった一言で私のMT4プラットフォームはダウンしてしまいます)
私のカスタム インジケータには、以下のような関数を使っています。
以下のコードを カスタムインジケータに 書くと、私のカスタムインジケータはラグを開始します。しかし、正しく動作しています。
また、以下のコードを 記述した場合、私のカスタムインジケータは、私が望むように正しく動作しません。つまり、MAクロスのフェイク 中に "矢印 "が前のMAクロスポイントに戻りません。
Q: このような場合、どうしたらよいでしょうか?
よろしくお願いします。
はい、これです。
ありがとうございました。
OK!ありがとう!
もっと明確な回答が必要です。
ありがとうございました。
回答は: 現在の MAクロスと前回の MAクロスの両方をチェック します。
#バッファ (array out of range in ) - Closed
#カスタムインジケーターが遅延している - Closed
#ループの最初の結果 - 開く
よろしくお願いします。