Codes

iForexSessions for MetaTrader 5

Highlights the Forex Market Sessions (Sydney, Tokyo, London, New York)

Determine Broker's Daylight (DST) schedule for MetaTrader 5

Script to determine whether your Broker follows the US, UK or AU daylight (DST) schedule

Local Timezones and Local Session Hours for MetaTrader 5

Class to access to the local time for the specified location, as well as time zone information and the local trading session hours

TimeGMT library for the strategy tester for MetaTrader 5

Static class to fix the TimeGMT() function during testing in the strategy tester

Benchmark for MetaTrader 5

A set of macros to benchmark small code snippets for their execution speeds

xoshiro256 Random Number Generator for MetaTrader 5

The 64-bit xoshiro256** Random Number Generator

Introsort (Introspective sort) for MetaTrader 5

Sort the input array in-place using comparison function less

Radix sort (The fastest numeric sort) for MetaTrader 5

Sorts the values in the first dimension of a multidimensional numeric array in the ascending order

String Manipulation Functions for MetaTrader 5

A collection of useful string manipulation functions

MultiSort - sorting algorithm for MetaTrader 5

A sorter class to sort an array based on other arrays

Forum

Bug report: Wrong TimeTradeServer() in indicators.

Forum on trading, automated trading systems and testing trading strategies Possible bug in TimeTradeServer amrali , 2024.04.05 02:10 I am sorry for my previous responses. I re-checked and it seems to be a bug that affects TimeTraderServer() only inside indicators. Specifically, the bug occurs when

Bug: 'typename' keyword gives compile errors if used for identifiers inside namespaces

We faced a problem with 'typename' keyword gives compile errors if used for identifiers defined inside namespaces. See this example, it does not even compile namespace myspace { int x = 1 ; } void OnStart ( void ) { Print ( myspace::x ); // 1 Print ( typename (myspace::x) );

array out of range in 'Introsort.mqh' (225,23)

When including the header <Generic\ArrayList.mqh> I have encountered an array out of range in 'Introsort.mqh' I had to replicate that error using this script: #include <Generic\ArrayList.mqh> int test_array[]; void OnStart () { int size = 1 e7; // 10 millions ArrayResize (test_array, size);

Serious bug in the OrderCalcProfit() function

According to the documentation of OrderCalcProfit , "The function calculates the profit for the current account, in the current market conditions, based on the parameters passed. The function is used for pre-evaluation of the result of a trade operation. The value is returned in the account

Bug in MetaEditor Build 3566: Wrong display of double floating point numbers in the debugger window

I am attaching a screenshot of the error. Open test.mq5 in MetaEditor. Put a breakpoint on line #6, then run the debugger. The string() function bug was fixed before in build 3210. Wrong display of double floating point numbers in Dialog boxes and output of Print(), Alert(), Comment() and

Bug: EnumToString(SYMBOL_SWAP_MODE_CURRENCY_MARGIN)

I found this bug when using EnumToString() to display the swap calculation mode of a symbol. #define PRINT(A) Print ( #A + " = \"" + (A) + "\"" ) void OnStart () { Print ( "Build: " , TerminalInfoInteger ( TERMINAL_BUILD )); PRINT( EnumToString (( ENUM_SYMBOL_SWAP_MODE )

Bug in string() function. Wrong conversion of float -> string

Forum on trading, automated trading systems and testing trading strategies MT5/mql5 reported and confirmed bugs. amrali , 2022.02.17 15:33 Bug in string() function. Wrong conversion of float -> string. Build 3211 but this is not specific to this build, it's an old one. A bug is found in string()

How to get commission per lot in MQL5

Is there a programagic way (like SymbolInfoDouble, or AccountInfoDouble) to get the broker's commission per lot. From the market watch window, I can get it by right click on a symbol -> symbol specs. Anybody has an idea how the market watch window implemented it? I suggest this feature should be

CodeBase Bug: Code validation completed with errors

mql5\Scripts\Export_Summary_By_Days.mq5(12,11) : error 106: can't open 'MQL5\Include\Trade\DealInfo.mqh' include file mql5\Scripts\Export_Summary_By_Days.mq5(74,4) : error 256: 'CDealInfo' - undeclared identifier mql5\Scripts\Export_Summary_By_Days.mq5(74,14) : error 256: 'deal' - undeclared

Bug: function MathSample() does not generate correct results

The function MathSample() (defined in <Math\Stat\Math.mqh>) does not generate correct random samples. This a fix for the include file <Math\Stat\Math.mqh>: bool MathSample( const int &array[], const int count, int &result[]) { int size= ArraySize (array); //--- check array size if (size== 0 )