Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 804
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
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.