Tester zur Unterstützung von MG4-Skripten und Beratern - Seite 4

 

Ihr könnt alle mit dem Kopf gegen die Wand schlagen oder warmes Wasser erfinden.... AberInteger hat Recht.

Ganzzahlig:

Ganz genau. Insbesondere das Ausnutzen der Autorität einer höheren Position.

Alle Sprachen sind gleich, mit Ausnahme der extravaganten Sprachen. Sie alle können in 21 Tagen von jedem Dummy erlernt werden. Alle for, while, if, switch haben zwar eine andere Schreibweise, aber das macht im Prinzip keinen Unterschied. Nicht die Art und Weise, wie die Operatoren geschrieben sind, ist von Bedeutung, sondern die Infrastruktur, mit der die Sprache interagiert. In dieser Hinsicht sind MT4 und MT5 zwei verschiedene Welten.

Der Unterschied in allem. Angefangen beim Kleinen - bei der Nummerierung der Balken im Indikator, im MT4 von rechts nach links, im MT5 von links nach rechts. Weiter geht es mit dem wichtigeren - der aggregierten Position und der Organisation der Daten der Handelsgeschichte. Der größte Unterschied liegt in der Art und Weise, wie auf die Daten von Kursen und Indikatoren zugegriffen wird. Das Kopieren von Daten erfordert eine Überprüfung, eine Indexierung von links nach rechts und von rechts nach links, die Zeit des Balkens ist entweder im Bereich enthalten oder nicht. Nehmen Sie allein die Diskussion über die Funktion iBarShift() in CodeBase.

In MT4 reichte es aus, den Rückgabewert OrderSelect() zu überprüfen, um einen stabilen Betrieb des Expert Advisors zu gewährleisten, aber in MT5 ist es notwendig, bei jedem Schritt Überprüfungen durchzuführen, sogar bei den Daten des letzten Ticks. Es gibt auch einige Feinheiten der MT5-Programmierung, die Sie erst lernen werden, wenn Sie viel gelitten haben, denn es gibt viele Fallstricke.


 
Renat:

Was man in diesem Forum nicht sieht.

Warum, es gibt keine Verantwortung. Sie können alles sagen.

Die Sprachen sind immer noch unterschiedlich. Der Code eines Indikators für fünf funktioniert nicht immer in vier. Es gibt nicht genug Kapazität
 
Vinin:
Die Sprachen sind immer noch unterschiedlich. Der Indikatorcode für fünf funktioniert nicht immer in vier. Es gibt nicht genug Kapazität
Es ist besser, dass die Indikatorcodes für 4 auch in 4 funktionieren. Und es besteht kein Bedarf an Funktionen
 
borilunad:
Es wäre besser, wenn die Indikatorcodes für 4 noch in 4 funktionieren würden. Und es gäbe keinen Bedarf an Funktionen.
Sie funktionieren. Sofern sie nicht geändert oder neu kompiliert werden
 
Vinin:
Sie funktionieren. Es sei denn, Sie ändern sie oder kompilieren sie neu.
Ich habe nichts im "Theme" geändert, aber als das Terminal von der 670. auf die 711. Build aktualisiert wurde, wurde es mit jedem von ihnen im Tester träge, deshalb habe ich es gemeldet, aber ich habe angefangen, mit dem Standard-MA zu experimentieren und habe viele Dinge gefunden, die ich vorher aus Unerfahrenheit nicht konnte. Jetzt arbeite ich damit und bin damit zufrieden. Nur unzufrieden mit meinem Kauf eines 8, die genannt wird, bekam es, und geplant, auf sie nur arbeiten, und auf Vista den ganzen Rest. Ich schätze, ich werde mit Vista weitermachen müssen, solange es überlebt, und es dann kaufen, ohne jemandem zu vertrauen, und ich werde dies 8-th für Seife, Webseiten usw. lassen. :)
 
Renat:

MetaTrader 4 verfügt über eine begrenzte Tiefe der Historie, separate Zeitrahmen und direkten Zugang zu den Symbolleisten über Open/High/Low/Close/Time[xxx]. Ein solcher Direktzugriff ist in Bezug auf Ressourcen und CPU-Kosten sehr kostspielig zu implementieren. Beachten Sie, dass jeder Expert Advisor seine eigene lokale Kopie dieser Daten hat, um Konflikte mit anderen Expert Advisors und dem Terminal selbst zu vermeiden.

Dies ist nicht wirklich ein Benutzerproblem, sondern Ihr Problem. Man könnte also sagen, dass Sie die Probleme des Terminals beim Datenzugriff auf den Benutzer abwälzen.

D.h. entweder man legt die Messlatte für die Kodierfähigkeiten höher oder man erhält eine Menge ungültigen Code, der schlimmer und ineffizienter sein kann als der direkte, bequeme Zugriff in MT4.

In der Tat sind einige Ihrer Lösungen sehr umstritten.

 
TheXpert:

Dies ist nicht wirklich ein Benutzerproblem, sondern Ihr Problem. Man könnte also sagen, dass Sie die Probleme des Terminals beim Datenzugriff auf den Benutzer abwälzen.

D.h. entweder man legt die Messlatte der Programmierkenntnisse höher oder man bekommt einen Haufen krummen Code, der viel schlechter und ineffektiver funktionieren kann als der direkte bequeme Zugriff in MT4.

Im Allgemeinen sind einige Ihrer Lösungen sehr umstritten.


Lesen Sie den gesamten Text - es gibt eine direkte Begründung, warum es unmöglich ist, ihn weiter zu verwenden.

Damit der Nutzer uns später nicht für Bremsen oder übermäßigen Ressourcenverbrauch verantwortlich macht, haben wir eine effektivere Kontrolle über die angeforderten Daten gegeben.

Ein einfaches Beispiel: ein Expert Advisor auf Eurodollar M1 mit einer Historie von 10 Jahren, der aktuelle Chart dauert etwa 200 mb. Im MT4-Modell müssten wir bei jedem Tick 200 MB in den Schatten-Snapshot des Experten replizieren (selbst wenn wir sparsam damit umgehen würden), und wir würden 200 MB Speicherplatz verlieren. Im MT5 gibt es überhaupt keinen Speicherverbrauch für einen solchen Cache, und der Expert Advisor wird höchstwahrscheinlich nur einen kleinen Teil der Historie anfordern, ihn in einem lokalen Array ablegen und mit maximaler Geschwindigkeit damit arbeiten.

 
Renat:

Um zu verhindern, dass der Nutzer uns später für Verzögerungen oder übermäßigen Ressourcenverbrauch verantwortlich macht, haben wir eine effektivere Kontrolle über die angeforderten Daten ermöglicht.

Ich habe den gesamten Text gelesen. Das ist nicht unmöglich. Sie sammeln Zeitrahmen für Charts, Sie könnten sie für Expert Advisors auf die gleiche Art und Weise sammeln, und das auf recht effektive Weise.

Wie kommen Sie darauf, dass der Benutzer Sie wegen einer Bremsung umbringen würde?

Im MT4-Modell müssten wir (selbst bei sparsamer Verwendung) bei jedem Tick 200 Mb zum Shadow-Snapshot des EA replizieren und 200 Mb Speicherplatz verschwenden. MT5 hat überhaupt keine Speicherkosten für einen solchen Cache, und der Expert Advisor wird wahrscheinlich nur einen kleinen Teil der Historie anfordern, ihn in einem lokalen Array speichern und mit maximaler Geschwindigkeit damit arbeiten.

Machen Sie einen intelligenten Cache (es gibt Erfahrung), behalten Sie den Rest nicht im Speicher.
 

Schreiben Sie Ihre eigene Terminal-Engine mit einem internen effizienten Ökosystem und einer virtuellen Maschine, und dann reden wir weiter. Wir haben die letzten vier Plattformen auf diese Weise entwickelt und die Architektur immer wieder verbessert. Unsere Entscheidungen sind also durch praktische Erfahrungen begründet.

Andernfalls ist es unmöglich, auf den Ratschlag zu reagieren: "Tu es, schlauer Cache, sie werden nicht missbraucht usw.".

 
Integer:

Ganz genau. Insbesondere das Ausnutzen der Autorität einer höheren Position.

Alle Sprachen sind gleich, mit Ausnahme der besonders extravaganten Sprachen. Sie alle können von jedem Dummy in 21 Tagen erlernt werden. Alle for-, while-, if- und switch-Sätze haben zwar eine andere Schreibweise, aber das ändert nichts Grundlegendes. Nicht die Art und Weise, wie die Operatoren geschrieben sind, ist von Bedeutung, sondern die Infrastruktur, mit der die Sprache interagiert. In dieser Hinsicht sind MT4 und MT5 zwei verschiedene Welten.

Es gibt bei allem einen Unterschied. Beginnen wir mit einer Kleinigkeit - mit der Nummerierung der Balken im Indikator, in MT4 von rechts nach links, in MT5 von links nach rechts.

...

Die Nummerierung in MT5 ist im Vergleich zu MT4 nur standardmäßig umgekehrt. Arrays können in jede beliebige Richtung umgedreht werden. Siehe Dokumentation: Indizierungsrichtung in Arrays, Puffern und Zeitreihen.

Ganzzahlig:

...

Weiter geht es mit dem Wesentlichsten - der aggregierten Position und der Organisation der Handelsdaten.

...

Und auf MT4 gab es eine Menge Probleme, weil wir entgegengesetzte Positionen von Instrumenten abdecken mussten, indem wir eine zusätzliche Order über OrderCloseBy() an den Server schickten, was aus verschiedenen Gründen nicht immer funktionierte. Daher mussten wir die Aufträge zusätzlich prüfen und erneut senden, da sonst die gesamte Logik des Handelssystems unterbrochen wurde.

Im MT5 wurde aufgrund der aggregierten Position alles auf ein akzeptables Niveau vereinfacht. Jetzt brauchen wir uns zum Beispiel keine Gedanken mehr darüber zu machen, wie hoch die Gewinnschwelle sein sollte - diese dumme Frage ist nur auf MT4 relevant. Schließlich ist der offene Preis einer Gesamtposition das Breakeven-Niveau. Bei Gewinnpositionen ist alles einfacher geworden, da sie automatisch auf dem Server geschlossen werden, ohne dass zusätzliche Aufträge gesendet werden müssen.

D.h. auf Kosten der Gesamtdarstellung wurde die Menge an Code auf das notwendige und ausreichende Maß reduziert, ebenso wie die Menge an überflüssigen Aufträgen und Prüfungen, die für sie erforderlich sind.

Ganzzahlig:

In MT4 genügte es, den Rückgabewert von OrderSelect() zu überprüfen, während in MT5 bei jedem Schritt, sogar bei den Daten des letzten Ticks, eine Überprüfung erforderlich ist. Es gibt einige weitere Feinheiten der MT5-Programmierung, die Sie erst nach viel Leid lernen werden, denn es gibt eine Menge Fallstricke.

Niemand zwingt Sie, in MT5 zusätzliche Checks zu verwenden, Sie können das Gleiche wie in MT4 hoffen und versuchen, alles ohne Checks zu verarbeiten, was nicht korrekt vom Server geladen wurde oder gar nicht geladen wurde, sondern nur initialisiert wurde. In diesem Fall wird die Leistung auch MT4 entsprechen, d.h. alles wird nur im Tester gut sein, und wir werden den Unsinn auf dem Demo- und Realkonto sehen.

Das heißt, dass die Erhöhung der Anzahl der zusätzlichen Kontrollen in MT5 dazu dient, die Qualität der erhaltenen Informationen zu gewährleisten. Im MT4 fehlen viele dieser Überprüfungen, so dass es in einigen kritischen Fällen unmöglich ist, sich zu vergewissern, dass die vom Terminal erhaltenen Informationen, die zur Entscheidungsfindung verarbeitet werden müssen, zuverlässig sind. Man kann nur hoffen, dass das Terminal alles, was benötigt wird, korrekt vom Server heruntergeladen hat, aber es gibt keine Möglichkeit, dies sicherzustellen - es gibt nichts, um die Richtigkeit zu überprüfen.


Im Allgemeinen ist ein Angriff auf MT5 nur eine faule Ausrede für diejenigen, die nicht auf ein neues Terminal umsteigen wollen, oder eine Erfindung derjenigen, die nur von MT5 gehört haben, aber nicht wissen, wo es ist.

MT4 ist das Terminal von gestern, um primitive Algorithmen zu erstellen, die mehr oder weniger für den "Handel" im Tester geeignet sind, um schöne Bilanzkurven zu zeichnen. Wenn Sie kein Interesse daran haben, schöne Bilanzkurven zu zeichnen, weil Sie sie nicht in die Tasche stecken und auf Ihr Brot legen können, sondern nur zum Prahlen im rustikalen Thread verwenden können, müssen Sie auf MT5 umsteigen.