エラー、バグ、質問 - ページ 1395

 
Anatoli Kazharski:

こんな風に試してみてください。

そこに空の値があっても、グラフの最初にランダムな値が残っていても、関係ないのです。重要なのは、バッファ2には0から-5までの値がありますが、DRAW_NONEであり、最小目盛り値0が設定されているため、チャートには表示されないという点です。

この状況でMT4は0からウィンドウ内の最大バッファ値まで正しくスケーリング しましたが、MT5は最小値(0ではなく-5)から0.0605のような最大値までスケーリングし、上から10%のようなものを追加して完全にスケールを壊しています。

 
Ilya Malev:

空の値が何であるか、グラフの最初にランダムな値が残っているかどうかは関係ない。重要なのは、バッファ1には0から-5までの値がありますが、DRAW_NONEで最小目盛り値0が設定されているため、チャートには表示されないという点です。

この状況でMT4は0からウィンドウ内の最大バッファ値まで正しくスケーリング しましたが、MT5は最小値(0ではなく-5)から0.0605のような最大値までスケーリングし、上から10%のようなものを追加して完全にスケールを壊しています。

そんなことはありません。空値はゼロではありません。何でもいいし、誰でもいいんです。
 
Ilya Malev:

空の値が何であるか、グラフの最初にランダムな値が残っているかどうかは関係ない。重要なのは、バッファ2には0から-5までの値がありますが、DRAW_NONEで、最小目盛り値0が設定されているため、チャートには表示されないということです。

この状況でMT4は0からウィンドウ内の最大バッファ値まで正しくスケーリング しましたが、MT5は最小値(0ではなく-5)から0.0605のような最大値までスケーリングし、上から10%のようなものを追加して完全にスケールを壊しています。

ところで、表示されないバッファー値でチャートを拡大縮小するのはなぜですか?
 
Karputov Vladimir:
そんなことはありません。空値はゼロではありません。何でもいいし、誰でもいいんです。

buffer2[i]=-MathRand()%5 の行に変更してみてください。*ポイント(); " そして、この例でスケールがどのように変わるかわかると思います。これは、この場合、履歴の最初の要素を埋めても、スケーリングに影響がないことを証明している。Pointを掛けると揃うからです。

 
Anatoli Kazharski:
ところで、なぜ表示されていないバッファの値でチャートをスケーリングする必要があるのでしょうか?

いい質問ですね。まさにその通りです。バッファがDRAW_NONEとして宣言されている場合、なぜMTはそのようなスケーリングを行うのでしょうか?

MT4でもそうでしたが、indicator_maximumとminimで制限された表示範囲内にそのバッファの値がある場合のみでした。また、MT5では、制約条件外の値もスケーリングの式に含まれます。

 
Ilya Malev:

buffer2[i]=-MathRand()%5 の行に変更してみてください。*ポイント(); "をクリックすると、この例ではスケールがどのように変化するかを見ることができます。これは、この場合、履歴の最初の要素を埋めても、スケーリングに影響がないことを証明している。Pointを掛けると揃うからです。

あなたの例は曲がっていて、それを直そうとはしない。修正したら確認します。
 
Ilya Malev:
いい質問ですね。まさにその通りです。

コードの中にあるんでしょ?

buffer2[i]=-MathRand()%5;

そこに書かれていることが、あなたの手に届くものなのです。表示されないバッファのために、こんなことをする意味があるのだろうか。ということを聞いていたんです。))

 
Anatoli Kazharski:

書かれていることが、そのまま私たちの手に届くのです。表示されないバッファのために、こんなことをする意味があるのだろうか。ということを聞いていたんです。))

そう、だから端末がやるときはOKで(DRAW_NONEで値でスケールし、indicator_minimum表示閾値よりさらに低い - 少なくともMT4では適切だった)、ユーザが表示(DRAW_NONE)せずに自分の任意の値をバッファに設定するとNG(保つようでさせない、ユーザがなぜそれを必要とするかを誰が気にするか)なんです。

理由は簡単で、これらの属性は、トレーダーが分析に必要とする、チャート内のバーの重要な数値属性を表示するものだからです。つまり、トレーダーが使用し、Expert Advisorが使用するものである。

 
Ilya Malev:

そう、つまり、ターミナルがそれを行うときはOKで(DRAW_NONEで値によってスケールし、さらにindicator_minimum閾値より小さい - 少なくともMT4では適切だった)、ユーザーが表示(DRAW_NONE)せずに自分の任意の値をバッファに設定すると、それはOKではない(保つとさせない、誰がユーザーがなぜそれを必要とするかを気にしないように?)

これらの属性は、トレーダーが分析に必要とするバーの重要な数値属性をデータウィンドウ に表示するためである。

まあ、正常とか異常とか言ってないんですけどね。ただ、なぜそうするのかが不思議でした。)

表示されない(DRAW_NONE)バッファは、スケール計算に関与しない方が良いと思います。

このエラーをservicedeskに報告して、そこで対応を待ってみてはいかがでしょうか。

 
Anatoli Kazharski:

まあ、正常とか異常とかいう話ではないんですけどね。なぜそんなことをするのかと。)

表示されない(DRAW_NONE)バッファは、スケール計算に関与しない方が良いと思います。

この例では、スケールがどのように機能するかを示すために、MathRandを作りました。原文では、あるトレーダーの著者の方法論を使って、そこに数値レベルの計算をさせていました。当初は1~5まで作りたかったのですが、MT4でもDRAW_NONEでバッファにそのような値を入れても適切なスケールを実現することができませんでした。それを負にして、最小 値を0に固定したら、問題は解決しました。MT5にインジケータを移植する際、この解決策も機能しないように見えました。Voldemarさんのおっしゃる通りPointを掛けなければなりませんでした。