Voir comment télécharger gratuitement des robots de trading
Retrouvez-nous sur Facebook !
Rejoignez notre page de fans
Rejoignez notre page de fans
Vous avez aimé le script ? Essayez-le dans le terminal MetaTrader 5
- Vues:
- 4388
- Note:
- Publié:
- 2021.01.20 21:55
- Mise à jour:
- 2021.03.09 03:30
-
Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance
Log4mql(mini) - light header-only version of Log4mql that provides standardized logging.
Installation/Usage
- Add log4mqlm.mqh to your Include folder.
- View the sample code to get an overview of the usage.
Inputs
Log4mql(mini) requires only one input field. There is no logging to files.
- Loglevel, supports Trace, Debug, Info, Warn, Error and Fatal
Message Pattern
The message pattern will have a fixed format which corresponds to its appropriate severity level, according to below table.
Severity | Format | Sample output |
---|---|---|
Info (the commonly used default) | %func: %msg | OnInit: Log level: TRACE |
Debug, Trace | %func(%file:%line): %msg | OnInit(log4mqlm_sample.mq4:72): initializing |
Warn | WARN %func(%file:%line): %msg | WARN SomeFunction(log4mqlm_sample.mq4:64): stoploss too tight |
Error | ERROR %func(%file:%line): %msg optionally followed by: [, error %lasterr - %lasterrdesc] | ERROR OnDeinit(log4mqlm_sample.mq4:85): open 'some file' failed, error 5004 - Cannot open file |
Fatal | FATAL ... as above | FATAL ... |
Functions
Log4mql(mini) provides functions and preprocessor macros for logging, all macros are to be used like functions.
Return type | Function name | Description |
---|---|---|
bool | PRINT (...) | Prints its message if log level is set at least to INFO (= normal logging behavior). Supports up to 9 arguments - PRINT("1",2,etc) - if you need more, expand the templates. Returns true if message was logged, else false. |
bool | PRINTF (string format,...) | Like PRINT but prints a formatted message. Same rules as known from PrintFormat apply. |
bool | WARN (...) WARNF (string format,...) | Prints its message if log level is set at least to WARN. |
bool | ERROR (...) ERRORF (string format,...) | Prints its message if log level is at least ERROR. Adds _LastError description if set. |
bool | FATAL (...) FATALF (string format,...) | Like ERROR, but with termination. You should call ExpertRemove() or exit immediately otherwise after this. Example: if(step<MinStep) { FATALF("invalid step size: %f",step); ExpertRemove(); return; } |
bool | DEBUG (...) DEBUGF (string format,...) | Messages for DEBUG level. |
bool | TRACE (...) TRACEF (string format,...) | Messages for TRACE (more verbose than DEBUG, for function entries, calculations etc). |
string | L4mq.LastMessage() | Get the last message that has been logged. |
int | L4mq.LastLevel() | Get the severity level of the last logging event. |
int | L4mq.Level() | Get the severity level of the logger. |
string | L4mq.LevelAsString() | Get the severity level of the logger as string. |
void | L4mq.SetLevel(int) | Set the severity level for the logger. |
ulong | L4mq.SeqNr() | Get the sequence number of the last logged event. |
bool | L4mq.logged | true if the last event was logged. |
string | Log4mql::GetErrorDescription(int err) | Get the description of an error code like _LastError. |
string | Log4mql::GetUninitReason(int reason) | Get the description of the uninit reason. |
string | Log4mql::LoglevelToString(int level) | Convert a log level to a descriptive string. |
Notes
- As the functionality strives to be as simple as possible, there is no logging to files. You could implement some on your own if you want.
- You are free to use this code in your work, however, if you share the source code you must not remove the copyright and license notice.
- The full functionality of Log4mql is available here: https://www.mql5.com/en/code/31425 (MT4) or here: https://www.mql5.com/en/code/31452 (MT5)
![Corrected moving averages](https://c.mql5.com/i/code/indicator.png)
Corrected moving averages
![The intersections of two lines](https://c.mql5.com/i/code/script.png)
In MetaTrader 4, we intend to calculate the intersection coordinates of two straight line objects with different slopes using MQL4.
![The colored volumes (English Version)](https://c.mql5.com/i/code/indicator.png)
Colored volumes at the bottom of the chart
![Breakout Strength Meter - MT4](https://c.mql5.com/i/code/script.png)
The breakout strength meter is a trading tool that is used to identify which currencies are the strongest to breakout, and which currencies are the weakest to breakout