Einzelnen Beitrag anzeigen
  #10 (permalink)  
Alt 19.03.20
Ca$hDigger Ca$hDigger ist offline
Premium Mitglied
 
Registriert seit: Jun 2013
Beiträge: 364
Ca$hDigger befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von fintrad0 Beitrag anzeigen
Für die Ordererstellung arbeiten 24 Multi-Currency-EAs mit verschiedenen Strategien, die als Hauptkriterium für den Einstieg Währungskörbe bilden (stark gegen schwach). Dabei wird vermutlich bereits etwas mehr an Rechenleistung beansprucht.

Deswegen VERMUTE ich einen noch höheren Rechenaufwand, wenn jeder dieser 24 EAs zusätzlich mit einem kompletten Ordermanagement (Trailing, Break-Even, Teilverkauf) ausgestattet wäre als wenn nur 1 EA das Ordermanagement sequentiell durchführt.
Ein paar Gedanken dazu, ich würde diese Vermutung definitiv in Frage stellen, zumindest müsste man die Vermutung mit einer Performancemessung nachweisen, ich vermute das eher das Gegenteil der Fall ist.

Man muss das Gesamtkonstrukt auf Multithreading und Sequenziell herunterbrechen. Du fährst aktuell ein Hybrit aus beidem welcher so aus Sicht der Performance erstmal einen driftigen Grund bräuchte. CPU-Kerne gibts heute in Computern wie Sand am Meer und man sollte wenn möglich die Kerne ausnutzen. Der Rechenaufwand ist in Summe, wenn unterschiedliche Berechnungen stattfinden, immer der selbe es ist nur die Frage ob dieser von einer oder von vielen CPU-Kernen abgearbeitet wird. Wird der Rechenaufwand nur von einem Kern erledigt dauert dies natürlich viel länger als wenn es von mehreren erledigt wird.

Dazu muss man die gegebenen Möglichkeiten in Metatrader in Multithreading und Sequenziell herunterbrechen:

Single Core: Sequenziell
x Ein EA der sich von einem Chart um alles kümmert.
x Indikatoren auf einem Chart
x Indikatoren auf unterschiedlichen Charts, das gleiche Währungspaar

Multi Core: Multithreading
x Indikatoren auf unterschiedlichen Charts, unterschiedliche Währungspaare
x EAs auf unterschiedlichen Charts, das gleiche Währungspaar
x EAs auf unterschiedlichen Charts, unterschiedliche Währungspaare
x Indikatoren auf unterschiedlichen Paaren, vom EA erzeugt

Grundsätzlich bietet Multithreading in den meisten Fällen ein Performancezuwachs da die Kerne ausgenutzt werden können. Wenn es viele EAs mit verschiedenen Strategien gibt dann macht es Sinn die Logik von jedem EA auch nur in seinem Thread-Ort dem Chart auszuführen. Wenn jetzt aber wie bei dir 1 EA das Ordermanagement für alle EAs sequentiell durchführt dann ist dies ein begrenzender Faktor.
Wenn du zB 8 CPU-Kerne hast dann kann Metatrader für die Bearbeitung des Ordermanagements nur 12,5% der CPU Leistung nutzen und dies kann zu einer Verzögerung führen.
Die Orderausführung wiederum wird von Metatrader sowieso automatisch intern synchronisiert also kann man ruhig alles auf unterschiedlichen Charts laufen lassen und so das Multithreading voll und ganz ausnutzen.

LG