Diskussion zum Artikel "Cross-Plattform Expert Advisor: Einführung"

 

Neuer Artikel Cross-Plattform Expert Advisor: Einführung :

Dieser Artikel erläutert eine Methode, durch die leichter und schneller Cross-Plattform Expert Advisors entwickelt werden können. Die vorgeschlagene Methode vereinigt die Funktionen beider Versionen in einer einzigen Klasse, und trennt die Umsetzung der abgeleiteten Klassen für die inkompatible Funktionen.

Beachten Sie, beiden Quelldateien von oben sind identisch. Eine einzige Quelldatei kann aber nicht cross-plattform-kompatibel sein. Das ist bedingt durch die Art, wie Quelldateien kompiliert werden:

  • Das Kompilieren einer MQ4 Quelldatei führt zu einer EX4-Datei
  • Das Kompilieren einer MQ5 Quelldatei führt zu einer EX5-Datei

Daher kann eine einzige Quelldatei nicht auf beiden Plattformen funktionieren. Es ist jedoch möglich, dass beide Quelldateien auf die dieselbe Headerdatei zugreifen, wie das im Folgenden gezeigt wird:

Quell- und Header-Dateien

Autor: Enrico Lambino

 

Toller Artikel: leicht zu lesen, alle Ideen sind klar und sogar Ihre eigenen erscheinen...

 
Die Idee (plattformübergreifend) ist richtig. Aber hier wird vorgeschlagen, eine bestimmte Metasprache zu erstellen und sie zu verwenden, um plattformübergreifende Expert Advisors zu schreiben. Die Meta-Sprache scheint in dieser Lösung überflüssig, weil man alles in MQL4 schreiben kann. Und die Expert Advisors sollten nicht nur auf MT4, sondern auch auf MT5 laufen. Es gibt eine solche Lösung in kodobase. Insbesondere können mit dieser Lösung alte MQ4-Codes im MT5 durch Hinzufügen eines Encludniks gestartet werden. Im Allgemeinen scheint die Schaffung einer Metasprache weniger universell und sogar überflüssig. Allerdings wäre es interessant zu sehen, die Fortsetzung der Reihe von Artikeln zu diesem Thema. Hoffentlich wird die Arbeit von sysov nicht ausfallen.

Was die Einleitung selbst betrifft. Das Beispiel mit StringConcatenate haut mich um. Es ist schwer zu verstehen, wer diese Funktion in MT4/5 verwendet. Es ist nicht nur umständlich, sondern auch unübersichtlich. Die Verkettung von Strings wurde in beiden Plattformen IMMER durch den + Operator erreicht. Die Verwendung von StringConcatenate für Strings ist also vergleichbar mit der Verwendung der Funktion "NumberSummary", um die Summe von Zahlen zu erhalten. Absurd, kurz gesagt.

Wenn ich es richtig verstanden habe, ist dies eine Übersetzung des Artikels. Deshalb sollten Sie an das Original schreiben, um den Autor zu kontaktieren. Englische Version?
 
https://www.mql5.com/ru/code/16006
MT4Orders
MT4Orders
  • Stimmen: 11
  • 2016.08.05
  • fxsaber
  • www.mql5.com
Параллельное использование ордерных систем MetaTrader 4 и MetaTrader 5.
 
fxsaber:
Die Idee (plattformübergreifend) ist richtig. Aber hier wird vorgeschlagen, eine bestimmte Metasprache zu erstellen und sie zu verwenden, um plattformübergreifende Expert Advisors zu schreiben. Die Meta-Sprache scheint überflüssig in dieser Lösung, weil Sie alles in MQL4 schreiben können. Und um EAs nicht nur auf MT4, sondern auch auf MT5 laufen zu lassen.
Wenn ich richtig verstanden habe, ist dies eine Übersetzung des Artikels. Daher, um den Autor zu kontaktieren, offenbar, müssen Sie das Original zu schreiben. Englische Version?
Ja
 
MetaQuotes Software Corp.:

Veröffentlichter Artikel Cross-platform trading advisor: Einführung:

Autor: Enrico Lambino

Entschuldigung, aber wozu ist das gut?
 
Yuriy Asaulenko:
Tut mir leid, aber was soll das bringen?
Damit Sie keine Portierung vornehmen müssen.
 
Ein plattformübergreifender Expert Advisor kann nur erstellt werden, wenn er auf einer plattformübergreifenden Trading Engine basiert, bei der die Trading API und der Datenzugriff durch OO-Versionen ersetzt werden, deren interne Implementierung durch Makros #ifdef __MQL5__ bestimmt wird. In Anbetracht der obigen Ausführungen ist der Artikel des Autors zumindest naiv. Natürlich ist es toll, dass der Autor das Makro #ifdef __MQL5__ entdeckt hat, aber das allein reicht nicht aus. Man muss bei jedem Schritt eine Engine mit #ifdef schreiben, und das ist viel komplizierter.