Fehler, Irrtümer, Fragen - Seite 1885

 
Warum EX5 ein solcher Code
void OnStart() {}

wiegt 5Kb?

 
fxsaber:
Warum EX5 ein solcher Code

wiegt 5Kb?

Schutz dekompilieren?
 
fxsaber:
Lokalisierung des Fehlers in Metaquotes-Demo

Das Drehbuch geht in die Tiefe.

Reproduzierbar.

Wahrscheinlich, weil der Tick-Chart dieses Tools "auf Aktualisierung wartet".

Wenn das Skript anhält, wird -1 im Protokoll angezeigt, d.h. es bleibt nicht hängen, sondern wartet auf die Antwort des Terminals.

 
fxsaber:
Lokalisierung des Fehlers in Metaquotes-Demo

Das Drehbuch geht in die Tiefe.

Alles funktioniert ordnungsgemäß (gemäß der Dokumentation):
In Expert Advisors und Skripten kann CopyTicks() bis zu 45 Sekunden auf das Ergebnis warten: Im Gegensatz zum Indikator arbeitet jeder Experte und jedes Skript in seinem eigenen Thread und kann daher bis zu 45 Sekunden auf den Abschluss der Synchronisation warten. Wenn während dieser Zeit die Ticks nicht in der erforderlichen Menge synchronisiert werden, gibt CopyTicks() nur die verfügbaren Ticks bis zum Timeout zurück, und die Synchronisierung wird fortgesetzt.
2017.05.11 14:41:31.154 Skripte Skript test_bug (EURUSD,M1) erfolgreich geladen
2017.05.11 14:42:14.742 Scripts script test_bug (EURUSD,M1) entfernt

 

Die lange Wartezeit auf Kopierticks wird behoben - dies tritt bei toten Charakteren auf, die schon lange keine Ticks mehr hatten.

Es wird sofort funktionieren

 
Renat Fatkhullin:

Die lange Wartezeit auf Kopierticks wird behoben - dies tritt bei toten Charakteren auf, die schon lange keine Ticks mehr haben.

Es wird sofort klappen.

Welche Zeitkosten sollten als normal angesehen werden?

Geprüftes SymbolInfoTick (96 Zeichen).

#define _CS(A) ((!IsStopped()) && (A))
#define  TOSTRING(A) #A + " = " + (string)(A)

void OnStart()
{
  ulong MaxInterval = 0;
  MqlTick Tick;
  
  while (_CS(true))
  {
    const ulong StartTime = GetMicrosecondCount();
    
    for (int i = SymbolsTotal(true) - 1; _CS(i >= 0); i--)
      SymbolInfoTick(SymbolName(i, true), Tick);

    const ulong Interval = GetMicrosecondCount() - StartTime;              
    
    if (Interval > MaxInterval)
    {
      MaxInterval = Interval;
      
      Print(TOSTRING(MaxInterval));
    }
  }
}

Hier

MaxInterval = 7631

Normal?

 
fxsaber:

Welche Zeitkosten sollten als Norm angesehen werden?

Geprüfter SymbolInfoTick (96 Zeichen)

Verstanden

Norm?

45 Sekunden pro totem Instrument.
 
Andrey Khatimlianskii:
45 Sekunden pro totem Instrument.
Nur die lebenden sind von Interesse. Stück für Stück 100 Stück.
 

Ist das überhaupt normal?

Für verschiedene Situationen wird derselbe Wert zurückgegeben.

Ich verstehe, dass ich das überprüfen muss, aber es passieren Dinge...

Positionen

Ergebnisausdruck


Dateien:
posi.mq5  2 kb
 
Alexandr Bryzgalov:

Ist das überhaupt normal?

Für verschiedene Situationen wird derselbe Wert zurückgegeben.

Ich verstehe, dass ich das überprüfen muss, aber es passieren Dinge...

Positionen

Ergebnisausdruck



Und wie lautet die Frage?

Wo können Sie sehen, dass es unter der Zahl "i" eine Position mit einem solchen und einem anderen Ticket für ein solches und ein anderes Symbol gibt? In der Regel wird neben der einfachen Anzeige der Seriennummer auch das Ticket und das Symbol ausgegeben.


Grund der Beschwerde: