Organisation des Auftragszyklus - Seite 6

 
Alexey Viktorov:

das Ändern der Bestellliste zu unterbinden

Auf diese Weise wird die Neuindizierung nicht berücksichtigt.

Es ist klar, dass, wenn sie hinzugefügt wurden, sie oder andere vermisst werden. Aber was wäre, wenn sie einfach gelöscht würden? Wir werden die Bestellliste nicht verlassen können?

Es ist also alles in Ordnung - wir bekommen einen Fehler bei OrderSelect.

 
fxsaber:

Auf diese Weise wird die Neuindizierung nicht berücksichtigt.

Das ist in Ordnung - wir werden einen Fehler bei OrderSelect erhalten.

1. Was bedeutet Indizierung/Neuindizierung? Meiner Meinung nach, und kennzeichnen Sie es in der ... Hände, denn wir werden einen neuen Zyklus beginnen. Oder können Sie sich vorstellen, dass die Situation noch komplizierter ist? Können Sie sich vorstellen, dass es möglich ist, einen Auftrag zu eröffnen und gleichzeitig einen anderen zu schließen?

2. Ich stimme zu. Ich bin heute Morgen noch nicht ganz wach... Ich bin noch nicht ganz wach...

 
Alexey Viktorov:

1. Was versteht man unter Indizierung/Neuindizierung? Meiner Meinung nach und Flagge in ihrem ... Hände, denn wir beginnen einen neuen Zyklus. Oder können Sie sich vorstellen, dass die Situation noch komplizierter ist? Können Sie sich vorstellen, dass es möglich ist, dass ein Auftrag eröffnet und ein anderer gleichzeitig geschlossen wird?

Ja, das könnte eines der Szenarien sein. Es gibt eine weitere Variante

ein ausstehender Auftrag wird während des Zyklus ausgeführt

 
fxsaber:

Was wäre, wenn wir während eines beliebigen Zyklus der Arbeit mit Aufträgen bei jedem Durchgang prüfen würden, ob OrdersTotal() und OrdersHistoryTotal() geändert wurden?

Und diese Werte je nach Situation zu analysieren?

 
fxsaber:

Ja, das könnte eine Möglichkeit sein. Außerdem gibt es

Eine Art Pendel wird während des Zyklus erfüllt


(1) Diese Variante steht an der Schwelle zur Fiktion. Nun, letztlich wird nichts passieren, wenn beim nächsten Tick alles wieder normal ist.

2. So wie ich es verstehe, müssen schwebende Aufträge gemäß dem Algorithmus verschoben werden und der Stop wird auf Marktaufträge verschoben. Die Auftragsart wird also unabhängig vom Zeitpunkt der Ausführung geprüft und ausgeführt.

 
Alexey Kozitsyn:

Was wäre, wenn wir während eines beliebigen Zyklus der Arbeit mit Aufträgen bei jedem Durchgang prüfen würden, ob OrdersTotal() und OrdersHistoryTotal() geändert wurden?

Und analysieren Sie die erhaltenen Werte je nach Situation?

Hier ist ein ähnlicher Vorschlag


Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests

Eigenheiten von mql4, Tipps und Tricks

Alexey Viktorov, 2017.09.15 07:24

Erstens ist die Situation nicht standardisiert und nur wenige Menschen haben diese Situation bereits gelöst, wenn es überhaupt welche gibt.

Rein theoretisch:

Für OrderModify ist es nicht notwendig, eine Kehrschleife zu organisieren, also lassen Sie es direkt sein.

int i, total = OrdersTotal();
for(i = 0; i < total; i++)

Und dann sollten wir auf Änderungen in der Liste der Aufträge prüfen

if(total != OrdersTotal())
 {
  i = 0;
  total = OrdersTotal();
  continue;
 }

Wenn sich die Anzahl der Aufträge geändert hat, beginnen wir diese Schleife erneut mit einer neuen Anzahl von Aufträgen.

Es stellt sich auch eine Frage:

Es ist klar, dass wenn Aufträge hinzugefügt wurden, diese oder andere übersprungen werden. Aber was wäre, wenn sie einfach gelöscht würden? Wir werden nicht über die Bestellliste hinausgehen?


nur ohne Überprüfung von OrdersHistoryTotal()
 
Alexey Viktorov:

Hier wurde ein ähnlicher Vorschlag gemacht



nur ohne Überprüfung von OrdersHistoryTotal()
Ja, ich habe es gelesen, ich habe nur darauf geachtet, auch die historischen Aufträge zu überprüfen, für den Fall, dass eine gleichzeitige Öffnung und Schließung erfolgt.
 
Alexey Kozitsyn:

Was wäre, wenn wir während eines beliebigen Zyklus der Arbeit mit Aufträgen bei jedem Durchgang prüfen würden, ob OrdersTotal() und OrdersHistoryTotal() geändert wurden?

Und diese Werte je nach Situation zu analysieren?

Bei der Neuindizierung ist sie möglicherweise nicht vorhanden.
 
Alexey Viktorov:

1. Diese Option ist an der Grenze zur Fantasie. Nun, letztendlich wird nichts passieren, wenn alles auf den nächsten Tick zusammenpasst.

Das nächste Häkchen ist zu einer Lücke geworden. Warum das, was man heute tun kann, auf morgen verschieben?

2. So wie ich es verstehe, sollten nach dem Algorithmus die schwebenden Aufträge verschoben werden und der Stop sollte auf Marktaufträge verschoben werden. Daher wird die Auftragsart unabhängig vom Zeitpunkt der Ausführung geprüft und ausgeführt.

Nun, die Art der Bestellung kann in keiner Weise helfen.

 
fxsaber:
Bei der Neuindizierung ist sie möglicherweise nicht mehr vorhanden.

Dann sollten wir vielleicht versuchen, Aufträge so schnell wie möglich auszuwählen (einfach auswählen!) und sie in ein Array zu schreiben, und dann in einer separaten Funktion die Verfügbarkeit dieser Aufträge + die notwendige Aktion (schließen/löschen/ändern) zu überprüfen?

Ich glaube allerdings nicht, dass dieser Zweig der beste Ort ist, um darüber zu diskutieren. Dieser Zweig ist für Funktionen vorgesehen.

Grund der Beschwerde: