Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Expert-Advisors

Expert-Advisors Expert-Advisors für Metatrader 4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4973
Beiträge: 43266
Benutzer: 7.220
Aktive Benutzer: 81
Links: 84
Wir begrüßen unseren neuesten Benutzer: JosephTK
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 12 Stunden
- JosephTK
vor 2 Tagen
- Hopfen&Mal...
vor 3 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 434
Gesamt: 435
Team: 0
Team:  
Benutzer:  murkel
Freunde anzeigen

Empfehlungen

Like Tree2Likes
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 17.03.20
Gesperrter Benutzer
 
Registriert seit: Aug 2017
Beiträge: 16
fintrad0 befindet sich auf einem aufstrebenden Ast
Standard Technische Frage, Performance bei HS, Ordermanagement

Hallo,

meine Frage richtet sich eher Trader mit technischer Erfahrung bei der Performance.

Mir ist beim Beobachten der Trades im Demokonto aufgefallen, dass teilweise der Trailing-Stop erst geschätzte 1,5 Sekunden nach Erreichen des gesetzten Levels nachgezogen oder der Teilverkauf leicht verspätet durchgeführt wurde.

Da würde ich gerne als Beispiel mein eben fertiggestelltes Handelssetup verwenden:

Ich habe:

- 24 Multi-Currency-EA's (Scalper, in 24 Charts platziert), die Trades nach verschiedenen Strategien erstellen, inkl. SL und TP

- Um das Ordermanagement aller offenen Trades (Trailing, Break-even, Teilverkauf) kümmert sich ein einziger EA, es sind durchschnittlich bis zu 10 Trades zugleich offen, getriggert wird die Schleife mit EventSetMillisecondTimer(10)

- Um das Moneymanagement aller offenen Trades (z. B. Schließen bei Currency-basket in Loss, Gesamtsumme im Profit etc.) kümmert sich ausschließlich ein weiterer EA. Ich vermute so weniger Rechenarbeit weil nur 1 EA die offenen Trades prüft anstatt 24.

Hier meine Fragen, SPEZIELL zum ORDERMANAGEMENT

1. Wenn das Nachziehen des Trailing-Stops stark verspätet durchgeführt wird, was könnte der Grund dafür sein?
2. Wäre eine versteckte Trailingstop-Linie (Hidden SL) zeitlich präziser als das Nachziehen des SL beim Broker (Nachteil: keine Funktion bei Systemausfall)?
3. Wäre die Performance besser, wenn jeder der 24 EAs ein eigenes Ordermanagement hätte anstatt nur 1 EA damit zu beschäftigen?

Ich würde mich freuen, wenn Ihr dazu ein paar Erfahrungen und Anregungen mit mir teilen würdet.

Vielen Dank!

Werner
  #2 (permalink)  
Alt 17.03.20
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Hallo Werner,

warum gibt es 3 verschiedene EAs und nicht einen?

Mittels EventSetMillisecondTimer(10) wird doch alle 10 Millisekunden das OnTick()-Event gestartet und damit würden alle Orderöffnungs-, -überwachungs- und close-Funktionen angesprungen.

Die Antworten zu:
1. Das Nachziehen wird verlangsamt, wenn codetechnisch die Ausführung zu Verzögerungen führt. Bei einem Demo-Konto sollte das Verschieben des SL, gebunden an die Order, kein zeitliches Problem sein.
2. Ja, auf jeden Fall beim Live-Konto.
3. njein, weil alle Orderaufgaben sequentiell und nicht parallel ausgeführt werden. D.h. das fällt nur ins Gewicht, wenn mehrer Orders "gleichzeitig" bearbeitet werden sollen.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #3 (permalink)  
Alt 17.03.20
Gesperrter Benutzer
 
Registriert seit: Aug 2017
Beiträge: 16
fintrad0 befindet sich auf einem aufstrebenden Ast
Standard

Danke, für die klaren Antworten, traderdoc! Damit kann ich was anfangen.

Mir ist noch aufgefallen, dass zeitgleich Trades geöffnet wurden. Ich schließe daraus, dass zumindest die 24 EAs (zuständig für Entry, SL und TP) parallel arbeiten und die Ordersend-Anfragen beim Broker auch zeitgleich angenommen werden können.

Demnach müssten auch mehrere Orderclose-Anfragen zeitgleich angenommen werden können. Also wäre wahrscheinlich eine Hidden-Trailingstop eine sinnvolle Ergänzung für jeden einzelnen der 24 "Entry"-EAs.

Zitat:
Zitat von traderdoc Beitrag anzeigen
Hallo Werner,
warum gibt es 3 verschiedene EAs und nicht einen?
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.


Zitat:
Mittels EventSetMillisecondTimer(10) wird doch alle 10 Millisekunden das OnTick()-Event gestartet und damit würden alle Orderöffnungs-, -überwachungs- und close-Funktionen angesprungen.
Ja, genau. Die offenen Trades werden in der Schleife alle nacheinander selektiert und die Bedingungen geprüft. Bis für das OrderModify die Antwort des Brokers zurückkommt, könnte auch etwas Zeit vergehen und so eine Verzögerung bei den nachfolgenden Trades in der Schleife entstehen. Wie gesagt, ich kann nicht einschätzen, wie lange es dauert.


Zitat:
3. njein, weil alle Orderaufgaben sequentiell und nicht parallel ausgeführt werden. D.h. das fällt nur ins Gewicht, wenn mehrer Orders "gleichzeitig" bearbeitet werden sollen.
Bei starken Marktbewegungen können schon mal mehrere Trades des gleichen Symbols geöffnet sein.
Eventuell könnte also ein zusätzlicher Hidden-Trailingstop in jedem einzelnen der EAs einen Vorteil bringen. Das werde ich testen.

Der 1 EA für das Moneymanagement bildet Teilsummen nach bestimmten Kriterien über alle offenen Trades (z. B. Gesamtverlust aller EUR-Trades mehr als -35 €, Gesamtgewinn aller GBP-BUY-Trades > 50 Euro etc.) und schließt entsprechende Trades. Hier würde es meiner Meinung nach auch keinen Sinn machen, in allen 24 EAs die Teilsummen zu bilden.

Gruß Werner
  #4 (permalink)  
Alt 17.03.20
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Also wenn schon 24 identische EAs mit unterschiedlichen Settings laufen (von der Struktur her trotzdem nur 1 EA) bedeutet das nicht, dass die alle insgesamt schneller laufen, als 1 EA, aus dem alle WP gesteuert werden.
Das kommt nun darauf an, wann welche Funktionen unbedingt bei jedem Tick in jedem der 24 EAs angesprungen werden müssen.
Einfaches Beispiel: Sofern die Bedingung gilt, wenn bereits eine Order offen ist, kann keine zweite geöffnet werden, dann braucht der EA auf diesem Chart auch keinerlei Einsprünge in irgendwelche Funktionen tätigen, denn Money- und Ordermanagement sind ja ausgeliedert.

Der Rechner ist so schnell, dass er alle Aufgaben mit unmerklicher Zeitverzögerung bewältigen könnte, wenn!!! nicht extrem viele Objekte zu verarbeiten sind. Da lahmt mql tatsächlich etwas. Aber reine mathematische Operationen werden in Nanaosekundenschnelle erledigt. Was wiederum bremsend wirkt sind in der Tat Verbindungen zum Broker, v.a. bei Orderänderungen, -öffnungen bzw. -schließungen.

In Summe sage ich mal, ein sehr gut strukturiertes Programm würde das alles
bewältigen.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #5 (permalink)  
Alt 17.03.20
Mitglied
 
Registriert seit: Feb 2016
Beiträge: 240
RetepM befindet sich auf einem aufstrebenden Ast
Standard

Hi,
ich habe hier bei mir 28 Instanzen eines EAs inkl. Ordermanagement (Trailingstop, Breakeven, Teilschließungen) laufen. Macht keine Probleme auf dem Handels-PC (i3 SSD, 8 Giga).
Kann es sein, dass die verspätete Reaktion auf Grund der Spreads oder Commissions des Brokers zu Stande kommt?
Gruß
  #6 (permalink)  
Alt 17.03.20
Gesperrter Benutzer
 
Registriert seit: Aug 2017
Beiträge: 16
fintrad0 befindet sich auf einem aufstrebenden Ast
Standard

Gute Idee, traderdoc!
Ich werde nochmal die Struktur jedes einzelnen EAs auf den Prüfstand stellen, unnützes Zeug entfernen und einen Hidden-Trailingstop einbauen. Und dann mal mit kleinem Geld im Echtgeldkonto testen.

Zitat:
Also wenn schon 24 identische EAs mit unterschiedlichen Settings laufen (von der Struktur her trotzdem nur 1 EA) bedeutet das nicht, dass die alle insgesamt schneller laufen, als 1 EA, aus dem alle WP gesteuert werden.
Nicht 24 identische EAs mit unterschiedlichen Setups sondern 24 EAs mit UNTERSCHIEDLICHEN Strategien. Ein gemeinsamer Nenner jedes dieser einzelnen EAs ist das Bilden von Währungskörben, aber auf 24 verschiedene, technische Arten.. Dazu kommen dann noch die individuellen Einstiegskriterien. Daraus ergibt sich ein Gitter an Einstiegsmarken im Abstand von wenigen Pips.

Um ehrlich zu sein, ich war am Ende mit meinem Latein. Danke dafür, dass ich jetzt wieder einen klaren Weg vor mir sehe.

Schönen Gruß
Werner
  #7 (permalink)  
Alt 17.03.20
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Hallo Werner,

ich stehe wie immer auch von Seiten der Programmierung her zur Verfügung.

traderdoc
fintrad0 likes this.
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #8 (permalink)  
Alt 17.03.20
Gesperrter Benutzer
 
Registriert seit: Aug 2017
Beiträge: 16
fintrad0 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von RetepM Beitrag anzeigen
Hi,
ich habe hier bei mir 28 Instanzen eines EAs inkl. Ordermanagement (Trailingstop, Breakeven, Teilschließungen) laufen. Macht keine Probleme auf dem Handels-PC (i3 SSD, 8 Giga).
Kann es sein, dass die verspätete Reaktion auf Grund der Spreads oder Commissions des Brokers zu Stande kommt?
Gruß
Ich habe ein ähnliches Equipment.

Einen Check des maximal erlaubten Spreads habe ich beim Einstieg. Dabei fällt mir ein, die maximal erlaubte Slippage beim Schließen könnte auch zu Verzögerungen führen.

Danke, für den Hinweis! Jetzt arbeite ich mal die Steps ab und prüfe dann, ob es eine Verbesserung bringt. Rentabel ist das System bereits, jetzt geht es noch um eine Verbesserung des Ergebnisses.

Gruß Werner
  #9 (permalink)  
Alt 17.03.20
Gesperrter Benutzer
 
Registriert seit: Aug 2017
Beiträge: 16
fintrad0 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
Hallo Werner,

ich stehe wie immer auch von Seiten der Programmierung her zur Verfügung.

traderdoc
Weiß ich doch. Bin doch zufriedener Kunde:-)

Gruß Werner
  #10 (permalink)  
Alt 19.03.20
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
fintrad0 likes this.
Thema geschlossen

Lesezeichen

Stichworte
hidden sl, performance

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +1. Es ist jetzt 10:59 Uhr.





Suchmaschine - Reisen - Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------