Funkcja double AccountInfoDouble() zwraca informację o stanie konta w postaci liczby zmiennoprzecinkowej. Identyfikator właściwości może być jednym z wartości ENUM_ACCOUNT_INFO_DOUBLE . Więcej informacji można znaleźć w specyfikacji MQL4.
#property strict
void OnStart()
{
//--- środki na koncie
PrintFormat("1) AccountInfoDouble(ACCOUNT_BALANCE) = %g",AccountInfoDouble(ACCOUNT_BALANCE));
//--- udzielony kredyt
PrintFormat("2) AccountInfoDouble(ACCOUNT_CREDIT) = %g",AccountInfoDouble(ACCOUNT_CREDIT));
//--- zysk otwartych pozycji
PrintFormat("3) AccountInfoDouble(ACCOUNT_PROFIT) = %g",AccountInfoDouble(ACCOUNT_PROFIT));
//--- wartość środków własnych
PrintFormat("4) AccountInfoDouble(ACCOUNT_EQUITY) = %g",AccountInfoDouble(ACCOUNT_EQUITY));
//--- środki stanowiące zabezpieczenie otwartych pozycji, wyrażone w walucie konta
PrintFormat("5) AccountInfoDouble(ACCOUNT_MARGIN) = %g",AccountInfoDouble(ACCOUNT_MARGIN));
//--- środki dostępne w celu otwarcia nowej pozycji
PrintFormat("6) AccountInfoDouble(ACCOUNT_MARGIN_FREE) = %g",AccountInfoDouble(ACCOUNT_MARGIN_FREE));
//--- środki stanowiące zabezpieczenie otwartych pozycji, wyrażone w procentach
PrintFormat("7) AccountInfoDouble(ACCOUNT_MARGIN_LEVEL) = %g",AccountInfoDouble(ACCOUNT_MARGIN_LEVEL));
//--- poziom środków na koncie, kiedy wymagane jest ich uzupełnienie (Margin Call)
//--- może być przedstawiony w procentach lub walucie, w zależności od ustawień ACCOUNT_MARGIN_SO_MODE
ENUM_ACCOUNT_STOPOUT_MODE Mode=(ENUM_ACCOUNT_STOPOUT_MODE)AccountInfoInteger(ACCOUNT_MARGIN_SO_MODE);
string InfoMode;
switch(Mode)
{
case(ACCOUNT_STOPOUT_MODE_PERCENT): InfoMode="procentach"; break;
case(ACCOUNT_STOPOUT_MODE_MONEY): InfoMode="walucie"; break;
}
PrintFormat("8) Poziom Margin Call obliczany jest w ",InfoMode," = %g",AccountInfoDouble(ACCOUNT_MARGIN_SO_CALL));
//--- poziom środków na koncie, kiedy następuje wymuszone zamkniecie najbardziej stratnej pozycji (Stop Out).
//--- może być przedstawiony w procentach lub walucie, w zależności od ustawień ACCOUNT_MARGIN_SO_MODE
PrintFormat("9) Poziom Stop Out obliczany jest w ",InfoMode," = %g",AccountInfoDouble(ACCOUNT_MARGIN_SO_SO));
}
Rys. 1. Przykłady stosowania funkcji AccountInfoDouble().