[ARCHIV!] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen - 4. - Seite 22
Hallo! Mein Ziel ist es, den Indikator durch die Erstellung einer Funktion in den EA zu übertragen.
Der erste Schritt, nämlich die Erstellung der Funktion, ist getan. Aber der nächste Punkt - die Prüfung - funktioniert nicht.
Der Indikator zeichnet Kanäle. Es verfügt über 4 Puffer und eine Vielzahl von Variablen. Ich habe das alles in die Funktion eingefügt.
Aber wenn ich einen Test-Expert Advisor erstelle, um die Genauigkeit seiner Funktion zu überprüfen, indem ich den Indikator und meine Funktion vergleiche, kann ich keine Kompilierung erreichen.
Im EA sind ständig Fehler mit externen Variablen aufgetaucht, die nicht vorhanden waren, als ich die Funktion erstellt habe.
Bitte geben Sie mir einen Rat oder einen Link zu einem Beispiel. Ich habe die Artikel von GODZILLA verwendet, aber seine Beispiele sind anders als meine.
Das Schema sieht in etwa wie folgt aus:
Übertragen Sie alles, was in indicator init() war, in eine separate Funktion, z. B. fInit_Indicator(), und schreiben Sie sie in init() des EA, wobei Sie daran denken, alles, was die Initialisierung von Indikatorpuffern betrifft, aus dem Code zu entfernen.
Kopieren Sie alle globalen Indikatorvariablen und platzieren Sie sie in den globalen Variablen des EA. Vergessen Sie nicht, die Größe von Indikatorpuffern zu definieren, wenn sie im EA deklariert werden. Etwas wie gd_Buf1[100], gd_Buf2[100] usw. Ich denke, dass 100 Werte für Sie ausreichend sind.
Benennen Sie die Start()-Funktion des Indikators um, z. B. fMyIndicator(), und platzieren Sie sie in der Start()-Funktion des EA vor dem Code für die Ordereröffnung (um eine Entscheidung zu treffen).
Vergessen Sie auch nicht, dass sich der Indikatorpuffer von dem "Nicht-Indikatorpuffer" unterscheidet. Hierfür gibt es mehrere Lösungen:
Wenn ein neuer Balken eintrifft, werden alle Daten im Array "Nicht-Indikator" verschoben, wodurch der 0-Index freigegeben wird, auf dem der neu berechnete Wert platziert wird.
Wenn ein neuer Balken eintrifft, wird das gesamte "Nicht-Indikator-Array" neu berechnet.
Ich bin noch dabei, mich mit Arrays vertraut zu machen.
Ich muss bei jedem neuen Tick Werte für die Anzahl der Punkte in das Array laden.
Die Größe des Feldes ist jedes Mal anders. Was sollte ich in diesem Fall tun, verwenden ArreyResize auf jeder Iteration der Schleife?
1-Item: Ihre Philosophie , die Größe des Feldes zu ändern, ist von Anfang an fehlerhaft. In 99 von 100 Fällen können Sie nur 10 Zellen für die Verarbeitung von Indikatorwerten verwenden;
2. Die Neuberechnung dieser Messwerte bei jedem Ticken ist eine Laune des uninformierten Gehirns.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Hallo! Mein Ziel ist es, den Indikator durch die Erstellung einer Funktion in den EA zu übertragen.
Der erste Schritt, nämlich die Erstellung der Funktion, ist getan. Aber der nächste Punkt - die Prüfung - funktioniert nicht.
Der Indikator zeichnet Kanäle. Es verfügt über 4 Puffer und eine Vielzahl von Variablen. Ich habe das alles in die Funktion eingefügt.
Aber wenn ich einen Test-Expert Advisor erstelle, um die Genauigkeit seiner Funktion zu überprüfen, indem ich den Indikator und meine Funktion vergleiche, kann ich keine Kompilierung erreichen.
Im EA sind ständig Fehler mit externen Variablen aufgetaucht, die nicht vorhanden waren, als ich die Funktion erstellt habe.
Bitte geben Sie mir einen Rat oder einen Link zu einem Beispiel. Ich habe die Artikel von GODZILLA verwendet, aber seine Beispiele sind anders als meine.
Das Schema sieht in etwa wie folgt aus:
Probieren Sie es aus - es ist nicht schwer.
Helfen Sie mir, eine Bedingung zu schreiben, die den EA veranlasst, das Los nach dem Öffnen von n Aufträgen mit zwei Mal zu multiplizieren
Guten Tag!
Ich bin noch dabei, mich mit Arrays vertraut zu machen.
Ich muss bei jedem neuen Tick Werte für die Anzahl der Punkte in das Array laden.
DieGröße des Feldes ist jedes Mal anders. Was sollte ich in diesem Fall tun, verwenden ArreyResize auf jeder Iteration der Schleife?
Guten Tag, zum Thema "Arrays".
es gibt eine Zelle dieses Typs
12345,p,fgh,2011-01-01,55,66
Wie kann ich 55 davon bekommen?
Danke.
Wenn das Array heterogen ist, sollten Sie wahrscheinlich alle Elemente in den String-Typ konvertieren und dann das gewünschte Element mit
StringFinde(https://www.mql5.com/ru/forum/138609/page22#613148). Korrigieren Sie mich, wenn ich falsch liege.
sonst gd_200 = Kontostand() * Risikoprozent / 100,0 / 10000,0;
Ersetzen Sie ihn durch einen Expert Advisor, der nicht den Saldo, sondern die Anzahl der offenen Aufträge berechnet.
Für eine Antwort wären wir Ihnen sehr dankbar.
sonst gd_200 = Kontostand() * Risikoprozent / 100,0 / 10000,0;
Ersetzen Sie ihn durch einen Expert Advisor, der nicht den Saldo, sondern die Anzahl der offenen Aufträge berechnet.
Für eine Antwort wären wir Ihnen sehr dankbar.
Guten Tag, zum Thema "Arrays".
es gibt eine Zelle dieses Typs
12345,p,fgh,2011-01-01,55,66
Wie kann ich 55 davon bekommen?
Danke.
https://book.mql4.com/ru/variables/arrays
Helfen Sie mir, eine Bedingung zu schreiben, die den EA veranlasst, das Los mit zwei Mal zu multiplizieren, nachdem n Aufträge geöffnet wurden
Guten Tag!
Ich bin noch dabei, mich mit Arrays vertraut zu machen.
Ich muss bei jedem neuen Tick Werte für die Anzahl der Punkte in das Array laden.
Die Größe des Feldes ist jedes Mal anders. Was sollte ich in diesem Fall tun, verwenden ArreyResize auf jeder Iteration der Schleife?
1-Item: Ihre Philosophie , die Größe des Feldes zu ändern, ist von Anfang an fehlerhaft. In 99 von 100 Fällen können Sie nur 10 Zellen für die Verarbeitung von Indikatorwerten verwenden;
2. Die Neuberechnung dieser Messwerte bei jedem Ticken ist eine Laune des uninformierten Gehirns.