Es meldet einen Fehler array out of range in '**.mq5' (13,10) Wenn ich die Zeichenfolge double buf[]; durch double buf[10]; ersetze, gibt es keinen Ausgang außerhalb des Arrays.
meldet einen Fehler array out of range in '**.mq5' (13,10) wenn ich die Zeichenkette double buf[]; durch double buf[10]; ersetze, gibt es keinen array exit.
Entweder double buf[10];
Oder double buf[];, aber dann unbedingt ArrayResize(buf,10);
Oder double buf[];, aber dann muss ich ArrayResize(buf,10) ausführen;
Ich danke Ihnen.
Darf ich noch etwas erklären?
D.h., wenn ich ein Array initialisiere und es dann in der Schleife fülle, wächst seine Größe mit jeder Iteration, und ich muss seine Größe neu definieren? Ich dachte, dies geschieht automatisch, egal wie viele Elemente ich hinzufüge.
Wenn ich sie sofort mit einer bestimmten Anzahl von Elementen fülle, muss ich dieses Verfahren nicht durchführen.
voidOnStart() { //--- double buf[]; ArrayInitialize(buf,0); int closed1=CopyClose("EURUSD",NULL,0,3,buf);
D.h., wenn ich ein Array initialisiere und es dann in der Schleife fülle, wächst seine Größe mit jeder Iteration, und ich muss seine Größe neu definieren? Ich dachte, das geschieht automatisch, egal wie viele Elemente ich hinzufüge.
und wenn ich sie sofort mit einer bestimmten Anzahl von Elementen fülle, muss ich ein solches Verfahren nicht durchführen.
voidOnStart() { //--- double buf[]; ArrayInitialize(buf,0); int closed1=CopyClose("EURUSD",NULL,0,3,buf);
}
Die Funktion CopyXXXX() setzt automatisch die Größe des übergebenen Arrays außer Kraft.
Wenn Sie das Array selbst ausfüllen, wenn es dynamisch ist, muss der Programmierer dafür sorgen, dass es die richtige Größe hat.
Wenn Sie ein Array deklarieren, können Sie es zu
ein dynamisches Array, in diesem Fall müssen Sie die Größe neu definieren.
nicht-dynamisch: buff[5] - in diesem Fall müssen Sie ihn mit den richtigen Werten initialisieren
nicht dynamisch: buff[]={10,20,30,40,50}; - in diesem Fall wird er bei der Deklaration mit Werten initialisiert
Wer weiß schon, was die Zahlen im Laufdiagramm bei der genetischen Optimierung bedeuten? Es gibt zwei Zahlen, zum Beispiel 0,637 oder 7,27. Und wie man den richtigen Lauf auswählt. Ich interessiere mich zum Beispiel für die Laufnummer 5381. Wie wählt man sie aus?
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Woher weiß ich, warum dieses Konstrukt nicht funktioniert?
{
//---
double buf[];
ArrayInitialize(buf,0);
for(int i=0; i<10; i++)
{
buf[i]= i;
}
}
Wenn ich die Zeichenfolge double buf[]; durch double buf[10]; ersetze, gibt es keinen Ausgang außerhalb des Arrays.
Können Sie mir sagen, warum diese Konstruktion nicht funktioniert?
{
//---
double buf[];
ArrayInitialize(buf,0);
for(int i=0; i<10; i++)
{
buf[i]= i;
}
}
wenn ich die Zeichenkette double buf[]; durch double buf[10]; ersetze, gibt es keinen array exit.
Entweder double buf[10];
Oder double buf[];, aber dann unbedingt ArrayResize(buf,10);
Entweder double buf[10];
Oder double buf[];, aber dann muss ich ArrayResize(buf,10) ausführen;
Ich danke Ihnen.
Darf ich noch etwas erklären?
D.h., wenn ich ein Array initialisiere und es dann in der Schleife fülle, wächst seine Größe mit jeder Iteration, und ich muss seine Größe neu definieren? Ich dachte, dies geschieht automatisch, egal wie viele Elemente ich hinzufüge.
Wenn ich sie sofort mit einer bestimmten Anzahl von Elementen fülle, muss ich dieses Verfahren nicht durchführen.
{
//---
double buf[];
ArrayInitialize(buf,0);
int closed1=CopyClose("EURUSD",NULL,0,3,buf);
}
Ich danke Ihnen.
Kann ich das noch deutlicher machen?
D.h., wenn ich ein Array initialisiere und es dann in der Schleife fülle, wächst seine Größe mit jeder Iteration, und ich muss seine Größe neu definieren? Ich dachte, das geschieht automatisch, egal wie viele Elemente ich hinzufüge.
und wenn ich sie sofort mit einer bestimmten Anzahl von Elementen fülle, muss ich ein solches Verfahren nicht durchführen.
{
//---
double buf[];
ArrayInitialize(buf,0);
int closed1=CopyClose("EURUSD",NULL,0,3,buf);
}
Die Funktion CopyXXXX() setzt automatisch die Größe des übergebenen Arrays außer Kraft.
Wenn Sie das Array selbst ausfüllen, wenn es dynamisch ist, muss der Programmierer dafür sorgen, dass es die richtige Größe hat.
Wenn Sie ein Array deklarieren, können Sie es zu
Die Funktion CopyXXXX() setzt automatisch die Größe des übergebenen Arrays außer Kraft.
Wenn Sie das Array selbst füllen und es dynamisch ist, muss der Programmierer dafür sorgen, dass es die richtige Größe hat.
Wenn Sie ein Array deklarieren, können Sie es zu
Wer weiß, was das Vorzeichen zwischen den Klammern bedeutet?GHPR=(BalanceClose/BalanceOpen)^(1/N)
Die bitweise Operation ist ein exklusives ODER.
Wirklich? Wirklich?
Ich habe immer gedacht, dass(^) eine Potenzierung ist.
Wer weiß, was das Vorzeichen zwischen den Klammern bedeutet?GHPR=(BalanceClose/BalanceOpen)^(1/N)