Predefiniowane zmienne i tablice:   _Point

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.


Przykład 1

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).


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.