Was ich mir als professioneller Programmierer vom "Terminal" wünschen würde. Ein weiterer Thread mit Wünschen für MQL5. - Seite 8

 
Allerdings verzweigt if() bei jedem JMP - bedingungslos oder bedingt - immer noch + while/for
 
In dem Interview mit den MQL5-Entwicklern wurde gesagt, dass der Interpreter nun in den Code der x86-Plattform kompilieren wird, anstatt in den Byte-Code des Interpreters. Es ist also grundsätzlich möglich, die API für die Arbeit mit dem Terminal zu demontieren und einzusehen. Sogar Bibliotheken können auf dieser Grundlage geschrieben werden, und zwar sogar in VC++.
 

Es wäre sehr praktisch, durch Doppelklick auf eine Position in den Testergebnissen zu einem Ereignis im Diagramm zu springen.

In der Zwischenzeit ist es ermüdend, den Moment von Hand zu suchen.

 
majestic >> :

Es wäre sehr praktisch, durch Doppelklick auf die Position in den Testergebnissen zu dem Ereignis im Diagramm zu springen.

In der Zwischenzeit muss man mit den Händen den richtigen Moment finden - das ist anstrengend.

Passt das, was schon da ist, nicht gut?

 

MProgrammer, warum brauchen Sie ein Dotnet-Modul, das Diagramme zeichnet? Außerdem, welches Interesse hat MQ daran, ein solches Modul von Diagrammen kostenlos an Drittprogrammierer abzugeben.

Ist es jetzt nicht möglich, unsere berechneten Daten aus C#, die wir brauchen, um auf einem Diagramm durch eine einfache Datei mit Laden und Anzeigen von Objekten mit dem Skript oder Indikator, in MQL4 geschrieben geben? D.h. C# Programm >> Daten >> Datei >> Skript, Indikator oder synchroner Zugriff durch EA.

Wenn Sie einen Expert Advisor in C# oder einer anderen Programmiersprache, die Sie gewohnt sind, erstellen möchten, können Sie eine Verbindungskette mit MT erstellen, wie


für Expert Advisor:

MQL4 Expert Advisor >> Dll >> Sync-Socket >> C#-Programm (Arbeit mit Anführungszeichen) >> (Ergebnisse) >> Sync-Socket >> Dll >> MQL4 Expert Advisor (Anzeige von Graph-Objekten, Öffnungs- und Schließpositionen)


für Ihren Optimierer oder Tester:

MQL4 Skript >> Dll >> Sync-Socket >> C#-Programm (Arbeiten mit Anführungszeichen, mehrere Läufe) >> (Ergebnisse) >> Sync-Socket >> Dll >> MQL4 Expert Advisor (Anzeige von Diagramm der Objekte und Positionen des Laufs als nach dem Tester)


Vorteile dieses Ansatzes:

- Sie können Programme in der Sprache und Umgebung entwickeln, die Sie gewohnt sind, da alle höheren Sprachen Socket-Handling unterstützen.

- Es ist möglich, das Strategieprogramm zu debuggen.

- Sie können Ihre eigenen Optimierer erstellen, deren Rechenleistung auf mehrere Prozessoren (mehrere Threads) und sogar Computer im Netzwerk verteilt ist

(die Verteilung ist natürlich eine Menge Arbeit, aber die Optimierungsgeschwindigkeit wird um ein Vielfaches erhöht). Wenn der Optimierer beispielsweise auf dem Desktop-Computer zu Hause läuft, wird ein Teil der Läufe an den Laptop im lokalen Netzwerk weitergegeben und auch an den Computer Ihres Freundes und vielleicht sogar an den Computer am Arbeitsplatz, auf dem Ihr Optimierungsmodul ebenfalls läuft (unerlaubte Nutzung der Bürokapazität für persönliche Zwecke :))).


Nachteile:

- In MQL4 ist die Datenübergabe an die Dll nicht komfortabel implementiert. Das heißt, die Strukturen und Arrays von Strukturen können nicht nur Arrays von Double übergeben werden, aber in MQL5 wurde dieses Problem versprochen.

Wenn man jedoch berücksichtigt, dass msvc++ schneller mit Double als mit anderen Datentypen arbeiten kann, ist der bestehende Ansatz wahrscheinlich sogar besser, wenn auch weniger bequem.

- Ich werde ein Verbindungsmodul erstellen und es debuggen müssen (aber für einen professionellen Programmierer ist das kein Problem - es ist einfacher als eigene Diagramme zu erstellen, wie der Autor dieses Threads sagte).


Das Kommunikationsmodul möchte ich selbst auf einem Socket für dot.net und java implementieren. Ich habe das ähnliche Modul in Delphi und WM_COPYDATA verwenden - es funktioniert gut und wird in dem Programm mit MT und Handel auf dem realen Konto verbunden verwendet.

Übrigens habe ich kürzlich einige Tests mit reellen und ganzzahligen Zahlen in Java und C++ durchgeführt.

Im Allgemeinen, wenn Sie Java-Maschine in -Server-Modus verwenden, dann ab dem zweiten oder dritten Lauf Geschwindigkeit der Java-Test der Arbeit mit ganzen Zahlen überholt MSVC++-Programm.

Bei Double-Datentypen übertrifft msvs++ Java, aber bei Float-Typen hat Java die Nase vorn. Es findet also eine dynamische Optimierung des Java-Programms zur Laufzeit statt.

Ich bin nicht auf C# getestet, aber ich bin enttäuscht von Delphi - es liegt in Geschwindigkeitstests hinter C++ und Java. Allerdings zeigt sich Delphi bei der Arbeit mit vielen kleinen Objekten (Sortieren, Verschieben, Löschen, Erstellen) von seiner besten Seite.

 

Liebe Freunde, lassen Sie mich ein paar Worte über GOTO sagen.

Diese ganze Geschichte begann lange vor dem Erscheinen jener uralten Personalcomputer, an die sich manche Menschen mit Nostalgie erinnern.

"Im Jahr 68 wurde die Situation durch den berühmten Artikel von Dijkstra "Über die Schädlichkeit des goto-Operators" völlig auf den Kopf gestellt, und das war zu einer Zeit, als kein einziges Programm ohne goto-Operator auskam. Es stellte sich heraus, dass die Fähigkeiten eines Programmierers umgekehrt proportional zur Anzahl der in seinem Programm verwendeten goto-Operatoren sind. Es war ein revolutionärer Schock, nicht nur auf dem Gebiet der Programmierung, sondern auch in der Programmiermethodik im Allgemeinen.

Dann gab es eine Reihe von Abhandlungen über strukturelle Programmierung, in denen gezeigt wurde, dass jedes Programm ohne GOTO gezeichnet werden kann, indem man 3 grundlegende Strukturen verwendet: Sequenz, Verzweigung und Schleife. Irgendwo habe ich sogar Hoare's Buch "Structured Programming" herumliegen. Ich weiß es nicht mehr genau, vielleicht war der zweite Autor Wirth.

"69 erschien die Sprache Pascal, die eine reine Umsetzung von Dijkstras Ideen war.

"Kann man den goto-Operator verwenden oder nicht? 1974 erschien Knuths Artikel "Structured programming with goto operator".

Und so weiter und so fort.

Kurz gesagt, die Diskussionen sind längst verstummt, die Verwendung von GOTO wird nicht gefördert, es gibt break, contunue, exit, halt, hande hoch und andere GOTO-Substitute, obwohl in vielen Sprachen der Operator erhalten bleibt. Ich denke, dass MQL-Entwickler mit dieser Geschichte vertraut sind, deshalb gibt es kein GOTO in MQL5. Es ist klar, dass sie ihre Motive aus Tradition verbergen. :-)

 

zu Dedushka
kann jeder einem ProgrammiererSchande und Vorwürfe machen,
Vor allem jemand, der nicht weiß, welche Farbe das Cover des
"Strukturierte Programmierung" und weiß nicht, dass ihr Autor Iodan (Iordan) heißt
Ja, Sie haben die Daten für das Schlagen von GOTO an die Landung der Amerikaner auf dem Mond angepasst, aber warum?
Außerdem sind Sie sich der Ereignisse, die auf die Veröffentlichung von C# folgten, nicht bewusst, und warum?
Eine letzte Sache - zu Dijkstras Zeiten betrug die Anzahl der GOTOs in Programmen bis zu 50%)))),
aber aus einem ganz anderen Grund als der Qualifikation.
Um es noch deutlicher zu machen: Es ist, als würde jemand sagen, dass die Leistung eines Großvaters nach der Anzahl der kleinen Reparaturen beurteilt werden sollte.
- je weniger Reparaturen, desto qualifizierter ist der Großvater.

und damit der Großvater besser arbeiten kann, sollte ihm sein Werkzeug weggenommen werden.

 
Korey писал(а) >>

zu Dedushka
Jeder kann einem ProgrammiererSchande und Vorwürfe machen,
Vor allem jemand, der nicht weiß, welche Farbe das Cover von
"Strukturierte Programmierung" und weiß nicht, dass ihr Autor Iodan (Iordan) heißt
Ja, Sie haben die Daten für das Schlagen von GOTO an die Landung der Amerikaner auf dem Mond angepasst, aber warum?
Außerdem sind Sie sich der Ereignisse, die auf die Veröffentlichung von C# folgten, nicht bewusst, und warum?
Eine letzte Sache - zu Dijkstras Zeiten betrug die Anzahl der GOTOs in Programmen bis zu 50%)))),
aber aus einem ganz anderen Grund als der Qualifikation.
Um es deutlicher zu machen: Es ist dasselbe, als würde jemand sagen, dass die Leistung eines Großvaters nach der Anzahl der kleinen Reparaturen beurteilt werden sollte
- je weniger Reparaturen, desto qualifizierter ist der Opa.

und damit der Großvater besser arbeiten kann, nehmen Sie ihm die Werkzeuge weg.

Lieber Korey, ich habe meinen Beitrag vorsichtshalber mehrmals gelesen... Bei Gott, ich sehe keinen Hinweis darauf, dass ich jemanden beschuldigen oder beschämen wollte.

Ich habe gar nicht darüber nachgedacht, sondern ich habe das Thema der Diskussion vor etwa 30 Jahren kennen gelernt... Und wie ein freundlicher Großvater beschloss er, mir zu sagen, woher es kommt. :-)

Über "strukturelle Programmierung" - ja, es gibt so ein dickes Buch im gelben Taschenbuch, ein Klassiker: W. W. Dahl, E. Dijkstra, und K. Hoare, "Structured Programming", Moskau, Mir, 1975.

Und schließlich spreche ich über die alten Zeiten, alle meine Bücher sind aus dem vorigen Jahrhundert, und ich bin wirklich "nicht mehr auf dem Laufenden über die Ereignisse nach der Veröffentlichung von C#", weil ich schon lange kein praktizierender Programmierer mehr bin. Ich arbeite nur als Wachmann in einer kleinen Firma :-). Aber ich interessiere mich für MQL5, und es scheint, ich muss mich entspannen und aus dem Winterschlaf erwachen - ich habe viel zu programmieren, und ich habe niemanden, der mir hilft. Bitte fluchen Sie nicht, ich mag das nicht...

 

nach Deduschka

1. Wenn ich mir Ihren Avatar ansehe, sehe ich eine Matrosenbrust wie bei einem Seemann und den Spitznamen "Opa" - ja, das bedeutet Schiffsmechaniker, der Chefmechaniker ging zum Börsenhandel.
2. das Niveau des "Fluchens" im Forum ist akzeptabel, Handel ist Identität, und man kann nicht ohne Identität handeln)))
2) das Niveau des "Fluchens" im Forum ist akzeptabel. Handel ist eine Form der Selbstversorgung ohne Eigeninteresse, keine Möglichkeit, ohne Eigeninteresse zu handeln.
3. ob Sie persönlich fluchen wollen oder nicht, Sie haben bereits geflucht, zumal MQL4 als Sprache und als Umgebung schlecht ist = )))
Sie gehören zufällig zu den beschämenden "Vier-Buchstaben-Betreibern".
Sie schämen sich auch, dass Sie den tiefen Gedanken der MQL-Schöpfer nicht verstehen))))
- Wenn Sie sich an die Form der Stanzlöcher in den Stanzträgern erinnern, werden Sie bald den Preis von MQL und MT-4 verstehen.
4. goto wird als Vorwurf der Unintelligenz, d.h. der angeblichen intellektuellen Lahmheit und der Schande, gezwickt und beschämt.
zum Nachweis auch diesen Thread lesen))
= hat den Programmierern den goto-Operator weggenommen, angeblich sollen sie jetzt herumspringen.
5.
Wie auch immer, zum Thema:
das Schimpfwort goto darf nicht verwendet werden, aber SRAM selbst und sein Schimpfwort goto-Operator - SOLLEN

 

Das sollte es auch sein - einfach um der Kunst willen. Es gibt Situationen, in denen goto die einzige Möglichkeit ist, kurz und elegant zu programmieren.