[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 963

 
Techno:
Sie müssen einen anderen Weg zur Analyse finden, grafische Funktionen sind sehr langsam.
Ich habe alles entfernt, wie Sie gesagt haben, und die Geschwindigkeit hat sich um 60-70 % erhöht, aber jetzt ist es schwieriger zu sehen, welcher Auftrag sich wo im Diagramm befindet. Und ich habe Igors Ratschlag noch nicht mit "wenn" umgesetzt.
 
volshebnik:
Ich habe alles entfernt, wie Sie gesagt haben - die Geschwindigkeit hat sich um 60-70% erhöht, aber jetzt ist es schwieriger zu sehen, welcher Auftrag sich wo im Diagramm befindet. Und ich habe Igors Ratschlag noch nicht mit "wenn" umgesetzt.
Auch wenn die Leistung nicht überragend ist, werden Sie nur ein paar Taktzyklen benötigen. Sagen Sie uns genau, was Sie auf dem Diagramm anzeigen lassen wollen, und wir werden uns überlegen, wie wir das ohne Leistungseinbußen erreichen können.
 
Techno:
Das wird Ihnen nicht viel Leistung bringen, nur ein paar Berechnungen. Sagen Sie uns genau, was Sie in der Grafik darstellen wollen - wir können uns überlegen, wie wir das ohne Leistungseinbußen machen


if(NormalizeDouble(Bid,Digits)<=NormalizeDouble(TL_TPdown[B],Digits)

Die Frage bezieht sich nicht einmal auf die numerische Zahl, sondern auf die Optimierung der Berechnungen - es gibt Informationen über die vollständige Berechnung der Bedingungen in mql4 - es wurde wiederholt im Forum geschrieben

In mql5 wurde bereits eine reduzierte Berechnung von Bedingungen implementiert.

 
Techno:
Das bringt Ihnen nicht viel Leistung, nur ein paar Taktzyklen. Sagen Sie mir genau, was Sie in das Diagramm einfügen wollen, dann können wir darüber nachdenken, wie wir das ohne Leistungseinbußen machen können.
Idealerweise benötige ich die Anzahl der Marktaufträge mit ihren Unterscheidungsmerkmalen zu anderen Aufträgen zum Zeitpunkt ihrer Eröffnung. Soviel ich weiß, kann man sie in Echtzeit einstellen und während der Prüfung wieder entfernen. Es ist einfach bequemer und schneller zu sehen, was richtig geöffnet wurde und was nicht.
 
IgorM:


if(NormalizeDouble(Bid,Digits)<=NormalizeDouble(TL_TPdown[B],Digits)

? ein paar Zyklen? Es geht nicht einmal um die numerische Zahl, sondern um die Optimierung der Berechnungen - es gibt Informationen über die vollständige Berechnung der Bedingungen in mql4 - es wurde wiederholt im Forum geschrieben

in mql5 ist bereits eine reduzierte Berechnung von Bedingungen implementiert

ja, das ist verständlich, aber wir müssen zuerst entscheiden, was den Expert Advisor daran hindert, zu testen...
 
Techno:
ja, das ist verständlich, aber auf die Priorität sollte zunächst entscheiden, was verhindert, dass der Experte zu testen ...


Nun, wenn nach Priorität, ist es genug, um eine Kopie des EA zu machen - in der Kopie löschen Sie alle Comment(), Print() und Grafiken, und alles in den Tester für die Optimierung, die Suche nach ungefähren Parameter, starten Sie die Prüfung Jahr für Jahr, und dann die endgültige Version mit Grafiken montieren

Ich habe das getan

 
Guten Morgen, ich versuche immer noch herauszufinden, wann der letzte Auftrag in Bezug auf den aktuellen Balken geschlossen wurde. Die Idee ist, dem EA zu verbieten, ein Geschäft zu machen, wenn die Position während des aktuellen Balkens geschlossen wurde. In einigen Fällen wird ein neuer Auftrag direkt nach dem Stop-Loss eröffnet. Wenn ich mir den Code ansehe, den ich verwende, scheint er nicht der richtige zu sein. Ich möchte mich im Voraus bei Ihnen bedanken.
for(int e1=1;e1<OrdersHistoryTotal();e1++)
   {
    if(OrderSelect(e1-1,SELECT_BY_POS,MODE_HISTORY)==true)
      {
         if(OrderSymbol()!=Symbol()){continue;}
         int Cl_time=OrderCloseTime();
         if(Cl_time>Time[0])
            {
              Trade=False; 
            }
            else
            {
             Trade=true;
            }
      }
   }
 
IgorM:


die Karte wird sich sicher verlangsamen

Und vergessen Sie nicht, dass es in mql4 eine vollständige Berechnung der Bedingungen in if() gibt, d.h. wenn Sie mehrere && haben, werden alle Werte berechnet und verglichen, obwohl ein false ausreicht, damit die Konstruktion mit && falsch ist

ist es möglich, sie in mehrere if() aufzuteilen

in diesem Fall wird die gesamte folgende Struktur nicht berücksichtigt, nachdem das erste if() nicht ausgeführt wurde

Igor, ich danke dir! Ich habe hier etwas übersehen... ((((( Ich habe nicht alles mitbekommen ( Ihre Variante ergab eine Geschwindigkeitssteigerung von 35%. Insgesamt zusammen mit "sauberen" Grafiken und + wenn sich die Geschwindigkeit fast verdoppelt hat - etwa 125-130% - ist das schon was.
 
Warum nimmt die Geschwindigkeit des Testers gegen Ende des dritten Durchgangsjahres ab?
 
volshebnik:
Warum nimmt die Geschwindigkeit des Testers gegen Ende des dritten Durchgangsjahres ab?
Gibt es eine Überschreitung der historischen Aufträge?
Grund der Beschwerde: