Wodurch soll OnTradeTransaction() in mql4 ersetzt werden? - Seite 3

 
Igor Makanu:

Wenn wir eine schnelle Lösung brauchen, dann würde ich alle Tickets in CArrayInt platzieren und die Tickets der offenen Aufträge mit CArrayInt vergleichen; die Search()-Methode ist da; wenn es kein Ticket gibt, hören wir auf, CArrayInt zu vergleichenmit den Zählern der offenen Aufträge CArrayInt zurücksetzen und alle Tickets wieder in CArrayInt schreiben und das global beschriebene Flag MyOnTradeTransaction setzen - dies ist ein Zeichen dafür, dass sich die Auftragsliste geändert hat - der Code wird recht kompakt sein

Und wenn wir etwas mehr als nur Auftragsverluste auffangen müssen, dann fangen wir an, mit Diamanten zu tanzen...

Die Überprüfung von OrdersTotal() zeigt z.B. nicht die Aktivierung eines schwebenden Auftrags an - die Anzahl der Aufträge bleibt gleich, ebenso die Tickets... Und wenn wir die Tatsache der Änderung der Reihenfolge/Position erfassen müssen...

Aber alles ist bereits durchdacht, getan und mit Erklärungen veröffentlicht worden...

 
Alexey Viktorov:

Welche Vorzüge leugne ich? Ich habe nur ein Dementi. Ich möchte verstehen, wie etwas funktioniert, und wenn es nur von jemand anderem als meinem Verstand verstanden werden kann, dann fühle ich mich nicht wohl dabei, es zu benutzen, und alles, womit ich mich nicht wohlfühle, lehne ich ab. Ich habe Ihnen bereits gesagt, dass Sie mehr Briefe schreiben, als ich in meinem ganzen Leben lesen kann. Lassen Sie es nicht an mir aus...

Die Vorteile sind, dass keine Ereignisse verloren gehen können. Im Gegensatz zu OnTrade() und OnTradeTransaction(). Aber Sie glauben nicht, dass ein solches Ereignis verloren gehen kann... Deshalb sage ich: Eine Diskussion ist sinnlos.

 
Artyom Trishkin:

Und wenn es um mehr geht als um eine fehlende Bestellung, dann geht das Tamburin los...

Die Überprüfung von OrdersTotal() zeigt z.B. nicht die Aktivierung einer schwebenden Bestellung an - die Anzahl der Bestellungen ist konstant, die Tickets ebenfalls... Und wenn wir eine Änderung eines Auftrags/einer Position erfassen müssen...

Aber alles ist bereits durchdacht, getan und mit Erklärungen frei zugänglich gemacht worden...

Ich rate davon ab, OrdersTotal zu analysieren, da es nicht zuverlässig ist.

Sie werden nicht in der Lage sein, Auftragsänderungen auf diese Weise zu verfolgen, Sie müssen Ihre eigene Klasse auf der Grundlage von CArray oder CObj schreiben.

Ich habe eine schnelle Lösung vorgeschlagen, nicht eine grundlegende Arbeit ;)

Artyom Trishkin:

Die Vorteile sind, dass wir keine Ereignisse verlieren können.

können, wenn Sie die PC-Reset-Taste drücken .... Ich habe die Artikel schon lange nicht mehr verfolgt, aber ich erinnere mich, dass ich nach einer Technik gefragt habe, mit der der Klassenstatus in einer Datei gespeichert werden kann, falls das Terminal neu gestartet wird - wurde dies implementiert?
 
Igor Makanu:

Ich schlage nicht vor, OrdersTotal zu analysieren, es ist nicht zuverlässig.

Auftragsänderung nicht auf diese Weise verfolgt werden kann, müssen Sie Ihre eigene Klasse auf der Grundlage von CArray oder CObj schreiben

Ich habe eine schnelle Lösung vorgeschlagen, nicht eine grundlegende Arbeit).

Sie können, wenn Sie die PC-Reset-Taste drücken .... Ich habe die Artikel schon lange nicht mehr verfolgt, aber ich erinnere mich, dass ich nach der Technik gefragt habe, den Klassenstatus in einer Datei zu speichern, falls das Terminal neu gestartet wird - ist dies bereits implementiert?

Und man kann auch einen Computer vom Balkon werfen - bei zuverlässigem Verlust :) Und lass die Walze unten warten. Dann können Sie auch Beton darauf gießen :)))

Nein, es wird nicht umgesetzt - es ist jetzt nicht die Hauptsache. Es ist fast zu Ende - es ist einfacher, alles in einem Rutsch zu erledigen, als es auf verschiedene Zeitfenster aufzuteilen. Für mich.

 
Artyom Trishkin:

Nein, nicht umgesetzt - das ist jetzt nicht die Hauptsache. Es ist fast am Ende - es ist einfacher, alles in einem Durchgang zu erledigen, als es auf verschiedene Zeitfenster aufzuteilen. Für mich.

OK, warten wir ab

Aber ich habe sich als das Gegenteil sein - Ich habe bereits dieses Problem aufgetreten - ich habe nicht die Fähigkeit, in der Programmstruktur zu speichern, und begann das Schreiben Speichern in eine Datei, sehr umständlich alles hat sich herausgestellt.... Ich bin bereits auf dieses Problem gestoßen - ich habe das Speichern in eine Datei nicht in die Programmstruktur aufgenommen - ich habe angefangen, das Speichern in eine Datei zu schreiben, und es hat sich als sehr umständlich herausgestellt - ich habe aufgegeben und den größten Teil des Codes noch einmal von Grund auf neu geschrieben - es ist eine mühsame Arbeit, ich werde den gesamten Quellcode analysieren müssen

 
fxsaber:

Ich wäre Ihnen dankbar, wenn Sie mir ein reproduzierbares Beispiel (ohne die Erhebung der Handelsgeschichte) zur Verfügung stellen könnten.

Ich würde mich gerne für Ihre Nützlichkeit revanchieren. Leider habe ich Schwierigkeiten, aus sehr umfangreichem und komplexem Code einen kurzen funktionierenden Code zu schmieden. Die auch sehr spezifisch ist (z.B. öffnet sich nur eine Pose zur Zeit).

Daher musste ich für Slava ein Codeskelett anstelle eines kompilierbaren Beispiels veröffentlichen.

Aber ich werde versuchen, etwas zu tun, sonst wird mich mein Gewissen quälen. Aber nicht schnell.

PS: Ich meine, ich habe eine sehr geringe Produktivität beim Schreiben von Code. Ich nehme es nur durch Beharrlichkeit. Und zur gleichen Zeit - super beschäftigt damit, den EA so schnell wie möglich auf einem echten Konto zum Laufen zu bringen. Ich beneide Sie um Ihre Produktivität.

 
Igor Makanu:

OK, warten wir ab

Aber ich habe sich als das Gegenteil sein - Ich habe bereits dieses Problem aufgetreten - ich habe nicht die Fähigkeit, in der Programmstruktur zu speichern, und begann das Schreiben Speichern in eine Datei, sehr umständlich alles hat sich herausgestellt.... Auf dieses Problem bin ich auch schon gestoßen - ich habe das Speichern in eine Datei nicht in die Programmstruktur eingebaut und habe angefangen, das Speichern in eine Datei zu schreiben, es hat sich als sehr umständlich und mühsam herausgestellt - dann habe ich aufgegeben und den größten Teil des Codes noch einmal von Grund auf neu geschrieben - imho, wenn man in eine Datei speichern will, muss man es sofort implementieren, zumindest mit "Stubs", sonst muss man alles, was man speichern will, in jeder Klasse sammeln - eine sehr mühsame Arbeit, man muss eigentlich den ganzen Quellcode analysieren

Die Methoden zum Speichern und Laden werden zunächst deklariert. Und in dem Basisobjekt CObject der Standardbibliothek. Die Implementierung des Speicherns in einer Datei in jedem Objekt der Bibliothek kann für ein oder zwei Objekte beschrieben werden. Aber in jedem Artikel Beschreibungen der Methoden des Speicherns/Ladens zu schreiben - wird ziemlich langweilig sein, fast die gleiche "Aktion" von Artikel zu Artikel zu lesen, und einfach wegzulassen - ist nicht schön für den Leser (und so einige Leute sagen, dass es schwierig für sie ist, solche Mengen von Artikeln zu lesen, ich denke - Sie auch). Deshalb - diese Aufgabe für die Beschreibung in zwei oder drei Artikeln näher zum Ende - auf einmal in einem Zug, und nicht zu belasten den Leser.

Eine andere Sache wäre, wenn nichts in den Artikeln beschrieben wäre - dann wäre es natürlich sofort notwendig. Es hängt alles von den Besonderheiten der Geschichte und den Zielen ab. Wenn der Zweck - kodobaza, dann alle auf einmal, und wenn der Zweck - Ausbildung Artikel - dann schrittweise - wenn die Zeit kommt. Ich habe die zweite Möglichkeit.

 
Ihor Herasko:

Die OnTradeTransaction wurde erneut erwähnt. Es gibt kein Problem,OnTradeTransaction im Falle eines Verbindungsverlustes usw. zu garantieren, da das Terminal die Handelsumgebung immer noch synchronisiert, sobald die Verbindung wiederhergestellt ist. DaOnTrade sekundär ist, können Sie sich auf sie verlassen. Wenn die Entwickler selbst keinen Fehler gemacht haben, sondern die Klausel entfernt haben, bedeutet das, dass alles in Ordnung ist.

 
Artyom Trishkin:

Aber in jeden Artikel Beschreibungen von Speicher-/Lademethoden einzubauen - wird eher langweilig, wenn man von Artikel zu Artikel fast die gleiche "Aktion" liest, und einfach weglassen - ist nicht schön für den Leser (und so sagen einige, dass sie Schwierigkeiten haben, solche Mengen von Artikeln zu lesen, ich denke - Sie auch). Deshalb - diese Aufgabe für die Beschreibung in zwei oder drei Artikeln näher am Ende - auf einmal auf einen Schlag, und den Leser nicht zu sehr belasten.

Ich habe nicht gesagt, dass die Menge der zu lesenden Artikel sehr groß ist, sondern ich habe geschrieben, dass die Menge der Quellen riesig ist und es unmöglich ist, herauszufinden, wie man sie ohne eine Art von Hilfe/FAQ nutzen kann

Ich werde auf die Umsetzung der Speicherung einer so großen Datenmenge warten, es ist interessant zu sehen, wie es aussehen wird

 
Igor Makanu:

Die Umsetzung der Speicherung so vieler Daten muss noch abgewartet werden, es wird interessant sein zu sehen, wie es aussehen wird

ok