Strukturregeln. Lernen, wie man Programme strukturiert, Erforschung von Möglichkeiten, Fehlern, Lösungen usw. - Seite 13

 

Es braucht nur etwas Übung, um ein Gefühl für das Problem zu bekommen. Ich spreche nicht über den manuellen+automatischen Fall - den praktiziere ich nicht. Aber aus meiner eigenen Erfahrung:

"Was zum Teufel ist mit einigen Befehlen los?! Was ist im Allgemeinen los?

Werfen wir also einen Blick auf die Geschichte. Es scheint klar geworden zu sein. Irgendein Fehler (z. B. auf der Seite des Maklers).

Wir können nicht manuell eingreifen - es gibt Hunderte von Aufträgen (und nicht alle davon sind problematisch). Dieser Mist wurde im TS nicht bereitgestellt.

Wenn man in den TS-Code eingreifen will, muss man lange überlegen, wie man das richtig macht. Was kann ich jetzt tun?

Nun, ich schreibe ein kniffliges Skript, das einige Befehle so ändert, wie ich sie gerade sehe".


Es wird verdammt viel Zeit in Anspruch nehmen, dieses Skript über Netting zu schreiben. Aber mit MQL4 wird es um eine Größenordnung weniger Zeit in Anspruch nehmen.

Ich würde sogar sagen, dass es unwahrscheinlich ist, dass Sie das Problem in dem obigen Beispiel überhaupt verstehen und spüren.

Üben Sie und üben Sie nur echten Handel.

 
MetaDriver:
Das ist alles Blödsinn.
Ich wünschte, es wäre so. Warum gibt es keinen anständigen Strategie-Aggregator für 5? Er ist absolut auf dem Punkt.
 
hrenfx:

Es braucht nur etwas Übung, um ein Gefühl für das Problem zu bekommen. Ich spreche nicht über den manuellen+automatischen Fall - den praktiziere ich nicht. Aber aus meiner eigenen Erfahrung:

"Was zum Teufel ist mit einigen Befehlen los?! Was ist im Allgemeinen los?

Nun, schauen wir uns die Geschichte an. Es scheint klar geworden zu sein. Irgendein Fehler (z. B. auf der Seite des Maklers).

Wir können nicht manuell eingreifen - es gibt Hunderte von Aufträgen (und nicht alle davon sind problematisch). Dieser Scheiß ist in der TS nicht vorgesehen.

Wenn man in den TS-Code eingreifen will, muss man lange überlegen, wie man das richtig macht. Was kann ich jetzt tun?

Nun, ich schreibe ein kniffliges Skript, das einige Befehle so ändert, wie ich sie gerade sehe".


Wie lange es dauern wird, dieses Skript über Netting zu schreiben. Aber in MQL4 wird es viel weniger Zeit in Anspruch nehmen.

Der Markttreiber (der Synchronisierer) ermittelt einfach (durch Deduktion) die Differenz zwischen der tatsächlichen Position (auf dem Server des Brokers) und der empfohlenen Marktposition (Signal der Strategie) und sendet einen Auftrag, um die Differenz zu beseitigen.Und ganz gleich, welche Fehler es VOR diesem Zeitpunkt gab und auf wessen Seite sie lagen, das Beste, was man in jeder Situation unmittelbar nach einem Fehler jedweder Art oder einem Verbindungsverlust (egal wie lange!) tun kann, ist, die Marktposition auf die empfohlene Position zu bringen. Es gibt keine Ausnahmen von diesem Axiom.


Ich würde sogar sagen, dass es unwahrscheinlich ist, dass Sie beim Netting das Problem im obigen Beispiel verstehen und spüren.

Das steht fest.

Praxis und nur Praxis des realen Handels.

Nun, das wird niemand bestreiten.
 
TheXpert:
Wenn doch nur. Warum gibt es keinen normalen Aggregator für 5? Er hat es absolut auf den Punkt gebracht.

Wenn wir über einen Aggregator von Strategien "für den Markt" sprechen, d.h. um eine Reihe von isolierten EAs auf der realen (oder höchstens auf einer Demo) laufen zu lassen, mit der Möglichkeit, ihren individuellen Handel zu verfolgen - ich, zum Beispiel, gebe einen Scheiß auf diese Aufgabe... :)))))

Daher ist die Wartung dieses Toolkits viel schwieriger als das Schreiben. Es gibt also keine Masochisten, und deshalb gibt es auch keinen "normalen Aggregator".

Was "nicht normal" ist, d.h. für den individuellen Gebrauch mit der Kombination aller Strategien in einem EA - ich habe den Weg gezeigt, ich habe Ihnen sogar den Treiber kostenlos gezeigt. Ready integrator-aggregator, wo liegt das Problem? ;)

 
MetaDriver:

Sie haben eine Menge Probleme damit, und es ist unmöglich, sie allein ohne CCA-Aufträge zu lösen.

OCO-Bestellungen sind nicht erforderlich. Es handelt sich um dieselbe Architektur wie oben beschrieben, und die Zusammenlegung mehrerer TCs ist selbst beim Netting eine Realität.

In dieser Architektur werden alle TCs in der Virtualität betrieben - ihr eigener Tester mit Historie bis zum aktuellen Moment. Und dann werden die zusammenfassenden Posen mit der Realität synchronisiert.

Natürlich ist die Visualisierung dieser virtuellen Umgebung fast eine Visualisierung von MT4.

Sie verstehen, dass jeder FOREX-Aggregator auf demselben MT4 genau diesen Unsinn im Besonderen macht. Das heißt, Sie führen Ihren TS in einer virtuellen Umgebung aus - in Ihrem MT4. Die virtuelle Umgebung wird Ihnen von der Bridge des Aggregators zur Verfügung gestellt. Und die wirkliche Seite sieht man eigentlich nicht (auf welcher LP was ausgeführt wurde), aber es wird einem alles schön gezeigt.

 
hrenfx:

OCO-Bestellungen sind nicht erforderlich. Es handelt sich um dieselbe Architektur wie oben beschrieben, und die Zusammenlegung mehrerer TCs ist selbst beim Netting eine Realität.

In dieser Architektur werden alle TCs in der Virtualität betrieben - ihr eigenes Prüfgerät mit einer Historie für den aktuellen Moment. Und dann sind die zusammenfassenden Posen bereits mit der Realität synchronisiert.

Natürlich ist die Visualisierung dieser virtuellen Umgebung fast eine Visualisierung von MT4.

Sie verstehen, dass jeder FOREX-Aggregator auf demselben MT4 genau diesen Unsinn im Besonderen macht. Das heißt, Sie betreiben in einer virtuellen Umgebung Ihren TS in Ihrem MT4. Die virtuelle Umgebung wird Ihnen von der Bridge des Aggregators zur Verfügung gestellt. Und die wirkliche Seite sieht man eigentlich nicht (auf welcher LP was ausgeführt wurde), aber man bekommt alles schön gezeigt.

Dem stimme ich also zu. Nicht zustimmen kann ich Andrew in seiner Aussage, dass es keine "normalen Aggregatoren" gibt. Für den individuellen Gebrauch kann ein solcher Aggregator prinzipiell problemlos erstellt werden. In meinem Schema gibt es eben keine virtuellen Tester, aber sie können in Form von Indikatoren erstellt werden, das Problem der Visualisierung ist dann stark vereinfacht.
 
hrenfx:

In dieser Architektur werden alle TCs in der Virtualität betrieben - ihr eigener Tester mit einer Historie bis zum aktuellen Moment. Und dann werden die gesamten Posen mit der Realität synchronisiert.

Zu komplexe Lösung. Es gibt nicht genügend Transparenz für den Endentwickler.
 
MetaDriver:

Ich habe kein Problem damit, zwischen Kauf- und Verkaufsbedingungen zu unterscheiden. Das sollte nicht auf der Ebene der Strategie geschehen. Die Aufgabe der Strategie ist es, vorherzusagen, ob der Markt im nächsten Moment steigen oder fallen wird, und mit welcher Wahrscheinlichkeit. Die empfohlene Marktposition hängt davon ab. Was in der Vergangenheit da war, ob es jetzt offene Positionen (in beide Richtungen) gibt oder nicht - das spielt absolut keine Rolle. Wenn man sich nicht darauf einlässt, kann man sein halbes Leben damit verbringen, nicht existierende Probleme zu lösen. Manchmal kann man sie sogar sehr schön lösen.

Warum ist das nicht wichtig? Jede Strategie kennt auf ihrer logischen Ebene immer ihren aktuellen Zustand! Nehmen wir eine einfache Crossover-Strategie: Sie hat nur zwei Zustände, sie ist entweder ein Kauf oder ein Verkauf. Ohne sich seine Position zu merken, wird er jedes Mal eine Long-Position eröffnen, wenn er sieht, dass der schnelle Durchschnitt über dem langsamen liegt. Was soll der Synchronisator also tun? Sagen Sie ihr: "Nein, Sie haben bereits eine Long-Position, ich werde nicht zulassen, dass sie eine weitere eröffnet!

Meine Lösung ist universell, die Strategie entscheidet selbst, wie viele Aufträge und in welche Richtung sie offen halten kann. Wenn Sie eine Position zum Kaufen und zwei zum Verkaufen haben möchten, ist das kein Problem. Die Basisklasse verfügt über alle notwendigen Informationen, um Entscheidungen zu treffen. Auf der Terminalebene gibt es keine Nettoposition, während die Strategie selbst in einem komfortablen Multipositionsmodus arbeitet.

Der Expert Advisor, der auf der von mir vorgeschlagenen Vorlage basiert, hat automatisch die Eigenschaften eines Multi-Experten. Ich werde nichts hinzufügen oder ändern müssen. Positionen verschiedener EAs auf ein Symbol werden nicht in ein Netting kollabieren, es ist genauso einfach, ein Grid oder ein Locker in diesem Muster zu programmieren wie in jeder anderen Strategie. Mit anderen Worten: Eine vollständige Vereinheitlichung der Programmimplementierung wird unabhängig von der Logik des Expert Advisors erreicht!

 
C-4:

Warum ist das nicht wichtig? Jede Strategie kennt auf ihrer logischen Ebene immer ihren aktuellen Zustand! Nehmen wir eine einfache Crossover-Strategie: Sie hat nur zwei Zustände, sie ist entweder ein Kauf oder ein Verkauf. Ohne sich seine Position zu merken, wird er jedes Mal eine Long-Position eröffnen, wenn er sieht, dass der schnelle Durchschnitt über dem langsamen liegt. Was soll der Synchronisator also tun? Sagen Sie ihr: "Nein, Sie haben bereits eine Long-Position, ich werde nicht zulassen, dass sie eine weitere eröffnet!

Meine Lösung ist universell, die Strategie entscheidet selbst, wie viele Aufträge und in welche Richtung sie offen halten kann. Wenn Sie eine Position zum Kaufen und zwei zum Verkaufen haben möchten, ist das kein Problem. Die Basisklasse verfügt über alle notwendigen Informationen, um Entscheidungen zu treffen. Auf der Terminalebene gibt es keine Nettoposition, während die Strategie selbst in einem komfortablen Multipositionsmodus arbeitet.

Der Expert Advisor, der auf der von mir vorgeschlagenen Vorlage basiert, hat automatisch die Eigenschaften eines Multi-Experten. Ich werde nichts hinzufügen oder ändern müssen. Positionen verschiedener EAs auf ein Symbol werden nicht in ein Netting kollabieren, es ist genauso einfach, ein Grid oder ein Locker in diesem Muster zu programmieren wie in jeder anderen Strategie. Mit anderen Worten: Eine vollständige Vereinheitlichung der Programmimplementierung wird unabhängig von der Logik des Expert Advisors erreicht!

Das Signal ist eine Änderung der Situation, die für eine Handelsposition in einer bestimmten Richtung akzeptabel ist.

Warum nicht die Signale mit einer individuellen Signatur versehen, das Signal ändert sich, die Signatur ändert sich.

Dann funktioniert die Ausführung nicht nur mit dem Signal, sondern auch mit der Signatur, wenn das Signal bereits ausgearbeitet wurde, muss es nicht erneut gehandelt werden.

 
Urain:

Ein Signal ist eine Veränderung der Situation, die für eine Handelsposition in einer bestimmten Richtung akzeptabel ist.

Warum nicht Signale mit einer individuellen Signatur unterschreiben, die Signaländerung ändert die Signatur.

Dann funktioniert die Ausführung nicht nur mit dem Signal, sondern auch mit der Signatur, wenn das Signal bereits ausgearbeitet wurde, muss es nicht erneut gehandelt werden.

In diesem Fall müssen wir die Geschichte der erarbeiteten Signale speichern, was sehr teuer ist. Betrachten wir erneut die Kreuzung von 2 Durchschnittswerten. Nehmen wir an, wir haben den Expert Advisor neu gestartet. Es gibt kein neues Crossover für den Einstieg, und der EA muss irgendwie seine Handelshistorie wiederherstellen und verstehen, dass es ein Crossover gab und dass er sich im Buy-Status befinden sollte und dass dieses Signal verarbeitet wurde und wir keine neue Position eröffnen sollten, sondern wir müssen die alte Position finden, aber es wird nicht einfach sein, sie zu finden, weil die aktuelle Position nicht unbedingt zu nur einem EA gehören muss ... Alles in allem ist es ein Alptraum. Das ist der dornige Weg, den hrenfx vorschlägt: einen History-Tester in jeden Roboter zu schreiben, der historische Signale sammelt, berechnet, ob sie funktionieren oder nicht, und dann die Volumina der Strategien speichert, usw. Infolgedessen steigt die Komplexität der Entwicklung um eine Größenordnung, während es immer noch keine zuverlässige Lösung gibt.