Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 885
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
Ja, das ist es, was ich meine. Okay, wir haben es verpasst. Die Hauptsache ist, dass er versteht, was was ist...
Wer ist er? Damit habe ich angefangen.
Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests
Alle Fragen von Anfängern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes
Alexey Viktorov, 2019.06.11 09:06
Sie können SymbolInfoInteger nicht verwenden, um Point()) zu erhalten.)
Und im Allgemeinen ist es notwendig, daran zu denken, dass Point() oder _Point nur für das aktuelle Symbol. Für andere Symbole als das, mit dem der EA arbeitet, sollten Sie diese Funktion verwenden.
Die Funktion SymbolInfoInteger liefert nicht nur int-Werte, sondern auch long, bool und Aufzählungen.
Может вам очень не повезло, но я не люблю колупаться в чужом коде. Тем более править его...
Alexey Viktorov:
Nächste Frage: Wie oft, glauben Sie, wird der Wert des Indikators genau 50 betragen?
So wie ich das Problem verstanden habe, sollte es eine Farbe >50 und eine andere <=50 sein, aber ==50 habe ich nirgends gesehen. Um im Fall ==50 nicht zu verlieren, sollten wir natürlich >=50 zu einem der beiden und <=50 zu einem anderen hinzufügen. Es könnte besser aussehen.
Und die zweite Frage: Inwieweit war es notwendig, die gesamte Pufferindizierung zu ändern? Haben Sie nach der Neuindizierung alles in Ihrem Code korrigiert? Vielleicht wäre es einfacher, den Farbpuffer auf Index 4 und die Hilfspuffer 5 und 6 entsprechend zu setzen. Sie müssten weniger bearbeiten und hätten weniger Chancen, noch ein paar Fehler zu machen.
Ich glaube, Sie haben sich den Kopf zerbrochen, als Sie die Pufferindizierung geändert haben.
Gehen Sie zurück und nehmen Sie den alten Code aus Meldung 8806 und ändern Sie nur die Pufferfolge.
Verfolgen Sie dann die Bedingungen, wann es notwendig ist, 0 und wann es notwendig ist, 1 zu setzenSie haben sich wohl nicht allzu viele Gedanken gemacht, als Sie die Pufferindizierung geändert haben.
Gehen Sie zurück und nehmen Sie den alten Code aus Beitrag 8806 und ändern Sie dort nur die Puffersequenz.
Verfolgen Sie dann die Bedingungen, wann 0 und wann 1 in den Farbpuffer geschrieben werden sollDas habe ich getan, es hat nicht geholfen, ich habe zugegeben, dass ich Fehler gemacht habe, und nach Ihrem Beitrag habe ich es wieder getan. Hier sind die von mir geänderten Codestellen. Die alte Version ist unkommentiert.
So sah es aus, bevor ich die Änderungen vorgenommen habe. Das Histogramm ist da, die richtige Farbe nicht.
So sieht es jetzt aus. Das Histogramm ist verschwunden, es wird nicht angezeigt.
Ich glaube, ich kann wieder nicht klar denken.
Das habe ich gemacht, es hat nicht funktioniert, ich habe Fehler gemacht, nach deinem Beitrag habe ich es noch einmal gemacht. Hier sind die Stellen im Code, die ich geändert habe. Die alte Version ist unkommentiert.
So sah es aus, bevor ich die Änderungen vorgenommen habe. Das Histogramm ist da, die richtige Farbe nicht.
So sieht es jetzt aus. Das Histogramm ist verschwunden, es wird nicht angezeigt.
Ich muss mir wieder den Kopf zerbrechen.
Hier gibt es überhaupt keine Logik. Der Ablauf sollte folgendermaßen sein: Der Histogrammwert wird ermittelt und der i-te Index des Indikatorpuffers wird aufgefüllt. Dann eine separate Prüfung, wenn dieser Wert >=50 ist, wird der Farbpuffer mit 0 aufgefüllt, sonst mit 1. Er wird durch die Farbreihenfolge in der Richtlinie
Bei 0 wird die Farbe clrGreen genommen, bei 1 clrRed
Und diese Zeile ist völlig überflüssig, und die Reihenfolge ist das Gegenteil der ersten.
Und dies
int cl;
für welchen Zweck hinzugefügt? Es ist einfacher, sie direkt auszufüllen.
Um den Farbpuffer zu füllen, würde ich dieses Konstrukt verwenden
Der Operator ?: ist gleichwertig mit if else, aber einfacher zu verwendenDie Logik ist hier im Allgemeinen gebrochen. Der Ablauf sollte folgendermaßen sein: Ermitteln des Histogrammwertes, Ausfüllen des i-ten Index des Indikatorpuffers. Dann eine separate Prüfung, wenn dieser Wert >=50 ist, wird der Farbpuffer mit 0 gefüllt, sonst mit 1. Dies wird durch die Farbreihenfolge in der Direktive
Bei 0 wird die Farbe clrGreen genommen, bei 1 clrRed.
Und diese Zeile ist absolut unnötig, und die Folge ist das Gegenteil der ersten.
Und dies
zu welchem Zweck hinzugefügt? Es ist einfacher, sie direkt auszufüllen.
Um den Farbpuffer zu füllen, würde ich dieses Konstrukt verwenden
Der Operator ?: ist gleichwertig mit if else, aber einfacher zu verwendenWURRAA, und meine Seele hat gesungen. Alexey, vielen Dank !!!!!
Es hat alles funktioniert, ich verstehe nicht ganz, wie es möglich ist, ohne Array auszukommen.
weil seine Beschreibung gelöscht wurde. Sie können hier also auf ein zusätzliches Feld verzichten?
Mein Squeaky ist einfach ein Wunder, er nimmt ihn immer und überall mit hin.
p.s Ich habe immer noch nicht gelernt, wie man das Bild richtig anhängt, bitte entschuldigen Sie mich, ich werde Screenshots posten.
Um den Farbpuffer zu füllen, würde ich diese Konstruktion verwenden
Der Operator ?: entspricht dem if else-Operator, ist aber einfacher zu verwendenTolle Ratschläge und eine tolle Wissenschaft für die Zukunft!!! Er ist sogar noch ein bisschen weiter gegangen. Nachstehend das Ergebnis.
So war es auch:
So wurde es, die Wirksamkeit des Ansatzes ist offensichtlich!!! Ich danke Ihnen.
Tolle Ratschläge und eine tolle Wissenschaft für die Zukunft!!! Er ging sogar noch ein wenig weiter als das. Nachstehend das Ergebnis.
So war es auch:
So wurde es, die Wirksamkeit des Ansatzes ist offensichtlich!!! Ich danke Ihnen.
Das ist nicht effizient - drei if-else-Bedingungen anstelle von einer. Hier ist es noch schlimmer, so wie es ist...
Hier gibt es keine Effizienz: Es gibt drei if-else-Bedingungen anstelle von einer. Hier ist es noch schlimmer...
Ja, in der Tat, das war mir nicht aufgefallen. Es sieht besser aus, es gibt weniger Buchstaben.
Und es gibt keine Möglichkeit, drei Ausführungen (ich weiß nicht, wie ich es richtig sagen soll) unter einem Operator?: auf einmal zu platzieren?