PrintXYZ() library
A small collection of functions to print massive information from the terminal to the Experts tab.
This is most useful for printing (and debugging) the trade account specs, the client terminal properties, OpenCL devices, a specific chart or symbol, mql program info, or printing a specific position/deal/order in the trading history. Printing all tester statisitcs is available inside OnTester() or OnDeinit() in tester.
Definitions of all the enumerated types of MQL5 language can also be pretty-printed using a generic way (no hard-coded enums, to ensure printing all newly-added values to MQL5) by using PrintEnum<T>(), where T is the enum type, such as ENUM_TIMEFRAMES.
The PrintStruct(var) function is used to pretty print a structure variable (with the display of all its field names and values).
The PrintExpr(x) function-like macro prints a stringified expression along with its value and type. This is used mainly to debug expressions, variables or function calls.The output of this script can be sent to a remote-support person or to a freelance developper to aid detecting and fixing problems on your terminal.
Functions:
//+------------------------------------------------------------------+ //| Functions in the 'PrintXYZ' library. | //+------------------------------------------------------------------+ void PrintAccount(); void PrintTerminal(); void PrintMQLInfo(); void PrintChart( long chart_id ); void PrintObject( long chart_id, string name ); void PrintSymbol( string symbol ); void PrintSeries( string symbol, ENUM_TIMEFRAMES timeframe ); void PrintPosition( ulong pos_ticket ); void PrintOrder( ulong order_ticket ); void PrintDeal( ulong deal_ticket ); void PrintHistoryOrder( ulong order_ticket ); void PrintOpenCL( int device ); void PrintTesterStatistics(); void PrintEnum<T> (); void PrintStruct<T> (T& struct_var); PrintExpr(x); // macro
MetaEditor Tip:
By including 'PrintXYZ' library in your projects, the above functions will become available in MetaEditor's auto-complete box wherever, you type 'Print'. You can quickly compile the project file to print the results of MQL5 functions to the 'Experts' tab, and then you can decide which combination of MQL function / enum value will suit your requirements the best.

Test script:
//+------------------------------------------------------------------+ //| Test script | //+------------------------------------------------------------------+ #include "PrintXYZ.mqh" void OnStart() { //--- Print massive information for debugging PrintAccount(); PrintTerminal(); PrintOpenCL(0); // by index of OpenCL device in the system //PrintOpenCL(CL_USE_GPU_ONLY); // by type of the OpenCL device //--- Print info about running program, specific chart, symbol or series. PrintMQLInfo(); PrintChart(0); PrintObject(0,"Horizontal Line 54478"); PrintSymbol(_Symbol); PrintSeries(_Symbol, PERIOD_CURRENT); //--- Print a specific position or pending order. //PrintPosition(925571424); // by position ticket PrintPosition(PositionGetTicket(0)); // by position index [ add extra PositionGetTicket(index) ] PrintOrder(OrderGetTicket(0)); //--- Print a specific history deal or order. HistorySelect(0,INT_MAX); PrintDeal(HistoryDealGetTicket(0)); // by deal index PrintHistoryOrder(HistoryOrderGetTicket(0)); //--- Print enumeration definition, structure variable or expression. PrintEnum<ENUM_TIMEFRAMES>(); MqlDateTime dt; TimeToStruct(TimeCurrent(), dt); PrintStruct(dt); PrintExpr( AccountInfoInteger(ACCOUNT_LOGIN) ); PrintExpr( _Point ); PrintExpr( ((int)1 << 16) | 0xFFF ); }
Sample output:
/* example output: ACCOUNT INFORMATION <<============================== AccountInfoInteger(ENUM_ACCOUNT_INFO_INTEGER): ACCOUNT_LOGIN = 51986913 ACCOUNT_TRADE_MODE = ACCOUNT_TRADE_MODE_DEMO(0) ACCOUNT_TRADE_ALLOWED = 1 ACCOUNT_TRADE_EXPERT = 1 ACCOUNT_LEVERAGE = 1000 ACCOUNT_MARGIN_SO_MODE = ACCOUNT_STOPOUT_MODE_PERCENT(0) ACCOUNT_LIMIT_ORDERS = 200 ACCOUNT_MARGIN_MODE = ACCOUNT_MARGIN_MODE_RETAIL_HEDGING(2) ACCOUNT_CURRENCY_DIGITS = 2 ACCOUNT_FIFO_CLOSE = 0 ACCOUNT_HEDGE_ALLOWED = 1 AccountInfoDouble(ENUM_ACCOUNT_INFO_DOUBLE): ACCOUNT_BALANCE = 199.96 ACCOUNT_CREDIT = 0.0 ACCOUNT_PROFIT = -0.38 ACCOUNT_EQUITY = 199.58 ACCOUNT_MARGIN = 1.05 ACCOUNT_MARGIN_FREE = 198.53 ACCOUNT_MARGIN_LEVEL = 19007.619047619046 ACCOUNT_MARGIN_SO_CALL = 100.0 ACCOUNT_MARGIN_SO_SO = 0.0 ACCOUNT_MARGIN_INITIAL = 0.0 ACCOUNT_MARGIN_MAINTENANCE = 0.0 ACCOUNT_ASSETS = 0.0 ACCOUNT_LIABILITIES = 0.0 ACCOUNT_COMMISSION_BLOCKED = 0.0 AccountInfoString(ENUM_ACCOUNT_INFO_STRING): ACCOUNT_NAME = Amr ACCOUNT_COMPANY = Raw Trading Ltd ACCOUNT_SERVER = ICMarketsSC-Demo ACCOUNT_CURRENCY = USD SymbolsTotal(true) = 2 [int] SymbolsTotal(false) = 2061 [int] PositionsTotal() = 1 [int] OrdersTotal() = 0 [int] HistoryDealsTotal() = 2 [int] HistoryOrdersTotal() = 1 [int] TERMINAL INFORMATION <<============================== TerminalInfoInteger(ENUM_TERMINAL_INFO_INTEGER): TERMINAL_BUILD = 4755 TERMINAL_CONNECTED = 1 TERMINAL_DLLS_ALLOWED = 0 TERMINAL_TRADE_ALLOWED = 0 TERMINAL_EMAIL_ENABLED = 0 TERMINAL_FTP_ENABLED = 0 TERMINAL_MAXBARS = 500000 TERMINAL_CODEPAGE = 0 TERMINAL_MEMORY_PHYSICAL = 32609 TERMINAL_MEMORY_TOTAL = 65218 TERMINAL_MEMORY_AVAILABLE = 64457 TERMINAL_MEMORY_USED = 761 TERMINAL_X64 = 1 TERMINAL_OPENCL_SUPPORT = 65538 TERMINAL_DISK_SPACE = 109612 TERMINAL_CPU_CORES = 24 TERMINAL_MQID = 0 TERMINAL_COMMUNITY_ACCOUNT = 0 TERMINAL_COMMUNITY_CONNECTION = 0 TERMINAL_NOTIFICATIONS_ENABLED = 0 TERMINAL_SCREEN_DPI = 96 TERMINAL_PING_LAST = 181490 TERMINAL_SCREEN_LEFT = 0 TERMINAL_SCREEN_TOP = 0 TERMINAL_SCREEN_WIDTH = 1920 TERMINAL_SCREEN_HEIGHT = 1080 TERMINAL_LEFT = 476 TERMINAL_TOP = 74 TERMINAL_RIGHT = 1793 TERMINAL_BOTTOM = 876 TERMINAL_VPS = 0 TERMINAL_KEYSTATE_TAB = 0 TERMINAL_KEYSTATE_ENTER = 0 TERMINAL_KEYSTATE_SHIFT = 0 TERMINAL_KEYSTATE_CONTROL = 0 TERMINAL_KEYSTATE_MENU = 0 TERMINAL_KEYSTATE_CAPSLOCK = 0 TERMINAL_KEYSTATE_ESCAPE = 0 TERMINAL_KEYSTATE_PAGEUP = 0 TERMINAL_KEYSTATE_PAGEDOWN = 0 TERMINAL_KEYSTATE_END = 0 TERMINAL_KEYSTATE_HOME = 0 TERMINAL_KEYSTATE_LEFT = 0 TERMINAL_KEYSTATE_UP = 0 TERMINAL_KEYSTATE_RIGHT = 0 TERMINAL_KEYSTATE_DOWN = 0 TERMINAL_KEYSTATE_INSERT = 0 TERMINAL_KEYSTATE_DELETE = 0 TERMINAL_KEYSTATE_NUMLOCK = 1 TERMINAL_KEYSTATE_SCRLOCK = 0 TerminalInfoDouble(ENUM_TERMINAL_INFO_DOUBLE): TERMINAL_COMMUNITY_BALANCE = 0.0 TERMINAL_RETRANSMISSION = 26.699029126213592 TerminalInfoString(ENUM_TERMINAL_INFO_STRING): TERMINAL_COMPANY = Raw Trading Ltd TERMINAL_NAME = MetaTrader 5 IC Markets (SC) TERMINAL_PATH = C:\Program Files\MetaTrader 5 IC Markets (SC) TERMINAL_DATA_PATH = C:\Users\Amr\AppData\Roaming\MetaQuotes\Terminal\1640F6577B1C4EC659BF41EA9F6C38ED TERMINAL_COMMONDATA_PATH = C:\Users\Amr\AppData\Roaming\MetaQuotes\Terminal\Common TERMINAL_LANGUAGE = English TERMINAL_CPU_NAME = 13th Gen Intel Core i7-13700KF TERMINAL_OS_VERSION = Windows 11 build 22631 TERMINAL_CPU_ARCHITECTURE = AVX2 + FMA3 TIME ZONE INFORMATION <<============================== TimeTradeServer() = 2025.02.22 22:04:33 [datetime] TimeCurrent() = 2025.02.21 23:56:59 [datetime] TimeGMT() = 2025.02.22 20:04:33 [datetime] TimeLocal() = 2025.02.22 23:04:33 [datetime] TimeGMTOffset() = -10800 [int] TimeDaylightSavings() = 0 [int] OpenCL INFORMATION <<============================== CLGetInfoInteger(cl_ctx,ENUM_OPENCL_PROPERTY_INTEGER): CL_LAST_ERROR = 0 CL_DEVICE_COUNT = 1 CL_DEVICE_TYPE = CL_DEVICE_GPU(4) CL_DEVICE_VENDOR_ID = 4098 CL_DEVICE_MAX_COMPUTE_UNITS = 16 CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS = 3 CL_DEVICE_MAX_WORK_GROUP_SIZE = 256 CL_DEVICE_MAX_WORK_ITEM_SIZES = -1 CL_DEVICE_MAX_CLOCK_FREQUENCY = 1050 CL_DEVICE_GLOBAL_MEM_SIZE = 3221225472 CL_DEVICE_LOCAL_MEM_SIZE = 32768 CL_DEVICE_DOUBLE_FP_CONFIG = 63 CL_BUFFER_SIZE = 0 CL_KERNEL_WORK_GROUP_SIZE = -1 CL_KERNEL_LOCAL_MEM_SIZE = -1 CL_KERNEL_PRIVATE_MEM_SIZE = -1 CLGetInfoString(cl_ctx,ENUM_OPENCL_PROPERTY_STRING): CL_PLATFORM_PROFILE = FULL_PROFILE CL_PLATFORM_VERSION = OpenCL 2.1 AMD-APP (3075.13) CL_PLATFORM_NAME = AMD Accelerated Parallel Processing CL_PLATFORM_VENDOR = Advanced Micro Devices, Inc. CL_PLATFORM_EXTENSIONS = cl_khr_icd cl_khr_d3d10_sharing cl_khr_d3d11_sharing cl_khr_dx9_media_sharing cl_amd_event_callback cl_amd_offline_devices CL_ERROR_DESCRIPTION = unknown OpenCL error 65536 CL_DEVICE_NAME = Pitcairn CL_DEVICE_VENDOR = Advanced Micro Devices, Inc. CL_DRIVER_VERSION = 3075.13 CL_DEVICE_PROFILE = FULL_PROFILE CL_DEVICE_VERSION = OpenCL 1.2 AMD-APP (3075.13) CL_DEVICE_EXTENSIONS = cl_khr_fp64 cl_amd_fp64 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics ..... CL_DEVICE_OPENCL_C_VERSION = OpenCL C 1.2 CL_DEVICE_BUILT_IN_KERNELS = PROGRAM INFORMATION <<============================== Compiler Version: 4755 (__MQLBUILD__), X64 Regular (__CPU_ARCHITECTURE__) MQLInfoInteger(ENUM_MQL_INFO_INTEGER): MQL_PROGRAM_TYPE = PROGRAM_SCRIPT(1) MQL_DLLS_ALLOWED = 0 MQL_TRADE_ALLOWED = 0 MQL_DEBUG = 0 MQL_TESTER = 0 MQL_OPTIMIZATION = 0 MQL_VISUAL_MODE = 0 MQL_LICENSE_TYPE = LICENSE_FREE(0) MQL_PROFILER = 0 MQL_MEMORY_USED = 1 MQL_FRAME_MODE = 0 MQL_MEMORY_LIMIT = 8388608 MQL_SIGNALS_ALLOWED = 0 MQL_CODEPAGE = 0 MQL_FORWARD = 0 MQL_HANDLES_USED = 0 MQL_STARTED_FROM_CONFIG = 0 MQL_GLOBAL_COUNTER = 15 MQLInfoString(ENUM_MQL_INFO_STRING): MQL_PROGRAM_NAME = PrintXYZ_demo MQL_PROGRAM_PATH = C:\Users\Amr\AppData\Roaming\MetaQuotes\Terminal\1640F6577B1C4EC659BF41EA9F6C38ED\MQL5\Scripts\PrintXYZ\PrintXYZ_demo.ex5 CHART INFORMATION <<============================== Chart(EURUSD,H1) ChartGetInteger(chart_id,ENUM_CHART_PROPERTY_INTEGER): CHART_MODE = CHART_CANDLES(1) CHART_FOREGROUND = 0 CHART_SHIFT = 1 CHART_AUTOSCROLL = 1 CHART_SCALE = 4 CHART_SCALEFIX = 0 CHART_SCALEFIX_11 = 0 CHART_SCALE_PT_PER_BAR = 0 CHART_SHOW_OHLC = 0 CHART_SHOW_BID_LINE = 1 CHART_SHOW_ASK_LINE = 0 CHART_SHOW_LAST_LINE = 0 CHART_SHOW_PERIOD_SEP = 0 CHART_SHOW_GRID = 0 CHART_SHOW_VOLUMES = CHART_VOLUME_TICK(1) CHART_SHOW_OBJECT_DESCR = 0 CHART_COLOR_BACKGROUND = clrBlack CHART_COLOR_FOREGROUND = clrWhite CHART_COLOR_GRID = clrLightSlateGray CHART_COLOR_VOLUME = clrLimeGreen CHART_COLOR_CHART_UP = clrLime CHART_COLOR_CHART_DOWN = clrLime CHART_COLOR_CHART_LINE = clrLime CHART_COLOR_CANDLE_BULL = clrBlack CHART_COLOR_CANDLE_BEAR = clrWhite CHART_COLOR_BID = clrLightSlateGray CHART_COLOR_ASK = clrRed CHART_COLOR_LAST = 0,192,0 CHART_COLOR_STOP_LEVEL = clrRed CHART_SHOW_TRADE_LEVELS = 1 CHART_BRING_TO_TOP = 1 CHART_SHOW_DATE_SCALE = 1 CHART_SHOW_PRICE_SCALE = 1 CHART_EVENT_OBJECT_CREATE = 0 CHART_EVENT_OBJECT_DELETE = 0 CHART_EVENT_MOUSE_MOVE = 1 CHART_MOUSE_SCROLL = 1 CHART_DRAG_TRADE_LEVELS = 1 CHART_SHOW_ONE_CLICK = 1 CHART_QUICK_NAVIGATION = 1 CHART_SHOW = 1 CHART_KEYBOARD_CONTROL = 1 CHART_EVENT_MOUSE_WHEEL = 0 CHART_CROSSHAIR_TOOL = 1 CHART_CONTEXT_MENU = 1 CHART_IS_DOCKED = 1 CHART_FLOAT_LEFT = 0 CHART_FLOAT_TOP = 0 CHART_FLOAT_RIGHT = 0 CHART_FLOAT_BOTTOM = 0 CHART_SHOW_TRADE_HISTORY = 1 CHART_VISIBLE_BARS = 76 CHART_WINDOWS_TOTAL = 1 CHART_WINDOW_IS_VISIBLE = 1 CHART_WINDOW_HANDLE = 8981358 CHART_FIRST_VISIBLE_BAR = 75 CHART_WIDTH_IN_BARS = 95 CHART_WIDTH_IN_PIXELS = 1506 CHART_HEIGHT_IN_PIXELS = 431 CHART_WINDOW_YDISTANCE = 0 CHART_IS_OBJECT = 0 CHART_IS_OFFLINE = 0 CHART_IS_MAXIMIZED = 1 CHART_IS_MINIMIZED = 0 CHART_SHOW_TICKER = 1 ChartGetDouble(chart_id,ENUM_CHART_PROPERTY_DOUBLE): CHART_SHIFT_SIZE = 20.371599203715988 CHART_FIXED_MAX = 1.051 CHART_FIXED_MIN = 1.0387 CHART_POINTS_PER_BAR = 1.0 CHART_FIXED_POSITION = 0.0 CHART_PRICE_MIN = 1.0387 CHART_PRICE_MAX = 1.051 ChartGetString(chart_id,ENUM_CHART_PROPERTY_STRING): CHART_COMMENT = CHART_EXPERT_NAME = CHART_SCRIPT_NAME = PrintXYZ_demo ChartIndicatorName(0,0) = "iForexSessions" ChartIndicatorName(0,1) = "MA(10)" OBJECT INFORMATION <<============================== ObjectGetInteger(chart_id,objname,ENUM_OBJECT_PROPERTY_INTEGER): OBJPROP_COLOR = clrRed OBJPROP_STYLE = STYLE_SOLID(0) OBJPROP_WIDTH = 1 OBJPROP_BACK = 0 OBJPROP_SELECTED = 0 OBJPROP_TYPE = OBJ_HLINE(1) OBJPROP_TIME = 1970.01.01 00:00:00 OBJPROP_SELECTABLE = 1 OBJPROP_CREATETIME = 1970.01.01 00:00:00 OBJPROP_TIMEFRAMES = OBJ_ALL_PERIODS(2097151) OBJPROP_LEVELS = 0 OBJPROP_LEVELCOLOR = clrBlack OBJPROP_LEVELSTYLE = STYLE_SOLID(0) OBJPROP_LEVELWIDTH = 0 OBJPROP_ZORDER = 0 OBJPROP_HIDDEN = 0 OBJPROP_FONTSIZE = 0 OBJPROP_RAY_LEFT = 0 OBJPROP_RAY_RIGHT = 0 OBJPROP_ELLIPSE = 0 OBJPROP_ARROWCODE = 0 OBJPROP_ANCHOR = 0 OBJPROP_XDISTANCE = 0 OBJPROP_YDISTANCE = 0 OBJPROP_DIRECTION = GANN_UP_TREND(0) OBJPROP_DEGREE = ELLIOTT_GRAND_SUPERCYCLE(0) OBJPROP_DRAWLINES = 0 OBJPROP_STATE = 0 OBJPROP_XSIZE = 0 OBJPROP_YSIZE = 0 OBJPROP_PERIOD = PERIOD_CURRENT(0) OBJPROP_DATE_SCALE = 0 OBJPROP_PRICE_SCALE = 0 OBJPROP_BGCOLOR = clrBlack OBJPROP_CORNER = CORNER_LEFT_UPPER(0) OBJPROP_CHART_SCALE = 0 OBJPROP_READONLY = 0 OBJPROP_BORDER_TYPE = BORDER_FLAT(0) OBJPROP_CHART_ID = 0 OBJPROP_FILL = 0 OBJPROP_RAY = 0 OBJPROP_XOFFSET = 0 OBJPROP_YOFFSET = 0 OBJPROP_BORDER_COLOR = clrBlack OBJPROP_ALIGN = ALIGN_RIGHT(0) ObjectGetDouble(chart_id,objname,ENUM_OBJECT_PROPERTY_DOUBLE): OBJPROP_PRICE = 1.04291 OBJPROP_LEVELVALUE = 0.0 OBJPROP_SCALE = 0.0 OBJPROP_ANGLE = 0.0 OBJPROP_DEVIATION = 0.0 ObjectGetString(chart_id,objname,ENUM_OBJECT_PROPERTY_STRING): OBJPROP_NAME = Horizontal Line 54478 OBJPROP_TEXT = OBJPROP_LEVELTEXT = OBJPROP_TOOLTIP = OBJPROP_FONT = OBJPROP_BMPFILE = OBJPROP_SYMBOL = SYMBOL INFORMATION <<============================== EURUSD, Euro vs US Dollar SymbolInfoInteger(symbol,ENUM_SYMBOL_INFO_INTEGER): SYMBOL_SELECT = 1 SYMBOL_VOLUME = 0 SYMBOL_VOLUMEHIGH = 0 SYMBOL_VOLUMELOW = 0 SYMBOL_TIME = 2025.02.21 23:56:59 SYMBOL_DIGITS = 5 SYMBOL_SPREAD = 60 SYMBOL_TICKS_BOOKDEPTH = 10 SYMBOL_TRADE_CALC_MODE = SYMBOL_CALC_MODE_FOREX(0) SYMBOL_TRADE_MODE = SYMBOL_TRADE_MODE_FULL(4) SYMBOL_TRADE_STOPS_LEVEL = 0 SYMBOL_TRADE_FREEZE_LEVEL = 0 SYMBOL_TRADE_EXEMODE = SYMBOL_TRADE_EXECUTION_MARKET(2) SYMBOL_SWAP_MODE = SYMBOL_SWAP_MODE_POINTS(1) SYMBOL_SWAP_ROLLOVER3DAYS = WEDNESDAY(3) SYMBOL_SPREAD_FLOAT = 1 SYMBOL_EXPIRATION_MODE = SYMBOL_EXPIRATION_ALL(15) SYMBOL_FILLING_MODE = SYMBOL_FILLING_IOC(2) SYMBOL_START_TIME = 1970.01.01 00:00:00 SYMBOL_EXPIRATION_TIME = 1970.01.01 00:00:00 SYMBOL_SESSION_DEALS = 0 SYMBOL_SESSION_BUY_ORDERS = 0 SYMBOL_SESSION_SELL_ORDERS = 0 SYMBOL_ORDER_MODE = SYMBOL_ALL_ORDERS(127) SYMBOL_OPTION_RIGHT = SYMBOL_OPTION_RIGHT_CALL(0) SYMBOL_OPTION_MODE = SYMBOL_OPTION_MODE_EUROPEAN(0) SYMBOL_VISIBLE = 1 SYMBOL_CUSTOM = 0 SYMBOL_BACKGROUND_COLOR = 255,255,81 SYMBOL_CHART_MODE = SYMBOL_CHART_MODE_BID(0) SYMBOL_ORDER_GTC_MODE = SYMBOL_ORDERS_GTC(0) SYMBOL_MARGIN_HEDGED_USE_LEG = 0 SYMBOL_EXIST = 1 SYMBOL_TIME_MSC = 2025.02.21 23:56:59.637 SYMBOL_SECTOR = SECTOR_CURRENCY(12) SYMBOL_INDUSTRY = INDUSTRY_UNDEFINED(0) SYMBOL_SUBSCRIPTION_DELAY = 0 SymbolInfoDouble(symbol,ENUM_SYMBOL_INFO_DOUBLE): SYMBOL_BID = 1.04572 SYMBOL_BIDHIGH = 1.05057 SYMBOL_BIDLOW = 1.04494 SYMBOL_ASK = 1.04632 SYMBOL_ASKHIGH = 1.05058 SYMBOL_ASKLOW = 1.04495 SYMBOL_LAST = 0.0 SYMBOL_LASTHIGH = 0.0 SYMBOL_LASTLOW = 0.0 SYMBOL_VOLUME_REAL = 0.0 SYMBOL_VOLUMEHIGH_REAL = 0.0 SYMBOL_VOLUMELOW_REAL = 0.0 SYMBOL_POINT = 0.00001 SYMBOL_TRADE_TICK_VALUE = 1.0 SYMBOL_TRADE_TICK_SIZE = 0.00001 SYMBOL_TRADE_CONTRACT_SIZE = 100000.0 SYMBOL_VOLUME_MIN = 0.01 SYMBOL_VOLUME_MAX = 200.0 SYMBOL_VOLUME_STEP = 0.01 SYMBOL_SWAP_LONG = -6.25 SYMBOL_SWAP_SHORT = 2.56 SYMBOL_MARGIN_INITIAL = 100000.0 SYMBOL_MARGIN_MAINTENANCE = 0.0 SYMBOL_MARGIN_LONG = 0.0 SYMBOL_MARGIN_SHORT = 0.0 SYMBOL_MARGIN_LIMIT = 0.0 SYMBOL_MARGIN_STOP = 0.0 SYMBOL_MARGIN_STOPLIMIT = 0.0 SYMBOL_TRADE_TICK_VALUE_PROFIT = 1.0 SYMBOL_TRADE_TICK_VALUE_LOSS = 1.0 SYMBOL_VOLUME_LIMIT = 0.0 SYMBOL_SESSION_VOLUME = 0.0 SYMBOL_SESSION_TURNOVER = 0.0 SYMBOL_SESSION_INTEREST = 0.0 SYMBOL_SESSION_BUY_ORDERS_VOLUME = 0.0 SYMBOL_SESSION_SELL_ORDERS_VOLUME = 0.0 SYMBOL_SESSION_OPEN = 1.05008 SYMBOL_SESSION_CLOSE = 1.05012 SYMBOL_SESSION_AW = 0.0 SYMBOL_SESSION_PRICE_SETTLEMENT = 0.0 SYMBOL_SESSION_PRICE_LIMIT_MIN = 0.0 SYMBOL_SESSION_PRICE_LIMIT_MAX = 0.0 SYMBOL_OPTION_STRIKE = 0.0 SYMBOL_MARGIN_HEDGED = 0.0 SYMBOL_TRADE_LIQUIDITY_RATE = 0.0 SYMBOL_TRADE_FACE_VALUE = 0.0 SYMBOL_TRADE_ACCRUED_INTEREST = 0.0 SYMBOL_PRICE_CHANGE = -0.419 SYMBOL_PRICE_VOLATILITY = 0.0 SYMBOL_PRICE_THEORETICAL = 0.0 SYMBOL_PRICE_DELTA = 0.0 SYMBOL_PRICE_THETA = 0.0 SYMBOL_PRICE_GAMMA = 0.0 SYMBOL_PRICE_VEGA = 0.0 SYMBOL_PRICE_RHO = 0.0 SYMBOL_PRICE_OMEGA = 0.0 SYMBOL_PRICE_SENSITIVITY = 0.0 SYMBOL_SWAP_SUNDAY = 0.0 SYMBOL_SWAP_MONDAY = 1.0 SYMBOL_SWAP_TUESDAY = 1.0 SYMBOL_SWAP_WEDNESDAY = 3.0 SYMBOL_SWAP_THURSDAY = 1.0 SYMBOL_SWAP_FRIDAY = 1.0 SYMBOL_SWAP_SATURDAY = 0.0 SymbolInfoString(symbol,ENUM_SYMBOL_INFO_STRING): SYMBOL_BANK = SYMBOL_DESCRIPTION = Euro vs US Dollar SYMBOL_PATH = Forex\Majors\EURUSD SYMBOL_CURRENCY_BASE = EUR SYMBOL_CURRENCY_PROFIT = USD SYMBOL_CURRENCY_MARGIN = EUR SYMBOL_ISIN = SYMBOL_BASIS = SYMBOL_PAGE = SYMBOL_FORMULA = SYMBOL_CATEGORY = SYMBOL_EXCHANGE = SYMBOL_COUNTRY = SYMBOL_SECTOR_NAME = Currency SYMBOL_INDUSTRY_NAME = Undefined SymbolInfoSessionTrade(): symbol trading sessions SUNDAY: MONDAY: 00:01-23:59 TUESDAY: 00:01-23:59 WEDNESDAY: 00:01-23:59 THURSDAY: 00:01-23:59 FRIDAY: 00:01-23:57 SATURDAY: OrderCalcMargin(Buy, 1.0 Lot) = 104.63 USD SymbolIsSynchronized(symbol) = true [bool] SERIES INFORMATION <<============================== SeriesInfoInteger(symbol,timeframe,ENUM_SERIES_INFO_INTEGER): SERIES_BARS_COUNT = 169468 SERIES_FIRSTDATE = 1971.01.04 00:00:00 SERIES_SERVER_FIRSTDATE = 1971.01.04 00:00:00 SERIES_TERMINAL_FIRSTDATE = 1971.01.04 00:00:00 SERIES_SYNCHRONIZED = 1 SERIES_LASTBAR_DATE = 2025.02.21 23:00:00 POSITION INFORMATION <<============================== PositionGetInteger(ENUM_POSITION_PROPERTY_INTEGER): POSITION_TIME = 2025.02.14 06:54:15 POSITION_TYPE = POSITION_TYPE_SELL(1) POSITION_MAGIC = 0 POSITION_IDENTIFIER = 925571424 POSITION_TIME_MSC = 2025.02.14 06:54:15.641 POSITION_TIME_UPDATE = 2025.02.14 06:54:15 POSITION_TIME_UPDATE_MSC = 2025.02.14 06:54:15.641 POSITION_TICKET = 925571424 POSITION_REASON = POSITION_REASON_CLIENT(0) PositionGetDouble(ENUM_POSITION_PROPERTY_DOUBLE): POSITION_VOLUME = 0.01 POSITION_PRICE_OPEN = 1.04571 POSITION_PRICE_CURRENT = 1.04632 POSITION_SL = 0.0 POSITION_TP = 0.0 POSITION_SWAP = 0.23 POSITION_PROFIT = -0.61 PositionGetString(ENUM_POSITION_PROPERTY_STRING): POSITION_SYMBOL = EURUSD POSITION_COMMENT = POSITION_EXTERNAL_ID = DEAL INFORMATION <<============================== HistoryDealGetInteger(deal_ticket,ENUM_DEAL_PROPERTY_INTEGER): DEAL_ORDER = 0 DEAL_TIME = 2024.10.06 23:42:08 DEAL_TYPE = DEAL_TYPE_BALANCE(2) DEAL_ENTRY = DEAL_ENTRY_IN(0) DEAL_MAGIC = 0 DEAL_POSITION_ID = 0 DEAL_TIME_MSC = 2024.10.06 23:42:08.966 DEAL_TICKET = 609261076 DEAL_REASON = DEAL_REASON_CLIENT(0) HistoryDealGetDouble(deal_ticket,ENUM_DEAL_PROPERTY_DOUBLE): DEAL_VOLUME = 0.0 DEAL_PRICE = 0.0 DEAL_COMMISSION = 0.0 DEAL_SWAP = 0.0 DEAL_PROFIT = 200.0 DEAL_FEE = 0.0 DEAL_SL = 0.0 DEAL_TP = 0.0 HistoryDealGetString(deal_ticket,ENUM_DEAL_PROPERTY_STRING): DEAL_SYMBOL = DEAL_COMMENT = Demo deposit DEAL_EXTERNAL_ID = HISTORY ORDER INFORMATION <<============================== HistoryOrderGetInteger(order_ticket,ENUM_ORDER_PROPERTY_INTEGER): ORDER_TIME_SETUP = 2025.02.14 06:54:15 ORDER_TIME_EXPIRATION = 1970.01.01 00:00:00 ORDER_TIME_DONE = 2025.02.14 06:54:15 ORDER_TYPE = ORDER_TYPE_SELL(1) ORDER_TYPE_FILLING = ORDER_FILLING_IOC(1) ORDER_TYPE_TIME = ORDER_TIME_GTC(0) ORDER_STATE = ORDER_STATE_FILLED(4) ORDER_MAGIC = 0 ORDER_POSITION_ID = 925571424 ORDER_TIME_SETUP_MSC = 2025.02.14 06:54:15.389 ORDER_TIME_DONE_MSC = 2025.02.14 06:54:15.641 ORDER_POSITION_BY_ID = 0 ORDER_TICKET = 925571424 ORDER_REASON = ORDER_REASON_CLIENT(0) HistoryOrderGetDouble(order_ticket,ENUM_ORDER_PROPERTY_DOUBLE): ORDER_VOLUME_INITIAL = 0.01 ORDER_VOLUME_CURRENT = 0.0 ORDER_PRICE_OPEN = 0.0 ORDER_PRICE_CURRENT = 1.04571 ORDER_PRICE_STOPLIMIT = 0.0 ORDER_SL = 0.0 ORDER_TP = 0.0 HistoryOrderGetString(order_ticket,ENUM_ORDER_PROPERTY_STRING): ORDER_SYMBOL = EURUSD ORDER_COMMENT = ORDER_EXTERNAL_ID = enum ENUM_TIMEFRAMES { PERIOD_CURRENT = 0, PERIOD_M1 = 1, PERIOD_M2 = 2, PERIOD_M3 = 3, PERIOD_M4 = 4, PERIOD_M5 = 5, PERIOD_M6 = 6, PERIOD_M10 = 10, PERIOD_M12 = 12, PERIOD_M15 = 15, PERIOD_M20 = 20, PERIOD_M30 = 30, PERIOD_H1 = 16385, PERIOD_H2 = 16386, PERIOD_H3 = 16387, PERIOD_H4 = 16388, PERIOD_H6 = 16390, PERIOD_H8 = 16392, PERIOD_H12 = 16396, PERIOD_D1 = 16408, PERIOD_W1 = 32769, PERIOD_MN1 = 49153, }; [year] [mon] [day] [hour] [min] [sec] [day_of_week] [day_of_year] [0] 2025 2 21 23 56 59 5 51 AccountInfoInteger(ACCOUNT_LOGIN) = 51986913 [long] _Point = 0.00001 [double] ((int)1 << 16) | 0xFFF = 69631 [uint] */ Updates:
2025.02.15 - v.1.20 : Initial release.
2025.02.17 - v.1.30 : Added function PrintTesterStatistics(). Output more information from the existing functions.
2025.02.20 - v.1.40 : Added function PrintOpenCL() - Prints the OpenCL device properties to the Experts tab.
2025.02.21 - v.1.50 : Added function-like macro PrintExpr() - Prints a stringified expression along with its value and type.
2025.02.22 - v.1.52 : Printing enumeration parameter in the function information output.