Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 472

 
Pr0t0tip:

Hallo, ich habe das folgende Problem. Das Protokoll gibt eine OrderModify von 130, wenn getestet, helfen Sie mir einen Ausweg zu finden. Hier ist der Code des EA:


SL = NormalizeDouble(Bid+StopLoss*Point, Digits);

SL = NormalizeDouble(Bid-TakeProfit*Point, Digits);     Здесь поменяй   SL  на   TP
SL = NormalizeDouble(Ask-StopLoss*Point, Digits);

SL = NormalizeDouble(Ask+TakeProfit*Point, Digits);     И здесь
 

'}' - nicht alle Kontrollpfade geben einen Wert zurück

hebt einen solchen Fehler in der Funktion..... hervor, obwohl sie einen Wert zurückgibt und in einem anderen Indikator ohne diesen Fehler einwandfrei funktioniert


 
Zver4991:

'}' - nicht alle Kontrollpfade geben einen Wert zurück

hebt einen solchen Fehler in der Funktion..... hervor, obwohl sie einen Wert zurückgibt und in einem anderen Indikator ohne diesen Fehler einwandfrei funktioniert



Öffnen Sie einen neuen Editor, markieren Sie die erste Klammer und überprüfen Sie die letzte, dann sehen Sie alles auf einmal.
 

Können Sie mir sagen, ob es möglich ist, das Programm Schritt für Schritt im Debug-Modus ablaufen zu lassen? Und fügen Sie weitere Variablen zur Verfolgung hinzu

 
Zver4991:

'}' - nicht alle Kontrollpfade geben einen Wert zurück

die Funktion....., obwohl sie einen Wert zurückgibt und in einem anderen Indikator ohne diesen Fehler einwandfrei funktioniert


Dies ist eine Meldung, die Sie darauf hinweist, dass es in der Funktion Verzweigungsoptionen gibt, obwohl sie möglicherweise nichts zurückgibt. Zum Beispiel:

//+----------------------------------------------------------------------------+
int TestFunc(int a) {
   if(a>2 || a<0) a=2;
   if(a==0) return(1);
   else if(a==1) return(2);
   else if(a==2) return(3);
}
//+----------------------------------------------------------------------------+

Der Wert der Variable a scheint im Bereich von 0 bis 2 begrenzt zu sein, aber der Compiler betrachtet dies trotzdem als Fehler.

Setzen Sie return() mit dem Standardrückgabewert der Funktion vor die schließende Klammer des Funktionskörpers, und alles wird gut:

//+----------------------------------------------------------------------------+
int TestFunc(int a) {
   if(a>2 || a<0) a=2;
   if(a==0) return(1);
   else if(a==1) return(2);
   else if(a==2) return(3);
   return(-1);
}
//+----------------------------------------------------------------------------+
 
artmedia70:

Dies zeigt Ihnen, dass es Verzweigungsoptionen in der Funktion gibt, wenn sie nichts zurückgeben kann. Zum Beispiel:

Der Wert der a-Variablen scheint im Bereich von 0 bis 2 begrenzt zu sein, aber der Compiler betrachtet es immer noch als einen Fehler.

Setzen Sie return() vor die schließende Klammer des Funktionskörpers mit dem Standardrückgabewert der Funktion und alles wird gut:


Was ist, wenn a kein int-Typ ist?

Funktionstyp - Rückgabewert am Ende der Funktion

int  - return(-1);

void - return;

bool - return(false);

string - return(""); 
 
artmedia70:

Dies zeigt Ihnen, dass es Verzweigungsoptionen in der Funktion gibt, wenn sie nichts zurückgeben kann. Zum Beispiel:

Der Wert der Variablen a scheint auf einen Bereich von 0 bis 2 begrenzt zu sein, aber der Compiler betrachtet ihn trotzdem als Fehler.

Setzen Sie return() vor die schließende Klammer des Funktionskörpers mit dem Standardrückgabewert der Funktion und alles wird gut:


Vielen Dank..... hat mir die Nerven gerettet
 
Vladon:


Was ist, wenn der Typ einer Person nicht int ist?

der Funktionstyp ist das Rückgabeergebnis am Ende der Funktion


Worum ging es da? Ich habe nur ein Beispiel genannt - das erste, das mir in den Sinn kam. Sie hätten eine Funktion schreiben können, die jeden anderen Datentyp (außer void) zurückgibt... Das ändert nichts an der Sache.
 
artmedia70:
Worum ging es da? Ich habe nur ein Beispiel genannt - das erste, das mir in den Sinn kam. Sie hätten eine Funktion schreiben können, die jeden anderen Datentyp (außer void) zurückgibt... Das ändert nichts an der Sache.


Ich wollte nur den Datentyp klarstellen. Dies ist ein Zweig der Fragen von Neulingen, daher erwarten sie in jeder Funktion die gleiche Rückgabe
 

Hilfe bei den Wanzen!

Ich habe mich entschlossen, einen EA für mich selbst auf der Grundlage eines Beispiels aus dem mql4-Handbuch zu erstellen. Ich spiele jetzt seit einer Woche damit herum, aber ich bekomme immer irgendeine Fehlermeldung.

Bitte prüfen Sie, was falsch sein könnte, vielleicht sollte zusätzlich zu den Klammern noch etwas geändert oder entfernt werden.

Irrtümer:

'}' - unerwartetes Ende des Programms expert.mq4 218 3

'{' - unausgewogene Klammern expert.mq4 23 2

Dateien:
expert_1.mq4  9 kb