Bibliotheken: MultiTester - Seite 26

 
traveller00:

1. Ich würde in Sleep2 von GetTickCount() auf GetTickCount64() umstellen . Andernfalls droht ein Überlauf mit nicht ganz korrekter Logik. Und er passiert in der 64er-Variante deutlich seltener. Bei anderen Arbeiten könnte sich eine Umstellung auch lohnen.

Dort kann nicht einmal theoretisch ein Überlauf drohen.

void OnStart()
{
  uint StartTime1 = UINT_MAX - 100;
  uint StartTime2 = UINT_MAX + 100;
  
  Print(StartTime2 - StartTime1); // 200 
}

2. das zweite ArrayResize wirft hier Fragen auf

Wahrscheinlich sollte es so sein

Nein, da ist alles korrekt. Die Dokumentation lügt.

3. und zum Schluss noch ein paar verschiedene Typen.

Behoben, danke.

 
fxsaber:

Es kann nicht einmal theoretisch eine Bedrohung durch einen Überlauf geben.

Ja, Sie haben Recht, ich war unaufmerksam. In diesem Fall gibt es wirklich keinen Unterschied.

Aber in ThirdPartyTicks -> Web.mqh scheint es einen Unterschied zu geben

    ulong StartTime = ::GetTickCount();
...
    StartTime = ::GetTickCount() - StartTime;

Deshalb verwende ich überall die 64-Bit-Variante, nur für den Fall.


fxsaber:

Nein, dort ist alles korrekt. Die Dokumentation ist falsch.

Ich verwende den folgenden Code

    ushort Shorts[];
    MTTESTER::FileLoad(FileName,Shorts);

Innerhalb von FileLoad steht Size=1000, Arraygröße 500 und nach dem Lesen Read=Size=1000. Und dann ist meine Variante korrekt. Hier habe ich mich auf MSDN verlassen und dieses Verhalten stimmt damit überein.

 
traveller00:

Ich verwende den folgenden Code

Innerhalb von FileLoad wird Size=1000, Arraygröße 500 und nach dem Lesen Read=Size=1000. Und dann ist meine Variante korrekt. Hier habe ich mich auf MSDN verlassen und dieses Verhalten stimmt damit überein.

Ich habe 500.

 
fxsaber:

Ich habe 500.

Das ist seltsam, ich habe es gerade noch einmal überprüft, es stimmt mit MSDN überein. Aber wenn niemand Fragen hat und alles funktioniert, dann ist das in Ordnung, ich sehe keinen Grund, mich mit den Details zu beschäftigen.

 

Wenn es jemand getan hat, bitte teilen Sie das Schema der Organisation der Arbeit mit den Ergebnissen der früheren Optimierungen, während der Tester mit der aktuellen Optimierung beschäftigt ist.


Es ist klar, dass wir opt-Dateien und Symbole kopieren müssen. Wahrscheinlich ist der sinnvollste Weg über mklink.

 
fxsaber:

Wenn es jemand getan hat, bitte teilen Sie das Schema der Organisation der Arbeit mit den Ergebnissen der früheren Optimierungen, während der Tester mit der aktuellen Optimierung beschäftigt ist.


Es ist klar, dass wir opt-Dateien und Symbole kopieren müssen. Der vernünftigste Weg ist wahrscheinlich über mklink.

Ich verwende einen Link auf den Cache-Ordner. Nur nicht mit mklink, sondern im Far Commander Dateimanager. Aber das ist dasselbe.
Man kann den Zugriff auf Dateien außerhalb der Sandbox und mit WinAPI organisieren, aber Links sind vorzuziehen.
Im Prinzip brauche ich nichts anderes, aber wenn nötig, muss ich Links zu anderen Ordnern erstellen.
Meinen Sie mit Schema der Arbeitsorganisation irgendwelche anderen Details?
 
Edgar Akhmadeev:
Meinen Sie mit "Arbeitsorganisation" irgendwelche anderen Details?

Überwachen Sie die opt-Dateien und führen Sie einzelne Pässe aus.

 

Ich persönlich versuche nicht, mehrere Terminals in einem Ordner zu verwenden. Es ist sehr eigenwillig gemacht. Wenn es still und leise abfällt, entdeckt man es eine Woche später zufällig.

Und so funktioniert es über vin api.

 
Hallo. Ist es möglich, einen der EA-Parameter programmatisch zu ändern und einen einzelnen Test durchzuführen?
 
pivomoe:
Hallo. Ist es möglich, einen der EA-Parameter programmatisch zu ändern und einen einzelnen Test durchzuführen?

Mit der MTTester-Bibliothek können Sie absolut alles tun, was ein Benutzer über die GUI tun kann.