Guarda come scaricare robot di trading gratuitamente
Ci trovi su Facebook!
Unisciti alla nostra fan page
Script interessante?
Pubblica il link!
lasciare che altri lo valutino
Ti è piaciuto lo script? Provalo nel Terminale MetaTrader 5
Librerie

Print massive information (PrintXYZ) from the terminal - libreria per MetaTrader 5

Visualizzazioni:
44
Valutazioni:
(7)
Pubblicato:
Freelance MQL5 Hai bisogno di un robot o indicatore basato su questo codice? Ordinalo su Freelance Vai a Freelance

Libreria PrintXYZ()

Una piccola raccolta di funzioni per stampare informazioni massive dal terminale alla scheda Esperti.

Ciò è molto utile per stampare (e fare il debug) le specifiche del conto di trading, le proprietà del terminale client, i dispositivi OpenCL, un grafico o un simbolo specifico, le informazioni del programma mql o la stampa di una posizione/contratto/ordine specifico nella cronologia del trading. La stampa di tutte le statistiche del tester è disponibile in OnTester() o OnDeinit() del tester.

Le definizioni di tutti i tipi enumerati del linguaggio MQL5 possono anche essere stampate in modo generico (senza enum hard-coded, per garantire la stampa di tutti i valori appena aggiunti a MQL5) utilizzando PrintEnum<T>(), dove T è il tipo enum, come ad esempio ENUM_TIMEFRAMES.

La funzione PrintStruct(var) viene utilizzata per stampare una variabile di struttura (con la visualizzazione di tutti i nomi dei campi e dei valori).

La macro simile alla funzione PrintExpr(x) stampa un'espressione stringata con il suo valore e il suo tipo. L'output di questo script può essere inviato a un addetto all'assistenza remota o a uno sviluppatore freelance per aiutare a individuare e risolvere i problemi del terminale.

Funzioni:

//+------------------------------------------------------------------+
//| Funzioni della libreria '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


Suggerimento di MetaEditor:

Includendo la libreria 'PrintXYZ' nei vostri progetti, le funzioni di cui sopra saranno disponibili nella casella di completamento automatico di MetaEditor ovunque si digiti 'Print'. È possibile compilare rapidamente il file di progetto per stampare i risultati delle funzioni MQL5 nella scheda 'Esperti', per poi decidere quale combinazione di funzione MQL/valore enum sia più adatta alle proprie esigenze.


Script di prova:

//+------------------------------------------------------------------+
//| Script di prova|
//+------------------------------------------------------------------+
#include "PrintXYZ.mqh"

void OnStart()
  {
//--- Stampa di informazioni massive per il debugging
   PrintAccount();
   PrintTerminal();
   PrintOpenCL(0);                       // per indice del dispositivo OpenCL nel sistema
   //PrintOpenCL(CL_USE_GPU_ONLY); // per tipo di dispositivo OpenCL

//--- Stampa informazioni sul programma in esecuzione, su uno specifico grafico, simbolo o serie.
   PrintMQLInfo();
   PrintChart(0);
   PrintObject(0,"Horizontal Line 54478");
   PrintSymbol(_Symbol);
   PrintSeries(_Symbol, PERIOD_CURRENT);

//--- Stampa una posizione specifica o un ordine pendente.
   //StampaPosizione(925571424); // per biglietto di posizione
   PrintPosition(PositionGetTicket(0));  // per indice di posizione [ aggiungere extra PositionGetTicket(index) ]
   PrintOrder(OrderGetTicket(0));

//--- Stampa un affare o un ordine storico specifico.
   HistorySelect(0,INT_MAX);
   PrintDeal(HistoryDealGetTicket(0));   // per indice di trattativa
   PrintHistoryOrder(HistoryOrderGetTicket(0));

//--- Stampa definizione di enumerazione, variabile di struttura o espressione.
   PrintEnum<ENUM_TIMEFRAMES>();

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

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


Esempio di output:

/*
 esempio di 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)
 LIMITE_CONTO_ORDINI = 200
 MODALITÀ_CONTO_MARGINE_DI_VENDITA = MODALITÀ_CONTO_MARGINE_DI_VENDITA_AL_MERCATO(2)
 ACCOUNT_CURRENCY_DIGITS = 2
 ACCOUNT_FIFO_CLOSE = 0
 ACCOUNT_HEDGE_ALLOWED = 1
 AccountInfoDouble(ENUM_ACCOUNT_INFO_DOUBLE):
 CONTO_BILANCIO = 199.96
 CONTO_CREDITO = 0,0
 CONTO_PROFITTO = -0,38
 CONTO_PATRIMONIO = 199,58
 CONTO_MARGINE = 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
 CONTO_ATTIVITÀ = 0,0
 CONTO_PASSIVITÀ = 0,0
 CONTO_COMMISSIONI_BLOCCATE = 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
 ALTEZZA DELLO SCHERMO = 1080
 SINISTRA DEL TERMINALE = 476
 CIMA DEL TERMINALE = 74
 DESTRA DEL TERMINALE = 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
 INFORMAZIONI SUL FUSO ORARIO <<==============================
 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 = errore OpenCL sconosciuto 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 =
 INFORMAZIONI SUL PROGRAMMA <<==============================
 Versione compilatore: 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
 INFORMAZIONI SUL CARTO <<==============================
 Grafico(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 = Linea orizzontale 54478
 OBJPROP_TEXT =
 OBJPROP_LEVELTEXT =
 OBJPROP_TOOLTIP =
 OBJPROP_FONT =
 OBJPROP_BMPFILE =
 OBJPROP_SYMBOL =
 INFORMAZIONI SUL SIMBOLO <<==============================
 EURUSD, Euro contro Dollaro USA
 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. Dollaro 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 = Valuta
 SYMBOL_INDUSTRY_NAME = Non definito
 SymbolInfoSessionTrade(): sessioni di trading del simbolo
 DOMENICA:
 LUNEDI': 00:01-23:59
 MARTEDI': 00:01-23:59
 MERCOLEDÌ: 00:01-23:59
 GIOVEDÌ: 00:01-23:59
 VENERDÌ: 00:01-23:57
 SABATO:
 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
 INFORMAZIONI SULLA POSIZIONE <<==============================
 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 = Deposito demo
 DEAL_EXTERNAL_ID =
 STORIA ORDINE INFORMAZIONI <<==============================
 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):
 VOLUME_ORDINE_INIZIALE = 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,
 PERIODO_M6 = 6,
 PERIODO_M10 = 10,
 PERIODO_M12 = 12,
 PERIODO_M15 = 15,
 PERIODO_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,
 PERIODO_W1 = 32769,
 PERIODO_MN1 = 49153,
 };
 [anno] [lun] [giorno] [ora] [min] [sec] [giorno_settimana] [giorno_anno]
 [0]2025 2 21 23 56 595 51
 AccountInfoInteger(ACCOUNT_LOGIN) = 51986913 [long]
 _Point = 0.00001 [double]
 ((int)1 << 16) | 0xFFF = 69631 [uint]

*/

Aggiornamenti:

2025.02.15 - v.1.20 : Rilascio iniziale.

2025.02.17 - v.1.30 : Aggiunta della funzione PrintTesterStatistics(). Emette più informazioni dalle funzioni esistenti.

2025.02.20 - v.1.40 : Aggiunta la funzione PrintOpenCL() - Stampa le proprietà del dispositivo OpenCL nella scheda Experts.

2025.02.21 - v.1.50 : Aggiunta la macro simile alla funzione PrintExpr() - Stampa un'espressione stringata con il suo valore e il suo tipo.

2025.02.22 - v.1.52 : Stampa di un parametro di enumerazione nell'output informativo della funzione.


Tradotto dall’inglese da MetaQuotes Ltd.
Codice originale https://www.mql5.com/en/code/56055

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

Un semplice script di partenza per raccogliere dati e inviarli a un CSV nell'ordine più vecchio più nuovo. In questo esempio vengono raccolti solo i dati relativi al prezzo di chiusura.

Consulente esperto di trading ytg_ADX_V1 Consulente esperto di trading ytg_ADX_V1

Per decidere se aprire una posizione, l'Expert Advisor analizza le letture dell'indicatore ADX.

QQE [v02] and QQE multi-timeframe [v02] QQE [v02] and QQE multi-timeframe [v02]

QQE - Stima quantitativa qualitativa MA su RSI, differenza di MA su RSI e MA di ATR di MA su RSI

Nuovo gestore di eventi "barra" per gli indicatori Nuovo gestore di eventi "barra" per gli indicatori

A differenza di OnCalculate(), l'indicatore viene calcolato solo quando sul grafico compare una nuova barra.