Fehler, Irrtümer, Fragen - Seite 1808
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Es gibt wirklich nur so viel zu verteilen, wie man will. Durch Auswahl der längsten Zeit. Aber es ist ein zusätzlicher Aufwand, zwei Zeitwerte bei jedem OnBookEvent() zu erhalten...
Bewerbung bei der SR#1674783
Bitte entscheiden Sie sich so bald wie möglich!
Emulation vonTimeTradeServer über GetMicrosecondCount. Entweder fügen Sie die Differenz zwischen TimeTradeServer und TimeCurrent in 99% des BookEvents ein.
Es geht immer noch darum, ein paar Parameter zu erhalten.
Es geht nicht um die Anzahl der Parameter, sondern um ihre Billigkeit insgesamt.
Glauben Sie also, dass TimeTradeServer() schneller funktioniert als SymbolInfoInteger( _Symbol, SYMBOL_TIME )?
TimeTradeServer arbeitet mit GetMicrosecondCount, indem die entsprechende Differenz zu TimeCurrent addiert wird.
Ich weiß nicht, was du besorgen sollst. Aber Geld für Mikrosekunden zu sparen, erscheint mir nicht sinnvoll.
TimeTradeServer arbeitet mit GetMicrosecondCount, indem die entsprechende Differenz zu TimeCurrent addiert wird.
Ich weiß nicht, was du besorgen sollst. Aber die Einsparung von Mikrosekunden erscheint mir nicht sinnvoll.
Ich muss den korrekten Wert der aktuellen Uhrzeit ermitteln. Ich frage die aktuelle Zeit von OnBookEvent() ab, um den Wert des mit der Zeit verbundenen Parameters zu schreiben. Und ich brauche die aktuelle Zeit, nicht die vergangene Zeit, und zwar möglichst ohne die Krücken, mehrere Zeitwerte zu erhalten und den höchsten Wert auszuwählen. TimeCurrent() soll diese Aufgabe übernehmen (gemäß der Beschreibung in der Dokumentation). Aber es stellte sich heraus, dass das jetzt nicht mehr der Fall ist!
{
static ulong PrevStartTime = GetMicrosecondCount();
static datetime PrevTimeCurrent = TimeCurrent(); // TimeTradeServer()
const datetime NewTimeCurrent = TimeCurrent(); // TimeTradeServer()
const ulong NowTime = GetMicrosecondCount();
if (PrevTimeCurrent < NewTimeCurrent)
{
PrevTimeCurrent = NewTimeCurrent;
PrevStartTime = NowTime;
}
return(PrevTimeCurrent + (datetime)((NowTime - PrevStartTime) / 1000000));
}
Durchlaufen Sie alle Symbole durch Abfrage von SymbolInfoTick (+ CopyTicks). Kratzen Sie von dort die Zeit in Millisekunden ab.