Eine Frage an MQL-Experten - Seite 17

 

Wer hat Ihnen gesagt, dass dies ein Fehler ist?

Der Screenshot zeigt deutlich, dass Ihr Expert Advisor die Funktion ErrorDescription mit dem Typ string verwendet

Es liegt kein Fehler vor. Das neue Build hat gerade eine praktische Funktion hinzugefügt - jetzt können Sie sehen, welche Funktionen von der EA aus der Dll und den Bibliotheken verwendet werden.

 
Rita:

Beide Ordner (Incloud und Libraries) enthalten stdlib-Quellen. Vorsichtshalber habe ich sie aus dem Incloud-Ordner kopiert.

Der oben beschriebene Fehler wird jedoch weiterhin auf der Registerkarte "Abhängigkeiten" angezeigt. Vielleicht sollte man den Aufruf dieser Funktionen irgendwie ändern: Anstelle von:

Den Anruf auf eine andere Weise einstellen?

Oder wird es jetzt unmöglich sein, die Funktionen von I.Kim in der neuesten Version von mt4 zu nutzen?


1) Öffnen Sie die Datei stdlib.mq4 im Ordner "Libraries".

2) kompilieren Sie es

3) sollte ohne Fehler funktionieren

 

Ich danke Ihnen allen für Ihre Antworten und Empfehlungen. Noch eine kleine Frage.

So wie ich es verstanden habe, werden die Namen der globalen Variablen jetzt im Code rot hervorgehoben. Mein Code hat jedoch zusammengesetzte Namen, von denen einige mit den globalen Namen übereinstimmen. Und dieser passende Teil ist aus irgendeinem Grund ebenfalls rot hervorgehoben!

Kann es sich negativ auf den Betrieb der EA auswirken? Oder ist gegen eine solche partielle Hervorhebung nichts einzuwenden?

 
Rita:

Ich danke Ihnen allen für Ihre Antworten und Empfehlungen. Noch eine kleine Frage.

So wie ich es verstanden habe, werden die Namen der globalen Variablen jetzt im Code rot hervorgehoben. In meinem Code gibt es jedoch zusammengesetzte Namen, von denen einige mit den globalen Namen übereinstimmen. Und dieser passende Teil ist aus irgendeinem Grund ebenfalls rot hervorgehoben!

Kann es sich negativ auf den Betrieb der EA auswirken? Oder ist gegen eine solche partielle Hervorhebung nichts einzuwenden?


Es ist alles in Ordnung, aber Sie sollten sich an den ServiceDesk wenden und das Problem beheben lassen.
 
Ich habe noch nie von einem solchen Dienst gehört. Bitte geben Sie mir einen Link.
 
Rita:
Ich habe noch nie von einem solchen Dienst gehört. Bitte geben Sie mir einen Link.

Sie müssen sich im mql5.com Forum registrieren, es gibt einen Link in Ihrem Profil.
 
Die russische Sprache ist rot beleuchtet und das, was Sie global haben, ist ein wenig anders beleuchtet, kein Problem für Sie ....
 

Guten Morgen!

Nach der Aktualisierung von MT4 hat der Indikator, der vorher einwandfrei funktioniert hat, aufgehört, seine Linie zu zeichnen. Und es wurde herausgefunden, dass irgendwie der Code des Indikators stark die Arbeit des Prozessors auf alten Versionen von MT4 mit einem zwangsweise aktualisierten Meta-Editor beeinflusst. Aber dazu später mehr.

Nach dem Update, wenn ich den Indikator auf dem Chart installiere, wird die eingestellte Linie fehlerhaft und falsch gezeichnet (basierend auf der Schlusskursdifferenz der 2 angegebenen Symbole). Beim Umschalten des Zeitrahmens verschwindet die Zeile überhaupt (leeres Fenster), und die Aufschrift im Protokoll erscheint:

und nach mehreren Zeitrahmenwechseln (oder Neustart von mt4) verschwindet der Indikator ganz aus dem Chart:

2014.02.25 10:22:38.640 Benutzerdefinierter Indikator Spread-I-env #GCJ4,M30: entfernt

Was könnte der Grund dafür sein? Was ist dieser seltsame Fehler?

2014.02.25 10:21:07.437Zugriffsverletzung beim Lesen von 0x000003E5 in 'C:\Program Files\InstaTrader\MQL4\indicators\Spread-I-env- mod1.ex4'

 

Hallo!

Können Sie mir bitte sagen, wie ich die Hintergrundfarbe des Diagramms in den neuen Builds finden kann?

In den alten habe ich das so gefunden:

#import "user32.dll"

int GetWindowDC(int h);

int ReleaseDC(int h, int hDC);

bool GetWindowRect(int h, int& pos[4]);

#import

#import "gdi32.dll"

int GetPixel(int hDC, int x, int y);

#import

//+------------------------------------------------------------------+

//| Skriptprogramm-Startfunktion |

//+------------------------------------------------------------------+

void start()

{

int col = getBackgroundColor();

if (col==-1) MessageBox("Keine Ecke des Fensters ist sichtbar.");

else MessageBox("Hintergrundfarbe: " + col);

}

//+------------------------------------------------------------------+

int getBackgroundColor()

{

int h = WindowHandle(Symbol(), Periode());

int hDC = GetWindowDC(h);

int col = GetPixel(hDC, 2, 2);

if(col==-1) {

// Die linke obere Ecke ist nicht sichtbar

int rect[4];

GetWindowRect(h, rect);

int wW = rect[2] - rect[0]; // Fensterbreite

int wH = rect[3] - rect[1]; // Fensterhöhe

col = GetPixel(hDC, wW-3, wH-3); // rechte untere Ecke

if(col==-1) col = GetPixel(hDC, 2, wH-3); // BOW

if(col==-1) col = GetPixel(hDC, wW-3, 2); // LNT

}

ReleaseDC(h, hDC);

return(col);

}

Funktioniert nicht in neuen!

 

Vielen Dank, das klärt die Frage. Ich habe es selbst herausgefunden!

Farbe Farbe = ChartGetInteger( 0, CHART_COLOR_BACKGROUND, 0 );

Grund der Beschwerde: