Voir comment télécharger gratuitement des robots de trading
Retrouvez-nous sur Twitter !
Rejoignez notre page de fans
Un script intéressant ?
Poster un lien vers celui-ci -
laisser les autres l'évaluer
Vous avez aimé le script ? Essayez-le dans le terminal MetaTrader 5
Bibliothèque

Print massive information (PrintXYZ) from the terminal - bibliothèque pour MetaTrader 5

Vues:
99
Note:
(7)
Publié:
MQL5 Freelance Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance

Bibliothèque PrintXYZ()

Une petite collection de fonctions pour imprimer des informations massives depuis le terminal vers l'onglet Experts.

Ceci est très utile pour imprimer (et déboguer) les spécifications du compte de trading, les propriétés du terminal client, les périphériques OpenCL, un graphique ou un symbole spécifique, les informations du programme mql, ou l'impression d'une position, d'une transaction ou d'un ordre spécifique dans l'historique de trading. L'impression de toutes les statistiques du testeur est disponible dans OnTester() ou OnDeinit() dans le testeur.

Les définitions de tous les types énumérés du langage MQL5 peuvent également être imprimées de manière générique (pas d'énumérations codées en dur, pour garantir l'impression de toutes les valeurs nouvellement ajoutées à MQL5) en utilisant PrintEnum<T>(), où T est le type d'énumération, tel que ENUM_TIMEFRAMES.

La fonction PrintStruct(var) est utilisée pour imprimer joliment une variable de structure (avec l'affichage de tous les noms et valeurs de ses champs).

La macro de type fonction PrintExpr(x) permet d'imprimer une expression sous forme de chaîne de caractères, ainsi que sa valeur et son type. La sortie de ce script peut être envoyée à une personne chargée de l'assistance à distance ou à un développeur indépendant pour l'aider à détecter et à résoudre les problèmes sur votre terminal.

Fonctions :

//+------------------------------------------------------------------+
//| Fonctions de la bibliothèque '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 Astuce :

En incluant la bibliothèque 'PrintXYZ' dans vos projets, les fonctions ci-dessus seront disponibles dans la boîte d'auto-complétion de MetaEditor à chaque fois que vous tapez 'Print'. Vous pouvez rapidement compiler le fichier de projet pour imprimer les résultats des fonctions MQL5 dans l'onglet "Experts", puis décider de la combinaison fonction MQL/valeur de l'énumération qui répondra le mieux à vos besoins.


Script de test :

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

void OnStart()
  {
//--- Imprimer des informations massives pour le débogage
   PrintAccount();
   PrintTerminal();
   PrintOpenCL(0);                       // par l'index du dispositif OpenCL dans le système
   //PrintOpenCL(CL_USE_GPU_ONLY) ; // par type de périphérique OpenCL

//--- Imprimer des informations sur le programme en cours d'exécution, un graphique, un symbole ou une série spécifique.
   PrintMQLInfo();
   PrintChart(0);
   PrintObject(0,"Horizontal Line 54478");
   PrintSymbol(_Symbol);
   PrintSeries(_Symbol, PERIOD_CURRENT);

//--- Imprimer une position spécifique ou un ordre en attente.
   //PrintPosition(925571424) ; // par ticket de position
   PrintPosition(PositionGetTicket(0));  // par index de position [ add extra PositionGetTicket(index) ]
   PrintOrder(OrderGetTicket(0));

//--- Imprimer une offre ou une commande historique spécifique.
   HistorySelect(0,INT_MAX);
   PrintDeal(HistoryDealGetTicket(0));   // par indice de transaction
   PrintHistoryOrder(HistoryOrderGetTicket(0));

//--- Imprimer la définition de l'énumération, la variable de structure ou l'expression.
   PrintEnum<ENUM_TIMEFRAMES>();

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

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


Exemple de sortie :

/*
 exemple de sortie :

 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) :
 SOLDE_COMPTE = 199.96
 COMPTE_CRÉDIT = 0.0
 COMPTE_BÉNÉFICE = -0.38
 COMPTE_ÉQUITÉ = 199.58
 COMPTE_MARGE = 1.05
 MARGE_COMPTABLE_LIBRE = 198.53
 MARGE_COMPTABLE_NIVEAU = 19007.619047619046
 MARGE_COMPTABLE_SO_CALL = 100.0
 ACCOUNT_MARGIN_SO_SO = 0.0
 ACCOUNT_MARGIN_INITIAL = 0.0
 ACCOUNT_MARGIN_MAINTENANCE = 0.0
 ACCOUNT_ASSETS = 0.0
 ACCOUNT_LIABILITIES = 0.0
 ACCOUNT_COMMISSION_BLOCKED = 0.0
 AccountInfoString(ENUM_ACCOUNT_INFO_STRING) :
 ACCOUNT_NAME = Amr
 ACCOUNT_COMPANY = Raw Trading Ltd
 ACCOUNT_SERVER = ICMarketsSC-Demo
 ACCOUNT_CURRENCY = USD
 SymbolsTotal(true) = 2 [int]
 SymbolsTotal(false) = 2061 [int]
 PositionsTotal() = 1 [int]
 OrdersTotal() = 0 [int]
 HistoryDealsTotal() = 2 [int]
 HistoryOrdersTotal() = 1 [int]
 TERMINAL INFORMATION <<==============================
 TerminalInfoInteger(ENUM_TERMINAL_INFO_INTEGER):
 TERMINAL_BUILD = 4755
 TERMINAL_CONNECTED = 1
 TERMINAL_DLLS_ALLOWED = 0
 TERMINAL_TRADE_ALLOWED = 0
 TERMINAL_EMAIL_ENABLED = 0
 TERMINAL_FTP_ENABLED = 0
 TERMINAL_MAXBARS = 500000
 TERMINAL_CODEPAGE = 0
 TERMINAL_MEMORY_PHYSICAL = 32609
 TERMINAL_MEMORY_TOTAL = 65218
 TERMINAL_MEMORY_AVAILABLE = 64457
 TERMINAL_MEMORY_USED = 761
 TERMINAL_X64 = 1
 TERMINAL_OPENCL_SUPPORT = 65538
 TERMINAL_DISK_SPACE = 109612
 TERMINAL_CPU_CORES = 24
 TERMINAL_MQID = 0
 TERMINAL_COMMUNITY_ACCOUNT = 0
 TERMINAL_COMMUNITY_CONNECTION = 0
 TERMINAL_NOTIFICATIONS_ENABLED = 0
 TERMINAL_SCREEN_DPI = 96
 TERMINAL_PING_LAST = 181490
 TERMINAL_SCREEN_LEFT = 0
 TERMINAL_SCREEN_TOP = 0
 TERMINAL_SCREEN_WIDTH = 1920
 TERMINAL_SCREEN_HEIGHT = 1080
 TERMINAL_LEFT = 476
 TERMINAL_TOP = 74
 TERMINAL_RIGHT = 1793
 TERMINAL_BOTTOM = 876
 TERMINAL_VPS = 0
 TERMINAL_KEYSTATE_TAB = 0
 TERMINAL_KEYSTATE_ENTER = 0
 TERMINAL_KEYSTATE_SHIFT = 0
 TERMINAL_KEYSTATE_CONTROL = 0
 TERMINAL_KEYSTATE_MENU = 0
 TERMINAL_KEYSTATE_CAPSLOCK = 0
 TERMINAL_KEYSTATE_ESCAPE = 0
 TERMINAL_KEYSTATE_PAGEUP = 0
 TERMINAL_KEYSTATE_PAGEDOWN = 0
 TERMINAL_KEYSTATE_END = 0
 TERMINAL_KEYSTATE_HOME = 0
 TERMINAL_KEYSTATE_LEFT = 0
 TERMINAL_KEYSTATE_UP = 0
 TERMINAL_KEYSTATE_RIGHT = 0
 TERMINAL_KEYSTATE_DOWN = 0
 TERMINAL_KEYSTATE_INSERT = 0
 TERMINAL_KEYSTATE_DELETE = 0
 TERMINAL_KEYSTATE_NUMLOCK = 1
 TERMINAL_KEYSTATE_SCRLOCK = 0
 TerminalInfoDouble(ENUM_TERMINAL_INFO_DOUBLE) :
 TERMINAL_COMMUNITY_BALANCE = 0.0
 TERMINAL_RETRANSMISSION = 26.699029126213592
 TerminalInfoString(ENUM_TERMINAL_INFO_STRING) :
 TERMINAL_COMPANY = Raw Trading Ltd
 TERMINAL_NAME = MetaTrader 5 IC Markets (SC)
 TERMINAL_PATH = C :\Program Files\MetaTrader 5 IC Markets (SC)
 TERMINAL_DATA_PATH = C:\Users\Amr\AppData\Roaming\MetaQuotes\Terminal\1640F6577B1C4EC659BF41EA9F6C38ED
 TERMINAL_COMMONDATA_PATH = C :\Users\Amr\AppData\Roaming\MetaQuotes\Terminal\Common
 TERMINAL_LANGUAGE = English
 TERMINAL_CPU_NAME = 13th Gen Intel Core i7-13700KF
 TERMINAL_OS_VERSION = Windows 11 build 22631
 TERMINAL_CPU_ARCHITECTURE = AVX2 + FMA3
 TIME ZONE INFORMATION <<==============================
 TimeTradeServer() = 2025.02.22 22:04:33 [datetime]
 TimeCurrent() = 2025.02.21 23:56:59 [datetime]
 TimeGMT() = 2025.02.22 20:04:33 [datetime]
 TimeLocal() = 2025.02.22 23:04:33 [datetime]
 TimeGMTOffset() = -10800 [int]
 TimeDaylightSavings() = 0 [int]
 INFORMATIONS 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 = erreur OpenCL inconnue 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 =
 INFORMATIONS SUR LE PROGRAMME <<==============================
 Version du compilateur : 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
 INFORMATIONS SUR LE GRAPHIQUE <<==============================
 Graphique(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 = clrBlanc
 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 = Ligne horizontale 54478
 OBJPROP_TEXT =
 OBJPROP_LEVELTEXT =
 OBJPROP_TOOLTIP =
 OBJPROP_FONT =
 OBJPROP_BMPFILE =
 OBJPROP_SYMBOL =
 INFORMATIONS SUR LE SYMBOLE <<==============================
 EURUSD, Euro vs US Dollar
 SymbolInfoInteger(symbol,ENUM_SYMBOL_INFO_INTEGER) :
 SYMBOL_SELECT = 1
 SYMBOL_VOLUME = 0
 SYMBOL_VOLUMEHIGH = 0
 SYMBOL_VOLUMELOW = 0
 SYMBOL_TIME = 2025.02.21 23:56 :59
 SYMBOL_DIGITS = 5
 SYMBOL_SPREAD = 60
 SYMBOL_TICKS_BOOKDEPTH = 10
 SYMBOL_TRADE_CALC_MODE = SYMBOL_CALC_MODE_FOREX(0)
 SYMBOL_TRADE_MODE = SYMBOL_TRADE_MODE_FULL(4)
 SYMBOL_TRADE_STOPS_LEVEL = 0
 SYMBOL_TRADE_FREEZE_LEVEL = 0
 SYMBOL_TRADE_EXEMODE = SYMBOL_TRADE_EXECUTION_MARKET(2)
 SYMBOL_SWAP_MODE = SYMBOL_SWAP_MODE_POINTS(1)
 SYMBOL_SWAP_ROLLOVER3DAYS = WEDNESDAY(3)
 SYMBOL_SPREAD_FLOAT = 1
 SYMBOL_EXPIRATION_MODE = SYMBOL_EXPIRATION_ALL(15)
 SYMBOL_FILLING_MODE = SYMBOL_FILLING_IOC(2)
 SYMBOL_START_TIME = 1970.01.01 00:00:00
 SYMBOL_EXPIRATION_TIME = 1970.01.01 00:00 :00
 SYMBOL_SESSION_DEALS = 0
 SYMBOL_SESSION_BUY_ORDERS = 0
 SYMBOL_SESSION_SELL_ORDERS = 0
 SYMBOL_ORDER_MODE = SYMBOL_ALL_ORDERS(127)
 SYMBOL_OPTION_RIGHT = SYMBOL_OPTION_RIGHT_CALL(0)
 SYMBOL_OPTION_MODE = SYMBOL_OPTION_MODE_EUROPEAN(0)
 SYMBOL_VISIBLE = 1
 SYMBOL_CUSTOM = 0
 SYMBOL_BACKGROUND_COLOR = 255,255,81
 SYMBOL_CHART_MODE = SYMBOL_CHART_MODE_BID(0)
 SYMBOL_ORDER_GTC_MODE = SYMBOL_ORDERS_GTC(0)
 SYMBOL_MARGIN_HEDGED_USE_LEG = 0
 SYMBOL_EXIST = 1
 SYMBOL_TIME_MSC = 2025.02.21 23:56:59.637
 SYMBOL_SECTOR = SECTOR_CURRENCY(12)
 SYMBOL_INDUSTRY = INDUSTRY_UNDEFINED(0)
 SYMBOL_SUBSCRIPTION_DELAY = 0
 SymbolInfoDouble(symbol,ENUM_SYMBOL_INFO_DOUBLE) :
 SYMBOL_BID = 1.04572
 SYMBOL_BIDHIGH = 1.05057
 SYMBOL_BIDLOW = 1.04494
 SYMBOL_ASK = 1.04632
 SYMBOL_ASKHIGH = 1.05058
 SYMBOL_ASKLOW = 1.04495
 SYMBOL_LAST = 0.0
 SYMBOL_LASTHIGH = 0.0
 SYMBOL_LASTLOW = 0.0
 SYMBOL_VOLUME_REAL = 0.0
 SYMBOL_VOLUMEHIGH_REAL = 0.0
 SYMBOL_VOLUMELOW_REAL = 0.0
 SYMBOL_POINT = 0.00001
 SYMBOL_TRADE_TICK_VALUE = 1.0
 SYMBOL_TRADE_TICK_SIZE = 0.00001
 SYMBOL_TRADE_CONTRACT_SIZE = 100000.0
 SYMBOL_VOLUME_MIN = 0.01
 SYMBOL_VOLUME_MAX = 200.0
 SYMBOL_VOLUME_STEP = 0.01
 SYMBOL_SWAP_LONG = -6.25
 SYMBOL_SWAP_SHORT = 2.56
 SYMBOL_MARGIN_INITIAL = 100000.0
 SYMBOL_MARGIN_MAINTENANCE = 0.0
 SYMBOL_MARGIN_LONG = 0.0
 SYMBOL_MARGIN_SHORT = 0.0
 SYMBOL_MARGIN_LIMIT = 0.0
 SYMBOL_MARGIN_STOP = 0.0
 SYMBOL_MARGIN_STOPLIMIT = 0.0
 SYMBOL_TRADE_TICK_VALUE_PROFIT = 1.0
 SYMBOL_TRADE_TICK_VALUE_LOSS = 1.0
 SYMBOL_VOLUME_LIMIT = 0.0
 SYMBOL_SESSION_VOLUME = 0.0
 SYMBOL_SESSION_TURNOVER = 0.0
 SYMBOL_SESSION_INTEREST = 0.0
 SYMBOL_SESSION_BUY_ORDERS_VOLUME = 0.0
 SYMBOL_SESSION_SELL_ORDERS_VOLUME = 0.0
 SYMBOL_SESSION_OPEN = 1.05008
 SYMBOL_SESSION_CLOSE = 1.05012
 SYMBOL_SESSION_AW = 0.0
 SYMBOL_SESSION_PRICE_SETTLEMENT = 0.0
 SYMBOL_SESSION_PRICE_LIMIT_MIN = 0.0
 SYMBOL_SESSION_PRICE_LIMIT_MAX = 0.0
 SYMBOL_OPTION_STRIKE = 0.0
 SYMBOL_MARGIN_HEDGED = 0.0
 SYMBOL_TRADE_LIQUIDITY_RATE = 0.0
 SYMBOL_TRADE_FACE_VALUE = 0.0
 SYMBOL_TRADE_ACCRUED_INTEREST = 0.0
 SYMBOL_PRICE_CHANGE = -0.419
 SYMBOLE_PRIX_VOLATILITÉ = 0,0
 SYMBOLE_PRIX_THÉORIQUE = 0,0
 SYMBOLE_PRIX_DELTA = 0.0
 SYMBOL_PRICE_THETA = 0.0
 SYMBOL_PRICE_GAMMA = 0.0
 SYMBOL_PRICE_VEGA = 0.0
 SYMBOL_PRICE_RHO = 0.0
 SYMBOL_PRICE_OMEGA = 0.0
 SYMBOL_PRICE_SENSITIVITY = 0.0
 SYMBOL_SWAP_SUNDAY = 0.0
 SYMBOL_SWAP_MONDAY = 1.0
 SYMBOL_SWAP_TUESDAY = 1.0
 SYMBOL_SWAP_WEDNESDAY = 3.0
 SYMBOL_SWAP_THURSDAY = 1.0
 SYMBOL_SWAP_FRIDAY = 1.0
 SYMBOL_SWAP_SATURDAY = 0.0
 SymbolInfoString(symbol,ENUM_SYMBOL_INFO_STRING) :
 SYMBOL_BANK =
 SYMBOL_DESCRIPTION = Euro vs US Dollar
 SYMBOL_PATH = Forex\Majors\EURUSD
 SYMBOL_CURRENCY_BASE = EUR
 SYMBOL_CURRENCY_PROFIT = USD
 SYMBOL_CURRENCY_MARGIN = EUR
 SYMBOL_ISIN =
 SYMBOL_BASIS =
 SYMBOL_PAGE =
 SYMBOL_FORMULA =
 SYMBOL_CATEGORY =
 SYMBOL_EXCHANGE =
 SYMBOL_COUNTRY =
 SYMBOL_SECTOR_NAME = Currency
 SYMBOL_INDUSTRY_NAME = Undefined
 SymbolInfoSessionTrade() : sessions de négociation des symboles
 DIMANCHE :
 LUNDI : 00:01-23:59
 MARDI : 00 :01-23:59
 MERCREDI : 00:01-23:59
 JEUDI : 00:01-23:59
 VENDREDI : 00:01-23:57
 SAMEDI :
 OrderCalcMargin(Buy, 1.0 Lot) = 104.63 USD
 SymbolIsSynchronized(symbol) = true [bool]
 INFORMATIONS SUR LES SÉRIES <<==============================
 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
 INFORMATION SUR LA POSITION <<==============================
 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 =
 INFORMATIONS SUR L'OPÉRATION <<==============================
 HistoryDealGetInteger(deal_ticket,ENUM_DEAL_PROPERTY_INTEGER) :
 DEAL_ORDER = 0
 DEAL_TIME = 2024.10.06 23:42:08
 DEAL_TYPE = DEAL_TYPE_BALANCE(2)
 DEAL_ENTRY = DEAL_ENTRY_IN(0)
 DEAL_MAGIC = 0
 DEAL_POSITION_ID = 0
 DEAL_TIME_MSC = 2024.10.06 23:42:08.966
 DEAL_TICKET = 609261076
 DEAL_REASON = DEAL_REASON_CLIENT(0)
 HistoryDealGetDouble(deal_ticket,ENUM_DEAL_PROPERTY_DOUBLE) :
 DEAL_VOLUME = 0.0
 DEAL_PRICE = 0.0
 DEAL_COMMISSION = 0.0
 DEAL_SWAP = 0.0
 DEAL_PROFIT = 200.0
 DEAL_FEE = 0.0
 DEAL_SL = 0.0
 DEAL_TP = 0.0
 HistoryDealGetString(deal_ticket,ENUM_DEAL_PROPERTY_STRING) :
 DEAL_SYMBOL =
 DEAL_COMMENT = Demo deposit
 DEAL_EXTERNAL_ID =
 HISTORIQUE DES INFORMATIONS SUR LA COMMANDE <<==============================
 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_DE_LA_COMMANDE_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]

*/

Mises à jour:

2025.02.15 - v.1.20 : Version initiale.

2025.02.17 - v.1.30 : Ajout de la fonction PrintTesterStatistics(). Donne plus d'informations à partir des fonctions existantes.

2025.02.20 - v.1.40 : Ajout de la fonction PrintOpenCL() - Imprime les propriétés du périphérique OpenCL dans l'onglet Experts.

2025.02.21 - v.1.50 : Ajout de la macro de type fonction PrintExpr() - Imprime une expression de type chaîne de caractères avec sa valeur et son type.

2025.02.22 - v.1.52 : Impression du paramètre d'énumération dans la sortie d'information de la fonction.


Traduit de l’anglais par MetaQuotes Ltd.
Code original : https://www.mql5.com/en/code/56055

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

Un simple script de départ pour collecter des données et les envoyer dans un fichier CSV dans l'ordre le plus ancien et le plus récent. Dans cet exemple, seules les données relatives au cours de clôture sont collectées.

Conseiller expert en trading ytg_ADX_V1 Conseiller expert en trading ytg_ADX_V1

Pour prendre la décision d'ouvrir une position, l'Expert Advisor analyse les relevés de l'indicateur ADX.

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

QQE - Qualitative Quantitative Estimation MA on RSI, Difference of MA on RSI and MA of MA of ATR of MA of RSI

Nouveau gestionnaire d'événements "bar" pour les indicateurs Nouveau gestionnaire d'événements "bar" pour les indicateurs

Contrairement à OnCalculate(), l'indicateur n'est calculé que lorsqu'une nouvelle barre apparaît sur le graphique.