Diskussion zum Artikel "Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil XVII): Interaktivität von Bibliotheksobjekten" - Seite 3
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Es können Auftragseigenschaften ermittelt werden. Die Positionseigenschaften können ebenfalls abgerufen werden. Aus den Eigenschaften von Positionen können Sie die gesamte Historie ablesen - vom Handelsauftrag bis zur Schließung. Jedes Geschäft einer Position ermöglicht es Ihnen, den Auftrag zu erfahren, mit dem das Geschäft zustande gekommen ist. Im Allgemeinen kann die gesamte Historie einer Position leicht abgerufen werden, und alle Aufträge und Geschäfte können darin gefunden werden.
Großartig!
Ich weiß, dass Sie wissen, wie das MT5-Ordersystem organisiert ist (leider gibt es in diesem Forum praktisch keine Leute, die diese Informationen haben).
Bitte nennen Sie mir die Nummer des Artikels, in dem ich dieses Material finden kann.
Großartig!
Dies ist ein notwendiges Material für mich zu studieren, ich weiß, dass Sie Wissen haben, wie die MT5-Order-System funktioniert (leider gibt es fast keine Menschen mit diesen Informationen auf diesem Forum)
Bitte sagen Sie mir, wo ich dieses Material finden kann.
Der erste Teil beschreibt die allgemeine Struktur der Bibliothek (sie bleibt fast gleich wie beschrieben, wird aber im Laufe der Erzählung noch verfeinert).
Der zweite Teil beginnt mit der Erstellung einer Sammlung von Aufträgen und Positionen. Im vierten Teil werden die Handelsereignisse besprochen.... Und all dies erstreckt sich bis zum neunten Artikel, in dem die Fertigstellung der Kompatibilität mit MQL4 beginnt.
Der Surrealismus, Peter, ist nur in deinem Kopf - hier ist alles strukturiert und leicht zugänglich....
Du hast dich in deiner Ausarbeitung zu sehr in die Philosophie vertieft und dabei die praktische Umsetzung eines solchen "idealen Schemas" vergessen. Hier sind einige Zitate:
"Heute werden wir ein wenig weiter gehen und diesem Objekt - und damit auch allen anderen Objekten der Bibliothek - die Fähigkeit verleihen, festzulegen, welche Eigenschaften bei ihren Änderungen von außen kontrolliert werden, wie groß die kontrollierte Änderung ist und wie groß die kontrollierte Höhe des Werts der Eigenschaft des Objekts ist. "
Beachten Sie dies: "...dieGröße der kontrollierten Änderung und die Größe des kontrollierten Niveaus des Werts der Objekteigenschaft." Was ist "die Größe des kontrollierten Niveaus des Objekt-Eigenschaftswertes"? Das bedeutet: 1. Es gibt eine Eigenschaft des Objekts. 2. Die Eigenschaft hat eine kontrollierte Höhe des Wertes. 3. Die kontrollierte Ebene hat eine Anzahl von n Werten und ..... 4. Es gibt auch die Größe der kontrollierten Änderung, die variieren kann. Sieht das nicht nach einem Overkill bei der Anzahl der Entitäten aus? Dies ist nur ein Tropfen auf den heißen Stein der Philosophie in Ihrem Artikel.
Weiter:
"Hier bietet es sich also an, die Änderung der Zustände von Objekteigenschaften zu steuern: Integer und Real - ihre Liste ist für jede Erbenklasse eindeutig und wird den Ereignisbezeichner darstellen. Wir müssen auch berücksichtigen, die Richtung der Änderung von Eigenschaften - eine Erhöhung oder Verringerung des Wertes der Eigenschaft - nennen wir es die Ursache des Ereignisses, und der Wert, um den die Eigenschaft des Objekts geändert wurde. Die Kennung des Ereignisses, seine Ursache und der Wert der Änderung werden in einer einfachen Klasse des Basisereignisses des Objekts erfasst und in der Liste der gleichzeitig aufgetretenen Ereignisse gespeichert. "
Lassen Sie uns die gefundenen Entitäten auflisten:
1."Änderung der Zustände von Eigenschaften des Objekts". Das heißt, es gibt Eigenschaften und es gibt Eigenschaftszustände des Objekts. Vordergründig ist mit dem Zustand einer Eigenschaft ihr Wert gemeint. Aber der Wert kann als ein Objekt dargestellt werden, dessen Eigenschaft sein Typ ist. Das haben Sie getan, indem Sie die Eigenschaftszustände (Wert) in Integer und Real unterteilt haben. Dann gab es einen Verweis auf eine eindeutige Liste (ich weiß nicht mehr genau, wann sie erschien) von ganzzahligen und reellen Eigenschaftszuständen der Objekte der Nachfolger der Klasse.
2."Richtung der Änderung von Eigenschaften" Nun, das ist klar - die Richtung der Änderung ist die Zunahme/Abnahme des Wertes. ABER WARUM IST DIE RICHTUNG DER ÄNDERUNG DIE URSACHE DES EREIGNISSES? Im Prinzip ist die Änderung der Richtung die Ursache des Ereignisses, nicht die Richtung selbst.
3. " Wir schreiben den Ereigniskennzeichner, seine Ursache und den Wert der Änderung in eine einfache Klasse des Basisereignisses des Objekts und speichern es in der Liste der gleichzeitig aufgetretenen Ereignisse."
Nun, das ist erstaunlich. Es gibt einen Ereigniskennzeichner. Das ist gut. Es gibt die Ursache des Ereignisses und das Ausmaß der Veränderung von etwas (nur das Ausmaß der Veränderung. abstrakt), gut. ABER ES GIBT EINE EINFACHE BASIS-EREIGNISKLASSE! Ich wiederhole: Eine einfache Basis-Ereignisklasse! Abstraktion von der Abstraktion. Das Ereignis, als ein Ding an sich, hat seine Klasse gefunden! Aber es ist nur ein Objekt-Ereignis. Es kann also Eigenschaftsereignisse geben, Ereignisse auf Wertebene (Eigenschaftszustände).
Und die Kirsche auf dem Kuchen:
4."und in der Liste der gleichzeitig aufgetretenen Ereignisse speichern." Das heißt, es gibt auch eine Liste der gleichzeitig aufgetretenen Ereignisse. Und warum nicht... Aber dann sollte es eine Liste von Ereignissen geben, die einen kontrollierten Zeitunterschied zu anderen Ereignissen aufweisen. Das können wir doch hinzufügen, oder?)
Dies ist nur ein kleines Fragment eines größeren Artikels in dieser Reihe. Denken Sie, dass es sehr einfach ist? )) Ich werde Ihre Artikel als ein interessantes Programmexperiment einer Person studieren, die eigentlich Philosoph aus Berufung werden sollte.))
Sie haben sich in Ihrer Ausarbeitung zu sehr in die Philosophie vertieft und dabei die praktische Umsetzung eines solchen "idealen Schemas" vergessen - hier einige Zitate:
"Heute werden wir ein wenig weiter gehen und diesem Objekt - und damit auch allen anderen Objekten der Bibliothek - die Fähigkeit verleihen, festzulegen, welche Eigenschaften bei ihren Änderungen von außen kontrolliert werden, wie groß die kontrollierte Änderung ist und wie groß die kontrollierte Höhe des Werts der Eigenschaft des Objekts ist. "
Beachten Sie dies: "...dieGröße der kontrollierten Änderung und die Größe des kontrollierten Niveaus des Werts der Objekteigenschaft." Was ist "die Größe des kontrollierten Niveaus des Objekt-Eigenschaftswertes"? Ich meine: 1. Es gibt eine Eigenschaft des Objekts. 2. Die Eigenschaft hat eine kontrollierte Höhe des Wertes. 3. Die kontrollierte Ebene hat eine Anzahl von n Werten und ..... 4. Es gibt auch die Größe der kontrollierten Änderung, die variieren kann. Sieht das nicht nach einem Overkill bei der Anzahl der Entitäten aus? Dies ist nur ein Tropfen auf den heißen Stein der Philosophie in Ihrem Artikel.
Weiter:
"Deshalb ist es angebracht, die Zustandsänderung der Objekteigenschaften zu kontrollieren: Integer und Real - ihre Liste ist für jede Erbenklasse eindeutig und wird den Ereignisbezeichner darstellen. Wir müssen auch die Richtung der Änderung der Eigenschaften berücksichtigen - eine Zunahme oder Abnahme des Wertes der Eigenschaft - nennen wir es die Ursache des Ereignisses, und den Wert, um den die Eigenschaft des Objekts geändert wurde. Die Kennung des Ereignisses, seine Ursache und der Wert der Änderung werden in einer einfachen Klasse des Basisereignisses des Objekts erfasst und in der Liste der gleichzeitig aufgetretenen Ereignisse gespeichert. "
Lassen Sie uns die gefundenen Entitäten auflisten:
1."Änderung der Zustände von Eigenschaften eines Objekts". Das heißt, es gibt Eigenschaften und es gibt Zustände von Eigenschaften des Objekts. Offensichtlich bedeutet der Zustand einer Eigenschaft ihren Wert. Aber der Wert kann als ein Objekt dargestellt werden, dessen Eigenschaft sein Typ ist. Das haben Sie getan, indem Sie die Eigenschaftszustände (Wert) in Integer und Real unterteilt haben. Dann gab es einen Verweis auf eine eindeutige Liste (ich weiß nicht, wann genau sie erschien) von ganzzahligen und reellen Zuständen von Eigenschaften von Objekten der Klasse Nachfolger.
2."Richtung der Änderung von Eigenschaften" Nun, das ist klar - die Richtung der Änderung ist die Erhöhung/Verringerung des Wertes. ABER WARUM IST DIE RICHTUNG DER VERÄNDERUNG DIE URSACHE DES EREIGNISSES? Im Prinzip ist die Änderung der Richtung die Ursache des Ereignisses, nicht die Richtung selbst.
3. "Der Bezeichner des Ereignisses, seine Ursache und der Wert der Änderung werden in einer einfachen Klasse des Basisereignisses des Objekts erfasst und in der Liste der gleichzeitig aufgetretenen Ereignisse gespeichert."
Nun, das ist erstaunlich. Es gibt einen Ereignisbezeichner. Das ist gut. Es gibt die Ursache des Ereignisses und das Ausmaß der Veränderung von etwas (nur das Ausmaß der Veränderung. abstrakt), gut. ABER ES GIBT EINE EINFACHE BASIS-EREIGNISKLASSE! Ich wiederhole: Eine einfache Basis-Ereignisklasse! Abstraktion von der Abstraktion. Das Ereignis, als ein Ding an sich, hat seine Klasse gefunden! Aber es ist nur ein Objekt-Ereignis. Es kann also Eigenschaftsereignisse geben, Ereignisse auf Wertebene (Eigenschaftszustände).
Und das Tüpfelchen auf dem "i":
4."und in der Liste der gleichzeitig aufgetretenen Ereignisse speichern." Es gibt also auch eine Liste der gleichzeitig aufgetretenen Ereignisse. Und warum nicht... Aber dann sollte es eine Liste von Ereignissen geben, die einen kontrollierten Zeitunterschied zu anderen Ereignissen aufweisen. Das kann man doch hinzufügen, oder?)
Dies ist nur ein kleiner Ausschnitt aus einem größeren Artikel der Reihe. Glauben Sie, dass es sehr einfach ist? )) Ich werde Ihre Artikel als ein interessantes Programmexperiment einer Person studieren, die eigentlich Philosoph aus Berufung werden sollte.))
Wie kompliziert alles in Ihrem Kopf ist :D
Sie haben die Komplexität für sich selbst erfunden.
Vielleicht bin ich sehr schlecht darin, Dinge zu erklären, aber....
Wir haben einen Preis. Der Preis ist eine Eigenschaft eines Symbols. Der Preis hat die Fähigkeit, sich zu verändern. Entweder in Richtung eines Anstiegs oder in Richtung eines Rückgangs. Das Ausmaß (der Betrag, um den der Preis gestiegen oder gesunken ist, kann von uns kontrolliert und festgelegt werden - das ist "das Ausmaß der kontrollierten Veränderung"). Und auch der Preis kann den eingestellten (von uns im Programm kontrollierten) Wert überschreiten, den wir ebenfalls festlegen können - dies ist "die Größe des kontrollierten Niveaus des Wertes der Eigenschaft des Objekts".
Ist das klar?
Wir haben eine Spanne. Die Spanne ist eine Eigenschaft eines Symbols. Die Spanne kann sich ändern. Entweder zu seinem Anstieg oder zu seinem Rückgang. Die Größe (der Betrag, um den der Spread gestiegen oder gesunken ist, kann von uns kontrolliert und festgelegt werden - das ist "die Größe der kontrollierten Veränderung"). Und auch die Spanne kann den eingestellten (von uns im Programm kontrollierten) Wert überschreiten, den wir ebenfalls festlegen können - dies ist "die Größe des kontrollierten Niveaus des Wertes der Eigenschaft des Objekts".
Ist das klar?
Es handelt sich um zwei verschiedene Eigenschaften ein und desselben Objekts - eines Symbols. Lassen Sie es das aktuelle sein. Obwohl es sich um Eigenschaften verschiedener Symbole handeln kann - die Objekte sind unterschiedlich, aber die Eigenschaften der gleichen Art von Objekten sind dieselben. Und die Kontrolle über die gleichen Eigenschaften der gleichen Art von Objekten ist die gleiche. Unbedingt. Denn sie wird in einem Basisobjekt ausgeführt, von dem alle Objekte erben - es ist ihre Grundlage. Und sie ist für alle Objekte gleich - nicht für alle gleich, aber gleich.
Also: verschiedene Eigenschaften ein und desselben Objekts können auf unterschiedliche Weise gesteuert werden - man kann Steuermethoden für jede der Eigenschaften erstellen - eine Steuerung für jede Eigenschaft schreiben und sich darauf ausruhen. Oder man kann eine Methode schreiben, um absolut alle Eigenschaften eines beliebigen Objekts zu steuern und nicht Tonnen von Code für jede Eigenschaft zu schreiben, sondern nur eine Methode für alle auf einmal.
Und nachdem das Objekt seine Ereignisse in der Liste seiner eigenen Ereignisse aufgezeichnet hat (diese Ereignisse werden Basisereignisse genannt - absolut jedes Objekt hat sie), dann sendet das Programm Ereignisse - vollwertige Ereignisse, die der Benutzer bereits verarbeiten und eine Entscheidung treffen kann, dann müssen wir, um im Programm zu wissen, von welchem Objekt das Ereignis kam und um welche Art von Ereignis es sich handelt, es beschreiben. Und es eindeutig beschreiben. Zu diesem Zweck gibt es drei Parameter:
Fazit: Wir wissen mit Sicherheit, dass (1) das Symbol das Ereignis ausgelöst hat, (2) die Eigenschaft kleiner als das kontrollierte Niveau geworden ist und (3) diese Eigenschaft der Geldkurs ist.
Kompliziert? Erfinde es nicht - es ist ganz einfach.
Und dann, bumm:
Wir haben eine Handelserlaubnis. Die Handelserlaubnis ist eine Eigenschaft eines Kontos. Die Handelserlaubnis kann sich ändern. Und zwar durch mehrere Werte. Größe (den Wert, auf den sich die Handelserlaubnis geändert hat, dürfen wir kontrollieren und festlegen - das ist "die Größe der kontrollierten Änderung"). Und auch die Handelserlaubnis kann den eingestellten (von uns im Programm kontrollierten) Wert überschreiten, den wir auch einstellen können - das ist "die Größe des kontrollierten Niveaus des Wertes der Objekteigenschaft", zum Beispiel - es gibt ein Verbot, Positionen zum Kauf zu eröffnen.
Und schließlich wird dieses - völlig andere - Objekt die gleichen Codes an das Programm senden, die von dem Symbol gesendet wurden, aus dem das Ereignis gebildet wird. Und all dies wird durch ein und dieselbe Methode eines einzigen Objekts - der Grundlage aller Objekte - geschehen.
Ist das klar?
Und im Allgemeinen - alles ist in den Artikeln beschrieben. Aber Sie scheinen nur zu trollen? :) Um solche Fragen zu stellen, sollten Sie den Artikel mit der Einstellung "wie läuft das alles hier" lesen, und sich nicht mit der einfachen Organisation von Daten beschäftigen.
...kompliziert? Erfinde es nicht - es ist einfach....
Ein klassischer Fehler von Autoren von Artikeln ist es, zu denken, dass, wenn das Material für sie klar ist, es auch für jeden klar ist). Dem ist aber nicht so.
Ihre Erklärung hat vieles klargestellt, und wenn Sie sie in den Artikel aufgenommen hätten (z. B. an den Anfang), wäre vieles klarer geworden. Und ich trolle dich nicht. Nur wenn der Fluss der Abstraktion (obwohl gerechtfertigt und notwendig) nicht mit Spezifika vermischt wird und wenn sie sich nicht aufeinander beziehen und erklären (die Abstraktion beginnt zu überwiegen), entstehen Meinungen wie die, die ich oben zum Ausdruck gebracht habe.
S.F. Im Allgemeinen versuchen Sie, so wie ich es verstanden habe, alles, was es im Algo-Trading gibt, zu verallgemeinern und in dieser Bibliothek zu sammeln.
Ein klassischer Fehler von Autoren von Artikeln ist es, zu denken, dass, wenn das Material für sie klar ist, es auch für jeden klar ist.) Dies ist jedoch nicht der Fall.
Ihre Erklärung hat vieles klargestellt, und wenn Sie sie in den Artikel aufgenommen hätten (z. B. am Anfang), wäre es klarer gewesen. Und ich mache mich nicht über Sie lustig. Es ist nur so, dass, wenn der Fluss der Abstraktion (auch wenn er gerechtfertigt und notwendig ist) nicht mit Spezifika vermischt wird, und wenn sie sich nicht aufeinander beziehen und sich gegenseitig erklären (die Abstraktion beginnt zu dominieren), Meinungen wie die, die ich oben ausgedrückt habe, entstehen.
S.F. Im Allgemeinen versuchen Sie, so wie ich es verstanden habe, alles, was es im Algo-Trading gibt, zu verallgemeinern und in dieser Bibliothek zu sammeln.
Alles, was ich will, ist, den Leuten ein Werkzeug zu geben, mit dem sie auf einfache Weise Programme mit beliebiger Algorithmuskomplexität erstellen können.
Die Bibliothek übernimmt einfach die ganze Routine, die man immer selbst schreiben muss.
Der Benutzer muss nur noch "eine Frage stellen - eine Antwort erhalten - sie verarbeiten".
Und die Bibliothek selbst wird an die Ereignisse erinnern. D.h. im Prinzip reicht es aus, zu sehen, was für ein Ereignis von welchem Objekt ausgegangen ist, und es dann - entsprechend der konzipierten Logik - zu verarbeiten.
Der Benutzer kann fragen, wie die letzte Position geschlossen wurde - er wird eine Antwort erhalten - dann entsprechend seiner Logik....
Oder er kann nach der letzten geschlossenen Position fragen und sie dann selbst mit Hilfe von Komponenten analysieren - die Bibliothek erlaubt es, alle Daten über eine beliebige Position zu erhalten, die der Benutzer aus den Bibliotheksdaten genommen hat.
Oder man kann es so machen: Das Programm erhält ein Ereignis, dass eine solche Position auf einem solchen Symbol geöffnet/geschlossen wurde, oder dass eine solche Order gesetzt/gelöscht wurde. Wenn das Programm den Eingriff einer anderen Person in den Handel verfolgen muss, wird diese Nachricht darüber berichten - das Programm hat keine Anfragen gesendet, aber die Umgebung hat sich geändert - das muss verarbeitet werden.
Im Prinzip kann man sich vieles ausdenken und umsetzen - ich versuche, alle möglichen Werkzeuge dafür zu geben. Automatische - alles ist schon da, und man braucht sie nicht selbst zu erfinden - man muss sie nur bereitstellen und sorgfältig vorgeben ;)
Ein klassischer Fehler von Autoren von Artikeln ist es, zu denken, dass, wenn das Material für sie klar ist, es auch für jeden klar ist.) Das ist aber nicht der Fall.
...Und der klassische Fehler mancher Leser ist, dass sie nicht lesen, sondern sofort Fragen stellen :)
Wenn Sie mit dem Lesen des ersten Artikels beginnen, gibt es keine solchen Fragen, denn die ganze "Philosophie" ist da, und sie wird erklärt.
Artem, ich danke dir!
Nicht, nicht aufhören, weiterschreiben - es wird toll.
Ich habe mit Interesse Ihre Diskussion mit Peter gelesen. Sehr korrekt und auf den Punkt gebracht.
Ich habe einen Brief an AMD geschrieben, - ich bin nicht in die Entwicklung und Herstellung von Prozessoren involviert, aber, Leute, ihr habt einen Unsinn aus dem 8nm-Prozess gemacht....
Ich warte auf eine Antwort
Sie haben sich in Ihrer Ausarbeitung zu sehr in die Philosophie vertieft und dabei die praktische Umsetzung eines solchen "idealen Schemas" vergessen... .
Die Philosophie hier ist diese: Induktion (vom Besonderen zum Allgemeinen) oder Deduktion (vom Allgemeinen zum Besonderen).
Artyom verwendet die induktive Methode der Darstellung.
Chef: Nun, Gleb Georgievich, da ist eine Kugel. Ihr Urteilsvermögen...
Zheglov: Nun, was sagen Sie dazu, "Intelligenz"?
Scharapow: Nun, die Kugel ist wie eine Kugel, eine gewöhnliche Pistolenkugel....
Zheglov: Ja, es wäre gut, eine Hülse zu finden.
Chef: Es ist besser, sich die Waffe selbst anzuschauen.
Zheglov: Richtig, das bedeutet, dass das Geschoss aus einer importierten Waffe des Kalibers 6,35 des Bayard- oder, sagen wir, Omega-Systems abgefeuert wurde.
Chef: Was soll das heißen?
Zheglov: Das Geschoss, Sergei Ipatich, das Geschoss. Sechs linke, senkrechte Einschüsse, das ist es - die Handschrift ist ziemlich "unabhängig".
Chef: Was sagen Sie dazu? Nach den Markierungen zu urteilen, ist die Patronenhülse von uns, einheimisch.
Zheglov: Ja. Wo wurde sie gefunden?
Chef: Dort, wo sie sein sollte. Links neben der Leiche. Der Reflektor funktionierte einwandfrei.
Zheglov: Ja, die Hülse ist von uns. Hm. Nun, wir werden es in das Rätsel einbauen. Wir müssen noch nach der Waffe suchen. Nadezhda, weißt du, ob es in dem Haus Waffen gab?
Nadezhda: Ich weiß es nicht.
[Weiners. Das Zeitalter der Gnade]
Artem, ich danke dir!
Hören Sie nicht auf, schreiben Sie weiter - Sie machen das großartig.
Ich habe mit Interesse Ihre Diskussion mit Peter gelesen. Sehr korrekt und auf den Punkt gebracht.
Ich habe einen Brief an AMD geschrieben, - ich bin nicht in die Entwicklung und Herstellung von Prozessoren involviert, aber, Leute, ihr habt Unsinn über den 8nm-Prozess behauptet....
Ich warte auf eine Antwort
Hallo, Alexej.
Warum sollte man am Anfang der Reise stehen bleiben? Alle Haltestellen zum Nachdenken sind schon gemacht - jetzt nur noch vorwärts auf den Bodenwellen ;)
Nun, wie hat AMD Ihnen geantwortet?