[ARCHIVE]フォーラムを乱立させないために、どんなルーキーの質問でも。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 5. - ページ 423

 
hoz:

各バッファ(各ライン)が独自のパラメータ(色、太さなど)を持つ場合、そのパラメータはどのように各ラインに転送されるのでしょうか?
行ごとに個別のプロパティを渡すことも可能ですが、これだけ行数が多いと必要なのでしょうか?すべての線に一つのプロパティを持たせる。
 
Zhunko:
回線ごとのプロパティを転送することは可能ですが、これだけの回線数で必要なのでしょうか?すべての線に1つのプロパティを持たせよう。


つまり、正しく理解しているのです。同じプロパティを持つ線があり、すべてのフィーチャーに対して8つのプロパティがある場合は、1つのインデックスに収めることができますが、8つ以上のプロパティがある場合は、そうはいかないのでしょうか。
 
hoz:

だから、私の理解は正しいのです。いくつかの線が同じプロパティを持ち、すべての属性のプロパティが8つあれば、1つのインジケーターに収めることができますが、プロパティが8つ以上あれば、そうはいかないのですね。
物件はいくつでも譲渡可能です。
 
Zhunko:
物件はいくつでも譲渡可能です。


しかし、プロパティは、グラフィカルなオブジェクトを視覚的に表示するために必要であれば、バッファにバインドされます。そのため、8件以上の物件数を超えることはできません。これでよいのでしょうか?
 
hoz:

しかし、プロパティは、グラフィカルなオブジェクトを視覚的に表示するために必要であれば、バッファにバインドされます。そのため、8件以上の物件数を超えることはできません。これでいいのでしょうか?

質問の意味がわからないと思います。

ラインプロパティの数が8個しかないということでしょうか?

 
hoz:

各バッファ(各ライン)が独自のパラメータ(色、太さなど)を持つ場合、これらのパラメータはどのように各ラインに渡されるのでしょうか。

iCustom()を通してEAに入れるということですか?そこに同じ演算ブロックを置く、ただそれだけです。何らかの理由でうまくいかない場合(今のところ時系列による再帰にしか遭遇していない)、インジケータバッファを 作成してiCustom()から呼び出すとよいでしょう。


トレンドラインで描かれたインジケーターの場合ということです。しかし、それがサブウィンドウにある場合は関係なく、フラグの下で開始時にWindowOnDropped、フラグは省略されます。こんな感じ。

int start(){
   //блок рисования горизонтальных линий уровня. Не выношу в init(), потому что WindowOnDropped() определён только в start()
   if(image){
      if(b){
         for(int i=-100; i<=100; i++){
            double x=i; x/=100; double hue=SpectralFilter(x, focus);
            color RGB=HSLtoRGB(hue, Staturation, Lightness);
            string name=DoubleToStr(hue,8);
            ObjectCreate(name,OBJ_HLINE,WindowOnDropped(),0,hue);
            ObjectSet(name, OBJPROP_COLOR, RGB);
            ObjectSet(name, OBJPROP_STYLE, STYLE_SOLID);
            ObjectSet(name, OBJPROP_WIDTH, 1);
         }
         b=false;
      }
   }else{
      ObjectsDeleteAll(WindowOnDropped(),OBJ_HLINE);
   }

トレンドも同じように描かれます。

 
Zhunko:

質問の意味がわからないと思います。

ラインプロパティの数が8個しかないということでしょうか?


いいえ、あなたが言ったんです。

ずん子
物件はいくつでも譲渡可能です。


でも、物件だけを集計しているわけではないんですね。しかし、他のグラフィックの表示された各ラインやオブジェクトに。ドキュメント(https://docs.mql4.com/ru/customind/IndicatorBuffers)に書かれているからです

つまり、ターミナルウィンドウのバッファを介してプロパティを渡す場合、8個以上のグラフィカルオブジェクトを渡すことはできないことが、ドキュメントから判明したのです。でも、色や線が8を超えるような、ほとんど虹のような指標は以前から見ていました。そこで、どうにかしてこの制限を回避しているのですが...。

 
gyfto:

EAにiCustom()を通してということでしょうか?そこに同じ演算ブロックを置く、ただそれだけです。何らかの理由でうまくいかない場合(今のところ時系列による再帰にしか遭遇していない)、インジケータバッファを形成してiCustom()から呼び出すのがよいでしょう。

いや、インジケーターから描かなければならない、それだけのことなんです。Expert Advisorに移したくない。ある瞬間を視覚的にコントロールするために必要なもので、それ以上のものではありません。

ジフト

インジケータでトレンドラインが引かれている場合ということです。しかし、サブウィンドウの中ならともかく、フラグの下のスタートでWindowOnDroppedするとフラグが省略される。こんな感じ。

トレンドラインも同じように描かれている。


同じインダクタを別のウィンドウに指定して動作させることで、制限を回避するということでしょうか?
 
hoz:


でも、以前、色や線が8よりもずっと多い、ほとんど虹のようなターキーに出会ったことがあります。だから、どうにかしてこの制約を回避している......。


まあ、考え方としては、追加のインジケータ・バッファを 単体で宣言し、さらにトレンドラインで宣言すれば、うまくいくのですが......。
 
hoz:
別のウィンドウを指定して同じツールを実行することで、制限を回避するということでしょうか。

いいえ、ObjectCreate()の ことです、ウィンドウ番号はそこで設定する必要があります。サブウィンドウである場合(つまりメインウィンドウであるゼロでない場合)に設定する方法を紹介しました。