バグと機能障害 - ページ 2

 
angevoyageur:

ドキュメントに 記述されていること以外を期待する必要はありません。

インジケータのバッファの 数は、例えば コンパイラのディレクティブを使って あらかじめ宣言しておく必要があります。

#propertyindicator_buffers 3// バッファの
#propertyindicator_plots 2// プロット

プロットに使用されるバッファの数は、インジケーターの種類 に依存します。このタイプは動的に 設定することができます。そのため、コンパイラはバッファの正しい使用方法を決定する方法を持ちません。上記の宣言は、1バッファの2つのプロット、INDICATOR_CALCULATIONSの3つ目、または1バッファの1プロットと2バッファの1プロット、または...で使用することができます。

MQL5は非常に柔軟性があり、バッファとインジケータを論理的に結びつけるのはあなた次第です。これはバグでは ありません。

これはバグではなく、機能障害です。

プラグマという考え方は理解できますが、#pragmaで宣言しても、「これはバグです。

#property indicator_buffers 3
#property indicator_plots   3

これは、3つのバッファと3つのプロットを使うという意味ではなく、最大3つのプロットと最大3つのバッファにリソースの使用を制限し、システムが私のインジケータの起動時にどれだけのメモリや他のリソースを確保すべきかを知ることを意味します。

最大値を宣言しても、実際の使用量は動的割り当てによって決定されます。
ですから、INDICATOR_CALCULATIONSバッファとしてインジケータバッファを 宣言したとき、私はそれがグラフに表示されることを期待していません

 
angevoyageur:

どのようなオブジェクトを描画しているのですか?最初はトレンドラインのように見えますが、2番目はアンカーポイントが 2つしかありませんね?

マグネットの感度はどのように設定されていますか?

これはフィボナッチ展開で、マグネットの感度は50に設定されています。しかし、20のような低い値では正しく動作しません。

また、トレンドラインのような他のタイプのオブジェクトも同様です。

 
graziani:

g #4

マグネット(ツール->オプション->チャート->マグネット感度)がローソク足で正しく機能していません。

選択されたポイントは典型的なローソク足のポイント(高値/安値/...)ではなく、その間のスペースに配置されます。

このため、1つのポイントを移動させると、1つだけを移動させたかったのに、他のポイントも移動してしまいます。

アンカー ポイントをドラッグしている間ではなく、アンカーポイントから手を離したときにのみスナップが働くと思います。 Ninjaなどでは動作が異なるのは知っていますが、MetaTraderではこれが通常の動作と思われます。
Documentation on MQL5: Standard Constants, Enumerations and Structures / Objects Constants / Methods of Object Binding
Documentation on MQL5: Standard Constants, Enumerations and Structures / Objects Constants / Methods of Object Binding
  • www.mql5.com
Standard Constants, Enumerations and Structures / Objects Constants / Methods of Object Binding - Documentation on MQL5
 
RaptorUK:
アンカーポイントを ドラッグしているときではなく、アンカー ポイントから手を離したときにのみスナップが効くと思います。 Ninjaなどでは動作が異なりますが、MetaTraderではこれが通常の動作と思います。
いいえ、MT4では正しく動作します。
 
graziani:

私はこれをバグとは呼ばず、機能不全と呼びます。今後、レポートをバグとみなすか機能不全とみなすかを明記します。

プラグマの概念は理解できますが、#pragmaで宣言すると、3つのバッファと3つのプロットを使うことになります。

これは、3つのバッファと3つのプロットを使うという意味ではなく、システムが私のインジケータを起動するときに、メモリやその他のリソースをどれだけ確保すべきかを知るために、リソースの使用を最大3つのバッファと最大3つのプロットに制限したことを意味します。

つまり、私が宣言した最大値にかかわらず、真の使用量は動的割り当てによって決定されるのです。
だから、私がINDICATOR_CALCULATIONSバッファとして指標バッファを 宣言するとき、私はそれがグラフに表示されることを期待して いない。

その "機能不全 "に使用したコードのスニペットを見せてもらえますか?
 
RaptorUK:
アンカーポイントを ドラッグしている時ではなく、アンカーポイントを離した時にのみスナップが効くと思います。 忍者などでは違う動作をしますが、MetaTraderではこれが通常の動作だと思います。
なるほど、MT4ではX軸を動かすとスナップが効くのですが、MT5では効きませんね。
 
graziani:

これはフィボナッチ展開で、磁石の感度を50に設定しています。

また、トレンドラインのような他のタイプのオブジェクトも同様です。

私はこの種のツールにあまり慣れて いませんが、私にはそれが動作するように見えますが、そうではありませんか?

マグネット感度

 
angevoyageur:
その「機能不全」に使用したコードのスニペットを見せてもらえますか?

さて、この「機能不全」を報告するという私の考えからは離れてきているようです。

ポイントは、SetIndexBuffer(int, double,ENUM_INDEXBUFFER_TYPE) で動的配列を定義するとき、(ドキュメントに明記されていないので)論理的に仮定すると、この定義によって

   SetIndexBuffer(0, all, INDICATOR_DATA);
   SetIndexBuffer(1, up, INDICATOR_DATA);
   SetIndexBuffer(2, down, INDICATOR_CALCULATIONS);

を定義することで、グラフ上、インディケータのプロパティ、このインディケータを使用するEAから、3つ目のバッファの存在を確認することができなくなる、と考えるのが自然です。

(もう一度言いますが、#pragmasでバッファの数やプロットの数を定義しても、そのすべてを使うことにはなりません。))

しかし、これは真実ではないことに加え、経験豊富なプログラマにとっては明白ではないようです。

では......このようなことを報告するべきか、しないべきか?

私は、私が考えている類似の何かでもう一度試してみますが、今のところ、これは(私だけではなく)時間の無駄のように思えます;)。

 
angevoyageur:

私はこの種のツールにあまり慣れて いないのですが、どうやらうまくいったようですね?


この失敗を一発で再現できないとは信じられません。

感度を20/50にして、トレンドライン、フィボ、その他のオブジェクトのアンカー ポイントを動かしてみてください。

Documentation on MQL5: Standard Constants, Enumerations and Structures / Objects Constants / Methods of Object Binding
Documentation on MQL5: Standard Constants, Enumerations and Structures / Objects Constants / Methods of Object Binding
  • www.mql5.com
Standard Constants, Enumerations and Structures / Objects Constants / Methods of Object Binding - Documentation on MQL5
 
RaptorUK:
なるほど、X軸のスナップはMT4では動きますが、MT5では動きませんね。

そうです。

そして、それは不正確なレベルでスナップします。

そして、他のポイントを動かすと、スナップしていないポイントも動くはずなのに、動いてしまうのです。

どうして私がこのことに初めて気がついたのでしょうか?

半年前にMT5を10分ほど使ってから、このイライラする挙動に気づきました