Organisation des Auftragszyklus - Seite 10

 
Alexey Viktorov:

Wer wurde geschädigt, wenn ein Auftrag neu ausgewählt wurde?

Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests

Organisation eines Auftrags-Wiederholungszyklus

fxsaber, 2017.10.06 06:26

Dies kann dazu führen, dass ein Ticket übersehen wird oder ein durchgehendes Ticket wiederholt wird usw.

Und es geht nicht einmal um eine Änderung, sondern um einfache AmountOrders.

 
fxsaber:

Warum, wenn IsChange fünf Zeilen beträgt?

Nicht, um dieses spezielle Problem zu lösen. Es ist für meine Bibliothek - und viele Probleme, die für eine komfortable Programmerstellung notwendig sind, werden dort gelöst. Vor allem aber wird jede Änderung der Markt- oder historischen Listen angezeigt.

 
fxsaber:

Und es geht nicht einmal um eine Änderung, sondern um einfache AmountOrders.

Sie brauchen nur nicht die Listen der Umgebung durchzugehen, die bei Änderungen der Umgebung gemischt werden, sondern haben Ihre eigene Liste - sie wird nicht gemischt und enthält alle (oder mehr, aber nicht zu wenige) Tickets, die Sie schließen/löschen/ändern müssen. Wenn sie physisch fehlen, müssen Sie den Zyklus nicht noch einmal von vorne beginnen, sondern gehen einfach zum nächsten auf der Liste über. Das ist alles - Sie müssen den Schleifenindex nicht ändern oder versuchen, die Schleife irgendwie zu wiederholen. Wir gehen einfach zu unserer Liste und versuchen zu tun, was wir brauchen. Kein Ticket ist auf dem Markt - keine große Sache (man kann es nicht zurückgeben) - wir gehen zum nächsten und machen damit, was wir wollen. Der Timer wiederum korrigiert die Liste beim nächsten Ticken.

 
fxsaber:

Und es geht nicht einmal um eine Änderung, sondern um einfache AmountOrders.

Natürlich kann sie das. Alles kann passieren, jederzeit. Du gehst, du gehst, alles geht glatt, und plötzlich rutschst du aus... Es gibt kein Sicherheitsnetz für alles. Deshalb versuche ich auch nicht, möglichst universelle Funktionen "für alle Fälle" zu schreiben. Was macht es also aus, wenn ein Auftrag bei einem einfachen AmountOrders zweimal ausgewählt wird? Wie groß ist die Wahrscheinlichkeit, dass der Auftrag genau zum Zeitpunkt der Ausführung der Schleife manuell geschlossen/gelöscht wird? Denn im gegebenen Beispiel wird der Auftrag in der gleichen Schleife abgeschlossen. Das ist vielleicht nur ein Versuch, aber ich kann mir nicht vorstellen, dass wir den Auftrag ändern oder etwas anderes tun und ihn sofort schließen müssen...

 
Artyom Trishkin:

Sie brauchen nur nicht durch die Listen der Umgebung zu gehen, die bei einem Umgebungswechsel neu gemischt werden, sondern haben Ihre eigene Liste - sie wird nicht neu gemischt und enthält alle (oder mehr, aber nicht zu wenig) der Tickets, die Sie schließen/löschen/ändern müssen. Wenn sie physisch fehlen, müssen Sie den Zyklus nicht noch einmal von vorne beginnen, sondern gehen einfach zum nächsten auf der Liste über. Das ist alles - Sie müssen den Schleifenindex nicht ändern oder versuchen, die Schleife irgendwie zu wiederholen. Wir gehen einfach zu unserer Liste und versuchen zu tun, was wir brauchen. Kein Ticket ist auf dem Markt - keine große Sache (man kann es nicht zurückgeben) - wir gehen zum nächsten und machen damit, was wir wollen. Und der Timer wiederum korrigiert die Liste beim nächsten Ticken.

Angenommen, wir wollen den EA deaktivieren, wenn die Anzahl der Aufträge für ein bestimmtes Symbol die angegebene Anzahl überschreitet. Und wie?

 
Alexey Viktorov:

Natürlich kann sie das. Alles kann passieren, jederzeit. Du gehst, du gehst, alles ist gerade, und plötzlich rutschst du aus... Es gibt kein Sicherheitsnetz für alles. Deshalb versuche ich auch nicht, möglichst universelle Funktionen "für alle Fälle" zu schreiben. Was macht es also aus, wenn ein Auftrag bei einem einfachen AmountOrders zweimal ausgewählt wird? Wie groß ist die Wahrscheinlichkeit, dass der Auftrag genau zum Zeitpunkt der Ausführung der Schleife manuell geschlossen/gelöscht wird? Denn im gegebenen Beispiel wird der Auftrag in der gleichen Schleife abgeschlossen. Das ist vielleicht nur ein Experiment, aber ich kann mir nicht vorstellen, dass wir den Auftrag ändern oder etwas anderes tun und ihn sofort schließen müssen...

Haben Sie das nicht gesehen? Im Handumdrehen reproduzierbar!

 
fxsaber:

Angenommen, wir wollen den EA deaktivieren, wenn die Anzahl der Aufträge für ein bestimmtes Symbol die angegebene Anzahl überschreitet. Und wie?

Dort - im Timer beim Schreiben von Aufträgen in die Liste - überschritten - ein Ereignis gesendet oder eine Flagge angehoben.

 
Artyom Trishkin:

Dort - im Timer beim Schreiben von Aufträgen in die Liste - überschritten - haben ein Ereignis gesendet oder eine Flagge gesetzt.

Es ist jedoch besser, dies nicht zu tun - alles sollte an seinem Platz sein.

Im Timer des Expert Advisors nehmen wir die Liste nach den notwendigen Kriterien und bei list.Total()>xxx machen wir was wir wollen.

 
fxsaber:

Haben Sie das nicht gesehen? Es ist im Handumdrehen spielbar!

Das ist genau das, was ich gesehen habe.

    
  // Закрыли позиции
  for (int i = 0; i < Total; i++)
    OrderClose(Tickets[i], 1, SymbolInfoDouble(_Symbol, SYMBOL_BID), 100);
}


Und mein Beitrag

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Wie man eine Auftragsschleife organisiert

Alexey Viktorov, 2017.10.06 08:49

Wie groß ist die Wahrscheinlichkeit, dass ein Auftrag genau zum Zeitpunkt der Ausführung des Zyklus manuell geschlossen/gelöscht wird?


Und was ist der tiefste Sinn im realen Handel, der Auftragsschleife ständig nachzujagen? Das Wichtigste für nichts...

 
Alexey Viktorov:

Welchen tieferen Sinn hat es im realen Handel, ständig eine Auftragsschleife zu durchlaufen?

In einer Kampfumgebung sollte dies immer getan werden! Die Wahrscheinlichkeit, auf eine Seite zu treffen, die eine Position innerhalb eines Zyklus schließt, ist also ein Prozentsatz.