Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Twitter!
und werden Sie Mitglied unserer Fangruppe
Interessantes Skript?
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Hat Ihnen das Skript gefallen?
Bewerten Sie es im Terminal MetaTrader 5
Bibliotheken

AccurateTimer - Bibliothek für den MetaTrader 5

Ansichten:
732
Rating:
(25)
Veröffentlicht:
2018.03.09 13:55
\MQL5\Experts\fxsaber\AccurateTimer\ \MQL5\Include\
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Der MetaTrader 4/5 Standard-Timer basiert auf dem System-Timer-Aufruf und kann daher ungenau arbeiten. Wir können dies überprüfen, indem wir den folgenden einfachen Expert Advisor ausführen:

input int Timer = 1000; // Die Anzahl der Millisekunden, die der Timer zum Triggern benötigt

#define TOSTRING(A) #A + " = " + (string)(A) + " ms.\n"

const bool Init = EventSetMillisecondTimer(Timer);

// Zeigt den aktuellen Timerfehler und seinen Mittelwert als Kommentar auf einem Chart an.
void OnTimer()
{
  static ulong StartTime = 0;
  static int Count = 0;
  static int Sum = 0;

  if (StartTime)
  {
    const int RunTime = (int)(GetMicrosecondCount() - StartTime) / 1000;
    const int Error = RunTime - Timer * Count;

    Sum += Error;

    Comment(TOSTRING(Timer) + TimeToString(RunTime / 1000, TIME_SECONDS) + "\n" +
            TOSTRING(Error) + TOSTRING((double)Sum / Count));
  }
  else
    StartTime = GetMicrosecondCount();

  Count++;
}

Im Chartkommentar (obere linke Ecke) wird angezeigt, wie die Verzögerung des Timers wächst:

Der Screenshot zeigt, dass der zweite Timer in nur einer Minute eine Verzögerung von mehr als einer Sekunde erzeugt. Außerdem wächst diese Verzögerung mit der Zeit!

Diese Bibliothek ermöglicht es, die Genauigkeit des Standard-Timers für jeden Expert Advisor/Indikator zu erhöhen. Zu diesem Zweck sollte die folgende Zeile am Anfang des Codes eingefügt werden:

#include <AccurateTimer.mqh> // Erhöhung der Genauigkeit des Standard-Timer

Danach wird der folgende Kommentar angezeigt:

Nach zehn Minuten beträgt die durchschnittliche Abweichung vom idealen (theoretischen) Timer ~1 ms, und der Fehler wird nicht größer.

Es ist immer gut, einen genauen Timer zu haben. Aber für manche Aufgaben ist es ein Muss. Zum Beispiel, ein zweiter Timer synchronisiert mit dem trade server time.

Diese plattformübergreifende Bibliothek ist kompatibel mit allen Expert Advisors/Indikatoren, die den Standardtimer (OnTimer) verwenden. Sie hat keinen Einfluss auf die Ausführungsgeschwindigkeit im Strategie-Tester.

Erhöhen Sie die Genauigkeit Ihrer bestehenden und neuen Programme in nur einer Zeile!

Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/19859

Chandes Quick Stick (Qstick) Chandes Quick Stick (Qstick)

Chandes Quick Stick (Qstick)

Relative Momentum Index Relative Momentum Index

Der Relative Momentum Index (RMI) ist eine Variation des RSI-Indikators. Der RMI zählt die Aufwärts- und Abwärtsbars entsprechend deren Schlusskurs relativ zum Schlusskurs X Bars zuvor (wobei X nicht auf 1 begrenzt ist, wie es der RSI verlangt), anstatt nur die Aufwärts- und Abwärtsbars von bar zu Bar zu zählen, wie es der RSI tut.

Rsi(var) Rsi(var)

RSI Variante.

Custom Moving Average Input Color Custom Moving Average Input Color

Eine Modifikation des Indikators "Custom Moving Average": Die Linienfarbe kann nun in Eingabeparametern bestimmt werden.