Aktualisierter MQL4 und alter Code (Austausch von Problemlösungserfahrungen) - Seite 2

 

Der Code aus diesem Artikel funktioniert ebenfalls nicht mehr. https://forum.mql4.com/ru/3481

Insbesondere schreibt oder liest es keine Dateien vom Laufwerk C.

 
Ich habe ein 509 Bild. Heute habe ich gesehen, dass der Herausgeber gewechselt hat. Ich musste eine Menge im Code von EA ändern, und während der Kompilierung erhielt ich Fehler im Zusammenhang mit stdlib.mqh und stderror. Ich habe diese Dateien in /MQL4/Include kopiert und der Expert Advisor hat es geschafft, .
 

Über Nacht aktualisiert ME auf beiden Real auf 509 und mit offenen Positionen. Punkt erwies sich als 0,0001 bzw. Digits 4! Musste die Variablen dringend machen, wie in der Dokumentation angegeben, aber der StopLoss ist aus irgendeinem Grund mit Null auf der 5. Und der einzige Indikator DailyPivotPoints, den ich zur "Beruhigung meines Gewissens" verwende, ist verschwunden. Ich musste es neu kompilieren.

In der Demo waren die aktualisierten früheren Punkte und Ziffern sofort normal und die DailyPivotPoints flogen nicht weg.

 
Was für Horrorgeschichten du hier erzählst, das sollte man zur Schlafenszeit erzählen, so wie wir es früher im Pionierlager gemacht haben)))
 
evillive:
Was für Schrecken du hier erzählst, sollte man nachts erzählen, wie es früher im Pionierlager war )))

Wir kommen also zu MT0 und nur zu dem ganzen Haufen. Bisher habe ich es so gemacht, wie in der Dokumentation beschrieben, und die Punkte und Ziffern, egal wie man sie einfärbt, sind die gleichen wie bei einer vierstelligen Partie.

  double point = MarketInfo(Symbol(),MODE_POINT);
  int   digits = MarketInfo(Symbol(),MODE_DIGITS);
Und die Demo ist in Ordnung, relativ gesehen natürlich.
 
borilunad:

Wir kommen also zu MT0 und nur zu dem ganzen Haufen. Bisher habe ich es so gemacht, wie in der Dokumentation beschrieben, aber Punkt und Ziffern, egal wie man sie einfärbt, sind die gleichen wie bei einer vierstelligen Partie.

Und die Demo ist gut, relativ gesehen natürlich.

Haben Sie die Referenz aktualisiert? Ich bin hineingegangen und habe Folgendes gefunden - es war vorher nicht da.

-----------------------

int _Zahlen

Die Variable _Digits speichert die Anzahl der Dezimalstellen nach dem Komma, die die Genauigkeit des Preises des aktuellen Diagrammsymbols bestimmt.

Sie können auch die Funktion Digits() verwenden.

----------------------

Ich habe überprüft, dass die Zeile Print(_Digits, " ", Digits()); bei AUDJPY und EURUSD folgendes ergibt

2014.02.07 18:52:54.313 TestFileOpen EURUSD.e,M30: 5 5
2014.02.07 18:52:33.317 TestFileOpen AUDJPY.e,M15: 3 3

 
VDev:

Haben Sie die Hilfe aktualisiert? Ich bin hineingegangen und habe Folgendes gefunden - es war vorher nicht da.

-----------------------

int _Zahlen

Die Variable _Digits speichert die Anzahl der Dezimalstellen nach dem Komma, die die Genauigkeit des Preises des aktuellen Diagrammsymbols bestimmt.

Sie können auch die Funktion Digits() verwenden.

Das muss sein, wenn man zu einer aktualisierten Sprache wechselt, und das tue ich nicht, alles kompiliert! Aber sehr seltsam, dass auf Demo mit dem gleichen Expert Advisor auf einem anderen Terminal am Montag aktualisiert Punkt und Ziffern sind normal, fünf Ziffern, aber hier auf Real sollte fünf Ziffern durch MarketInfo() erhalten :(((

Hier gibt es ein Häkchen im Kommentar zum Diagramm:

  "\n\n                                  ",DoubleToStr(Point,Digits), //тут выводится 0.0001
  "\n                                  ",DoubleToStr(point,5),   //а тут с переменной 0.00001
Natürlich war ich "entsetzt", als SL auf das 10-fache seines Wertes gesetzt wurde! Ich behalte diesen Scheck vorerst in der Hoffnung, dass er richtig funktioniert, und werde ihn weglegen.
 

Es wird weitere Probleme geben, aber es ist ein Anfang))) Jetzt scheint der Compiler die strikte Einhaltung normaler Sprachen wie C/C++ und natürlich MQL5 zu verlangen. Das heißt, so ein Blödsinn kann nicht mehr kompiliert werden.

switch(n)
{
case 1: double d=1; break;
case 2: d=2; break;
}
 
VDev:

Es wird weitere Probleme geben, aber es ist ein Anfang))) Jetzt scheint der Compiler die strikte Einhaltung normaler Sprachen wie C/C++ und natürlich MQL5 zu verlangen. Das heißt, so ein Blödsinn kann nicht mehr kompiliert werden.

Ich gebe mich nicht mit solchem Unsinn ab! Die Hauptsache ist, wenn...sonst - es funktioniert und das war's! Stimmt, der Schalter ist in den ausgeliehenen Funktionen außerhalb des Starts, und alles funktioniert. Vielleicht geht es am Montag nach einer Pause wieder normal weiter! ;))
 
borilunad:
Damit beschäftige ich mich nicht! Die Hauptsache ist, dass ... sonst funktioniert, und das war's! Echte Schalter sind in den ausgeliehenen Funktionen außerhalb des Starts, und alles funktioniert. Vielleicht geht es am Montag nach einer Pause wieder normal weiter! ;))
Ich habe diese Version heute nur eine Stunde lang ausprobiert, ich bin mir dessen nicht bewusst. Ein Bekannter von mir brachte mich heute zum Lachen )))) Er liebt es, Punkte in Variablennamen zu setzen. Ich habe ihm schon lange gesagt, dass er es in Unterstriche ändern soll. Heute ließ es sich nicht gut kompilieren. Also sagt er zu mir - warum, denn jetzt müssen Variablen einfach Klassen werden!
Grund der Beschwerde: