Predefiniowana zmienna double _Point przechowuje wartość jednego punktu dla instrumentu finansowego na tym wykresie notowań, gdzie program MQL4 został uruchomiony. Więcej informacji można znaleźć w specyfikacji MQL4.
Jeśli poniższy skrypt uruchomić na EURUSD, gdzie dokładność notowania stanowiła by 5 cyfr, tj. np. 0.12345 a nie 0.1234, to wartość jednego punktu będzie 0.00001 (rys. 1). Jeśli ten sam skrypt uruchomić na USDJPY, gdzie dokładność notowania stanowiła by 3, to wynik będzie odpowiednio 0.001 (rys. 2).
#property strict
void OnStart()
{
Print("Dla ",_Symbol," wartość 1 punktu = ",DoubleToString(_Point, _Digits));
}
Rys. 1. Przykład stosowania predefiniowanej zmiennej _Point.
Rys. 2. Przykład stosowania predefiniowanej zmiennej _Point.
Jeśli trzeba znaleźć wartość jednego punktu dla innego instrumentu finansowego, należy zastosować funkcję MarketInfo() z identyfikatorem MODE_POINT (przykład 2).
Skrypt do wyświetlenia wartości jednego punktu dla USDJPY, USDCHF i GOLD.
#property strict
void OnStart()
{
//--- znaleźć dokładność notowania dla poszczególnych symboli
int Precision_USDJPY = (int)MarketInfo("USDJPY", MODE_DIGITS);
int Precision_USDCHF = (int)MarketInfo("USDCHF", MODE_DIGITS);
int Precision_GOLD = (int)MarketInfo("GOLD", MODE_DIGITS);
//--- znaleźć wartości 1 punktu i przekonwertować je do wartości tekstowych
string PointValue_USDJPY = DoubleToString(MarketInfo("USDJPY", MODE_POINT), Precision_USDJPY);
string PointValue_USDCHF = DoubleToString(MarketInfo("USDCHF", MODE_POINT), Precision_USDCHF);
string PointValue_GOLD = DoubleToString(MarketInfo("GOLD", MODE_POINT), Precision_GOLD);
//--- wyświetlić wyniki
Print("Dla USDJPY wartość 1 punktu = ",PointValue_USDJPY);
Print("Dla USDCHF wartość 1 punktu = ",PointValue_USDCHF);
Print("Dla GOLD wartość 1 punktu = ", PointValue_GOLD);
}
Rys. 3. Przykłady stosowania predefiniowanej zmiennej _Point.