Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 1356

 
Vladimir Ich kenne die Regel des Vergleichs. Es ist also nicht ohne zusätzliche Bedingungen möglich?
 
Oleg Kolesov #:
Vladimir, ich kenne die Regel des Vergleichs. Es ist also nicht ohne zusätzliche Bedingungen möglich?

Was sind die Extras?


Können Sie das noch übertreffen, ohne Vergleich:

      //---------------------------------------------+
      levelcol1[i]=1.0;
      if(level1[i]>level1[i+PeriodSh])
        {
         levelcol1[i]=0.0;
         continue;
        }
      /*if(CompareDoubles(level1[i],level1[i+PeriodSh]))
        {
         levelcol1[i]=1.0;
         continue;
        }*/
      if(level1[i]<level1[i+PeriodSh])
        {
         levelcol1[i]=2.0;
         continue;
        }
     }  //--- Возвращаемое значение prev_calculated для следующего вызова
 
Ich danke Ihnen für Ihre Hilfe.
 
Vladimir Karputov #:

Was sind die Extras?


Und Sie können es noch besser machen, ohne Vergleich:

Das Gleiche gilt, wenn Sie auf gleicher Basis ohne Normalisierung vergleichen.

 
Die wichtigste Frage bleibt ungelöst. Wie man den Puffer mit zwei Farben einfärbt. >= Blau bis <= Rot.
 
Oleg Kolesov #:
Die wichtigste Frage bleibt ungelöst. Wie man den Puffer mit zwei Farben einfärbt. >= Blau bis <= Rot.

Und woher wissen Sie im Falle von "gleich", ob es mehr oder gleich oder weniger oder gleich ist? Das ist die Herausforderung, nicht wahr?)

 
Oleg Kolesov #:
Was ist die Aufgabe? Schleife?ArrayBsearch? ArraySort? Mit welchen Mitteln?

Husaren schweigen!

Dies ist die Apokalypse.

Der Geist muss behandelt werden.

 
Ich werde eine Pause einlegen. Ich danke Ihnen.
 

Bitte um Hilfe beim Entfernen eines Indikators aus dem Hauptfenster.

Zum Beispiel werden mehrere Custom MA Indikatoren platziert, jeder wird durch iCustom(handleMA,...,...) aufgerufen.

So werden ein Dutzend gleitende Durchschnitte auf dem Diagramm angezeigt.

Dann müssen diese Indikatoren mit Hilfe eines Timers neu berechnet werden.

Der Ablauf ist wie folgt - der Timer wird ausgelöst, die alten Indikatoren werden entfernt, neue gleitende Durchschnitte werden berechnet und gezeichnet.

Und nun das eigentliche Problem: Bei jeder neuen Iteration bleiben alte Linien auf dem Diagramm.

Ich habe versucht, sie auf zwei Arten zu entfernen:

Graph_MA[i] = iCustom(_Symbol,Timeframe,"MA", /*параметры индикатора*/);   
for(int i=0; i < kol_Lines; i++) 
     {
      res = IndicatorRelease(Graph_MA[i]);
     }

In diesem Fall ist die Variable res jedes Mal gleich True, aber zusätzliche Indikatoren werden nicht aus dem Diagramm entfernt.

Der zweite Weg:

name_MA[i]=StringFormat("MA_Line # %d", i);
IndicatorSetString(INDICATOR_SHORTNAME,name_MA[i]);
res = ChartIndicatorDelete(0, 0, name_MA[i]);

Vergeblich: res ist immer falsch.

 
qadexys #:

Bitte um Hilfe beim Entfernen eines Indikators aus dem Hauptfenster.

Zum Beispiel werden mehrere Custom MA Indikatoren platziert, jeder wird durch iCustom(handleMA,...,...) aufgerufen.

So werden ein Dutzend gleitende Durchschnitte auf dem Diagramm angezeigt.

Dann müssen diese Indikatoren mit Hilfe eines Zeitgebers neu berechnet werden.

Der Ablauf ist wie folgt - der Timer wird ausgelöst, die alten Indikatoren werden entfernt, neue gleitende Durchschnitte werden berechnet und gezeichnet.

Und nun das eigentliche Problem: Bei jeder neuen Iteration bleiben alte Linien auf dem Diagramm.

Ich habe versucht, sie auf zwei Arten zu entfernen:

In diesem Fall ist die Variable res jedes Mal gleich True, aber zusätzliche Indikatoren werden nicht aus dem Diagramm entfernt.

Der zweite Weg:

Vergeblich: res ist immer falsch.

Dies sind die Eigenschaften von IndicatorRelease() - es ist nicht das Löschen eines Indikators, sondern die Benachrichtigung des Terminals, dass der Indikator nicht mehr benötigt wird. Außerdem entscheidet das Terminal selbst, wann es entfernt werden soll. Normalerweise geschieht dies nach einigen Sekunden.

Vielleicht gibt es ein paar Tricks - ich weiß es nicht. Vielleicht sollten Sie versuchen, die Karte zu wechseln.

Grund der Beschwerde: