Join our fan page
- Views:
- 14169
- Rating:
- Published:
- 2010.02.09 12:45
- Updated:
- 2016.11.22 07:32
-
Need a robot or indicator based on this code? Order it on Freelance Go to Freelance
The library contains the following functions:
- TradeServerReturnCodeDescription - returns description of trade server return codes;
- ErrorDescription - returns description of runtime errors.
//+------------------------------------------------------------------+ //| ErrorDescription.mqh | //| Copyright 2010, MetaQuotes Software Corp. | //| http://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "2010, MetaQuotes Software Corp." #property link "http://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+ //| returns trade server return code description | //+------------------------------------------------------------------+ string TradeServerReturnCodeDescription(int return_code) //+------------------------------------------------------------------+ //| returns runtime error code description | //+------------------------------------------------------------------+ string ErrorDescription(int err_code)
Example:
(Don't forget to copy the file ErrorDescription.mq5 to the folder \MetaTrader 5\MQL5\Include)
//+------------------------------------------------------------------+ //| ErrorDescrTest.mq5 | //| Copyright 2010, MetaQuotes Software Corp. | //| http://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "2010, MetaQuotes Software Corp." #property link "http://www.mql5.com" #property version "1.00" #include <ErrorDescription.mqh> //+------------------------------------------------------------------+ //| Example of use of the ErrorDescription.mqh library | //+------------------------------------------------------------------+ void OnStart() { Print("----- Description of trade server return codes -----"); for(int i=10004;i<=10034;i++) { Print("Trade server return code:",i,TradeServerReturnCodeDescription(i)); } Print("-------- Description of runtime error codes ---------"); for(int i=4001;i<=4014;i++) { Print("Runtime error code:",i,ErrorDescription(i)); } } //+------------------------------------------------------------------+
In some cases it's necessary to work with user defined errors. In MQL5 there is a function SetUserError, what sets the predefined variable _LastError into the value equal to ERR_USER_ERROR_FIRST + user_error.
The user defined error codes starts from code ERR_USER_ERROR_FIRST. In such cases you can use the function ErrorDescriptionExt to return description of errors, including the user defined errors:
//+------------------------------------------------------------------+ //| UserErrorDescr.mq5 | //| Copyright 2010, MetaQuotes Software Corp. | //| http://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "2010, MetaQuotes Software Corp." #property link "http://www.mql5.com" #property version "1.00" #include <ErrorDescription.mqh> //+------------------------------------------------------------------+ //| returns runtime error code description, | //| with user defined errors | //+------------------------------------------------------------------+ string ErrorDescriptionExt(int err_code,string&user_errors[]) { if(err_code>=0 && err_code<ERR_USER_ERROR_FIRST) return(ErrorDescription(err_code)); //--- user defined runtime errors err_code-=ERR_USER_ERROR_FIRST; if(err_code<=ArraySize(user_errors)) return(user_errors[err_code]); //--- return("Unknown error"); }; // an array with description of the user defined runtime errors string MyErrors[]= { "User error №1", "User error №2", "User error №3" }; //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- for(int i=0;i<=2;i++) { SetUserError(i); Print("User defined error code:",i,ErrorDescriptionExt(GetLastError(),MyErrors)); } } //+------------------------------------------------------------------+
Translated from Russian by MetaQuotes Ltd.
Original code: https://www.mql5.com/ru/code/79
![LoongClock](https://c.mql5.com/i/code/expert.png)
A very simple sample of clock
![MovingAverages](https://c.mql5.com/i/code/library.png)
The MovingAverages library contains functions for calculation of different types of moving averages.
![TimerClosingPeriod](https://c.mql5.com/i/code/indicator.png)
The indicator prints the time to close of the current timeframe, if it less than H1, it also prints the time to close of the current hourly bar.
![LoongMAx96](https://c.mql5.com/i/code/indicator.png)
Draws 96 line MAs with only 100 lines of code (uses CMyBuffer class).