Fragen von Anfängern MQL4 MT4 MetaTrader 4 - Seite 113
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
Ich brauche meine EA, um alle Aufträge (Verkauf und Kauf) zu öffnen, auch wenn sie bereits offen sind und dass es nicht tun würde, wenn alle Bedingungen konvergieren, aber auf die nächste Kerze!!! Hilfe plz......Ich bin im Voraus dankbar...
Im Moment habe ich dies in meinem Code:
{
if(NewBar())
{
// Algorithmus selbst usw.
}
}
bool NewBar()
{
staticdatetimelastbar=0;
datetime curbar=iTime(Symbol(),0,0);
if(lastbar!=curbar)
{
lastbar=curbar;
return(true);
}
return(false);
}
}
Hier ist die Funktion.
Ich dachte nur, dass das Problem nicht im Code liegt, da im Standardmodus keine Fehler auftreten.
Wie auch immer, niemand scheint zu antworten...
Wie auch immer, es scheint niemand zu antworten...
In der von Ihnen geposteten Funktion scheint es keine Fehler zu geben. Ich bin verwirrt über die Verwendung von OrderTicket()!=Ticket, um benachbarte Aufträge mit demselben Ticket auszusortieren. Vergewissern Sie sich, dass es keine solchen Aufträge gibt. Wenn (69,25) vom Compiler angegeben wird , sehen Sie sich die Position 25 der Zeile 69 an - dort liegt der Fehler. Geben Sie diese eine Zeile ein.
Ich frage mich wirklich, was er in Reihe 69 hat.
Puh, ich dachte schon, es würde niemand reagieren.
Hier ist dieser Teil des Codes:
66 double Volatilität(int _Periode){
67 double summ = 0;
68 for(int i=1; i<=_period; i++)
69 summ+=MathAbs(High[i]-Low[i])
70 return(NormalizeDouble(summ/_period, Digits))
71 }
Danke für den Hinweis
Puh, ich dachte schon, es würde niemand reagieren.
Hier ist dieser Teil des Codes:
66 double Volatilität(int _Periode){
67 double summ = 0;
68 for(int i=1; i<=_period; i++)
69 summ+=MathAbs(High[i]-Low[i])
70 return(NormalizeDouble(summ/_period, Digits))
71 }
Danke für den Hinweis.
Alles ist klar. Der Fehler liegt in der Zeile summ+=MathAbs(High[i]-Low[i]); wenn man 25 Positionen vom Rand aus zählt, kommt man wahrscheinlich auf High[i] zurück.
Ich habe Alert(Low[-1]) geschrieben; der Compiler verlangt eine positive Zahl. Ich schrieb int n=-1; Alert(Low[n]); - beim Ausführen von Array out of rangre. Aber wie kann i<0 ??? vielleicht ist es der Mangel an historischen Daten? überprüfen Sie das Datumsintervall von ... zu ...
BITTE GEBEN SIE AN, WELCHEN HÄNDLER SIE WÄHLEN SOLLEN ODER DEN GENAUEN SERVERNAMEN
Puh, ich dachte schon, es würde niemand reagieren.
Hier ist dieser Teil des Codes:
66 double Volatilität(int _Periode){
67 double summ = 0;
68 for(int i=1; i<=_period; i++)
69 summ+=MathAbs(High[i]-Low[i])
70 return(NormalizeDouble(summ/_period, Digits))
71 }
Danke für den Hinweis
Es scheint, dass _period manchmal einen größeren Wert als die Array-Elemente hat. Daher wird das Feld überlaufen.
Wählen Sie eine der Optionen.