Diskussion zum Artikel "Universeller Expert Advisor: CUnIndicator und das Arbeiten mit Pending Orders (Teil 9)" - Seite 2

 

Hallo!

Ich habe gerade angefangen, UnExpert zu lernen. Bis heute war alles in Ordnung und plötzlich bekam ich Fehler in verschiedenen Bibliotheksdateien Message, Dictionary, Sessioninfo und anderen. Was kann da passieren? Und generell, wird diese Bibliothek unterstützt?

 
Titika:

Ich habe gerade angefangen, UnExpert zu lernen. Bis heute war alles in Ordnung und plötzlich bekam ich Fehler in verschiedenen Bibliotheksdateien Message, Dictionary, Sessioninfo und anderen. Was könnte passiert sein?

Es ist eine Änderung in der Sprache, die einige Freiheiten nicht mehr zulässt. Es ist leicht zu beheben.

 
fxsaber:

Es handelt sich um eine Änderung der Sprache, die einige Freiheiten nicht mehr zulässt. Das ist leicht zu beheben.

Ich habe mir meinen Code angeschaut und war erstaunt. Bei einigen Methoden war kein Rückgabetyp angegeben. Seltsam, dass es vorher kompiliert wurde.

 
Vasiliy Sokolov:

Ich sah mir meinen Code an und war erstaunt. Bei einigen Methoden war kein Rückgabetyp angegeben. Es war seltsam, dass er vorher kompiliert wurde.

Irgendwie hat sich das sogar in einem aktuellen Artikel so ergeben.

In der ZIP-Bibliothek, wenn ich mich recht erinnere, war der gleiche Fall und funktionierte auch vorher.

 

Heute habe ich meinen ersten Expert Advisor auf Basis der Universal Engine geschrieben. Ich möchte dem Autor Hallo sagen und ihm für seine Arbeit danken.

Es ist mir gelungen, den Expert Advisor in nur einem Tag zu schreiben, wobei ich die wichtigsten Klassen und Funktionen praktisch verstanden habe. Nun habe ich seine Aufnahme in CodeBase beantragt, bin mir aber nicht sicher, ob er zugelassen wird, denn ohne die Hauptbibliothek der Universal Engine besteht er den letzten Test auf Kompilierbarkeit nicht. Ich habe an Moderatotram geschrieben, vielleicht lassen sie es durch.

Es erinnert mich sehr an die S#.Shell-Bibliothek der StockSharp-Plattform, aber das Projekt ist viel effizienter und optimaler.

Einige kleine Bemerkungen

1. Die CTrailingMoving Klasse sollte auch auf die Verwendung von CUnIndicator umgestellt werden, da sie bereits eingeführt wurde.

2. Die Modify()-Methode der Klasse CTrailingClassic arbeitet in der Tat fehlerhaft, dies wurde in der Diskussion des Artikels "Universal Trading Expert Advisor: Working with Custom Trailing Stops (Part 6) (Link) bemerkt, aber nicht behoben.

Eine ordnungsgemäße Beendigung der Methode sollte eine Prüfung auf Überschreitung des Wertes m_step_modify beinhalten:

   if(m_position.Direction()==POSITION_TYPE_BUY)
      {
         n_sl=extremum-m_diff_extremum;
         if(n_sl-m_position.StopLossValue()>m_step_modify) return m_position.StopLossValue(n_sl);
      }
   else
      {
         n_sl=extremum+m_diff_extremum;
         if(m_position.StopLossValue()-n_sl>m_step_modify) return m_position.StopLossValue(n_sl);
      }

3. Stop Loss sollte sofort platziert werden, nicht in SupportBuy/SupportSell, z.B. wenn der Expert Advisor auf M15 arbeiten soll, wird die Position 15 min ohne SL sein, das ist nicht gut.

In der aktuellen Version der Universal Engine kann dies auf zwei Arten erreicht werden:

a) die RebuildPositions-Methode der CStrategy-Klasse öffentlich machen,

c) die M1 TF als funktionierende TF festlegen, und alle TFs aller verwendeten Indikatoren sollten von der TF des Expert Advisors entkoppelt werden.

Aber das sind alles Kleinigkeiten.

Global

Ich wünsche mir, dass der Autor weiter an der Entwicklung der Universal-Engine arbeitet, zumal es Anfragen aus der Community gibt.

Seit einem Jahr hat es kein einziges Update mehr gegeben. Jemand, Artyom Trishkin , hat bereits Artikel zum Thema einer alternativen universellen Bibliothek geschrieben, aber selbst jetzt hat sie noch nicht das Niveau der Universal Engine erreicht - sie ist ein armseliges Analogon, das nicht einmal 1/3 der Funktionen abdeckt, die in der neuesten Version der UD implementiert sind (ich betrachte die volle Kompatibilität seiner Bibliothek mit MT4 nicht als Pluspunkt - niemand braucht sie wirklich mehr).

 
Sergey Lebedev:
...

Seit einem Jahr hat es kein einziges Update mehr gegeben. Ein gewisser Artyom Trishkin hat bereits Artikel zum Thema einer alternativen Universalbibliothek geschrieben, aber selbst jetzt hat sie noch nicht das Niveau der Universal Engine erreicht - sie ist nur ein armseliges Analogon, das nicht einmal 1/3 der in der neuesten Version von UD implementierten Funktionen abdeckt (ich betrachte die volle Kompatibilität seiner Bibliothek mit MT4 überhaupt nicht als Pluspunkt - niemand braucht sie wirklich mehr).

Dieser "Jemand" hat eine etwas andere Aufgabe als "sofort und jetzt", jedem ein Werkzeug zum einfachen Schreiben von Programmen zu geben. Das Projekt entwickelt sich, und dies ist nur ein zehntel Teil davon. Beurteilen Sie das Objekt also nicht nach seinem Embryo - es ist noch zu früh - es ist noch nicht geboren worden.

 
Ich kann mir durchaus vorstellen, dass Ihr Projekt in +80 Artikeln das Universal-Engine-Projekt deutlich überholen wird, aber an diesem Wochenende, als ich beide Projekte verglichen habe, habe ich mich für UD entschieden, denn Ihr Projekt befindet sich noch in der Phase, in der es lange dauern wird, um aufzuholen.
Das Vorhandensein von konkurrierenden universellen Plattformen ist gut, wenn sie gleichzeitig von der Gemeinschaft entwickelt werden und nicht eingefroren werden, nachdem der Autor das Interesse an dem Projekt verloren hat. Immerhin machen Sie 100+ Artikel werden auch aufhören, Ihr Projekt zu unterstützen???? Das Interesse kann nicht die ganze Zeit aufrechterhalten werden! Und nach Ihnen wird es einen anderen Universalisierer geben, der seine eigene Vision einer Universalbibliothek hat und einen Plan für 200+ Artikel hat?????
Dementsprechend würde ich vorschlagen, darüber nachzudenken, warum diese Analoga von den Endbenutzern benötigt werden und aus welchen kardinalen Gründen Sie alles von Grund auf neu schreiben mussten, anstatt die Universal Engine weiterzuentwickeln, die zu dem Zeitpunkt, als Sie Ihre Arbeit begannen, erstellt wurde und 19-20 ihrer neuen Verbesserungen/Klassen zu schaffen?
 
Sergey Lebedev:
Ich kann mir durchaus vorstellen, dass Ihr Projekt in +80 Artikeln das Universal-Engine-Projekt deutlich überholen wird, aber an diesem Wochenende, als ich beide Projekte verglichen habe, habe ich mich für UD entschieden, denn Ihr Projekt befindet sich noch in der Phase, in der es lange dauern wird, um aufzuholen.
Das Vorhandensein von konkurrierenden universellen Plattformen ist gut, wenn sie gleichzeitig von der Gemeinschaft entwickelt werden und nicht eingefroren werden, nachdem der Autor das Interesse an dem Projekt verloren hat. Immerhin machen Sie 100+ Artikel werden auch aufhören, Ihr Projekt zu unterstützen???? Das Interesse kann nicht die ganze Zeit aufrechterhalten werden! Und nach Ihnen wird es einen anderen Universalisierer mit seiner eigenen einzigartigen Vision einer Universalbibliothek und mit einem Plan für 200+ Artikel geben?????
Dementsprechend würde ich vorschlagen, darüber nachzudenken, warum diese Analoga von den Endbenutzern benötigt werden, und aus welchen kardinalen Gründen Sie alles von Grund auf neu schreiben mussten, anstatt die Universal Engine zu entwickeln, die zu Beginn Ihrer Arbeit erstellt wurde, und 19-20 ihrer neuen Verbesserungen/Klassen zu erstellen?

Sind Sie dafür, dass jeder nur eine Automarke fährt, nur mit einer Fluggesellschaft und nur mit einer Flugzeugmarke fliegt, usw., usw., usw.? ?

Und, ja, ich versuche nicht, "aufzuholen und zu überholen" und alles in Mais zu pflanzen.... Ich mache mein eigenes Projekt.

Natürlich bin ich nicht überrascht, dass die Wahl auf Vasilys Arbeit gefallen ist - sie hat ein fertiges Aussehen, während meine Bibliothek gerade erst entsteht. Sie missverstehen ein wenig den Sinn und das Wesen meiner Artikel - sie beschreiben den Prozess der Erstellung einer Bibliothek, nicht den Prozess der Verwendung einer bereits fertigen Bibliothek. Diejenigen, die in die Entwicklung eintauchen und die Prinzipien verstehen wollen - sie tun es und stellen Fragen, klären und lernen. Jemand hat sofort verstanden, was dort geschrieben steht und verfolgt die Entwicklung. Aber dies ist nicht der Ort, um darüber zu diskutieren - dies ist der Ort, um Vasilys Arbeit zu diskutieren.

Und wie kommen Sie darauf, dass ich, nachdem ich ein riesiges Werk begonnen habe, es einfach über Nacht aufgeben würde? Nein, natürlich nicht. Und es gibt noch viel Entwicklungspotenzial.

 
Sergey Lebedev:

...

Weltweit

Ich möchte dem Autor wünschen, dass er weiter an der Entwicklung der Universal-Engine arbeitet, zumal es Anfragen aus der Community gibt.

Seit einem Jahr hat es kein einziges Update mehr gegeben. Jemand, Artyom Trishkin , hat bereits Artikel zum Thema einer alternativen Universal-Bibliothek geschrieben, aber selbst jetzt hat sie noch nicht das Niveau der Universal Engine erreicht - sie ist ein armseliges Analogon, das nicht einmal 1/3 der Funktionen abdeckt, die in der neuesten Version der UD implementiert sind (ich betrachte die volle Kompatibilität seiner Bibliothek mit MT4 überhaupt nicht als ein Plus - niemand braucht sie wirklich mehr).

Schönen Tag noch. Vielen Dank für Ihr Feedback. Es scheint optimal zu sein, UTE-Codes in ein öffentliches Versionskontrollsystem (Git oder MT) zu stellen. In diesem Fall können die Benutzer nach meiner Überprüfung des Codes Fehler beheben und zusätzliche Änderungen/Verbesserungen am Code vornehmen. Ich denke, ein solches System der Projektentwicklung ist optimal für Open Source, denn niemand kann alles alleine tragen.

Was den UTE selbst betrifft, so denke ich, dass seine Hauptfunktionalität gebildet ist. Sie deckt die meisten der gängigen Handelsfunktionen ab. Daher wird die Entwicklung von UTE in dieselbe Richtung keine grundlegend neuen Dinge hervorbringen. Ein funktionaler Rahmen für die Arbeit mit Daten kann jedoch der Entwicklung von UTE einen globalen Impuls geben. Die Idee ist, mit Systemstrukturen im Objektstil zu arbeiten und mit Sammlungen (einschließlich Systemstrukturen) im funktionalen Stil zu arbeiten. In diesem Fall wird die klare Unterscheidung zwischen System- und Benutzerdatentypen aufgehoben, und die Abfragen zu ihrer Verarbeitung werden von den Benutzern selbst "on the fly" erstellt (ähnlich wie LINQ in C#). Leider erlauben es die Sprachbeschränkungen nicht, diesen Rahmen auf einer Eins-zu-eins-Basis zu schreiben, so dass dies immer noch nur eine Idee ist.

 

Habe heute vorbeigeschaut, um das Update zu sehen und möchte mich zunächst einmal bedanken. Vor 2 Jahren habe ich ein paar Ungenauigkeiten korrigiert, ich habe die ganze Zeit die gleiche EA-Struktur verwendet, ohne an die Bindung zu denken. Manchmal vergesse ich, dass dies Ihre Entwicklung ist und nicht MT-Standard.

Wenn es möglich sein wird, die Bibliothek zu entwickeln und zu platzieren, stimme ich mit allen meinen Gliedern FÜR (ich habe in meine eigenen Bedürfnisse geschraubt, oft nicht optimal, ich habe auch in Lösungen von anderen Autoren geschraubt). als Plattform für die Entwicklung oder sogar die richtige Botschaft in der Entwicklung. Wenn Sie sich entscheiden, bitte, bitte, schreiben Sie die Adresse der Website in dieser Diskussion.

Vielen Dank im Voraus...