Funkcja string StringFormat() formatuje argumenty i zwraca tekst. Zasady formatowania są takie same jak i dla funkcji PrintFormat() . Więcej informacji można znaleźć w specyfikacji MQL4.
#property strict
void OnStart()
{
//--- sformatować wartości tekstowe string za pomocą specyfikatora %s
string Server = AccountInfoString(ACCOUNT_SERVER); // nazwa adresu serwera
string Company = AccountInfoString(ACCOUNT_COMPANY); // nazwa firmy brokerskiej
string Result = StringFormat("Serwer = %s. Broker = %s",Server,Company);
Print(Result);
}
Rys. 1. Przykład stosowania funkcji StringFormat().
#property strict
void OnStart()
{
//--- sformatować liczby całkowite int za pomocą specyfikatora %d
int Precision = (int)SymbolInfoInteger(_Symbol,SYMBOL_DIGITS); // dokładność notowania
int Spread = (int)SymbolInfoInteger(_Symbol,SYMBOL_SPREAD); // spread
string Result = StringFormat("Dokładność notowania = %d cyfr po kropce. Spread = %d punktów",
Precision,Spread);
Print(Result);
}
Rys. 2. Przykład stosowania funkcji StringFormat().
#property strict
void OnStart()
{
double HighCandle = High[1]; // cena high świecy z indeksem 1
double LowCandle = Low[1]; // cena low świecy z indeksem 1
double MaxVolume = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MAX); // maksymalny wolumen transakcji
//--- sformatować liczby zmiennoprzecinkowe double z domyślną dokładnością za pomocą specyfikatora %f
string Result_1 = StringFormat("High świecy 1 = %f. Low świecy 1 = %f",HighCandle,LowCandle);
Print("1) Domyślna dokładność (%f): ",Result_1);
//--- sformatować liczby zmiennoprzecinkowe double z dokładnością 5 za pomocą specyfikatora %.5f
string Result_2 = StringFormat("High świecy 1 = %.5f. Low świecy 1 = %.5f",HighCandle,LowCandle);
Print("2) Dokładność 5 (%.5f): ",Result_2);
//--- sformatować liczbę zmiennoprzecinkową double z dokładnością 2 za pomocą specyfikatora %.2f
string Result_3 = StringFormat("Max wolumen = %.2f",MaxVolume);
Print("3) Dokładność 2 (%.2f:) ",Result_3);
//--- sformatować liczbę zmiennoprzecinkową double bez części dziesiętnej za pomocą specyfikatora %.f
string Result_4 = StringFormat("Max wolumen = %.f",MaxVolume);
Print("4) Bez części dziesiętnej: ",Result_4);
//--- sformatować liczby zmiennoprzecinkowe double do postaci kompaktowej za pomocą specyfikatora %g
string Result_5 = StringFormat("High świecy 1 = %g. Low świecy 1 = %g",HighCandle,LowCandle);
Print("5) Postać kompaktowa (%g): ",Result_5);
string Result_6 = StringFormat("Max wolumen = %.g",MaxVolume);
Print("6) Postać kompaktowa (%g): ",Result_6);
}
Rys. 3. Przykłady stosowania funkcji StringFormat().