Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 140

 
DC2008:

1. Wenn Sie die Schecks weglassen, können Sie wie folgt vorgehen:

2. Ja

3. Die Frage ist nicht klar.

1. Wofür sind die Schecks gedacht? Wenn ohne sie weniger Ressourcen verschwendet würden?

2. In mql4 gibt es zum Beispiel Variablennamen:

int start()
  {
   int
   Total,                           // Количество ордеров в окне 
   Tip=-1,                          // Тип выбран. ордера (B=0,S=1)
   Ticket;                          // Номер ордера
   double
   MA_1_t,                          // Значен. МА_1 текущее
   MA_2_t,                          // Значен. МА_2 текущее 
   One_Lot,                         // Стоимость одного лота
   Price,                           // Цена выбранного ордера
   SL,                              // SL выбранного ордера 
   TP;                              // TP выбранного ордера
   bool 
   Ans  =false,                     // Ответ сервера после закрытия
   Cls_B=false,                     // Критерий для закрытия  Buy
   Cls_S=false,                     // Критерий для закрытия  Sell

In welchem Abschnitt von mql5, um diese Variablen, die oben in den Code, die in mql4 in int Start sind aufzulisten?

Globale Variablen werden vor dem Start von int gesetzt. Der gesamte EA-Code stammt aus dem Tutorial hierhttps://с.mql4.com/book

 
forexman77:

1. Wofür sind die Schecks gedacht? Wenn ohne sie weniger Ressourcen verschwendet würden?

2. In mql4 gibt es zum Beispiel Variablennamen:

In welchem Abschnitt von mql5, um diese Variablen, die oben in den Code, die in mql4 in int Start sind aufzulisten?

Globale Variablen werden vor dem Start von int gesetzt. Der gesamte Code des Expert Advisors ist dem Tutorial hierhttps://с.mql4.com/book entnommen.

1. Für zuverlässigen realen Handel mit dem Expert Advisor.

Dies sind lokale Variablen, die Sie in die Funktion OnTick kopieren können, die die Funktion start() der 4.

Ich möchte Sie jedoch warnen: Handelsfunktionen sollten NICHT eins zu eins übertragen werden!

 
DC2008:

1. Für einen zuverlässigen EA-Betrieb auf real.

2. Es handelt sich um lokale Variablen, die in die Funktion OnTick kopiert werden können, die die Funktion start() der vier ersetzt.

Ich möchte Sie jedoch warnen, die Handelsfunktionen sollten NICHT von einem zum anderen kopiert werden!

Meinen Sie, dass einige Variablen in fünf unterschiedlich gezählt werden? Tut mir leid, ich weiß noch nichts über mql5, daher kann ich Sie nicht ganz verstehen. Könnten Sie mir ein Beispiel dafür geben, warum man keine Funktionen von mql4 zu einem anderen übertragen kann? Gibt es einen Forumszweig für Dummies?)

Ich versuche, den Code einzufügen:

datetime iTimeMQL4(string symbol,int tf,int index)
{
   if(index < 0) return(-1);
   ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
   datetime Arr[];
   if(CopyTime(symbol, timeframe, index, 1, Arr)>0)
        return(Arr[0]);
   else return(-1);
}

Ich sehe Fehler in void OnTick():

TFMigrate' - Funktion nicht definiert

implizite Enum-Konvertierung

Ich habe die gleichen Fehler in int OnInit() versucht. Was mache ich falsch?

In mql5 legen wir Flaggen, Tickets, Stop- und Profit-Lots usw. in globalen Variablen ab, die außerhalb des Hauptcodes gespeichert werden müssen, d.h. das Prinzip ist das gleiche wie in mql4.

 
forexman77:

Meinen Sie, dass einige Variablen in 5 anders gezählt werden? Es tut mir leid, aber ich weiß nichts über mql5 und ich kann Sie nicht ganz verstehen. Könnten Sie mir ein Beispiel dafür geben, warum mql4-Funktionen nicht ineinander übertragen werden können? Gibt es in diesem Forum einen Zweig für absolute Dummies?)

Sie sollten mql4 aufgeben und nicht Zeile für Zeile "dumm" übersetzen, sondern anfangen "aus dem Ofen zu tanzen"! Es gibt eine Menge Beispiele und fertige Expert Advisors in kodobase und in der Standard-MQ-Auslieferung für die fünf. Wenn das "höhere Mathematik" für Sie ist, dann bestellen Sie einen EA in der Rubrik "Arbeit".

Nun zu den Antworten auf Ihre Fragen:

  1. Kopieren Sie die Funktion TFMigrate aus dem Artikel, sie steht am Anfang.
  2. Was die Variablen anbelangt, so ist das Prinzip dasselbe.
 
DC2008:

Man kann nicht einfach anfangen, "aus dem Ofenrohr zu tanzen", anstatt "stumm" Zeile für Zeile zu übersetzen! Es gibt viele Beispiele und fertige EAs in kodobase und im Standard-MQ-Paket für five. Wenn das "höhere Mathematik" für Sie ist, dann bestellen Sie einen EA in der Rubrik "Arbeit".

Nun zu den Antworten auf Ihre Fragen:

  1. Kopieren Sie die Funktion TFMigrate aus dem Artikel, sie steht am Anfang.
  2. Was die Variablen anbelangt, so ist das Prinzip dasselbe.
Ich versuche, Ihre Funktion in die
int HourMQL4(){MqlDateTime tm;TimeCurrent(tm);return(tm.hour);};
in void OnTick(), so soll sie in den globalen Bereich 'HourMQL4' gestellt werden - die Funktion kann nur im globalen Bereich deklariert werden. Ist es wirklich notwendig, sie dort anzubringen? Wenn ich das tue, tritt kein Fehler auf. Ist ein Semikolon nach einer geschweiften Klammer notwendig?
 
Wie kann man die aktuelle Zeit in Minuten vom Tagesbeginn an bestimmen?

Ich habe mir das so vorgestellt:

datetime  vrema=TimeCurrent(MqlDateTime{int hour;});
int tek_vrema= vrema*60;
Ich bin mir bei der ersten Zeile nicht sicher, ob der Code korrekt ist.
 
forexman77:
Wenn ich versuche, Ihre Funktion in void OnTick() einzufügen, wird verlangt, sie in global 'HourMQL4' einzufügen - die Funktion kann nur im globalen Bereich deklariert werden. Ist es wirklich notwendig, sie dort anzubringen? Wenn ich das tue, tritt kein Fehler auf. Ist ein Semikolon nach einer geschweiften Klammer notwendig?

Die Funktion kann nicht in eine Funktion eingebunden werden.

 
forexman77:
Wie kann man die aktuelle Zeit in Minuten vom Tagesbeginn an bestimmen?

Ich habe es mir so vorgestellt:

Ich bin mir bei der ersten Zeile nicht sicher, ob der Code korrekt ist.

Das ist richtig:

   MqlDateTime tm;
   TimeCurrent(tm);
   int tek_vrema=tm.hour*60;
 
Guten Tag, könnten Sie mir bitte den Indikator oder Expert Advisor nennen, der nach der Bildung eines Candlestick-Musters wie im Bild mit einem Piepton benachrichtigt. D.h. der Signalton ertönt nach 7 gegenüberliegenden Kerzen oder nach 6 Kerzen, diese Zahl kann also geändert werden. Ich danke Ihnen.
 
DC2008:

So wird's gemacht:

Ich danke Ihnen vielmals! Es funktioniert.

Erklären Sie die Logik von mql5. In mql4 wird int Hour() verwendet, um die Zeit in Stunden zu bestimmen. In mql5 gibt es keine solche Konstante, soweit ich verstanden habe.

1 Wie erkennt das Programm, dass wir die Zeit in Stunden angeben? Ich nehme an, vonMqlDateTime?

Um die aktuelle Zeit in Minuten zur aktuellen Zeit in Stunden zu addieren, d.h. um die aktuelle Zeit in Minuten zu ermitteln, würde die Konstruktion wie folgt aussehen

 MqlDateTime tm;
 TimeCurrent(tm);
 int tek_vrema=tm.hour*60+tm.min;

Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура даты
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура даты
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура даты - Документация по MQL5
Grund der Beschwerde: