Mira cómo descargar robots gratis
¡Búscanos en Twitter!
Pon "Me gusta" y sigue las noticias
¿Es interesante este script?
Deje un enlace a él, ¡qué los demás también lo valoren!
¿Le ha gustado el script?
Evalúe su trabajo en el terminal MetaTrader 5
Librerías

Print massive information (PrintXYZ) from the terminal - librería para MetaTrader 5

Visualizaciones:
33
Ranking:
(5)
Publicado:
2025.06.23 12:07
PrintXYZ.mqh (43.04 KB) ver
PrintXYZ_demo.mq5 (43.05 KB) ver
MQL5 Freelance ¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa

Biblioteca PrintXYZ()

Una pequeña colección de funciones para imprimir información masiva desde la terminal a la pestaña Expertos.

Esto es muy útil para imprimir (y depurar) las especificaciones de la cuenta de operaciones, las propiedades del terminal cliente, dispositivos OpenCL, un gráfico o símbolo específico, información del programa mql, o imprimir una posición/operación/orden específica en el historial de operaciones. La impresión de todas las estadísticas del probador está disponible dentro de OnTester() o OnDeinit() en el probador.

Las definiciones de todos los tipos enumerados del lenguaje MQL5 también pueden ser impresas de forma genérica (sin enums codificados, para asegurar la impresión de todos los nuevos valores añadidos a MQL5) usando PrintEnum<T>(), donde T es el tipo de enum, como ENUM_TIMEFRAMES.

La función PrintStruct(var) se utiliza para imprimir de forma bonita una variable de estructura (con la visualización de todos sus nombres y valores de campo).

La macro de tipo función PrintExpr(x) imprime una expresión stringificada junto con su valor y tipo. La salida de este script puede ser enviada a una persona de soporte remoto o a un desarrollador freelance para ayudar a detectar y solucionar problemas en su terminal.

Funciones:

//+------------------------------------------------------------------+
//| Funciones en la librería 'PrintXYZ'.|
//+------------------------------------------------------------------+
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 Consejo:

Al incluir la biblioteca "PrintXYZ" en sus proyectos, las funciones anteriores estarán disponibles en el cuadro de autocompletar del MetaEditor siempre que escriba "Imprimir". Usted puede compilar rápidamente el archivo de proyecto para imprimir los resultados de las funciones MQL5 a la pestaña "Expertos", y entonces usted puede decidir qué combinación de función MQL / valor enum se adapte mejor a sus necesidades.


Script de prueba:

//+------------------------------------------------------------------+
//| Script de prueba|
//+------------------------------------------------------------------+
#include "PrintXYZ.mqh"

void OnStart()
  {
//--- Imprime información masiva para depuración
   PrintAccount();
   PrintTerminal();
   PrintOpenCL(0);                       // por índice de dispositivo OpenCL en el sistema
   //PrintOpenCL(CL_USE_GPU_ONLY); // por tipo de dispositivo OpenCL

//--- Imprimir información sobre el programa en ejecución, gráfico específico, símbolo o serie.
   PrintMQLInfo();
   PrintChart(0);
   PrintObject(0,"Horizontal Line 54478");
   PrintSymbol(_Symbol);
   PrintSeries(_Symbol, PERIOD_CURRENT);

//--- Imprime una posición específica o una orden pendiente.
   //PrintPosition(925571424); // por ticket de posición
   PrintPosition(PositionGetTicket(0));  // por índice de posición [ add extra PositionGetTicket(index) ]
   PrintOrder(OrderGetTicket(0));

//--- Imprime un acuerdo o pedido específico del historial.
   HistorySelect(0,INT_MAX);
   PrintDeal(HistoryDealGetTicket(0));   // por índice de operaciones
   PrintHistoryOrder(HistoryOrderGetTicket(0));

//--- Imprimir definición de enumeración, variable de estructura o expresión.
   PrintEnum<ENUM_TIMEFRAMES>();

   MqlDateTime dt;
   TimeToStruct(TimeCurrent(), dt);
   PrintStruct(dt);

   PrintExpr( AccountInfoInteger(ACCOUNT_LOGIN) );
   PrintExpr( _Point );
   PrintExpr( ((int)1 << 16) | 0xFFF );
  }


Ejemplo de salida:

/*
 salida de ejemplo:

 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 = Español
 TERMINAL_CPU_NAME = 13ª 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 = error OpenCL desconocido 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 =
 INFORMACIÓN DEL PROGRAMA <<==============================
 Versión del compilador: 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\MQL5Scripts\PrintXYZ\PrintXYZ_demo.ex5
 INFORMACIÓN DEL GRÁFICO <<==============================
 Gráfico(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.051051
 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 = clrNegro
 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 = Línea horizontal 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 = MIÉRCOLES(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.00
 SYMBOL_SWAP_SATURDAY = 0.0
 SymbolInfoString(symbol,ENUM_SYMBOL_INFO_STRING):
 SYMBOL_BANK =
 SYMBOL_DESCRIPTION = Euro vs Dólar USA
 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 = Divisa
 SYMBOL_INDUSTRY_NAME = Sin definir
 SymbolInfoSessionTrade(): Sesiones de negociación del símbolo
 DOMINGO:
 LUNES: 00:01-23:59
 MARTES: 00:01-23:59
 MIÉRCOLES: 00:01-23:59
 JUEVES: 00:01-23:59
 VIERNES: 00:01-23:57
 SÁBADO:
 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
 INFORMACIÓN DE POSICIÓN <<==============================
 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
 POSICION_PRECIO_ABIERTO = 1.04571
 POSICION_PRECIO_ACTUAL = 1.04632
 POSICION_SL = 0.0
 POSICION_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 = Depósito demo
 DEAL_EXTERNAL_ID =
 HISTORY INFORMACIÓN DEL PEDIDO <<==============================
 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):
 VOLUMEN_PEDIDO_INICIAL = 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 595 51
 AccountInfoInteger(ACCOUNT_LOGIN) = 51986913 [long]
 _Point = 0.00001 [double]
 ((int)1 << 16) | 0xFFF = 69631 [uint]

*/

Actualizaciones:

2025.02.15 - v.1.20 : Versión inicial.

2025.02.17 - v.1.30 : Añadida función PrintTesterStatistics(). Da salida a más información de las funciones existentes.

2025.02.20 - v.1.40 : Añadida función PrintOpenCL() - Imprime las propiedades del dispositivo OpenCL en la pestaña Expertos.

2025.02.21 - v.1.50 : Añadida macro tipo función PrintExpr() - Imprime una expresión stringificada junto con su valor y tipo.

2025.02.22 - v.1.52 : Impresión del parámetro de enumeración en la salida de información de la función.


Traducción del inglés realizada por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/en/code/56055

Collect Data (Date, Time and Close Price) Collect Data (Date, Time and Close Price)

Un sencillo script de inicio para recopilar datos y enviarlos a un CSV en el orden más antiguo - más reciente. En este ejemplo solo se recopilan los datos de precios de cierre.

CryptoTrend CryptoTrend

CryptoTrend 1.00 Expert Advisor es un sistema de trading automatizado diseñado para operar con criptodivisas (en particular, BTC). Características principales: Indicador de Bollinger: Se utiliza para identificar los extremos del mercado y generar señales de compra y venta. Filtrado de bloques de órdenes: Permite encontrar niveles de soporte y resistencia, lo que ayuda a reducir el número de señales falsas. Autoaprendizaje: El umbral de entrada se adapta en función de las estadísticas de operaciones ganadoras y perdedoras, lo que permite al Asesor Experto adaptarse a las condiciones cambiantes del mercado. Gestión de riesgos: Calcula los niveles de stop loss (SL) y take profit (TP) en función del análisis de riesgos y la correlación.

Equity and Balance Indicator - History based Equity and Balance Indicator - History based

Este indicador lee el historial de operaciones y traza el P &amp; L Acumulativo a lo largo del tiempo, ayudando a los operadores visuales a ver cuánto dinero están ganando o perdiendo con el tiempo. Esta versión actual tiene una diferencia de 0,02% de error marginal, debido al redondeo de flotantes, y los métodos de cálculo. Se puede considerar extremadamente preciso con este error marginal.

Calculadora avanzada de interés compuesto para el comerciante Calculadora avanzada de interés compuesto para el comerciante

Una calculadora de interés compuesto para el trader. Calcula, en función de sus parámetros, su riesgo de ruina y el riesgo óptimo por operación. Ofrece una previsión del tamaño de su capital en un año, un mes y al final del plazo.