IndexBuffer dynamisch verändern

 

Kann ich nur einen einzigen IndexBuffer verwenden, wenn allein die Farbe (je nach Testresultat) verändert werden muß?

Zuerst habe ich 3 IndexBuffer verwendet, jeweils einen für Grün, Gelb und Rot und dann nur denjenigen mit Wert versehen, der das Testresultat zeigt (und die anderen beiden erhielten jeweils einen EMPTY_VALUE). Das geht auch prima. Beispiel:

   IndicatorBuffers(3);
   //--- buffer
   SetIndexBuffer(0,SqzL);  SetIndexLabel(0,"SqzL");
   SetIndexStyle(0,DRAW_ARROW,STYLE_DOT,SymbolWidth,DotL);
   SetIndexBuffer(1,SqzS);  SetIndexLabel(1,"SqzS");
   SetIndexStyle(1,DRAW_ARROW,STYLE_DOT,SymbolWidth,DotS);
   SetIndexBuffer(2,SqzN);  SetIndexLabel(2,"SqzN");
   SetIndexStyle(2,DRAW_ARROW,STYLE_DOT,SymbolWidth,DotN);
   //--- code snip
      if(B>K && B<K)
      {
         SqzL[i]=SqzPos;
         SqzS[i]=EMPTY_VALUE;
         SqzN[i]=EMPTY_VALUE;
      }
      else if(B<K && B>K) 
      {
         SqzL[i]=EMPTY_VALUE;
         SqzS[i]=SqzPos;
         SqzN[i]=EMPTY_VALUE; 
      }
      else 
      {
         SqzL[i]=EMPTY_VALUE;
         SqzS[i]=EMPTY_VALUE;
         SqzN[i]=SqzPos;
      }

Jetzt ist aber die Bufferanzahl begrenzt - und außerdem finde ich es eine Verschwendung von Buffern, wenn lediglich die Farbe geändert werden soll. Daher meine Frage:

Wie muß ein Code aussehen, der für das Ganze nur einen Buffer nutzt? Ich habe bereits mehrere Sachen ausprobiert, leider alles ohne Erfolg. Wäre nett, wenn jemand mir hier auf die Sprünge helfen kann (und ja, ich habe bereits alles erdenkliche an Hilfen durchsucht, wäre ich da fündig geworden, müßte ich hier nichts schreiben).

Vielen Dank.

 

Ein Buffer kann nur eine Farbe annehmen: Willst Du drei Farben, brauchst Du drei Buffer, es geht nicht anders.

 
Dann ist wohl die einzige Alternative Objekte zu verwenden, was allerdings die Liste der Objekte enorm in die Höhe treibt, selbst wenn ich die jeweils ältesten entferne. Danke für Deine Antwort, Carl.
 
die Liste der Objekte enorm in die Höhe treibt
Nicht nur die Zahl der Objekte sondern auch die Rechenzeit! Jedes Objekt muss einzeln auf dem Chart ständig (zB. neue Bar) verschoben werden.
 

Was erzählt ihr denn da. Im MT5 ist das ganz einfach. Es gibt Beispiele sogar mit Farbverläufen.

Ein T3-indikator ist da ein Beispiel dafür. Bin leider nicht an meinem PC und kann den Link deshalb nicht posten.

 

Aber hier, in diesem Thread, geht es um MT4 und da geht das nicht.

Grund der Beschwerde: