Könnten Sie bitte klarstellen... wenn ich richtig verstanden habe.
Mit this=(datetime)OrderGetInteger weisen wir OrderGetInteger an, den explizitenDatentyp datetime zuverwenden. ?
Gilt diese Regel für alle Funktionen, die keinen expliziten Typ haben oder nicht mit dem Typ der zugewiesenen Variablen übereinstimmen, oder ist dies nur ein Sonderfall?
Ich möchte wissen, ob dies eine Regel ist oder nur als Sonderfall zu beachten ist.
Es handelt sich nicht um einen Sonderfall. Wenn Sie einen Wert eines anderen Typs in eine Variable eines Typs schreiben, wird der Compiler Sie davor warnen. Und es liegt an Ihnen zu entscheiden, von welcher Variable die Daten genommen werden sollen.
In Ihrem Fall - bei der Rückgabe eines expliziten Datetime-Wertes aus einer Funktion mit dem Typ long - ist es natürlich sicher, und Sie sollten den Typ des Wertes, den Sie von der Funktion erhalten, explizit angeben.
Wenn Sie jedoch einen doppelten Wert in eine int-Variable aufnehmen, müssen Sie wissen, ob die Daten durch eine solche Zuweisung nicht verloren gehen. Wenn Sie sicher wissen, dass der Rückgabewert in int passt, geben Sie int explizit an, wenn Sie es nicht wissen, nehmen Sie ihn als Double-Variable.
Dies ist kein Sonderfall. Wenn Sie einen Wert eines anderen Typs in eine Variable eines Typs schreiben, wird der Compiler Sie davor warnen. Und es liegt an Ihnen zu entscheiden, von welcher Variable die Daten genommen werden sollen.
In Ihrem Fall - bei der Rückgabe eines expliziten Datetime-Wertes aus einer Funktion mit dem Typ long - ist es natürlich sicher, und Sie sollten den Typ des Wertes, den Sie von der Funktion erhalten, explizit angeben.
Wenn Sie jedoch einen doppelten Wert in eine int-Variable aufnehmen, müssen Sie sich darüber im Klaren sein, dass bei einer solchen Zuweisung keine Daten verloren gehen. Wenn Sie sicher wissen, dass der zurückgegebene Wert in int passt, geben Sie int explizit an, wenn Sie es nicht wissen, nehmen Sie ihn in eine double-Variable auf.
Vielen Dank für die ausführliche Antwort. Ich hab's.
3. ich verstehe nicht, wie man einen Elementvergleich mit dem iMa-Griff durchführt... Ich kenne die Strukturen!!! Ich habe es versucht, aber MT5 ist im Gegensatz zu MT4 nicht so klar...
Die allgemeinen Unterschiede der Programmierung im MT5 sind bereits bekannt! Aber ich kann noch nicht programmieren (die Würfel gehen nicht auf)))))
Es ist wichtig für mich, in meinem Kopf auf diese Teile und Module von MT5.... zu HÖREN. Ich verstehe die Logik in MT4 schnell, aber MT5 "würfelt" nur ....
Ich habe MT4 gemeistert, aber MT5 .... verstehe ich nicht((( Es gibt nicht viele Beispiele, und die, die nicht erklären, was ich brauche.
Bitte beraten Sie, wie man MT5 mit einigen Beispielen von MT4-Code verwenden oder geben Sie mir einige Links zu den Indikatoren mit ähnlichen Fällen.
1.
2.
3. ich verstehe nicht, wie man einen Elementvergleich mit dem iMa-Griff durchführt... Ich kenne die Strukturen!!! Ich habe es versucht, aber MT5 ist im Gegensatz zu MT4 nicht so klar...
Die allgemeinen Unterschiede der Programmierung im MT5 sind bereits bekannt! Aber ich kann noch nicht programmieren (die Würfel gehen nicht auf)))))
Es ist wichtig für mich, in meinem Kopf auf diese Teile und Module von MT5.... zu HÖREN. Ich verstehe die Logik in MT4 schnell, aber MT5 "würfelt" nur ....
Ich habe MT4 gemeistert, aber MT5 .... verstehe ich nicht((( Es gibt nicht viele Beispiele, und die, die nicht erklären, was ich brauche.
Bitte beraten Sie, wie man MT5 mit einigen Beispielen von MT4-Code verwenden oder geben Sie mir einige Links zu den Indikatoren mit ähnlichen Fällen.
1.
2.
3. ich verstehe nicht, wie man einen Elementvergleich mit dem iMa-Griff durchführt... Ich kenne die Strukturen!!! Ich habe es versucht, aber MT5 ist im Gegensatz zu MT4 nicht so klar...
Die allgemeinen Unterschiede der Programmierung im MT5 sind bereits bekannt! Aber ich kann noch nicht programmieren (die Würfel gehen nicht auf)))))
Es ist wichtig für mich, in meinem Kopf auf diese Teile und Module von MT5.... zu HÖREN. In MT4 verstehe ich die Logik schnell, aber MT5 "würfelt" nur ....
Danke für die Tipps)))
Wenn Sie mehrere Zeitreihen eines Zeitrahmens vergleichen müssen, arbeiten Sie mit einem Array wieMqlRates-> und verwenden SieCopyRates, um dieses Array zu füllen.
//+------------------------------------------------------------------+//| Test_en.mq5 |//+------------------------------------------------------------------+#property script_show_inputs//--- input parametersint InpBarTime=3; // Bar where we compare the time//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
MqlRates rates[];
ArraySetAsSeries(rates,true);
int start_pos =0; // start position int count=(InpBarTime<10)?10:InpBarTime+1; // data count to copy int result=CopyRates(Symbol(),Period(),start_pos,count,rates);
if(result!=count)
{
Print("Ordered: ",IntegerToString(count),", received ",IntegerToString(result));
}
//--- example 1// if(Period()<=PERIOD_H4 && TimeHour(Time[h])==0 && TimeMinute(Time[h])==0)MqlDateTime SDateTime;
TimeToStruct(rates[InpBarTime].time,SDateTime); // Converts a value of datetime type into a structure variable MqlDateTimeif(Period()<=PERIOD_H4 && SDateTime.hour==0 && SDateTime.min==0)
{
}
}
//+------------------------------------------------------------------+
Ich habe MT4 gemeistert, aber MT5 .... verstehe ich nicht((( Es gibt nicht viele Beispiele, und die, die nicht erklären, was ich brauche.
Bitte beraten Sie, wie man MT5 mit einigen Beispielen von MT4-Code verwenden oder geben Sie mir einige Links zu den Indikatoren mit ähnlichen Fällen.
1.
2.
3. ich verstehe nicht, wie man einen Elementvergleich mit dem iMa-Griff durchführt... Ich kenne die Strukturen!!! Ich habe es versucht, aber MT5 ist im Gegensatz zu MT4 nicht so klar...
Die allgemeinen Unterschiede der Programmierung im MT5 sind bereits bekannt! Aber ich kann noch nicht programmieren (die Würfel gehen nicht auf)))))
Es ist wichtig für mich, in meinem Kopf auf diese Teile und Module von MT5.... zu HÖREN. In MT4 verstehe ich die Logik schnell, aber MT5 "würfelt" nur ....
Danke für die Tipps)))
Arbeiten mit Indikatoren - am Beispiel desMA Force Codes
Schritt 1: Auf globaler Programmebene deklarieren Sie die Variable handle_iMA, die den Indikator-Handle speichern wird
int handle_iMA; // variable for storing the handle of the iMA indicator
Schritt 2: Erstellen eines Indikators in OnInit() und Rückgabe der Variablehandle_iMA
//--- create handle of the indicator iMA
handle_iMA=iMA(m_symbol.Name(),Inp_MA_period,Inp_MA_ma_period,Inp_MA_ma_shift,
Inp_MA_ma_method,Inp_MA_applied_price);
//--- if the handle is not created if(handle_iMA==INVALID_HANDLE)
{
//--- tell about the failure and output the error code PrintFormat("Failed to create handle of the iMA indicator for the symbol %s/%s, error code %d",
m_symbol.Name(),
EnumToString(Inp_MA_period),
GetLastError());
//--- the indicator is stopped early return(INIT_FAILED);
}
Schritt 3: stellen Sie eine Anfrage in OnTick() - kopieren Sie eine bestimmte Menge an Daten(count) aus dem Indikator inma[] array
Frage: Führt dies zu Fehlern oder ist es innerhalb der Grenzen eines Codes oder sogar einer Funktion normal?
Es ist besser, sich nicht verwirren zu lassen und einen Ansatz zu verwenden: entweder die HandelsklasseCSymbolInfo oder Systemfunktionen wie SymbolInfoXXXX.
Ich danke Ihnen für das Beispiel.
Könnten Sie bitte klarstellen... wenn ich richtig verstanden habe.
Mit this=(datetime)OrderGetInteger weisen wir OrderGetInteger an, den explizitenDatentyp datetime zuverwenden. ?
Gilt diese Regel für alle Funktionen, die keinen expliziten Typ haben oder nicht mit dem Typ der zugewiesenen Variablen übereinstimmen, oder ist dies nur ein Sonderfall?
Ich möchte wissen, ob dies eine Regel ist oder nur als Sonderfall zu beachten ist.
Es handelt sich nicht um einen Sonderfall. Wenn Sie einen Wert eines anderen Typs in eine Variable eines Typs schreiben, wird der Compiler Sie davor warnen. Und es liegt an Ihnen zu entscheiden, von welcher Variable die Daten genommen werden sollen.
In Ihrem Fall - bei der Rückgabe eines expliziten Datetime-Wertes aus einer Funktion mit dem Typ long - ist es natürlich sicher, und Sie sollten den Typ des Wertes, den Sie von der Funktion erhalten, explizit angeben.
Wenn Sie jedoch einen doppelten Wert in eine int-Variable aufnehmen, müssen Sie wissen, ob die Daten durch eine solche Zuweisung nicht verloren gehen. Wenn Sie sicher wissen, dass der Rückgabewert in int passt, geben Sie int explizit an, wenn Sie es nicht wissen, nehmen Sie ihn als Double-Variable.
Dies ist kein Sonderfall. Wenn Sie einen Wert eines anderen Typs in eine Variable eines Typs schreiben, wird der Compiler Sie davor warnen. Und es liegt an Ihnen zu entscheiden, von welcher Variable die Daten genommen werden sollen.
In Ihrem Fall - bei der Rückgabe eines expliziten Datetime-Wertes aus einer Funktion mit dem Typ long - ist es natürlich sicher, und Sie sollten den Typ des Wertes, den Sie von der Funktion erhalten, explizit angeben.
Wenn Sie jedoch einen doppelten Wert in eine int-Variable aufnehmen, müssen Sie sich darüber im Klaren sein, dass bei einer solchen Zuweisung keine Daten verloren gehen. Wenn Sie sicher wissen, dass der zurückgegebene Wert in int passt, geben Sie int explizit an, wenn Sie es nicht wissen, nehmen Sie ihn in eine double-Variable auf.
Vielen Dank für die ausführliche Antwort. Ich hab's.
(Guten Tag an Sie alle)))
Ich habe MT4 gemeistert, aber MT5 .... verstehe ich nicht((( Es gibt nicht viele Beispiele, und die, die nicht erklären, was ich brauche.
Bitte beraten Sie, wie man MT5 mit einigen Beispielen von MT4-Code verwenden oder geben Sie mir einige Links zu den Indikatoren mit ähnlichen Fällen.
1.
2.
3. ich verstehe nicht, wie man einen Elementvergleich mit dem iMa-Griff durchführt... Ich kenne die Strukturen!!! Ich habe es versucht, aber MT5 ist im Gegensatz zu MT4 nicht so klar...
Die allgemeinen Unterschiede der Programmierung im MT5 sind bereits bekannt! Aber ich kann noch nicht programmieren (die Würfel gehen nicht auf)))))
Es ist wichtig für mich, in meinem Kopf auf diese Teile und Module von MT5.... zu HÖREN. Ich verstehe die Logik in MT4 schnell, aber MT5 "würfelt" nur ....
Danke für die Tipps)))
Bitte ändern Sie das feste Los meines Roboters in %-Los. Code unter vier Augen.
Freiberuflich.
(Guten Tag an Sie alle)))
Ich habe MT4 gemeistert, aber MT5 .... verstehe ich nicht((( Es gibt nicht viele Beispiele, und die, die nicht erklären, was ich brauche.
Bitte beraten Sie, wie man MT5 mit einigen Beispielen von MT4-Code verwenden oder geben Sie mir einige Links zu den Indikatoren mit ähnlichen Fällen.
1.
2.
3. ich verstehe nicht, wie man einen Elementvergleich mit dem iMa-Griff durchführt... Ich kenne die Strukturen!!! Ich habe es versucht, aber MT5 ist im Gegensatz zu MT4 nicht so klar...
Die allgemeinen Unterschiede der Programmierung im MT5 sind bereits bekannt! Aber ich kann noch nicht programmieren (die Würfel gehen nicht auf)))))
Es ist wichtig für mich, in meinem Kopf auf diese Teile und Module von MT5.... zu HÖREN. Ich verstehe die Logik in MT4 schnell, aber MT5 "würfelt" nur ....
Danke für die Tipps)))
Lesen Sie zunächst die Dokumentation sorgfältig durch. Der Abschnitt"Zugang zu Zeitreihen und Indikatoren".
Es sollte klar sein, wie man die Uhrzeit erhält, sie in die Struktur "einfügt" und dann Stunde und Minute getrennt erhält.
Es gibt auch CopyBuffer, um Indikatorwerte anhand ihres Handles zu erhalten.
Wenn Sie noch Fragen haben...
(Guten Tag an Sie alle)))
Ich habe MT4 gemeistert, aber MT5 .... verstehe ich nicht((( Es gibt nicht viele Beispiele, und die, die nicht erklären, was ich brauche.
Bitte beraten Sie, wie man MT5 mit einigen Beispielen von MT4-Code verwenden oder geben Sie mir einige Links zu den Indikatoren mit ähnlichen Fällen.
1.
2.
3. ich verstehe nicht, wie man einen Elementvergleich mit dem iMa-Griff durchführt... Ich kenne die Strukturen!!! Ich habe es versucht, aber MT5 ist im Gegensatz zu MT4 nicht so klar...
Die allgemeinen Unterschiede der Programmierung im MT5 sind bereits bekannt! Aber ich kann noch nicht programmieren (die Würfel gehen nicht auf)))))
Es ist wichtig für mich, in meinem Kopf auf diese Teile und Module von MT5.... zu HÖREN. In MT4 verstehe ich die Logik schnell, aber MT5 "würfelt" nur ....
Danke für die Tipps)))
Wenn Sie mehrere Zeitreihen eines Zeitrahmens vergleichen müssen, arbeiten Sie mit einem Array wieMqlRates-> und verwenden SieCopyRates, um dieses Array zu füllen.
Es ist praktisch, die Zeit in einerMqlDateTime-Struktur zu speichern -> verwenden SieTimeToStruct, um die Zeit vondatetime in eineMqlDateTime-Struktur zu konvertieren.
Ihr Beispiel 1 sieht dann wie folgt aus:
Frage: Führt dies zu Fehlern oder ist es innerhalb der Grenzen eines Codes oder sogar einer Funktion normal?
(Guten Tag an Sie alle)))
Ich habe MT4 gemeistert, aber MT5 .... verstehe ich nicht((( Es gibt nicht viele Beispiele, und die, die nicht erklären, was ich brauche.
Bitte beraten Sie, wie man MT5 mit einigen Beispielen von MT4-Code verwenden oder geben Sie mir einige Links zu den Indikatoren mit ähnlichen Fällen.
1.
2.
3. ich verstehe nicht, wie man einen Elementvergleich mit dem iMa-Griff durchführt... Ich kenne die Strukturen!!! Ich habe es versucht, aber MT5 ist im Gegensatz zu MT4 nicht so klar...
Die allgemeinen Unterschiede der Programmierung im MT5 sind bereits bekannt! Aber ich kann noch nicht programmieren (die Würfel gehen nicht auf)))))
Es ist wichtig für mich, in meinem Kopf auf diese Teile und Module von MT5.... zu HÖREN. In MT4 verstehe ich die Logik schnell, aber MT5 "würfelt" nur ....
Danke für die Tipps)))
Arbeiten mit Indikatoren - am Beispiel desMA Force Codes
Schritt 1: Auf globaler Programmebene deklarieren Sie die Variable handle_iMA, die den Indikator-Handle speichern wird
Schritt 2: Erstellen eines Indikators in OnInit() und Rückgabe der Variablehandle_iMA
Schritt 3: stellen Sie eine Anfrage in OnTick() - kopieren Sie eine bestimmte Menge an Daten(count) aus dem Indikator inma[] array
Schritt 4: Arbeiten Sie mit dem Indikatordatenfeld und vergleichen Sie seine Elemente:
Frage: Führt dies zu Fehlern oder ist es innerhalb der Grenzen eines Codes oder sogar einer Funktion normal?
Es ist besser, sich nicht verwirren zu lassen und einen Ansatz zu verwenden: entweder die HandelsklasseCSymbolInfo oder Systemfunktionen wie SymbolInfoXXXX.