MetaTrader 4 Build 529 beta mit neuem Compiler veröffentlicht - Seite 124

 
VOLDEMAR:

Schreiben Sie besser alles auf Englisch, denn wenn Ihr Code an einen Händler in Übersee geht, wird er nichts verstehen...

Ich schreibe Code für einen Russen und er bittet mich, auf Russisch zu schreiben. Und was ich hier ankreuze - ich schreibe für mich selbst, und es ist mir egal, ob ich auf Russisch oder auf dem Mars schreibe. Wenn ich ein Problem sehe, beschreibe ich es.

Ich schreibe es auf Englisch für Market.

 
pro_:
stringo:

Gesucht und gefunden

.

Nennen Sie mir Ihr Beispiel.



Ich habe Ihnen in einer privaten Nachricht geschrieben. Mit einem Beispiel für das Problem, mit dem ich konfrontiert bin. ObjectFind war ein Versuch, das Problem zu lösen, und Sie haben wahrscheinlich recht,
ObjectFind selbst funktioniert gut.

Das Problem ist klar. Falsche Verwendung der Funktion ObjectFind. ObjectFind gibt die Nummer des Teilfensters zurück, in dem das Objekt gefunden wurde. Wenn kein Objekt gefunden wird, wird -1 zurückgegeben. Sie prüfen auf "Null - Null".
 
Night63:

Hallo!

Wir haben das folgende Problem festgestellt.

Wir fügen den Block für den Wechsel von 4-stelligen Kursen zu 5-stelligen ein (der Code funktioniert absolut einwandfrei, er wurde an Dutzenden von Expert Advisors getestet):

Von hier aus können Sie Folgendes sehen.

Wir rufen die Eingabeparameter des Expert Advisors auf, indem wir F7 drücken, alles ist korrekt:

Drücken Sie auf OK und dann erneut auf F7:

Drücken Sie OK, drücken Sie erneut F7:

Drücken Sie OK, drücken Sie erneut F7:

Und so weiter......

Dieser Fehler verschwindet nicht mit aktualisierten Builds. Erscheint bei verschiedenen Benutzern auf die gleiche Weise. Das Thema wurde hier diskutiert


Sie können die Eingabevariablen nicht ändern!

Verwenden Sie das Schlüsselwort input anstelle von extern, dann lässt der Compiler Sie dies nicht tun.

Wir werden sehen, was wir tun können, um die alte Vierfachfunktionalität zu erhalten.

PS: Vielen Dank für den Hinweis auf dieses Thema.

 
artmedia70:
In Zukunft wird Bars also nicht nur eine vordefinierte Variable sein, sondern auch eine Funktion mit dem gleichen Namen: Bars() ?

Das ist durchaus möglich. (In C/C++ ist dies übrigens erlaubt.)
 
stringo:

Sie können die Eingabevariablen nicht ändern!



Können Sie hier im Detail erklären, was es bedeutet, dass Eingabevariablen nicht geändert werden können?

Wenn die Eingangsvariable input int TakeProfit = 300 ;

dann kann ich ihm im Code einen anderen Wert geben.

Ich verstehe nicht, warum ich es nicht ändern kann.

 

Eine weitere Frage: Wie kann ich programmatisch feststellen, dass sich der Mauszeiger auf einem bmp-Objekt befindet?

Ich habe Code gemacht, wo unter dem Objekt gibt es einen Bereich, wo der Cursor fällt und der Code versteht, dass der Cursor über das bmp-Objekt ist ...

Ich frage, weil ich nach einer einfacheren Methode suche, den Cursor über ein bmp-Objekt zu definieren ...

 
VOLDEMAR:

Können Sie hier genauer erklären, was es bedeutet, dass die Eingabevariablen nicht geändert werden können?

Wenn die Eingangsvariable input int TakeProfit = 300 ;

dann kann ich ihm im Code einen anderen Wert zuweisen.

Ich verstehe nicht, wann kann ich mich nicht mehr ändern?

Die Software kann nicht geändert werden. Nur durch den Benutzer in den Einstellungen.

Eingabe int TakeProfit = 300;

int takeProfit;

int start() {

takeProfit=TakeProfit;

// Und dann takeProfit ändern.

zurück(0);

}

 
artmedia70:

Sie können sie nicht programmatisch ändern. Nur durch einen Benutzer in den Einstellungen.

Eingabe int TakeProfit = 300;

int takeProfit;

int start() {

takeProfit=TakeProfit;

// Und dann takeProfit ändern.

zurück(0);

}




Vielen Dank !!! Jetzt weiß ich Bescheid ...
 
VOLDEMAR:

Können Sie hier genauer erklären, was es bedeutet, dass die Eingabevariablen nicht geändert werden können?

Wenn die Eingangsvariable input int TakeProfit = 300 ;

dann kann ich ihm im Code einen anderen Wert zuweisen...

Ich verstehe nicht, wann kann ich mich nicht mehr ändern?

Hier ist ein Beispiel für unsere kundenspezifische Parabolika

input double InpSARStep=0.02;    // Step
input double InpSARMaximum=0.2;  // Maximum
//---- buffers
double       ExtSARBuffer[];
//--- global variables
double       ExtSarStep;
double       ExtSarMaximum;

...

void OnInit()
  {
//--- checking input data
   if(InpSARStep<0.0)
     {
      ExtSarStep=0.02;
      Print("Input parametr InpSARStep has incorrect value. Indicator will use value",
            ExtSarStep,"for calculations.");
     }
   else
      ExtSarStep=InpSARStep;
   if(InpSARMaximum<0.0)
     {
      ExtSarMaximum=0.2;
      Print("Input parametr InpSARMaximum has incorrect value. Indicator will use value",
            ExtSarMaximum,"for calculations.");
     }
   else
      ExtSarMaximum=InpSARMaximum;

...

Und weiter verwenden wir ExtSarStep und ExtSarMaximum

 
stringo:
Sicher ist nur, dass es nicht so bald sein wird.


Das ist sehr schade. Meine Experten brauchen diese Veranstaltungen wie Luft.

Bei jedem Schritt müssen Sie eine Reihe von Positionen durchgehen und herausfinden, welche Positionen wohin gegangen sind und warum.