Fragen von einem "Dummy" - Seite 267

 

Kann jemand überprüfen, ob die Zeichnungsbeschränkung im Indikator funktioniert?

PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,r+s-1);

Bereits heruntergeladen die fertige Indikator von hier , noch zieht für die ganze Geschichte.

Upd Ich habe es herausgefunden. Sie sollte in OnCalculate gesetzt werden und einen angemessenen Wert (rates_total-n) erhalten.

 
pavelrev:

An Wochentagen, wenn es Angebote gibt, das Gleiche.

Manchmal kommt er durch und zeigt an, was man braucht, aber wenn man die TF ändert oder ein neues Angebot erhält, fängt er wieder an, Unsinn zu machen.

Nun, wenn sich niemand dessen bewusst ist, schreiben Sie an den Autor des Artikels (in den Kommentaren), wenn er nicht antwortet - an Service Desk.
 

Ich versuche, eine Vorlage für einen Mehrwährungsindikator zu erstellen.

Ich habe die Puffer deklariert, initialisiert sie (EMPTY_VALUE), wo zu zeichnen aus ... Ich habe alles getan. In OnInit. In OnCalculate - nichts.

Ich lasse es laufen und erhalte im Indikatorfenster in verschiedenen Teilen des Diagramms Müll.

Was ist los?

Noch eine Sache. Wenn ich die Parameter in der Funktion f_comment ändere und sie neu kompiliere, ändert sich der Kommentar nicht, die Änderungen werden erst wirksam, wenn ich den Indikator entferne und wieder in das Diagramm einfüge. Ist das in Ordnung?

ps hat die Datei neu hochgeladen

Dateien:
 
Silent:

Ich versuche, eine Vorlage für einen Mehrwährungsindikator zu erstellen.

Ich deklarierte Puffer, initialisiert (EMPTY_VALUE), wo aus zu zeichnen... Ich habe alles getan. In OnInit. In OnCalculate - nichts.

Starten Sie es - ich erhalte Müll im Indikatorfenster auf verschiedenen Teilen des Charts.

Was ist los?

Ich sehe keinen Müll, wenn ich diesen Code ausführe. Versuchen Sie, alle Kopien des Indikators aus dem Diagramm zu entfernen und sie erneut zu laden.
 
tol64:
Ich sehe keinen Müll, wenn ich diesen Code ausführe. Versuchen Sie, alle Kopien des Indikators aus dem Diagramm zu löschen und sie erneut in das Diagramm zu laden.
Klicken Sie auf Timeframes, es erscheint nicht immer und nicht auf allen Timeframes.
 

Ich habe mit ihm für eine Woche sitzen, ich habe alles heraus geworfen, nur leere Arrays verlassen, aber es zieht immer noch regelmäßig aus leeren Puffern... Es zeichnet immer noch periodisch mit leeren Puffern...

 
Silent:

Ich habe es für eine Woche verwendet, ich habe alles verworfen, so dass nur leere Arrays, aber es zieht immer noch regelmäßig aus leeren Puffern ... Was für ein Schwachsinn.

Ich habe mich durch die Zeiträume geklickt. Zuerst kam der Müll heraus. Dann ist es verschwunden und wird nicht mehr abgespielt.

Wahrscheinlich ein schwer zu fangender Mikrobug. )) Aber das ist kein Problem. Sie können (und sollten) einfach eine strengere Kontrolle durchführen (nur für den Fall). Bei der Berechnung der Werte für die Indikatorpuffer werden keine Probleme auftreten. Und wenn Werte leer sein sollen, geben Sie einfach erneut einen leeren Wert für ein bestimmtes Array-Element an.

Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
  • 2010.10.25
  • Nikolay Kositsin
  • www.mql5.com
Статья о традиционных и не совсем традиционных алгоритмах усреднения, упакованных в максимально простые и достаточно однотипные классы. Они задумывались для универсального использования в практических разработках индикаторов. Надеюсь, что предложенные классы в определенных ситуациях могут оказаться достаточно актуальной альтернативой громоздким, в некотором смысле, вызовам пользовательских и технических индикаторов.
 
Silent:

Ich habe mit ihm für eine Woche sitzen, ich habe alles heraus geworfen, nur leere Arrays verlassen, aber es zieht immer noch regelmäßig aus leeren Puffern... Es zeichnet immer noch periodisch mit leeren Puffern...

Einen Fehler gefunden:

   SetIndexBuffer(0,USDBuffer,INDICATOR_DATA);
   SetIndexBuffer(1,EURBuffer,INDICATOR_DATA);
   SetIndexBuffer(2,GBPBuffer,INDICATOR_DATA);
   SetIndexBuffer(0,xUSDBuffer,INDICATOR_CALCULATIONS); // 3
   SetIndexBuffer(1,xEURBuffer,INDICATOR_CALCULATIONS); // 4
   SetIndexBuffer(2,xGBPBuffer,INDICATOR_CALCULATIONS); // 5
Aber ich habe weder vor noch nach der Bearbeitung irgendwelchen Unsinn gesehen. Nur ein leeres Fenster.
 
tol64:

Ich habe mich durch die Zeiträume geklickt. Zuerst kam der Müll heraus. Dann ist es verschwunden und lässt sich nicht mehr abspielen.

Wahrscheinlich ein schwer zu fangender Mikrobug. )) Aber das ist kein Problem. Sie können (und sollten) einfach eine strengere Kontrolle durchführen (nur für den Fall). Bei der Berechnung der Werte für die Indikatorpuffer werden keine Probleme auftreten. Und wenn Werte leer sein sollen, geben Sie einfach erneut einen leeren Wert für das jeweilige Array-Element an.

Heh... Ich muss herausfinden, wo sie sich befindet, in INDICATOR_DATA oder in INDICATOR_CALCULATIONS

Der Trick besteht darin, dass nach dem Entfernen des Indikators und dem erneuten Einfügen in das Diagramm der Müll an denselben Stellen gezeichnet wird, an denen er vorher war. Auch das ist ein Trick.

Kontrolle, das ist verständlich. Ich werde es noch visuell sehen, wenn es anfängt zu lügen. Aber wenn ich eine Angabe aufrufe, muss ich dann deren Werte neu berechnen?

Das ist ein bisschen schief...

MetaDriver:

Einen Fehler gefunden:

Aber ich habe weder vor noch nach der Bearbeitung irgendwelchen Unsinn gesehen. Nur ein leeres Fenster.

Danke, ich habe es beim Kopieren übersehen.

Der Müll erscheint, instabil und nicht auf allen TFs (oder außerhalb des Bereichs, müssen Sie auf dem Chart auf der linken Seite zu sehen), aber es ist da.

Aktualisierung ist hier noch sichtbar, sollte 0,000000 0,000000 sein... überall


 
Silent:

Ich habe mit ihm für eine Woche sitzen, ich habe alles heraus geworfen, nur leere Arrays verlassen, aber es zieht immer noch regelmäßig aus leeren Puffern... Es zeichnet immer noch periodisch mit leeren Puffern...

Ich bin mir nicht sicher, aber wahrscheinlich ist das der Grund:

aus der Hilfe:

DieInitialisierung eines Arrays mit dem Ausdruck ArrayInitialize(array, init_val) bedeutet nicht, dass die Elemente der für dieses Array reservierten Reserve mit demselben Wert initialisiert werden . Eine anschließende Größenänderung des Arrays mit ArrayResize() innerhalb der aktuellen Reserve fügt Elemente am Ende des Arrays hinzu, deren Werte undefiniert und meist nicht gleich init_val sind.