//+------------------------------------------------------------------+
//|                                              SymbolMetadata.mqh  |
//|         Contract specification structure and metadata utilities  |
//+------------------------------------------------------------------+
#ifndef SYMBOL_METADATA_MQH
#define SYMBOL_METADATA_MQH

//--- Symbol metadata container
struct SymbolMetadata
  {
   string            Symbol;              // Symbol name as returned by the terminal
   double            ContractSize;        // Units per standard lot
   double            TickSize;            // Minimum price movement
   double            TickValue;           // Account-currency value of one tick per lot
   double            PointSize;           // Value of SYMBOL_POINT
   int               Digits;              // Decimal places in price
   double            VolumeMin;           // Minimum lot size
   double            VolumeMax;           // Maximum lot size
   double            VolumeStep;          // Lot increment step
   double            SpreadPoints;        // Current spread in points
   string            ProfitCurrency;      // Currency in which profits are denominated (also the quote currency for a standard FX pair)
   string            BaseCurrency;        // Base currency (first in pair)
   bool              IsLoaded;            // True if metadata was loaded successfully
   datetime          LoadTimestamp;       // Time at which metadata was last refreshed
  };

#endif
//+------------------------------------------------------------------+