Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 670
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Wie erstellt man ein Array von Klasseninstanzen?
Ich habe ClassName* className[], dann ArrayResize auf sie, aber es gibt mir keinen Zugriff auf Methoden
Ihre Klasse, deren Instanzen Sie in einem Array sammeln wollen, muss von CObject geerbt werden.
Und dann ist es ganz einfach: Erstellen Sie eine Liste (Array) von Objekten CArrayObj, und fügen Sie Ihre Objekte dazu.
Wenn man nach den Worten "Indikatorvorlage" und Ihrem Namen sucht, findet man nichts, und Sie haben hier bereits über den Band Krieg und Frieden geschrieben.
Jede beliebige Kombination von Wörtern aus dem Beitrag kommt mir in den Sinn.
Tja, tut mir leid, das mit der Indikatorvorlage habe ich wohl verwechselt - die Schleppnetzvorlage wurde gepostet.
Sagen wir es mal so: Erstellen Sie eine Indikatorvorlage im Editor, fügen Sie die gewünschte Anzahl von Eingangsvariablen und Puffern hinzu, die gezeichnet werden sollen.
Als Nächstes schlüsseln Sie auf, was Sie für die jeweilige Aufgabe tun müssen.
Wenn Sie sagen, dass es schlecht ist, sagen Sie mir, wie man es gut macht. Verschieben Sie die Berechnungen nach OnInit?
Fairer Tadel )) Hier eine Variante des Codes, der hier veröffentlicht wurde:
Versuchen Sie, es so zu machen. Sie müssen nichts zu OnInit verschieben.
Fairer Tadel )) Hier eine Variante des Codes, der hier veröffentlicht wurde:
Versuchen Sie, es so zu machen. Und Sie brauchen nichts zu OnInit zu verschieben.
Ich habe solchen Code hier nicht veröffentlicht - nicht mein Ding :)
Ich verwende andere Konstruktionen - das ist einfacher und klarer.
In OnInit() sollte sie übertragen werden. Warum müssen Sie dem Indikatorpuffer bei jedem Tick ein Array zuweisen?
Ich habe solchen Code hier nicht veröffentlicht - das ist nicht mein Ding :)
Ich verwende andere Konstruktionen, die einfacher und klarer sind.
Es ist meins, wie könnte es einfacher sein? ))) (zumindest habe ich in meiner Vorlage auch den Kommentarlimit = rates_total - 1;//--- Erster Aufruf des Indikators oder Wechsel des Zeitrahmens oder Laden von Daten aus der Historie) und meine Art der Formatierung - eine geschweifte Klammer bei for() {
Um zu lernen, einen eigenen Indikator zu schreiben, nehmen Sie die obige Vorlage und fügen Sie mindestens den Schlusskurs hinzu, um Ihren ersten Indikator zu erhalten, und lernen Sie dann, den MAH aus diesem Schlusskurs zu bilden
Ich habe solchen Code hier nicht veröffentlicht - das ist nicht mein Ding :)
Ich verwende andere Konstruktionen - einfachere und klarere.
Es muss nichts in OnInit() kopiert werden. Warum sollte ich dem Indikatorpuffer bei jedem Tick ein Array zuweisen?
Es ist nicht Ihr Code. Er wurde von einigen meiner Kollegen veröffentlicht, aber ich weiß nicht mehr, von wem und wo. Diesen Code habe ich gemeint, als ich sagte, dass nichts nach OnInit verschoben werden sollte, aber nicht der Quellcode. Ich war nicht ganz klar.
Und welche Konstruktion würden Sie empfehlen? Dies scheint sehr einfach zu sein.
Ah, da ist der Autor des Artikels )))) Vor mir. Übrigens verwende ich auch diese Art der Formatierung - mit einer öffnenden geschweiften Klammer in einer Zeile.Ah, hier ist der Autor des Schnipsels )))) Vor mir. Übrigens verwende ich auch diese Art der Formatierung - mit einer öffnenden geschweiften Klammer in einer Zeile.
Sie führen den Assistenten zur Erstellung eines Indikators aus, wählen Linientyp und -farbe aus und fügen gegebenenfalls Eingabefelder hinzu.
und das ist alles, der Indikator ist fertig, dann kopieren Sieden Körper vonOnCalculate() der Vorlage und schreiben die Berechnungen ,
Sie können Ihren ersten Indikator in 1 Minute schreiben, den Code "Hello word I indicator! - Ich habe es gezeigt :)
ZS: Übrigens, die Indikatoren können in dieser Form von MT4 auf MT5 übertragen werden, die Hauptsache ist, die Indikatorpuffer richtig einzurichten, in MT5 gibt es einen Fauxpas bei der Indizierung der Arrays unter den Puffern.... Sie sind einfach Arrays mit der üblichen Array )))) Indizierung .... Früher war es schwierig, sich an die Indexierung der Indikatorpuffer in MT4 zu gewöhnen, jetzt ist es im Gegenteil unmöglich, sich daran zu gewöhnen und zu MT5 zu wechseln ))))Dies ist nicht Ihr Code. Er wurde von einem meiner Kollegen veröffentlicht, aber ich weiß nicht mehr, von wem und wo. Es war dieser Code, den ich meinte, als ich sagte, dass nichts nach OnInit verschoben werden sollte, aber nicht der Quellcode. Ich war nicht ganz klar.
Und welche Konstruktion würden Sie empfehlen? Diese Aufgabe scheint sehr einfach zu sein.
Ah, da ist der Autor des Artikels )))) Vor mir.Ja, wofür ist der Code der Indikatorvorlage gut? Führen Sie den Assistenten aus, um einen Indikator zu erstellen , wählen Sie die Typen und Farben der Linien und fügen Sie bei Bedarf Eingaben hinzu
und das war's, der Indikator ist fertig, dann kopieren Sie den Körper aus der Vorlage OnCalculate() und schreiben Sie die Berechnungen,
Sie können Ihren ersten Indikator in 1 Minute schreiben, der obige Code lautet "Hallo Wort I Indikator!!!" Ich zeigte :)
PS: Übrigens, in dieser Form können Indikatoren von MT4 auf MT5 übertragen werden, die Hauptsache ist, die Indikatorpuffer richtig einzurichten, in MT5 gibt es einen Horror, dass mit der Indizierung von Arrays für Puffer ... es sich nur um Arrays handelt mit der üblichen Array)))) Indizierung .. .. früher war es schwierig, sich an die Indizierung von Indikatorpuffern in MT4 zu gewöhnen, jetzt ist es im Gegenteil unmöglich, sich daran zu gewöhnen und zu MT5 zu wechseln))))Nichts kompliziertes. Ein Beispiel für einen plattformübergreifenden Indikator (verwendet eine Klasse), aber die Vorlage kann herausgezogen werden - entfernen Sie die Klasse und alles Überflüssige, das danach Fehler verursacht - die plattformübergreifende Vorlage bleibt bestehen.
Dieser Indikator funktioniert auf beiden Plattformen ohne Änderung gleich - nur Kompilierung mit der erforderlichen Erweiterung. Ich musste den Code in zwei Teile aufteilen - die Klasse und den Indikator selbst (alles war in einem Listing)
Klasse:
Indikator: