Tester - Seite 2

 
lippmaje:
Also wenn ich den Optimierer anwerfe werden alle Kerne voll ausgelastet, ich finde das sogar zu aggressiv, da man währenddessen kaum arbeiten kann. Ich optimiere mit MT5 und Real Ticks.

Also ich komm auf nie mehr als 20%auslastung

 
amando:

eigentlich nicht,

die OnInit braucht auch meisten weil da 2 iCustom drin sind. aber das darf es meiner Meinung ja nicht sein

ich kopiere ja auch nur 20 Werte in den Buffer, also völlig unverständlich

und der Indicator selbst, der hat gar keine Prozesser Auslastung wenn er läuft

Die Zeitfresser stecken immer in der OnTick.


Zu mindest war das immer meine eigene Erfahrung.

Probier es aus https://www.metatrader5.com/de/metaeditor/help/development/profiling

Und berichte.

Code-Profiling - Programme entwickeln - MetaTrader 5
Code-Profiling - Programme entwickeln - MetaTrader 5
  • www.metatrader5.com
Profiling bedeutet das Sammeln von Programmparametern während der Ausführung. Während eines Profiling werden die Ausführungszeit und die Anzahl der Aufrufe einzelner Funktionen und Programmcode-Zeilen erfasst. Mit diesem Tool ist der Programmierer in der Lage, die langsamsten Codeabschnitte zu finden und zu optimieren. Das Profiling kann sowohl...
 
lippmaje:
Also wenn ich den Optimierer anwerfe werden alle Kerne voll ausgelastet, ich finde das sogar zu aggressiv, da man währenddessen kaum arbeiten kann. Ich optimiere mit MT5 und Real Ticks.

Nimm ein, zwei Agenten des Testers, rechter Mausklick und dann kannst Du den Agenten "Deaktivieren" - dann steht rechts "disabled" statt "ready" und Du kannst fast normal weiterarbeiten!

 
Christian:

Die Zeitfresser stecken immer in der OnTick.

  1. das auf alle Fälle, aber auch
  2. Indikatoren, die immer wieder tief in die Kurshistorie greifen, um alles neu berechnen,
  3. grafische Spielchen auf dem Chart (ich verwende mit unter so etwas wie: wenn keine Optimierung ...)
Wie Christian sagte: Profiling..
 
Carl Schreiber:
  1. das auf alle Fälle, aber auch
  2. Indikatoren, die immer wieder tief in die Kurshistorie greifen, um alles neu berechnen,
  3. grafische Spielchen auf dem Chart (ich verwende mit unter so etwas wie: wenn keine Optimierung ...)
Wie Christian sagte: Profiling..

Und der Knaller war immer ObjectFind()

Diese Funktion war immer sehr sehr langsam bei sehr vielen Objekten im Chart.


Einen Code lauffähig zu bekommen ist die eine Sache.

Die Funktion beim erstellen gleich effizient zu gestallten ist die andere Sache.

Unötiges kopieren von Werten vermeiden.

Schleifen kurz halten mit frühen Austiegsregeln.

Zeiger verwenden.

Man muss auch nicht jeden Wert in der OnTick "Berechnen".

Es reicht oft auch ein Timer zu nutzen und nur alle 1Minute oder mehr

Es gibt sehr viele Ansatzpunkte in Bezug auf Geschwindigkeit.


und und und ... Das ist dann die 2. große Phase beim Programmieren lernen :-)

 
Christian:

Und der Knaller war immer ObjectFind()

Diese Funktion war immer sehr sehr langsam bei sehr vielen Objekten im Chart.


Einen Code lauffähig zu bekommen ist die eine Sache.

Die Funktion beim erstellen gleich effizient zu gestallten ist die andere Sache.

Unötiges kopieren von Werten vermeiden.

Schleifen kurz halten mit frühen Austiegsregeln.

Zeiger verwenden.

Man muss auch nicht jeden Wert in der OnTick "Berechnen".

Es reicht oft auch ein Timer zu nutzen und nur alle 1Minute oder mehr

Es gibt sehr viele Ansatzpunkte in Bezug auf Geschwindigkeit.


und und und ... Das ist dann die 2. große Phase beim Programmieren lernen :-)

Das problem besteht aber erst seit built 2007

davor war alles normal

 
Hab eben noch mal optimiert, die Leistung geht direkt auf 100%, alle Kerne. Build 2007
Grund der Beschwerde: