Diskussion zum Artikel "Einführung in MQL5: Schreiben eines einfachen Expert Advisor und benutzerdefinierten Indikators" - Seite 4

 

Dieser ExpertAdvisor funktioniert nicht auf MT5 build 712, zumindest nicht für mich.

Es gibt eine Fehlermeldung "Cant't copy indicator buffer".

Auch der Indikator kompiliert nicht ohne Warnungen,

"Möglicher Datenverlust aufgrund von Typkonvertierung" in Zeile 53,

"mögliche Verwendung einer nicht initialisierten Variablen 'day_n'" in Zeile 54

"mögliche Verwendung bei nicht initialisierter Variable 'h_day'" in Zeile 62

"mögliche Verwendung bei nicht initialisierter Variable 'l_day'" in Zeile 63


Können Sie diese Probleme bitte korrigieren?

Dies ist ansonsten ein gutes Beispiel für uns, die mit anderer Software als MT5 vertraut sind.

 
Wenn ich 5 Verkaufsstopps und 5 Kaufstopps mit einem Abstand von 10 Pips zwischen den Aufträgen platzieren möchte. Wie kann ich das tun?
Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Order Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Trade Constants / Order Properties - Documentation on MQL5
 

Dies ist ein ausgezeichneter Artikel, für Anfänger und Menschen, die von mql4 kommt, mit in erster Linie eine gute Handelsstrategie Beispiel.

Es gibt einige kleinere Mängel im Code (Fehlerprüfung nicht immer implementiert), aber die EA funktioniert sehr gut, wenn auf Minute Zeitrahmen verwendet, wie vom Autor empfohlen. Die Warnungen beim Kompilieren des Indikators sind nur Warnungen und hindern Sie nicht daran, ihn und den EA zu verwenden.

Vielen Dank.

Documentation on MQL5: Standard Constants, Enumerations and Structures / Chart Constants / Chart Timeframes
  • www.mql5.com
Standard Constants, Enumerations and Structures / Chart Constants / Chart Timeframes - Documentation on MQL5
 

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.

Fast Dive into MQL5
  • 2012.08.02
  • MetaQuotes Software Corp.
  • www.mql5.com
You have decided to study MQL5 trading strategies' programming language, but you know nothing about it? We have tried to examine MQL5 and MetaTrader 5 terminal from the newcomers' point of view and have written this short introductory article. In this article, you can find a brief idea of the possibilities of the language, as well as some tips on working with MetaEditor 5 and the terminal.
 
angreeee:

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 es einen gibt, kann man diese Leute an den Fingern einer Hand abzählen.

Sie haben recht, dass Programmierer im Allgemeinen keine guten Lehrer sind.

Aber ich stimme Ihnen nicht zu, wenn Sie sagen, dass MQL5 so schwer zu erlernen ist, vor allem für einen Programmierer, der mit 10+ Sprachen experimentiert hat.

 
In der Tat ist dies ein großartiger Artikel für Anfänger der mql5-Programmierung, wie ich. angevoyageur sprechen Recht über sie.
 

In der Praxis ist es, soweit ich mich erinnere, möglich, eines der Niveaus (SL oder TP) einer Position zu ändern und die anderen Niveaus unverändert zu lassen, auch wenn das Niveau, dessen Wert unverändert bleibt, näher am aktuellen Preis liegt als im Parameter SYMBOL_TRADE_STOPS_LEVEL angegeben. Bei der Erstellung von Programmen empfehle ich nicht, Positionsparameter (Levels) so zu ändern, dass die neuen Positionsparameter (Levels) nicht den Anforderungen an die Überprüfung der Korrektheit der Positionsdaten entsprechen, da diese Situation nicht dokumentiert ist und in Zukunft ein anderes Ergebnis erzielt werden kann.

[Gelöscht]  
Ich habe den Expert Advisor kopiert und versucht, ihn mit Strategytester zu testen. Aber es macht keine Trades. Ich bin neu in MQL5 und Programmierung so vielleicht habe ich nur einen dummen Fehler gemacht. Es kompiliert ohne Fehler. Ich würde die Strategie wirklich gerne haben! Hat jemand eine Idee, warum sie nicht auf Strategytester läuft?
 

Hallo zusammen!

Alles funktioniert bei mir nur, wenn

request.type_filling=ORDER_FILLING_IOC;

request.type_time = ORDER_TIME_DAY;

Ähnliche Situation mit https://www.mql5.com/ru/forum/1156/page9#comment_2359257

Ist das eine Eigenheit meines Brokers FxPro?

Обсуждение статьи "Пошаговое руководство по написанию советников в MQL5 для начинающих"
Обсуждение статьи "Пошаговое руководство по написанию советников в MQL5 для начинающих"
  • www.mql5.com
Обсуждение статьи "Пошаговое руководство по написанию советников в MQL5 для начинающих". - Страница 9 - Категория: статьи и техническая библиотека по автоматическому трейдингу
 

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?


for(i=prev_calculated;i<rates_total;i++)
     {
      day_t=time[i]/PeriodSeconds(ATRtimeframe);
      if(day_n<day_t)
        {
         day_n=day_t;
         h_day=high[i];
         l_day=low[i];
        }
        else
        {
         if(high[i]>h_day) h_day=high[i];
         if(low[i]<l_day) l_day=low[i];
        }
      bu[i]=l_day+atr[1];
      bd[i]=h_day-atr[1];
     }


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!!!!