Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Facebook!
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

TypeToBytes - Bibliothek für den MetaTrader 5

Ansichten:
787
Rating:
(40)
Veröffentlicht:
2017.01.09 15:07
Aktualisiert:
2017.07.17 17:20
\MQL5\Include\ \MQL5\Scripts\
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Diese Cross-Plattform-Bibliothek ermöglicht bequeme Durchführung byteweiser Operationen mit Strukturen und Standarddatentypen .

Features:

  • Byteweiser Vergleich (== und! =) der Strukturen und Standarddatentypen miteinander (in MQL fehlen Operatoren für den Vergleich von Strukturen standardmäßig).
  • Bestimmung der Byte-Verschiebung einer Struktur, die durch einen Namen abgelegt ist.
  • Lesen des Wertes eines beliebigen Standardtyps durch Byte-Verschiebung in den Quelldaten.
  • Schreiben von Strukturen und Standardtypen durch Byteverschiebung an den Quelldaten.
  • Umwandlung von Strukturen und Standarddatentypen in ein Bytearray.
Alles erwähnte findet Anwendung bei simplen Strukturen.

Ein Skript mit ausführlichen Kommentaren ist beigefügt, um die Möglichkeiten der Bibliothek zu demonstrieren

// MQL4&5-code

#property strict

#include <TypeToBytes.mqh>

#define PRINT(A) ::Print(#A + " = " + (string)A);

void OnStart( void )
{
  MqlTick Tick;
  ::SymbolInfoTick(::Symbol(), Tick);

  MqlTick CloneTick = Tick;

// Operation mit Strukturen
  if (_R(Tick) == CloneTick)             // Nun können die Strukturen verglichen werden
    ::Print("Equal");

// Ergebnis des benötigten Typs durch Verschiebung erhalten
  PRINT(_R(Tick)[(datetime)0])           // Prüfe den 'datetime' Wert mit Null-Verschiebung im Objekt der MqlTick Struktur - Tick.time

// Hole the Verschiebung of the structure field
  const int Offset = _OFFSET(Tick, bid); // Verschiebung in Bytes des Bid-Feldes im MqlTick Objekt gefunden

  PRINT(Tick.bid)                        // Wert von Tick.bid geprüft
  _W(Tick, Offset, (double)1.23456);     // (double) Wert 1.098765 geschrieben der bei der Verschiebung gefunden wurde
  PRINT(Tick.bid)                        // Sicherstellen, dass Tick.bid nun gleich 1.098765 ist

  PRINT(_R(Tick)[(double)Offset])        // 'double' Wert der sich beim Verschiebungs-Offset befindet ausgegeben - es ist wieder ein Tick.bid

  PRINT(_R(Tick).Bytes[8])               // Wert des Bytes mit der Verschiebung von 8 im Objekt der MqlTick Struktur geprüft
  PRINT(_R(Tick)[(uchar)8])              // Das gleiche aber mit einer anderen Methode

  PRINT(CloneTick.bid)                   // Wert von CloneTick.bid geprüft
  _W(CloneTick, 0, Tick);                // Wert des Tick-Struktur-Objektes in CloneTick mit Null-Verschiebung geschrieben
  PRINT(CloneTick.bid)                   // Sicherstellen, dass CloneTick.bid == Tick.bid

// Operation mit den Standardtypen
  color Color = C'241,248,255';

  PRINT(_R(Color)[(uchar)1])             // Grün-Komponente der Farbe - 248

  _W(Farbe, 2, (uchar)230);              // (uchar) Wert 230 mit der Verschiebung von 2 geschrieben.
  PRINT(Color)                           // Sicherstellen, dass Farbe nun C'241,248,230' ist

// Simulatene Operationen mit gemischten Typen
  if (_R(Tick) != Farbe)                 // Es ist sogar möglich Strukturen mit Standardtypen zu vergleichen
    ::Print("Not equal");

  return;
}

 

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

PriceLines PriceLines

Skript zum Zeichnen von Preismarkierungen.

StochasticDiff_HTF StochasticDiff_HTF

Der StochasticDiff Indikator mit der Option TimeFrames in den Eingabeparametern auszuwählen.

Monthly Weekly Levels Monthly Weekly Levels

Das Skript zeigt die monatlichen und wöchentlichen Levels am Chart.

PricePosition PricePosition

Der PricePosition Indikator liefert die Position des Preises im Punkt des Winkels wenn der Preis über (KAUF) oder unter (VERKAUF) die Winkelschnittlinie steigt/fällt.