Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Facebook!
Participe de nossa página de fãs
Script interessante?
Coloque um link para ele, e permita que outras pessoas também o avaliem
Você gostou do script?
Avalie seu funcionamento no terminal MetaTrader 5
Bibliotecas

Print massive information (PrintXYZ) from the terminal - biblioteca para MetaTrader 5

Visualizações:
33
Avaliação:
(5)
Publicado:
2025.06.23 12:07
Freelance MQL5 Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

Biblioteca PrintXYZ()

Uma pequena coleção de funções para imprimir informações massivas do terminal para a guia Experts.

Isso é muito útil para imprimir (e depurar) as especificações da conta de negociação, as propriedades do terminal do cliente, os dispositivos OpenCL, um gráfico ou símbolo específico, informações do programa mql ou imprimir uma posição/negócio/ordem específica no histórico de negociação. A impressão de todas as estatísticas do testador está disponível em OnTester() ou OnDeinit() no testador.

As definições de todos os tipos enumerados da linguagem MQL5 também podem ser impressas usando uma forma genérica (sem enums codificados, para garantir a impressão de todos os valores recém-adicionados à MQL5) usando PrintEnum<T>(), onde T é o tipo de enum, como ENUM_TIMEFRAMES.

A função PrintStruct(var) é usada para imprimir uma variável de estrutura (com a exibição de todos os seus nomes e valores de campo).

A macro semelhante à função PrintExpr(x) imprime uma expressão em string com seu valor e tipo. A saída desse script pode ser enviada a uma pessoa de suporte remoto ou a um desenvolvedor autônomo para ajudar a detectar e corrigir problemas em seu terminal.

Funções:

//+------------------------------------------------------------------+
//| Funções na biblioteca '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


Dica do MetaEditor:

Ao incluir a biblioteca "PrintXYZ" em seus projetos, as funções acima ficarão disponíveis na caixa de preenchimento automático do MetaEditor sempre que você digitar "Print". Você pode compilar rapidamente o arquivo de projeto para imprimir os resultados das funções MQL5 na guia "Experts" e, em seguida, decidir qual combinação de função MQL/valor de enum será mais adequada às suas necessidades.


Script de teste:

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

void OnStart()
  {
//--- Imprimir informações em massa para depuração
   PrintAccount();
   PrintTerminal();
   PrintOpenCL(0);                       // pelo índice do dispositivo OpenCL no sistema
   //PrintOpenCL(CL_USE_GPU_ONLY); // por tipo de dispositivo OpenCL

//--- Imprimir informações sobre o programa em execução, gráfico específico, símbolo ou série.
   PrintMQLInfo();
   PrintChart(0);
   PrintObject(0,"Horizontal Line 54478");
   PrintSymbol(_Symbol);
   PrintSeries(_Symbol, PERIOD_CURRENT);

//--- Imprimir uma posição específica ou uma ordem pendente.
   //PrintPosition(925571424); // por tíquete de posição
   PrintPosition(PositionGetTicket(0));  // por índice de posição [ adicionar PositionGetTicket(index) extra ]
   PrintOrder(OrderGetTicket(0));

//--- Imprimir um negócio ou pedido de histórico específico.
   HistorySelect(0,INT_MAX);
   PrintDeal(HistoryDealGetTicket(0));   // por índice de negócios
   PrintHistoryOrder(HistoryOrderGetTicket(0));

//--- Imprimir definição de enumeração, variável de estrutura ou expressão.
   PrintEnum<ENUM_TIMEFRAMES>();

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

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


Exemplo de saída:

/*
 exemplo de saída:

 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 = Inglês
 TERMINAL_CPU_NAME = 13th Gen Intel Core i7-13700KF
 TERMINAL_OS_VERSION = Windows 11 build 22631
 TERMINAL_CPU_ARCHITECTURE = AVX2 + FMA3
 INFORMAÇÕES SOBRE O FUSO HORÁRIO <<==============================
 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]
 INFORMAÇÕES OpenCL <<==============================
 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 = erro OpenCL desconhecido 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 =
 INFORMAÇÕES SOBRE O PROGRAMA <<==============================
 Versão do 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\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 = Linha horizontal 54478
 OBJPROP_TEXT =
 OBJPROP_LEVELTEXT =
 OBJPROP_TOOLTIP =
 OBJPROP_FONT =
 OBJPROP_BMPFILE =
 OBJPROP_SYMBOL =
 INFORMAÇÕES SOBRE O SÍMBOLO <<==============================
 EURUSD, Euro vs. Dólar americano
 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. Dólar americano
 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(): sessões de negociação do símbolo
 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.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 = Depósito de demonstração
 DEAL_EXTERNAL_ID =
 INFORMAÇÕES DO HISTÓRICO DO 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):
 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 595 51
 AccountInfoInteger(ACCOUNT_LOGIN) = 51986913 [long]
 _Point = 0.00001 [double]
 ((int)1 << 16) | 0xFFF = 69631 [uint]

*/

Atualizações:

2025.02.15 - v.1.20 : Versão inicial.

2025.02.17 - v.1.30 : Adicionada a função PrintTesterStatistics(). Gera mais informações a partir das funções existentes.

2025.02.20 - v.1.40 : Função PrintOpenCL() adicionada - Imprime as propriedades do dispositivo OpenCL na guia Experts.

2025.02.21 - v.1.50: Adicionada a macro semelhante à função PrintExpr() - Imprime uma expressão em string junto com seu valor e tipo.

2025.02.22 - v.1.52: Impressão do parâmetro de enumeração na saída de informações da função.


Traduzido do inglês pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/en/code/56055

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

Um script simples de ponto de partida para coletar dados e enviar para um arquivo CSV na ordem mais antiga-nova. Neste exemplo, somente os dados de preço de fechamento são coletados.

CryptoTrend CryptoTrend

O CryptoTrend 1.00 Expert Advisor é um sistema de negociação automatizado projetado para negociar criptomoedas (em particular, BTC). Principais recursos: Indicador Bollinger: usado para identificar os extremos do mercado e gerar sinais de compra e venda. Filtragem de blocos de ordens: permite encontrar níveis de suporte e resistência, o que ajuda a reduzir o número de sinais falsos. Autoaprendizagem: o limite de entrada é adaptado de acordo com as estatísticas de negociações vencedoras e perdedoras, o que permite que o Expert Advisor se adapte às condições variáveis do mercado. Gerenciamento de risco: calcula os níveis de stop loss (SL) e take profit (TP) com base na análise de risco e na correlação

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

Esse indicador lê o histórico de negociação e plota o P&amp;L acumulado ao longo do tempo, ajudando os operadores visuais a ver quanto dinheiro estão ganhando ou perdendo ao longo do tempo. Essa versão atual tem uma diferença de 0,02% de erro marginal, devido ao arredondamento de floats e métodos de cálculo. Ela pode ser considerada extremamente precisa com esse erro marginal.

Calculadora avançada de juros compostos para o trader Calculadora avançada de juros compostos para o trader

Uma calculadora de juros compostos para o operador. Calcula, com base em seus parâmetros, seu risco de ruína e o risco ideal por operação. Fornece uma previsão do tamanho do seu capital em um ano, um mês e no final do prazo.