В качестве первого операнда – "выражение1" – может быть использовано любое выражение, результатом которого является значение типа bool. Если результат равен , то выполняется третий операнд – "выражениеЗ". Второй и третий операнды, то есть "выражение2" и "выражениеЗ", должны возвращать значения одного типа и не должны иметь тип void...
Es ist einfach furchtbar! Wenn ich die Logik in den Expert Advisors noch nachvollziehen kann, einige Dinge korrigieren, einige weitere hinzufügen... Ich verstehe den Code der Indikatoren überhaupt nicht(
Vielen Dank, Igor. Ich habe es nicht richtig ausgedrückt. Der Indikator wird für eine bestimmte Anzahl von Balken (in diesem Fall 50) und in einem separaten Fenster berechnet und gezeichnet. Er benötigt nicht den Eröffnungskurs, sondern den ersten Balken des Tages, um den MA anzuzeigen. Aber trotzdem, danke.
read SetIndexDrawBegin() - dies ist eine Einschränkung für das Zeichnen des Indikatorpuffers, wird nie verwendet
Ich habe mein Beispiel umgeschrieben, in der ersten Version funktionierte es nicht richtig, wenn man die TFs wechselt, man muss dayopen und lastday zurücksetzen, sie sind mit dem Modifikator static beschrieben
В качестве первого операнда – "выражение1" – может быть использовано любое выражение, результатом которого является значение типа bool. Если результат равен , то выполняется третий операнд – "выражениеЗ". Второй и третий операнды, то есть "выражение2" и "выражениеЗ", должны возвращать значения одного типа и не должны иметь тип void...
Gibt es eine Funktion in MQL4, die erkennen kann, ob ein Zitat ist ein 5 oder 4 Dezimalstellen, wie viele Dezimalstellen ein Vermögenswert hat zum Beispiel EURJPY hat 2 Dezimalstellen, EURUSD hat 4 Dezimalstellen?
Seric29: Gibt es eine Funktion in MQL4, die Anführungszeichen von einem Kontotyp, wie 5 oder 4 Dezimalstellen identifizieren kann, was sind die Möglichkeiten zu identifizieren, wie viele Nullen ein Vermögenswert hat nach dem Komma zum Beispiel EURJPY hat 2 Dezimalstellen, EURUSD hat 4 Dezimalstellen?
Bei der Kompilierung wird jedoch eine Warnung ausgegeben: möglicher Datenverlust aufgrund der Typkonvertierung in der Zeile: index = GetPatt5barsDN(index);
double low3 = 0;
int index = 0;
low3 = GetPatt5barsDN(index);
index = GetPatt5barsDN(index);
Print("low3= ", low3);
Print("index= ", index);
Bei der Kompilierung sind keine Fehler im Funktionskopf (oder in der Funktion selbst) aufgetreten.
Können Sie mir sagen, was mit dem folgenden Eintrag gemeint ist
int i,limit=prev_calculated==0 ? rates_total-1 : rates_total-prev_calculated;
"==" , "?" , ": "
?
Vielen Dank, Igor. Ich habe es nicht richtig ausgedrückt. Der Indikator wird für eine bestimmte Anzahl von Balken (in diesem Fall 50) und in einem separaten Fenster berechnet und gezeichnet. Er benötigt nicht den Eröffnungskurs, sondern den ersten Balken des Tages, um den MA anzuzeigen. Aber trotzdem, danke.
read SetIndexDrawBegin() - dies ist eine Einschränkung für das Zeichnen des Indikatorpuffers, wird nie verwendet
oder in meinem Beispiel können Sie es so machen:
d.h. die Berechnung von Indikatorpuffern auf dieBarCount-Einstellung beschränken
Können Sie mir sagen, was mit dem folgenden Eintrag gemeint ist
int i,limit=prev_calculated==0 ? rates_total-1 : rates_total-prev_calculated;
"==" , "?" , ": "
?
https://docs.mql4.com/ru/basis/operators/ternary
Ich habe mein Beispiel umgeschrieben, in der ersten Version funktionierte es nicht richtig, wenn man die TFs wechselt, man muss dayopen und lastday zurücksetzen, sie sind mit dem Modifikator static beschrieben
Rückgabe des Indexes in dem als Referenz übergebenen Funktionsparameter
Zurückgeschickt:
double GetPatt5barsDN()
{
double low3 = 0;
int index = 0;
for(int i=1; i<20; i++)
{
wenn
((Close[i] > Open[i]) &&
(Schließen[i+1] > Öffnen[i+1]) &&
(Close[i+2] > Open[i+2]) && //Low[i+2] wird für diese Kerze benötigt
(Schließen[i+3] < Öffnen[i+3]) &&
(Schließen[i+4] < Öffnen[i+4])
low3 = Low[i+2];
index = i+2;
}
zurück(low3);
return(index);
}
Was soll ich als nächstes tun?
Zurückgeschickt:
double GetPatt5barsDN()
{
double low3 = 0;
int index = 0;
for(int i=1; i<20; i++)
{
wenn
((Close[i] > Open[i]) &&
(Schließen[i+1] > Öffnen[i+1]) &&
(Close[i+2] > Open[i+2]) && //Low[i+2] wird für diese Kerze benötigt
(Schließen[i+3] < Öffnen[i+3]) &&
(Schließen[i+4] < Öffnen[i+4])
low3 = Low[i+2];
index = i+2;
}
zurück(low3);
return(index);
}
Was soll ich als nächstes tun?
Das ist kein Weg, es zurückzubekommen.
Zum Beispiel so.
Weitere
double min = Low[GetPatt5barsDN()];Zurückgeschickt:
double GetPatt5barsDN()
{
double low3 = 0;
int index = 0;
for(int i=1; i<20; i++)
{
wenn
((Close[i] > Open[i]) &&
(Schließen[i+1] > Öffnen[i+1]) &&
(Close[i+2] > Open[i+2]) && //Low[i+2] wird für diese Kerze benötigt
(Schließen[i+3] < Öffnen[i+3]) &&
(Schließen[i+4] < Öffnen[i+4])
low3 = Low[i+2];
index = i+2;
}
zurück(low3);
return(index);
}
Was soll ich als nächstes tun?
Wo ist die Indexrückgabe über einen Parameter per Referenz?
Und bitte fügen Sie den Code korrekt ein:
Gibt es eine Funktion in MQL4, die Anführungszeichen von einem Kontotyp, wie 5 oder 4 Dezimalstellen identifizieren kann, was sind die Möglichkeiten zu identifizieren, wie viele Nullen ein Vermögenswert hat nach dem Komma zum Beispiel EURJPY hat 2 Dezimalstellen, EURUSD hat 4 Dezimalstellen?
https://docs.mql4.com/ru/predefined/digitsvar
Wo ist die Indexrückgabe über einen Parameter per Referenz?
Und bitte fügen Sie den Code korrekt ein:
Ich scheine es jetzt richtig verstanden zu haben:
Bei der Kompilierung wird jedoch eine Warnung ausgegeben: möglicher Datenverlust aufgrund der Typkonvertierung in der Zeile:
index = GetPatt5barsDN(index);
Bei der Kompilierung sind keine Fehler im Funktionskopf (oder in der Funktion selbst) aufgetreten.