MarketInfo Universal Lib for MQL 4
- Bibliotheken
- COSTEL VLAD
- Version: 1.0
- Zugriff auf Symboldaten, OHLC-Preise, Spreads und Volatilität mit einem einzigen Aufruf.
- Kontostand, freie Marge, Stop-Levels und Lot-Beschränkungen abfragen.
- Mit Währungspräzision, Pip-Werten und normalisierten Volumina arbeiten.
- Abrufen von Zeitdaten und Erkennen des Strategietester-Modus.
💡 Einmal schreiben, überall ausführen - MT4 & MT5.
⚡ Sparen Sie Zeit, reduzieren Sie Fehler und konzentrieren Sie sich auf die Strategie, nicht auf Standardtexte.
Sie können den kostenlosen Quellcode dieser Bibliothek vongithubherunterladen und direkt in Ihren EA-Code einbinden; bitte beachten Sie, dass die Quelldatei sowohl mit der MT4- als auch mit der MT5-Plattform kompatibel ist.
Symbol & Preise
-
string GetSymbol() → Gibt den Namen des aktuellen Chartsymbols zurück.
-
double GetAskPrice() → Letzter bekannter Preis des Verkäufers (Ask).
-
double GetBidPrice() → Letzter bekannter Preis des Käufers (Bid).
-
double GetSpread() → Spread-Wert in Punkten.
OHLC-Daten
-
double GetClose(int shift=0, ENUM_TIMEFRAMES tf=PERIOD_CURRENT) → Schlusskurs eines Bars.
-
double GetOpen(int shift=0, ENUM_TIMEFRAMES tf=PERIOD_CURRENT) → Eröffnungskurs eines Balkens.
-
double GetHigh(int shift=0, ENUM_TIMEFRAMES tf=PERIOD_CURRENT) → Höchstkurs eines Balkens.
-
double GetLow(int shift=0, ENUM_TIMEFRAMES tf=PERIOD_CURRENT) → Tiefstkurs eines Balkens.
Volumen & Lot
-
double GetMinVolToPlay() → Minimal zulässige Losgröße.
-
double GetMaxVolToPlay() → Maximal zulässige Losgröße.
-
double GetCurrencyLotSize() → Losgröße in Basiswährung.
-
double GetCurrencyLotStep() → Schritt zum Ändern von Lots.
-
double NormalizeVolume(double volume) → Normalisiert das Volumen innerhalb der Min/Max-Beschränkungen.
Konto & Risiko
-
double GetAccountBalance() → Aktueller Kontostand.
-
double GetFreeMarginAfterCheck(double volume, int opType, double price=0.0) → Freie Marge nach Eröffnung einer Order.
-
double GetMinStopLevel() → Minimales Stop-Level in Punkten.
-
double GetFreezeLevel() → Freeze-Level in Punkten.
Währung Präzision
-
int GetCurrencyDigits() → Anzahl der Stellen nach dem Komma.
-
void SetCurrencyDigits(int customDigits) → Überschreiben der Zifferngenauigkeit.
-
double GetCurrencyPoint() → Punktgröße in Kurswährung.
-
int GetCurrencyPipeVal() → Pip-Wert für die Währung.
-
string DoubleToCurrencyString(double subject) → Formatiert einen Double als Währungsstring.
-
double AdaptToCurrency(double subject) → Normiert einen Wert auf Währungsgenauigkeit.
Zeit-Hilfsmittel
-
datetime GetTime(int shift=0, ENUM_TIMEFRAMES tf=PERIOD_CURRENT) → Uhrzeit eines Balkens.
-
int GetHour() → Stunde der letzten bekannten Serverzeit.
-
int GetHour(datetime time) → Stunde einer bestimmten Zeit.
-
int GetMinute() → Minute der letzten bekannten Serverzeit.
-
int GetMinute(datetime time) → Minute einer bestimmten Zeit.
Volatilität
-
double GetVolatility(int period, double multiplier, ENUM_TIMEFRAMES tf=PERIOD_CURRENT) → Volatilität (ATR-basiert).
Umgebung
-
bool IsTestingMode() → Gibt true zurück, wenn im Strategy Tester gearbeitet wird.
-
void Destroy() → Löscht die Dienstinstanz.
Beispiel für die Verwendung
// Einfügen des Marktinfo-API-Headers #import "vladefix/market-info-lib-v1.00.ex5" string GetSymbol(); double GetAskPrice(); double GetBidPrice(); double GetClose(int, ENUM_TIMEFRAMES); double GetOpen(int, ENUM_TIMEFRAMES); double GetHigh(int, ENUM_TIMEFRAMES); double GetLow(int, ENUM_TIMEFRAMES); double GetSpread(); double GetMinVolToPlay(); double GetMaxVolToPlay(); double GetCurrencyLotSize(); double GetCurrencyLotStep(); double NormalizeVolume(double); double GetAccountBalance(); double GetMinStopLevel(); double GetFreezeLevel(); double AdaptToCurrency(double); double GetVolatility(int, double, ENUM_TIMEFRAMES); int GetCurrencyDigits(); void SetCurrencyDigits(int); double GetCurrencyPoint(); int GetCurrencyPipeVal(); datetime GetTime(int, ENUM_TIMEFRAMES); int GetHour(); int GetHour(datetime); int GetMinute(); int GetMinute(datetime); double GetFreeMarginAfterCheck(double, int, double); string DoubleToCurrencyString(double); bool IsTestingMode(); void DestroyMarketInfoLib(); #import //------------------------------------------------------- // Initialisierungsfunktion (OnInit) //------------------------------------------------------- int OnInit() { Print("Symbol: ", GetSymbol()); Print("Ask: ", GetAskPrice(), " | Bid: ", GetBidPrice()); Print("Spread: ", GetSpread(), " points"); double lot = NormalizeVolume(0.158); Print("Normalized lot: ", lot); double balance = GetAccountBalance(); Print("Account Balance: ", DoubleToCurrencyString(balance)); if(IsTestingMode()) Print("Running in Strategy Tester..."); } void OnDeinit(const int reason) { DestroyMarketInfoLib() }
