Rückmeldung zu MQL5

 

Ich benutze seit langem MQL4 und war sehr erfreut zu hören, dass MQL5 endlich OOP einführen wird, weil ich dann schneller flexiblere automatisierte Analysesysteme schreiben kann. Aber ich kann einfach nicht in Worte fassen, wie sehr ich enttäuscht war. Ich war entsetzt, dass ich nicht vollständig mit Zeigern arbeiten und Objekte einfach und schnell bearbeiten konnte, was insbesondere für die Entwicklung von Systemen gilt, die zu 95 % der Zeit nutzlos sind. Wir alle schreiben Programme in MQL, um eine Theorie zu testen, eine automatische Datenanalyse durchzuführen, um eine Idee später zu verifizieren und sie zu optimieren, und das muss sehr schnell gehen, weil die Idee sehr oft optimiert werden muss. Selbst wenn man von der Sprache abstrahiert, ist die Entwicklung von Handels- oder Analysesystemen in diesem Zusammenhang eine undankbare Aufgabe, weil man sich an die Arbeit macht, obwohl man weiß, dass sie höchstwahrscheinlich suboptimal oder sogar nutzlos sein wird. Was soll man sagen, wenn die Entwickler von MQL5 uns, wie sie sagen, ein supersicheres Werkzeug in die Hand gegeben haben, bei dem es unmöglich ist, sich zu erschießen, aber an der Umsetzung einer einfachen Idee oder, anders ausgedrückt, eines elementaren Algorithmus, muss man Dutzende von Stunden lang arbeiten.

Also, MQL5-Entwickler, beim Lesen von Straustrups Buch habe ich einen interessanten Absatz gelesen und mich sofort an Ihr MQL5-"Produkt" erinnert:

"Die Beziehung zwischen der Sprache, in der wir denken (Programme schreiben), und den Aufgaben (Lösungen), die wir uns vorstellen können, ist sehr eng. Aus diesem Grund ist es bestenfalls gefährlich, Sprachfähigkeiten einzuschränken, um Programmierfehler zu vermeiden. Genau wie bei den natürlichen Sprachen ist es von großem Vorteil, mindestens zwei Sprachen zu beherrschen. Eine Sprache bietet dem Programmierer eine Reihe von konzeptionellen Werkzeugen. Wenn diese Instrumente für die anstehende Aufgabe nicht ausreichen, werden sie einfach ignoriert. Qualitätsdesign und fehlerfreies Design können nicht einfach durch das Vorhandensein oder Fehlen bestimmter Merkmale in einer Sprache garantiert werden.

Ausgehend von meinem obigen Feedback ist das, was Sie um des Programmierens willen programmiert haben, für die Zwecke, für die MQL gedacht ist, völlig ungeeignet. Danke, dass Sie mich gezwungen haben, ein solches Werkzeug wie OOP in MQL5 einfach zu ignorieren.

 

Sie sollten zumindest einige Beispiele nennen.

Was meinen Sie damit, dass Sie nicht vollständig mit Zeigern arbeiten und schnell und einfach mit Objekten arbeiten können? Bei der Entwicklung groß angelegter Programme hatte ich damit noch nie Probleme.

 

Nur wenige moderne, handhabbare und sichere Sprachen erlauben es, mit Zeigern "vollständig" (d.h. gefährlich) zu arbeiten. Insbesondere bei MQL4/MQL5, wo Sicherheit und Kontrollierbarkeit an erster Stelle stehen müssen.

Alles andere ist vorhanden und verfügbar. Und sichere Hinweise sind ebenfalls verfügbar.

Höchstwahrscheinlich haben Sie es noch nicht herausgefunden, aber Sie haben Ihren eigenen Gedankenstapel ausgewalzt. Es gibt keine andere Möglichkeit, diesen unsubstantiierten Strom zu nennen.

 
Renat Fatkhullin:

Nur wenige moderne, handhabbare und sichere Sprachen erlauben es, mit Zeigern "vollständig" (d.h. gefährlich) zu arbeiten. Besonders in MQL4/MQL5, wo Sicherheit und Handhabbarkeit an erster Stelle stehen müssen.

Alles andere ist vorhanden und verfügbar. Und sichere Hinweise gibt es auch.

Wahrscheinlich haben Sie es einfach noch nicht begriffen, sondern haben Ihre eigenen Überlegungen angestellt. Es gibt keine andere Möglichkeit, diesen unsubstantiierten Strom zu nennen.

Ich bitte Sie:

https://www.mql5.com/ru/forum/35326

https://www.mql5.com/ru/forum/1111/

Nennen Sie eine weit verbreitete Sprache, in der ich einem Zeiger keine andere Adresse zuweisen kann? Nennen Sie eine häufig verwendete Sprache, in der ich eine Referenz eines Typs nicht einem anderen Objekt desselben Typs zuweisen kann? Wo sonst wäre ich gezwungen , einen Konstruktor oder eine Kopierfunktion aufgrund dieser Einschränkungen Ihrer Sprache zu beschreiben?

Und wenn die Kontrollierbarkeit für Sie so wichtig ist, warum gibt es dann in anderen kontrollierten Sprachen keine ähnlichen Einschränkungen?

Für mich persönlich ist das Wichtigste nicht die Sicherheit und die Kontrollierbarkeit, sondern die Geschwindigkeit, mit der ich die Idee umsetzen kann, das ist im Zusammenhang mit Handelsideen äußerst fair, wer das nicht so sieht, überschätzt entweder den Wert seines Systems oder programmiert um des Programmierens willen, nicht um eines bestimmten Ergebnisses willen.

 

Renat, Sie geben selbst zu, was ich im ersten Beitrag geschrieben habe, und verschleiern den Verlust an Flexibilität bei der Sicherheit, indem Sie ihn zu einem unbestreitbaren Vorteil erklären, obwohl das überhaupt nicht stimmt.

Битый указатель (именно указатель как сущность и рабочая единица языка) контролируется системой и безопасно обрабатывается, выдавая при необходимости рантайм ошибку, указывая на ошибку автора. А вот "физическая" ссылка не может быть проконтролирована, да ее и нет в языке (не путайте с передачей параметра по ссылке, где это лишь контролируемый системой метод связи).

Die Beseitigung gefährlicher Links ist der erste Schritt zur Schaffung einer sicheren Sprache aus dem Monster, das C++ heute ist. Wir haben bewusst und absichtlich Verweise entfernt und durch die Abschaffung der Selbstschussanlage absichtlichan Flexibilität verloren.

Geben Sie mir die Möglichkeit, mir selbst in den Fuß zu schießen, denn ohne diese Möglichkeit bin ich gezwungen, die Programmierung zu kontrollieren, und ich möchte die Idee kontrollieren, die ich umsetzen möchte.
 
urusov:

Ich bitte Sie:

https://www.mql5.com/ru/forum/35326

https://www.mql5.com/ru/forum/1111/

Nennen Sie eine gebräuchliche Sprache, in der ich einem Zeiger keine andere Adresse zuweisen kann? Nennen Sie eine andere weit verbreitete Sprache, in der ich eine Referenz desselben Typs nicht einem anderen Objekt zuweisen kann? Wo sonst wäre ich gezwungen , einen Konstruktor oder eine Kopierfunktion aufgrund dieser Einschränkungen Ihrer Sprache zu beschreiben?

Und wenn die Kontrollierbarkeit für Sie so wichtig ist, warum gibt es dann in anderen kontrollierten Sprachen keine ähnlichen Einschränkungen?

Für mich persönlich ist das Wichtigste nicht die Sicherheit und die Kontrollierbarkeit, sondern die Geschwindigkeit, mit der ich die Idee umsetzen kann, das ist im Rahmen des Ideenhandels äußerst fair, wer das nicht so sieht, überschätzt entweder den Wert seines Systems oder programmiert um des Programmierens willen und nicht um eines bestimmten Ergebnisses willen.

Genosse! Schieben Sie Ihre Unkenntnis der Sprache nicht in den Verantwortungsbereich der Entwickler. In MQL5 können Sie Zeigern verschiedene Objekte frei zuweisen und diese Objekte als Zeiger übergeben. Wie in allen anderen modernen Sprachen, wie C# und Java, hat MQL5 eine explizite Typprüfung, und ihre Umwandlung kann nur innerhalb der gleichen Klassenhierarchie (Vererbung) durchgeführt werden. Genau dasselbe Verhalten ist auch in anderen weit verbreiteten Sprachen wie C# und Java implementiert.

 
urusov:

Renate, Sie selbst bestätigen all das, was ich im ersten Beitrag geschrieben habe, und verschleiern den Verlust an Flexibilität bei der Sicherheit, indem Sie ihn zu einem unbestreitbaren Vorteil machen, obwohl das überhaupt nicht der Fall ist.

Geben Sie mir die Möglichkeit, mir selbst in den Fuß zu schießen, denn ohne diese Möglichkeit bin ich gezwungen, die Programmierung zu kontrollieren, und ich möchte die Idee kontrollieren, die ich umsetzen möchte.
Nach Ihren bisherigen Beiträgen zu urteilen, haben Sie gelernt, sich meisterhaft in den Fuß zu schießen. Jetzt muss ich nur noch lernen, wie man programmiert.
 
Ich mag die 5-Rka. Höchstwahrscheinlich hatte er nicht genug Zeit, um den Sachverhalt zu verstehen, und zog voreilige Schlüsse. Am Anfang ist es natürlich ein bisschen schwierig, aber es lohnt sich.
 
urusov:

Renate, Sie selbst bestätigen all das, was ich im ersten Beitrag geschrieben habe, und verschleiern den Verlust an Flexibilität bei der Sicherheit, indem Sie ihn zu einem unbestreitbaren Vorteil machen, obwohl das überhaupt nicht der Fall ist.

Geben Sie mir die Möglichkeit, mir selbst in den Fuß zu schießen, denn ohne diese Möglichkeit muss ich die Programmierung kontrollieren, und ich möchte die Idee kontrollieren, die ich umsetzen möchte.

Sie sollten sich weiterbilden und mehr über Sicherheit nachdenken.

Ich gebe nichts zu, aber ich begründete in den obigen Links (die auch ohne klaren Hinweis auf eine bestimmte Stelle geworfen werden), was, wie und warum in MQL4/MQL5 getan wurde. Dank unserer praktischen Erfahrung seit 2001 (als MQL auf den Markt kam) bei der Entwicklung von Anwendungssprachen für Handelsplattformen wissen wir genau, was erforderlich ist, um ein globales Ergebnis zu erzielen.


Wollen Sie ungebremste Geschwindigkeit? Schreiben Sie in C++ und fügen Sie DLL ein. Aber sogar in MQL5 haben wir mit nativen C++-Compilern aufgeholt: Testen des neuen MQL5-Compilers für x64-Plattformen - Beschleunigung von 2 bis 10 Mal!

 
urusov:

Nennen Sie eine weit verbreitete Sprache, in der ich einem Zeiger keine andere Adresse zuweisen kann? Nennen Sie eine andere weit verbreitete Sprache, in der ich eine Referenz desselben Typs nicht einem anderen Objekt zuweisen kann? Wo sonst wäre ich gezwungen , einen Konstruktor oder eine Kopierfunktion aufgrund dieser Einschränkungen Ihrer Sprache zu beschreiben?

Schauen Sie zumindest in die Standardbibliothek https://www.mql5.com/ru/docs/standardlibrary und sehen Sie sich den Code (in MQL5\Include\*) an, der vollständig mit Referenzen arbeitet.

Offensichtlich sind Sie mit der Sprache überhaupt nicht vertraut.

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Renat, sieh dir bitte diesen Thread an

https://www.mql5.com/ru/forum/60581/page2

Куда пропала история сигнала?
Куда пропала история сигнала?
  • www.mql5.com
Помогите разобраться, пропала история торговли сигнала (доходность, сделки и прочее). - Страница 2 - Категория: общее обсуждение