Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 440
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
Hallo 2015.09.17_19:07 GMT+3 .Ich habe die Dimensionen der dynamischen Arrays im EA-Programm festgelegt. Und der Compiler gibt Fehler aus: "Komma erwartet". Und wenn eine Variable im Programmtext vorkommt, gibt -- Warnungen aus: "Variable soundso versteckt Variablendeklaration auf globaler Ebene". Das verstehe ich nicht. Alles scheint korrekt zu sein, wie in der Hilfe. Hier sind einige Codeschnipsel:
//--- Array der maximalen Barpreise
bool ArraySetAsSeries(double &High[],bool);
//---
bool ArraySetAsSeries(double &Low[],bool);
//--- Festlegen der Array-Größen mit Reserve (Reserve)
int ArrayResize(double &mrate[],int 16,int 9);
int ArrayResize(double &maVal[],int 16,int 9);
int ArrayResize(double &fVal[],int 3,int 2);
int ArrayResize(double &zVal[],int 3,int 0);
int ArrayResize(double &High[],int 1,int 0);
int ArrayResize(double &Low[],int 1,int 0);
//+------------------------------------------------------------------+
//| Experten-Deinitialisierungsfunktion |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
Hallo 2015.09.17_19:07 GMT+3 .Ich habe die Dimensionen der dynamischen Arrays im EA-Programm festgelegt. Und der Compiler gibt Fehler aus: "Komma erwartet". Und wenn im Programmtext steht
Wenn Sie meinen Code meinen - dann ja, mein Code prüft auf einen neuen Balken.
Ich bin an dem beigefügten Code interessiert - ich möchte verstehen, was er bewirkt.
Der von Ihnen angegebene Code führt zu nichts, oder besser gesagt, er funktioniert nicht. Fehler:
Diese Bedingung gilt nur einmal - bei der ersten Ausführung des Programms. Zu diesem Zeitpunkt wird die statische Variable initialisiert.
Die nachstehende Bedingung ist sinnlos, da die Variable TimeN in Ihrem Code gleich der ewigen Null ist (oder vielmehr dem Datum 1. Januar 1970) und diese ewige Null mit der Variablen TimeC verglichen wird, die dem Zeitpunkt der Eröffnung des aktuellen Balkens entspricht:)
Der von Ihnen angegebene Code führt zu nichts, oder besser gesagt, er funktioniert nicht. Fehler:
Diese Bedingung gilt nur einmal - beim ersten Start des Programms. Zu diesem Zeitpunkt wird die statische Variable initialisiert.
Die nachstehende Bedingung ist sinnlos, da die Variable TimeN in Ihrem Code gleich der ewigen Null sein wird (oder vielmehr dem Datum 1. Januar 1970) und diese ewige Null mit der Variablen TimeC verglichen wird, die der Eröffnungszeit des aktuellen Balkens entspricht):
Jetzt frage ich mich, warum ich es hätte schreiben sollen... in Expert Advisor.
Danke für die Klarstellung!
Wenn der neue Balken im Zeitrahmen M1 liegt, wird die Meldung gedruckt:
Es stellte sich heraus, dass ich nicht den vollständigen Code angegeben hatte, der richtige war
int init()
{
static datetime TimeN=0;
return(INIT_SUCCEEDED);
}
int start()
{
datetime TimeC=iTime(NULL,TF,0);
if(TimeN==0)TimeN=TimeC;
if(TimeN==TimeC) return(0);
TimeN=TimeC;
// Код программы исполняется при появлении нового бара
return(INIT_SUCCEEDED);
}
Es stellte sich heraus, dass ich nicht den vollständigen Code angegeben hatte, der richtige Code war
int init()
{
static datetime TimeN=0;
return(INIT_SUCCEEDED);
}
int start()
{
datetime TimeC=iTime(NULL,TF,0);
if(TimeN==0)TimeN=TimeC;
if(TimeN==TimeC) return(0);
TimeN=TimeC;
// Код программы исполняется при появлении нового бара
return(INIT_SUCCEEDED);
}
Hier ist der Arbeitscode:
Haben Sie versucht, diesen Code zu kompilieren? Hier liegt ein Fehler vor: Die Variable TimeN ist in OnInit() deklariert, und diese Variable wird beim Verlassen von OnInit() zerstört. Daher tritt in der Funktion OnTick() ein Fehler auf
Hier ist der Arbeitscode:
Ich schrieb static datetime TimeN=0; in den Bereich vorint OnInit() - wo externe und andere Variablen deklariert werden.