MetaTrader 5 herunterladen

StringFormat

Formatiert die erhaltenen Daten und gibt Zeile zurück.

string  StringFormat(
   string  format,     // Zeile mit Formatbeschreibung 
   ...     ...         // Parameter
   );

Parameter

format

[in]  Zeile, die Formatierungsverfahren enthält. Regel der Formatierung sind dieselben wie die für die Funktion PrintFormat

...

[in]  Parameter, die durch Komma getrennt sind

Zeile.

Beispiel:

void OnStart()
  {
//--- String-Variablen
   string output_string;
   string temp_string;
   string format_string;
//--- bereiten wir die Kontraktspezifikation vor
   temp_string=StringFormat("Kontraktspezifikation für %s:\n",_Symbol);
   StringAdd(output_string,temp_string);
//--- Ausgabe des int Wertes
   int digits=(int)SymbolInfoInteger(_Symbol,SYMBOL_DIGITS);
   temp_string=StringFormat("   SYMBOL_DIGITS = %d (Anzahl der Stellen nach dem Komma)\n",
                            digits);
   StringAdd(output_string,temp_string);
//--- Ausgabe des double Wertes mit einer Variablen Anzahl nach dem Dezimalkomma
   double point_value=SymbolInfoDouble(_Symbol,SYMBOL_POINT);
   format_string=StringFormat("   SYMBOL_POINT = %%.%df (Wert eines Punktes )\n",
                              digits);
   temp_string=StringFormat(format_string,point_value);
   StringAdd(output_string,temp_string);
//--- Ausgabe des int Wertes
   int spread=(int)SymbolInfoInteger(_Symbol,SYMBOL_SPREAD);
   temp_string=StringFormat("   SYMBOL_SPREAD = %d (aktueller Spread in Punkten)\n",
                            spread);
   StringAdd(output_string,temp_string);
//--- Ausgabe von int
   int min_stop=(int)SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL);
   temp_string=StringFormat("   SYMBOL_TRADE_STOPS_LEVEL = %d (minimaler Abstand in Punkten für Stop Orders)\n",
                            min_stop);
   StringAdd(output_string,temp_string);
//--- Ausgabe von double ohne Bruchteil
   double contract_size=SymbolInfoDouble(_Symbol,SYMBOL_TRADE_CONTRACT_SIZE);
   temp_string=StringFormat("   SYMBOL_TRADE_CONTRACT_SIZE = %.f (Kontraktgröße)\n",
                            contract_size);
   StringAdd(output_string,temp_string);
//--- Ausgabe des double Wertes mit standardmäßiger Genauigkeit
   double tick_size=SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE);
   temp_string=StringFormat("   SYMBOL_TRADE_TICK_SIZE = %f (minimale Preisänderung)\n",
                            tick_size);
   StringAdd(output_string,temp_string);
//--- Festlegung der Methode zur Berechnung von Swaps
   int swap_mode=(int)SymbolInfoInteger(_Symbol,SYMBOL_SWAP_MODE);
   string str_swap_mode;
   switch(swap_mode)
     {
      case SYMBOL_SWAP_MODE_DISABLED: str_swap_mode="SYMBOL_SWAP_MODE_DISABLED (keine Swaps)"; break;
      case SYMBOL_SWAP_MODE_POINTS: str_swap_mode="SYMBOL_SWAP_MODE_POINTS (in Punkten)"; break;
      case SYMBOL_SWAP_MODE_CURRENCY_SYMBOL: str_swap_mode="SYMBOL_SWAP_MODE_CURRENCY_SYMBOL (in Geld in der Basiswährung des Symbols)"; break;
      case SYMBOL_SWAP_MODE_CURRENCY_MARGIN: str_swap_mode="SYMBOL_SWAP_MODE_CURRENCY_MARGIN (in Geld in der Margin-Währung des Symbols)"; break;
      case SYMBOL_SWAP_MODE_CURRENCY_DEPOSIT: str_swap_mode="SYMBOL_SWAP_MODE_CURRENCY_DEPOSIT (in Geld in der Währung des Kunden)"; break;
      case SYMBOL_SWAP_MODE_INTEREST_CURRENT: str_swap_mode="SYMBOL_SWAP_MODE_INTEREST_CURRENT (in Jahreszinsen vom Preis des Symbols zum Moment der Berechnung von Swap)"; break;
      case SYMBOL_SWAP_MODE_INTEREST_OPEN: str_swap_mode="SYMBOL_SWAP_MODE_INTEREST_OPEN (in Jahreszinsen vom Eröffnungspreis der Position auf dem Symbol)"; break;
      case SYMBOL_SWAP_MODE_REOPEN_CURRENT: str_swap_mode="SYMBOL_SWAP_MODE_REOPEN_CURRENT (durch die Neueröffnung der Position zum Schlusspreis +/- angegebene Anzahl der Punkte)"; break;
      case SYMBOL_SWAP_MODE_REOPEN_BID: str_swap_mode="SYMBOL_SWAP_MODE_REOPEN_BID (durch die Neueröffnung der Position zum Bid Preis +/- angegebene Anzahl der Punkte)"; break;
     }
//--- Ausgabe des string Wertes
   temp_string=StringFormat("   SYMBOL_SWAP_MODE = %s\n",
                            str_swap_mode);
   StringAdd(output_string,temp_string);
//--- Ausgabe des double Wertes mit standardmäßiger Genauigkeit
   double swap_long=SymbolInfoDouble(_Symbol,SYMBOL_SWAP_LONG);
   temp_string=StringFormat("   SYMBOL_SWAP_LONG = %f (Buy Swap)\n",
                            swap_long);
   StringAdd(output_string,temp_string);
//--- Ausgabe des double Wertes mit standardmäßiger Genauigkeit
   double swap_short=SymbolInfoDouble(_Symbol,SYMBOL_SWAP_SHORT);
   temp_string=StringFormat("   SYMBOL_SWAP_SHORT = %f (Sell Swap)\n",
                            swap_short);
   StringAdd(output_string,temp_string);
//--- Handelsmodus bestimmen
   int trade_mode=(int)SymbolInfoInteger(_Symbol,SYMBOL_TRADE_MODE);
   string str_trade_mode;
   switch(trade_mode)
     {
      case SYMBOL_TRADE_MODE_DISABLED: str_trade_mode="SYMBOL_TRADE_MODE_DISABLED (Handel auf dem Symbol verboten)"; break;
      case SYMBOL_TRADE_MODE_LONGONLY: str_trade_mode="SYMBOL_TRADE_MODE_LONGONLY (nur Käufe erlaubt)"; break;
      case SYMBOL_TRADE_MODE_SHORTONLY: str_trade_mode="SYMBOL_TRADE_MODE_SHORTONLY (nur Verkäufe erlaubt)"; break;
      case SYMBOL_TRADE_MODE_CLOSEONLY: str_trade_mode="SYMBOL_TRADE_MODE_CLOSEONLY (Operationen nur für das Schließen von Positionen)"; break;
      case SYMBOL_TRADE_MODE_FULL: str_trade_mode="SYMBOL_TRADE_MODE_FULL (keine Begrenzungen für Transaktionen)"; break;
     }
//--- Ausgabe des string Wertes
   temp_string=StringFormat("   SYMBOL_TRADE_MODE = %s\n",
                            str_trade_mode);
   StringAdd(output_string,temp_string);
//--- Ausgabe des double Wertes in kompakter Form
   double volume_min=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
   temp_string=StringFormat("   SYMBOL_VOLUME_MIN = %g (Mindestvolumen des Trades)\n",volume_min);
   StringAdd(output_string,temp_string);
//--- Ausgabe des double Wertes 
   double volume_step=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_STEP);
   temp_string=StringFormat("   SYMBOL_VOLUME_STEP = %g (minimaler Schritt der Preisänderung)\n",volume_step);
   StringAdd(output_string,temp_string);
//--- Ausgabe des double Wertes im 
   double volume_max=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MAX);
   temp_string=StringFormat("   SYMBOL_VOLUME_MAX = %g (maximales Vopkllumen;
   StringAdd(output_string,temp_string);
//--- Ermittlung der Methode für die Berechnung von Swap
   int calc_mode=(int)SymbolInfoInteger(_Symbol,SYMBOL_TRADE_CALC_MODE);
   string str_calc_mode;
   switch(calc_mode)
     {
      case SYMBOL_CALC_MODE_FOREX:str_calc_mode="SYMBOL_CALC_MODE_FOREX (Forex)";break;
      case SYMBOL_CALC_MODE_FUTURES:str_calc_mode="SYMBOL_CALC_MODE_FUTURES (Futures)";break;
      case SYMBOL_CALC_MODE_CFD:str_calc_mode="SYMBOL_CALC_MODE_CFD (CFD)";break;
      case SYMBOL_CALC_MODE_CFDINDEX:str_calc_mode="SYMBOL_CALC_MODE_CFDINDEX (CFDs auf Indizes)";break;
      case SYMBOL_CALC_MODE_CFDLEVERAGE:str_calc_mode="SYMBOL_CALC_MODE_CFDLEVERAGE (CFDs beim Handel mit Hebel)";break;
      case SYMBOL_CALC_MODE_EXCH_STOCKS:str_calc_mode="SYMBOL_CALC_MODE_EXCH_STOCKS (Handel mit Wertpapieren an der Börse)";break;
      case SYMBOL_CALC_MODE_EXCH_FUTURES:str_calc_mode="SYMBOL_CALC_MODE_EXCH_FUTURES (Handel mit Futures an der Börse)";break;
      case SYMBOL_CALC_MODE_EXCH_FUTURES_FORTS:str_calc_mode="SYMBOL_CALC_MODE_EXCH_FUTURES_FORTS (Handel mit Futures an FORTS)";break;
     }
//--- Ausgabe des string Wertes
   temp_string=StringFormat("   SYMBOL_TRADE_CALC_MODE = %s\n",
                            str_calc_mode);
   StringAdd(output_string,temp_string);
//--- Ausgabe des double Wertes mit 2 Stellen nach dem Dezimalpounkt
   double margin_initial=SymbolInfoDouble(_Symbol,SYMBOL_MARGIN_INITIAL);
   temp_string=StringFormat("   SYMBOL_MARGIN_INITIAL = %.2f (anfängliche Margin)\n",
                            margin_initial);
   StringAdd(output_string,temp_string);
//--- Ausgabe des double Wertes mit 2 Stellen nach dem Dezimalpunkt
   double margin_maintenance=SymbolInfoDouble(_Symbol,SYMBOL_MARGIN_MAINTENANCE);
   temp_string=StringFormat("   SYMBOL_MARGIN_MAINTENANCE = %.2f (maintenance margin)\n",
                            margin_maintenance);
   StringAdd(output_string,temp_string);
//--- Ausgabe des int Wertes
   int freeze_level=(int)SymbolInfoInteger(_Symbol,SYMBOL_TRADE_FREEZE_LEVEL);
   temp_string=StringFormat("   SYMBOL_TRADE_FREEZE_LEVEL = %d (Freeze Level in Punkten)",
                            freeze_level);
   StringAdd(output_string,temp_string);
   Print(output_string);
   Comment(output_string);
/* das Ergebnis der Ausführung
   Kontraktspezifikation für EURUSD:
     SYMBOL_DIGITS = 5 (Anzahl der Stellen nach dem Komma)
     SYMBOL_POINT = 0.00001 (Punkt)
     SYMBOL_SPREAD = 10 (aktueller Spread in Punkten)
     SYMBOL_TRADE_STOPS_LEVEL = 18 (minimaler Abstand in Punkten für Stop Orders)
     SYMBOL_TRADE_CONTRACT_SIZE = 100000 (Kontraktgröße)
     SYMBOL_TRADE_TICK_SIZE = 0.000010 (minimale Preisänderung)
     SYMBOL_SWAP_MODE = SYMBOL_SWAP_MODE_POINTS (in Punkten)
     SYMBOL_SWAP_LONG = -0.700000 (Swap Long)
     SYMBOL_SWAP_SHORT = -1.000000 (Swap Short)
     SYMBOL_TRADE_MODE = SYMBOL_TRADE_MODE_FULL (keine Begrenzungen für Transaktionen)
     SYMBOL_VOLUME_MIN = 0.01 (Mindestvolumen des Trades)
     SYMBOL_VOLUME_STEP = 0.01 (minimaler Schritt der Änderung des Volumens)
     SYMBOL_VOLUME_MAX = 500 (Höchstvolumen des Trades)
     SYMBOL_TRADE_CALC_MODE = SYMBOL_CALC_MODE_FOREX (Forex)
     SYMBOL_MARGIN_INITIAL = 0.00 (anfängliche Margin)
     SYMBOL_MARGIN_MAINTENANCE = 0.00 (maintenance margin)
     SYMBOL_TRADE_FREEZE_LEVEL = 0 (Freeze Level in Punkten)
*/
  }

Sehen Sie auch

PrintFormat, DoubleToString,ColorToString, TimeToString