Fehler, Irrtümer, Fragen - Seite 2313
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Ich habe dieses Problem auf meinem Laptop, wenn eine Aufgabe weiterhin auf den Agenten zu zählen (zum Beispiel, ich durcheinander in den Code mit der Eröffnung Position und der arme Agent sendet und sendet Handelsaufträge, aber er bekommt Verbote in Reaktion, aber es weiterhin zu bombardieren, was in allen Agenten haben längst abgeschlossen Berechnungen, aber dieser arme Kerl hält hämmern und hämmern).
Das heißt, kurz gesagt: Der Agent hat eine Aufgabe aus der letzten Mission, und er kämpft mit ihr weiter.
Ich hatte das heute gegenüber, nachdem die Agenten über 24 Stunden lang nicht im Einsatz waren.
Ich glaube, es gibt einen Fehler bei der Autorisierung und dem Datenaustausch, d.h. wenn lange Zeit keine EA/Historie übertragen wird, stellt die Client-Seite die Verbindung wieder her und der Agent wartet immer noch auf den Eingang von Dateien.Fast drei Millionen Ticks und nur 16K OrderSend. Aber diese Handelsaufträge benötigen ein Drittel der Zeit. Und bei jedem Tick gibt es Berechnungen im Expert Advisor.
Daher meine Frage. Könnten Sie den Code von OrderSend mit dem Profiler ausführen? An welcher Stelle gibt es ein solches Hindernis?
Ich gehe davon aus, dass es schneller geht, wenn Sie die Standardfunktion durch Ihre eigene ersetzen. Wahrscheinlich gibt es einige teure Prüfungen und Gesten in OrderSend. Wenn z.B. keine History-Funktionen und OnTrade* im Expert Advisor (+ Indikatoren) vorhanden sind, dann ist die Bildung der entsprechenden Datensätze/Ereignisse reine Zeitverschwendung.
Ich verstehe, dass ein Lauf für manche Menschen viele Minuten dauert. Aber es gibt Fälle wie den oben genannten - Einheiten von Sekunden, wenn man auf die Geschwindigkeit der Ausführung achtet. Und hier stellt sich heraus, dass ich Optimize drei Stunden lang starte, und davon ist eine Stunde OrderSend, dessen durchschnittliche Ausführungszeit 69 µs beträgt (siehe Screenshot):
Hallo,
Haben Sie eine nützliche Antwort von Metaquotes erhalten?
Ich habe einen Kunden, der den MT5 Strategy Tester nutzen möchte, um seine Leistung zu verbessern. Die EA-Strategie kann problemlos den Modus "Nur verfügbare Preise" verwenden. Der Backtest, der mit MT4 1,5 Sekunden dauert, wird mit MT5 in 5 Sekunden durchgeführt!
Die Strategie verwendet einen Trailing-Stop und scheint OrderSend () für 90 % der Backtest-Zeit zu verwenden:
Hallo,
Haben Sie eine nützliche Antwort von Metaquotes erhalten?
Ich habe einen Kunden, der den MT5 Strategy Tester nutzen möchte, um seine Leistung zu verbessern. Die EA-Strategie kann problemlos den Modus "Nur verfügbare Preise" verwenden. Der Backtest, der mit MT4 1,5 Sekunden dauert, wird mit MT5 in 5 Sekunden durchgeführt!
Die Strategie verwendet einen Trailing-Stop und scheint OrderSend () für 90 % der Backtest-Zeit zu verwenden:
Alle Antworten wurden nur in diesem Thread gegeben. Es sieht so aus, als ob etwas getan worden wäre.
Ich habe es selbst durch Virtual gelöst.
ZZY Zeigen Sie Ihren EA.
Sieht aus, als ob etwas getan wurde
1930
Virtuell
Der Unterschied ist dreimal so groß wie im Jahr 1881. Wahrscheinlich wurde irgendwo anders gezwickt. Aber das Thema OrderSend wurde wahrscheinlich nicht berührt.
Alle Antworten sind nur in diesem Thread gegeben worden. Es sieht so aus, als ob etwas getan worden wäre.
Ich habe es selbst durch Virtual gelöst.
Die Optimierung erzeugt Bündel von 128 Aufträgen für jeden Agenten. Ist es möglich, Pakete mit unterschiedlicher Größe zu bilden?
Dies ist die Situation
Alle Agenten bis auf einen haben ihre Aufgaben erfüllt. Und wir müssen wegen eines Agenten warten, bis die Optimierung abgeschlossen ist. Es war jedoch möglich, die Arbeit aller Bevollmächtigten fast zeitgleich zu beenden.
Betrachten wir zum Beispiel, wie auf dem Screenshot, 8 Agenten und 5376 Aufgaben. 5376 / 8 = 672 Aufgaben. So könnten Sie Bündel der Größe 336 (=672/2), 168 (672/4) oder 84 (672/8) Jobs in jedem bilden. Und dann würden alle Agenten zur gleichen Zeit die Ziellinie erreichen.
Der Wert von 128 hingegen berücksichtigt diese Vielfachheit nicht. Dies führt zu längeren Optimierungszeiten, wenn mehrere Kerne verwendet werden.
Ich wollte die KB mit einer Note versehen, aber es hat nicht funktioniert. Und der Tatsache nach zu urteilen, dass die jüngsten Veröffentlichungen überhaupt keine Bewertungen haben, bin ich anscheinend nicht der Einzige mit diesem Problem.
Gleichzeitig möchte ich aber auch zugeben, dass das Bewertungssystem(einfaches arithmetisches Mittel ) Lust auf mehr macht. Schließlich wird ein neu veröffentlichter Code mit einer 5-Sterne-Bewertung höher bewertet als ein Code, der bereits seit mehreren Jahren in BE ist und 49 5-Sterne-Bewertungen und eine 4-Sterne-Bewertung hat. Ist das fair?
Meiner Meinung nach wäre zumindest diese Formel viel fairer:
Wo:
R- die gesuchte Einstufung
Durchschnittswert - arithmetisches Mittel
N- Anzahl der Bewertungen.
Die Optimierung erzeugt für jeden Agenten Bündel von 128 Aufträgen. Ist es möglich, Pakete mit unterschiedlicher Größe zu bilden?
Dies ist die Situation
Alle Agenten bis auf einen haben ihre Aufgaben erfüllt. Und wir müssen wegen eines Agenten warten, bis die Optimierung abgeschlossen ist. Es war jedoch möglich, die Arbeit aller Bevollmächtigten fast zeitgleich zu beenden.
Betrachten wir zum Beispiel, wie auf dem Screenshot, 8 Agenten und 5376 Aufgaben. 5376 / 8 = 672 Aufgaben. So könnten Sie Bündel der Größe 336 (=672/2), 168 (672/4) oder 84 (672/8) Jobs in jedem bilden. Und dann würden alle Agenten zur gleichen Zeit die Ziellinie erreichen.
Der Wert von 128 hingegen berücksichtigt diese Vielfachheit nicht. Dies führt dazu, dass sich die Optimierungszeit erhöht, wenn mehrere Kerne verwendet werden.
Im Großen und Ganzen unterstütze ich dies, aber ich denke, es wäre richtiger, die automatische Stornierung von Aufträgen für Agenten zu ermöglichen (bereits implementiert durch Drücken der Taste zum Verbieten der Agentenaktivität), wenn es freie Agenten und 5 mal mehr Aufträge gibt, und die Aufträge wieder an alle Agenten zu verteilen, einschließlich der entfernten.
Guten Tag zusammen! Entschuldigung für die dumme Frage. Leute, könntet ihr mir bitte sagen, wie man die Eigenschaft "Gedrückt" einer Schaltfläche wahr werden lässt, wenn man mit der linken Maustaste klickt, und falsch, wenn man mit der linken Maustaste klickt. Jetzt ist die Situation so, dass nichts passiert, wenn man die Taste drückt, aber Pressed ändert seinen Wert in das Gegenteil, wenn man die Taste loslässt.
Ich verstehe, dass ich die CButton::OnMouseUp und CButton::OnMouseDown-Ereignishandler überschreiben müssen, aber ich habe keine Ahnung, wo das zu tun. Bitte einen Hinweis. Vielen Dank im Voraus!