Unisciti alla nostra fan page
- Visualizzazioni:
- 44
- Valutazioni:
- Pubblicato:
-
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

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.

Per decidere se aprire una posizione, l'Expert Advisor analizza le letture dell'indicatore ADX.
![QQE [v02] and QQE multi-timeframe [v02]](https://c.mql5.com/i/code/indicator.png)
QQE - Stima quantitativa qualitativa MA su RSI, differenza di MA su RSI e MA di ATR di MA su RSI

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