Diskussion zum Artikel "Einführung in MQL5: Schreiben eines einfachen Expert Advisor und benutzerdefinierten Indikators" - Seite 5
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
Dies ist kein einfacher Weg, den Leuten mql5 zu erklären. (als ob Anfänger jemals eine Chance hätten, es zu verstehen!) Es ist wie mit Programmierbüchern, 90% der Leute haben keine Ahnung, wie sie anfangen sollen. Sie schlagen dieses Buch auf, z.B. über C-Programmierung, und das erste "Einfache Beispiel" ist 1 ganze Seite lang und in winziger Schrift geschrieben. In meinem ganzen Leben habe ich nur ein einziges gutes Programmierbuch gelesen, das jedem das Programmieren beibringen könnte. Der Grund dafür ist, dass sie von wahrscheinlich exzellenten Programmierern, aber leider sehr schlechten Lehrern geschrieben wurden. Programmieren kann wirklich einfach sein und ich werde es Ihnen beweisen, indem ich ein einfaches Tutorial für die Programmiersprache MQL4 mache, wenn ich etwas mehr Zeit habe als jetzt. Für alle - auch für absolute Anfänger. Der größte Fehler ist es, den Leuten Details der Sprache beizubringen, die meiste Arbeit sollte ctrl+C und ctrl+v sein und Google für die Befehle zu benutzen und am wichtigsten - alles SEHR EINFACH zu halten. Ich kenne mehr als 10 Programmiersprachen (ich programmiere seit ich 7 Jahre alt bin) und ich bin immer noch erschrocken über die Art und Weise, wie dieses "einfache Beispiel" auf 11kb (!!!) erklärt wird. Ich würde gerne wissen, ob es einen echten Programmieranfänger gibt, der MQL5 anhand dieses Beispiels gelernt hat ;D. Ich bezweifle es und wenn, dann kann man diese Leute an den Fingern einer Hand abzählen.
Ibrahim Melssen:
I have copy paste the Expert Advisor and try to test it with Strategytester. But it doesn't make any trades. I am new to MQL5 and programming so maybe I just made a stupid mistake. It compiled without any errors. I'd really like the strategy! Anyone ideas why it doesn't run on strategytester..?
Dasselbe gilt für Männer, deren Ursache ich nicht herausfinden kann.
Im neu bei mql5 Programmierung.
War versucht, durch dieses Beispiel zu lernen, aber im ein bisschen verloren mit der Schleife am Ende des Indikators bauen. Wo genau hat er der Variable day_n einen Wert zugewiesen?
Denn die Schleife prüft auf day_n<day_t. Wie kann das Programm den Wert von day_n kennen?
Und wie wird er überhaupt berechnet? Nehmen wir an, rate_total = 10 und es gibt noch keinen berechneten Balken. Also prev_calculated = 0
day_t=time[0] (HEUTE! da rückwärts gezählt wird)/PeriodSeconds... da die Zählung ab 1970 beginnt, nehmen wir an, dass die Zählung vor 10 Tagen beginnt, also sollte es 10 ergeben, richtig?
Also day_t=10. Jetzt wird geprüft, ob dayt > dayn ist. Ich kenne dayn nicht, aber ich weiß dayt=10. Ich nehme an, dass dayn gleich Null ist, da es keinen Wert gibt.
Dann wird dayn auch 10. Ok.
Zweiter Durchlauf der Schleife. prev_calculated + 1= 1.
DayT=time[1] (gestern)/period... denk dran, es wird von vor 10 Tagen an gezählt... aber jetzt nur bis gestern. es sollte einen Wert von 9 ergeben, richtig?
aber jetzt ist dayN < dayT falsch. Dann beginnt es, die else-Ausdrücke auszuführen. Okay. Ich habe verstanden.
Dann werden alle bu[] und bd[] berechnet. Ok. Die Schleife wird beendet, wenn prev < total rate falsch ist.
Aber wenn ein neuer Balken eintrifft und er wieder wahr wird, beginne ich dann wieder bei Null? Oder beginnt sie bei 10 und geht direkt zum else-Teil über?
Danke!!!!
Sie müssen in zwei Teile unterteilen:
1 Beim ersten Zeitindikator, der auf den Chart angewendet wird: prev_calculated =0 , i = 0, i++ bis i = rates_total, dann wird die Schleife verlassen (time[0] ist aus der Vergangenheit, nicht aus der Gegenwart.)
2 Ein neuer Balken wird gestartet: prev_calculated ist kleiner als rates_total, so dass die Bedingung erfüllt ist und die Schleife nur für diesen neuen Balken läuft
Hallo @Guin,
ich glaube, Ihre Frage wurde noch nicht richtig beantwortet. Wenn Sie den Code im Beispiel verwendet haben, haben Sie wahrscheinlich einen unsichtbaren Indikator, der keinen Sinn ergibt und den Sie im Chart nicht sehen können. Das liegt daran, dass der Code diesen Block nie durchläuft:
if(day_n < day_t){ day_n = day_t; h_day = high[i]; l_day = low[i] }Der Grund dafür ist, dass day_n nicht manuell auf einen Standardwert gesetzt wird und der Vergleich day_n < day_t immer zu false führen wird. Dem Debugger zufolge ist der Wert von day_n, wenn er nicht explizit gesetzt wird, "2076449103".
Ändern Sie einfach die Definition von day_n in etwas wie:
Ich hoffe, das hilft.
Ich bin neu in der mql5 Programmierung.
War versucht, durch dieses Beispiel zu lernen, aber im ein bisschen verloren mit der Schleife am Ende des Indikators bauen. Wo genau hat er einen Wert zu day_n Variable zuweisen?
Denn die Schleife prüft auf day_n<day_t. Wie kann das Programm den Wert von day_n kennen?
Toller Artikel,
Danke fürs Teilen