Diskussion zum Artikel "Virtual Order Manager zum Verwalten von Ordern innerhalb der positionszentrischen Umgebung von MetaTrader 5" - Seite 2

 
phampton:

Das ist richtig, wackena. Was Sie getan haben, ist, direkt zum Server zu gehen, um eine konventionelle Bestellung aufzugeben, so dass keine virtuelle Bestellung offen ist. Sie müssten den VirtualOrderManagerTester verwenden, um eine manuelle virtuelle Bestellung aufzugeben.

Ich hätte in dem Artikel klarstellen sollen, dass, wenn ein VOM EA für ein bestimmtes Symbol eingeführt wird, alle anderen EAs, die mit diesem Symbol handeln, ebenfalls VOM-aktiviert sein müssen. Das liegt an dem Katastrophenschutz-SL-Code im VOM.

Paul

Vielen Dank, Paul.

Kann der VirtualOrderManager.mqh im MT-5 Strategy Tester verwendet werden? Wenn ja, wie sollte der EA mit VOM eingerichtet werden?

 
wackena:

Danke Paul.

Kann der VirtualOrderManager.mqh im MT-5 Strategy Tester verwendet werden? Wenn ja, wie sollte der EA mit VOM eingerichtet werden?

Ja, meine sehr begrenzten Tests im ST zeigen, dass es ohne Änderungen funktioniert, wenn auch langsam, weil jeder Tick verarbeitet werden muss.
 

Ich habe mit VOM an einem EA vom Typ Martingale gearbeitet. Bei mehreren offenen Sell-Trades desselben Typs und Währungspaars scheint diese CloseAllOrders-Funktion nur den letzten Trade zu schließen, während die vorherigen Trades noch offen bleiben.

VOM.CloseAllOrders(_Symbol,VIRTUAL_ORDER_TYPE_SELL);

Wenn mehrere virtuelle Orders (Vo) desselben Typs und Währungspaars offen sind, sollte dieser Funktionscode das Schließen einer Vo-Order initiieren oder sollte die Funktion alle offenen Vo-Orders schließen.

VOM.OrdersTotal() verfolgt die Anzahl der offenen Vo-Orders recht gut.

 
wackena:

Ich habe mit VOM an einem EA vom Typ Martingale gearbeitet. Mit mehreren Sell Trades offen, gleichen Typs und Währungspaares, scheint diese CloseAllOrders Funktion nur den letzten Trade zu schließen und lässt die vorherigen Trades noch offen.

Wenn mehrere virtuelle Aufträge (Vo) desselben Typs und Währungspaars offen sind, sollte dieser Funktionscode das Schließen eines Vo-Auftrags initiieren oder sollte die Funktion alle offenen Vo-Aufträge schließen.

VOM.OrdersTotal() verfolgt die Anzahl der offenen Vo-Orders recht gut.

Hallo wackena,

Ich habe gerade eine Schaltfläche "Alle schließen" zu VirtualOrderManagerTester hinzugefügt, siehe Anhang. Es funktioniert gut, obwohl ich zugeben muss, dass es ein umständlicher Weg ist, alle virtuellen Aufträge zu schließen - ein besserer Weg wäre es, sie zusammenzufassen und einen einzigen Serverauftrag zu erteilen, und ich werde versuchen, das in der nächsten Version zu tun.

Sie können mir gerne eine Kopie eines LOG_VERBOSE EA-Logs schicken, damit ich besser sehen kann, was passiert.

Paul

 
phampton:

Hallo wackena,

Ich habe gerade eine Schaltfläche "Alle schließen" zu VirtualOrderManagerTester hinzugefügt, siehe Anhang. Es funktioniert gut, obwohl ich zugeben muss, dass es ein umständlicher Weg ist, alle virtuellen Aufträge zu schließen - ein besserer Weg wäre es, sie zusammenzufassen und einen einzigen Serverauftrag zu erteilen, und ich werde mich darum kümmern, dies in der nächsten Version zu tun.

Sie können mir gerne eine Kopie eines LOG_VERBOSE EA-Logs schicken, damit ich besser sehen kann, was passiert.

Paul

Im Anhang finden Sie die Protokolldatei.
Dateien:
 
wackena:
Im Anhang finden Sie die Protokolldatei.

Vielen Dank - von dem, was ich in das Protokoll sagen kann, die einzigen Aufrufe zu OrderClose auftreten, wenn eine virtuelle Takeprofit getroffen wurde, dh was auch immer Code, den Sie haben, um explizit Aufträge zu schließen (wie ein CloseAllOrders) wird nicht erreicht oder wird erreicht, wenn es keine Aufträge links zu schließen.

 

Aktualisierung der Anhänge zum Artikel:

Die Dokumentation, das Benutzerhandbuch und die Quellcodekommentare für die Virtual Order Manager-Bibliothek sind jetzt auch auf Russisch verfügbar.

 

Es gibt ein großes Problem mit dieser Bibliothek. Mit VOM geöffnete und manuell geschlossene Trades werden von VOM als geöffnet angezeigt.

Mehr noch, wenn ich in VOM versuche, diese Trades zu schließen, wird VOM Trades in der entgegengesetzten Richtung öffnen.

Zum Beispiel:

- Ich eröffne 5 Kaufaufträge mit VirtualOrderManagerTester und alles ist in Ordnung.

- Ich schließe manuell alle 5 Aufträge: im MT5 sehe ich keine Aufträge und auf dem Chart (VOM) 5 offene Aufträge

- Ich schließe die 5 Orders aus dem VirtualOrderManagerTester: Ich sehe 5 Verkaufsaufträge im MT5 und keine im VOM(VirtualOrderManagerTester)

Meiner Meinung nach ist dies ein großes Problem, denn wenn meine EA-Aufträge von einem Broker oder einem anderen EA geschlossen werden, wird mein EA, wenn er versucht, sie mit VOM zu schließen, Aufträge in der entgegengesetzten Richtung öffnen.

Gibt es eine Lösung für dieses Problem?

Dateien:
vom_test.jpg  188 kb
 
mbt22:

Es gibt ein großes Problem mit dieser Bibliothek. Mit VOM geöffnete und manuell geschlossene Trades werden von VOM als geöffnet angesehen.

Mehr als das, wenn in VOM ich versuche, diese Trades zu schließen, wird VOM Trades in die entgegengesetzte Richtung öffnen.

Zum Beispiel:

- Ich eröffne 5 Kaufaufträge mit VirtualOrderManagerTester und alles ist in Ordnung.

- Ich schließe manuell alle 5 Aufträge: im MT5 sehe ich keine Aufträge und auf dem Chart (VOM) 5 offene Aufträge

- Ich schließe die 5 Orders aus dem VirtualOrderManagerTester: Ich sehe 5 Verkaufsaufträge im MT5 und keine im VOM(VirtualOrderManagerTester)

Meiner Meinung nach ist dies ein großes Problem, denn wenn meine EA-Aufträge durch Broker oder andere EA geschlossen werden, wenn mein EA versucht, sie mit VOM zu schließen, werden Aufträge in der entgegengesetzten Richtung geöffnet.

Gibt es eine Lösung für dieses Problem?

Hallo mbt22,

was Sie hervorheben, ist definitiv eine Einschränkung dieser Bibliothek - alle EAs, die auf einem Konto laufen, müssen den VOM verwenden, und das schließt manuelle Trades ein.

Bedenken Sie jedoch, dass diese Einschränkung der Soziabilität der VOM-EAs wahrscheinlich bei vielen MQL5-EAs zu beobachten ist, d. h. diese EAs können auch bei manuellen Trades oder anderen EAs jeglicher Art, die auf demselben Symbol arbeiten, versagen.

Hier ein Beispiel für das Scheitern eines Nicht-VOM-EAs: Angenommen, die (manuellen und/oder vom EA generierten) externen Trades dieses EAs belaufen sich auf insgesamt 1,0 Lots Short, und der EA gibt einen Kaufauftrag über 0,1 Lots mit einem 50-Pip-Stop aus.Ich kann mich nicht mehr genau daran erinnern, wie die OrderSend-Funktion im EA funktionieren würde (ob sie ausgeführt wird oder einen Stop-Fehler zurückgibt), aber sicher ist, dass der Stop nicht 50 Pips unterhalb der resultierenden Positionsgröße von 0,9 Lots Short angewendet werden kann.

Der Test-EA ist in der Lage, manuelle Trades mit dem VOM zu verwalten, aber wenn die Situation so weit geht, dass der Broker Aufträge schließt, hat der VOM die Kontrolle verloren und eine sorgfältige Bewertung des Kontos wäre erforderlich.

Einer der Hauptgründe dafür, dass der VOM nicht mit Nicht-VOM-Aktivitäten zusammenarbeitet, ist die Verwaltung des Katastrophenschutz-Stopps, der bei jedem kundenbasierten Handelsschließungsprozess ein absolutes Risikomanagement darstellt.

Paul

 
phampton:

Hallo mbt22,

was Sie hervorheben, ist definitiv eine Einschränkung dieser Bibliothek - alle EAs, die auf einem Konto laufen, müssen den VOM verwenden, und das schließt manuelle Trades ein.

Beachten Sie jedoch, dass diese Soziabilität Einschränkung der VOM EAs ist wahrscheinlich in vielen MQL5 EAs gesehen werden. Mit anderen Worten, diese EAs können auch im Falle von manuellen Trades oder andere EAs jeder Art, die auf dem gleichen Symbol fehlschlagen.

Hier ein Beispiel für das Scheitern eines Nicht-VOM-EAs: Angenommen, die (manuellen und/oder vom EA generierten) externen Trades dieses EAs belaufen sich auf insgesamt 1,0 Lots Short, und der EA gibt einen Kaufauftrag über 0,1 Lots mit einem 50-Pip-Stop aus.Ich kann mich nicht mehr genau daran erinnern, wie die OrderSend-Funktion im EA funktionieren würde (ob sie ausgeführt wird oder einen Stop-Fehler zurückgibt), aber sicher ist, dass der Stop nicht 50 Pips unterhalb der resultierenden Positionsgröße von 0,9 Lots Short angewendet werden kann.

Der Test-EA ist in der Lage, manuelle Trades mit dem VOM zu verwalten, aber wenn die Situation dazu führt, dass der Broker Aufträge schließt, hat der VOM die Kontrolle verloren und eine sorgfältige Bewertung des Kontos wäre erforderlich.

Einer der Hauptgründe dafür, dass der VOM nicht mit Nicht-VOM-Aktivitäten zusammenarbeitet, ist die Verwaltung des Katastrophenschutz-Stopps, der bei jedem kundenbasierten Handelsschließungsprozess ein absolutes Risikomanagement darstellt.

Paul


Also gut.

Vielen Dank für Ihre schnelle Antwort.