Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1744

 
Bitte sagen Sie mir, mql5, ein Expert Advisor muss manchmal einen Zeitwert zu schreiben, um es zu lesen, aber es kann ein Absturz, etc. und die Zeit wird gelöscht werden. Kann ich datetime in eine globale Variable im Terminal schreiben, aber es ist doppelt, keine Probleme? Ich danke Ihnen!
 
Fast235 #:

Hilfe für die Profis, es ist schneller zu fragen, nämlich sozusagen einen Tutor zu engagieren. glauben Sie mir, es ist billiger und schneller.

aber man braucht einen begeisterten Fachmann als Tutor, nicht nur einen tiefgründigen Profi, man muss die Grundlagen richtig erklären und das war's. die anderen 10k Seiten. heterogene Informationen....

Danke für den Ratschlag!

 

Können Sie mir sagen, was besser ist:

Schreiben Sie alles in einem OnTick-Block oder trennen Sie es nach Funktionen? Das heißt, um nur Funktionsaufrufe in OnTick zu haben

(meine Frage bezieht sich hauptsächlich auf die Code-Optimierung und einige Aussichten und Fallstricke)
 
freelancerAntonyan globale Variable im Terminal schreiben, aber es ist doppelt, keine Probleme? Ich danke Ihnen!
Im Falle eines Absturzes wird nichts geschrieben, auch nicht GV. Und im Prinzip gibt es keine Probleme. Wenden Sie einfach eine explizite Typumwandlung beim Schreiben und auch beim Lesen an.
 
freelancerAntonyan globale Variable im Terminal schreiben, aber es ist doppelt, keine Probleme, oder ein anderer Weg ist besser? Ich danke Ihnen!

Jeder Typ kann über union in double geschrieben und von double zurückgelesen werden.

 
Ivan Butko Funktionsaufrufe in OnTick zu haben (Die Frage bezieht sich vor allem auf die Optimierung des Codes und auf mögliche Perspektiven und Fallstricke)

Funktionsaufrufe sind korrekter.

Lediglich die Funktionen sollten logisch vollständig und nachvollziehbar sein, so dass Sie die Logik von OnTick aus dem Code heraus verstehen können.

 
MakarFX #:
Geben Sie mir die Datei hier. Das ist etwas Neues, das habe ich noch nicht gehört.

Benennen Sie eine beliebige *.mq4-Datei in eine beliebige Erweiterung um und versuchen Sie, sie zu kompilieren. Es wird nicht funktionieren, der Compiler wird versuchen, sie so zu kompilieren, als ob sie MT5 wäre.

Was immer ich dort in die Datei geschrieben habe, wie(

#ifdef __MQL4__

#else

#endif

funktioniert nicht, bis ich die Datei wieder in *.mq4 umbenannt habe.

Weiß vielleicht jemand von den Profis, wie man das umgeht?

 
Valeriy Yastremskiy #:

Funktionsaufrufe sind korrekter.

Lediglich die Funktionen sollten logisch vollständig und nachvollziehbar sein, so dass Sie die Logik der Operation in OnTick aus dem Code heraus verstehen können.

Danke, ich meine
 
Sergey Zhukov #:

Benennen Sie eine beliebige *.mq4-Datei in eine beliebige Erweiterung um und versuchen Sie, sie zu kompilieren. Es wird nicht funktionieren, der Compiler wird versuchen, sie so zu kompilieren, als ob sie MT5 wäre.

Was immer ich dort in die Datei geschrieben habe, wie(

funktioniert nicht, bis ich die Datei wieder in *.mq4 umbenannt habe.

Wie kann ich das umgehen, weiß das einer der Profis?

Es lässt sich überhaupt nicht kompilieren!

Werfen Sie die Datei. Sie können alle Funktionen darin entfernen

 
Sergey Zhukov #:

Umbenennen einer *.mq4-Datei

Sergey, ich weiß nicht genau, warum ich die Datei umbenennen muss, aber es funktioniert so:


include1.mqh:

void go()
   {
   #ifdef __MQL5__
      printf("Это пятёрка");
   #else
      printf("Это четвёрка");
   #endif
   }

script1.mq4 und script1.mq5:

#include <include1.mqh>

void OnStart()
   {
   go();
   }


Verstanden, das ist das Problem:

__MQL4__

so etwas gibt es in der Sprache nicht mehr.