Seufz:
- Welche Zeile?
- Gibt es eine zweite Meldung über eine offene (
- Um den eigenen Code zu prüfen fragt man nicht die anderen, sondern verwendet den Debugger - das geht schneller!
Seufz:
- Welche Zeile?
- Gibt es eine zweite Meldung über eine offene (
- Um den eigenen Code zu prüfen fragt man nicht die anderen, sondern verwendet den Debugger - das geht schneller!
Hallo Carl,
danke, trotz des verständlichen Seufzers....
1. Hinter "while (y<d)". Aber siehe 3.
2. Nein.
3. Den Debugger setze ich selbstverständlich regelmässig ein und habe es auch in diesem Fall gemacht. Es kommt aber für den Ausdruck "x+Faktor" auch die Warnung: "Expression has no effect."
Daher denke ich, dass ich den Ausdruck in der Schleife falsch angesetzt habe und muss das zuerst lösen. Daher benötige ich einen Blick von
aussen, da ich es selbst nicht hinbekomme.
Selbst wenn ich den zweiten Ausdruck der while-Schleife wie folgt umgestalte ("Faktor" statt "x+Faktor") kommt die Warnung (und der Fehler):
If(y<d) { x = a+b; // Initialisierung der Variable x mit einem Ausgangswert a+b while(y<d) { x; // Variable x, die erhöht werden soll Faktor; // schrittweise Erhöhung der Variable x um “Faktor” }; Print (“Meldung1”); } else if (y>d) …..
Was mache ich in der Schleife falsch ?
Danke für die Hilfe.
Jochen
Naja was soll hier passieren:
Stell mal den Kursor auf while und drück F1 und schau wie das geht.
o.k. Carl, Du hast recht, mindestens Fehler in Ausdruck1.
Ich habe das über das Nachschlagewerk des MetaEditos zu lösen versucht -mit F1 tut sich nichts- die Online-Hilfe sollte dazu identisch sein.Für den "Loop-Operator While" heisst es dort (ich hab den ersten Ausdruck mit x angepasst):
Beispiel: while(k<n && !IsStopped()) { x=x+Faktor; k++; }
EDIT: Bedingung, während der erhöht werden soll: y<d. y ist der Kurs. k++ bedeutet in dem Beispiel m.E. etwas anderes, denn es wird ja bereits
Tick für Tick geprüft, ob y unter der Bedingung d liegt. Hier liegt mein Verständnisproblem, was ich mit der Hilfe nicht lösen kann..
Für meine Formel heisst das:
If(y<d) { while(y<d && !ISStopped()) { x = x + Faktor; // Variable x, die erhöht werden soll y++; }; Print (“Meldung1”); } else if (y>d)
Leider finde ich weitere Lösungen dafür nicht in der Hilfe, verstehe diese nicht oder kann den Transfer nicht bringen....
- Den Startwert von x hatte ich mit x = a+b definiert (s.o.); mir ist unklar, wo ich ihn hier unterbringen muss.
- y++ ist sicher falsch gedacht. Daher die Meldung: "I-value required". Was muss ich also in meinem Fall für "k" nehmen ?
Vielleicht kannst Du mir doch bitte den entscheidenden Hinweis geben - ich versuche ja, selbst eine Lösung zu finden, kann es aber nicht. Und die
Lösung liegt sicher sehr nahe....
Danke !
Jochen
Ich würde Dir raten, such Dir unter den Artikeln oder der CodeBase etwas, was Deiner Idee nahe kommt und versuch das zu ändern.
So gehst Du von etwas aus das (höchst wahrscheinlich) funktioniert, so lernt man schneller!
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Hallo,
Leider benötige ich erneut etwas Unterstützung.
Ich habe eine Formel, die aus drei Bereichen besteht, die wiederum durch if-Bedingungen bestimmt werden.
Im ersten Bereich soll eine Variable x um einen "Faktor" solange erhöht werden, bis die Bedingung für den zweiten Bereich (“d”) erfüllt ist (dort werden andere Werte verwendet). Der Ausdruck "Faktor" besteht aus einer Berechnung.
Ich denke, dies ist über eine Schleife zu erreichen, ich bin mir aber nicht sicher, ob ich die MQL-Referenz konzeptionell richtig angewandt habe oder "x" anders einzusetzen ist:
Ich erhalte auch eine Fehlermeldung: ( ")" unexpected token).
Für eine Prüfung und Hinweise bin ich dankbar.
Grüße,
Jochen